• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
(Mighty) Lua Event Manager

(Mighty) Lua Event Manager 12/13/2024

Download now:  Join us with Level 2 access or earn your way in with  RedCents.
0.4.8
- Add `bg` start parameter to start script with UI hidden
Posted by: DoNotReply
Fix an if in an event template
Switch to init.lua pattern
In case you edit the event code in VS code, the button will disable the event, re-load the script and re-enable.
- events should now actually disable when you disable them
- added /mlem binding incase /lem conflicts with something. /lem binding is still there
- Added an "edit in vs code" button to the event viewer, because why not. If you don't have vs code installed, idk what it will do. It just executes "code /path/to/event.lua".
- Updated event export to make sure it doesn't export the (not currently in use) event.load.characters field.
  • Add more templates / samples - mostly just simple ports of common reacts like primal bandolier swaps, icebound avatar duck, clicking jboots, clicking shield of the immaculate.
  • Add support for defining an on_load function for events, in case you want something to happen when an event loads for the first time. This may be more useful once dynamic load options are being used. For example, mem'ing a bane or cure spell when zoning into Shei mission where the event loaded dynamically based on the zone name.
  • Begin to add but not yet use implementation for dynamic load options for events
  • Fix events enabling by default if no settings exist yet
  • Refactor some stuff
- Add template selection in event editor to fill in event code from some samples. Don't really have many samples yet, but hopefully in the future...
- Add lem/library.lua with a bunch of helper functions that may or may not be useful when writing event code. Include it by adding local library = require('lem.library') to your event.
- Includes things like casting spells, using AAs, using items, using discs, checking if any of the same are ready or not, nav'ing, targeting, etc.
- Event configurations can be exported from the event viewer or right click menu in event list. The configuration will be copied to clipboard to be pasted elsewhere.
- Event configurations can be imported from the Import section on the left.

Events are exported and imported as base64 encoded strings (they will look like blobs of letters/numbers). For example, pasting the following into Import will add the atensilence event (which is also already included):

INI:
cmV0dXJuIHsKIGNvZGUgPSAiYkc5allXd2diWEVnUFNCeVpYRjFhWEpsS0NkdGNTY3BDZ3BzYjJOaGJDQnRlVjlqYkdGemN5QTlJRzF4TGxSTVR5NU5aUzVEYkdGemN5NVRhRzl5ZEU1aGJXVW9LUW9LYkc5allXd2djR0YxYzJWZlkyMWtjeUE5SUNnbkx5VnpJRzF2WkdVZ01Ec2dMMjF4Y0NCdmJqc2dMM1IzYVhOMElHOW1aanNnTDNScGJXVmtJRFVnTDJGbWIyeHNiM2NnYjJabU95QXZibUYySUhOMGIzQTdJQzkwWVhKblpYUWdZMnhsWVhJbktUcG1iM0p0WVhRb2JYbGZZMnhoYzNNcENteHZZMkZzSUhKMWJsOWhkMkY1WDJOdFpDQTlJQ2N2ZEdsdFpXUWdNVEFnTDI1aGRpQnNiMk40ZVhvZ01USXlNaTQyTnlBdE5EZ3VPVGNnTWpNMkxqUXhKd3BzYjJOaGJDQnlaWE4xYldWZlkyMWtjeUE5SUNnbkwzUnBiV1ZrSURFMU1DQXZKWE1nYlc5a1pTQXlPeUF2ZEdsdFpXUWdNVFV3SUM5dGNYQWdiMlptT3lBdmRHbHRaV1FnTVRVd0lDOTBkMmx6ZENCdmJpY3BPbVp2Y20xaGRDaHRlVjlqYkdGemN5a0tDbXh2WTJGc0lHWjFiR3hmWTIxa0lEMGdLQ2N2YlhWc2RHbHNhVzVsSURzZ0pYTTdJQ1Z6T3lBbGN6c25LVHBtYjNKdFlYUW9jR0YxYzJWZlkyMWtjeXdnY25WdVgyRjNZWGxmWTIxa0xDQnlaWE4xYldWZlkyMWtjeWtLQ214dlkyRnNJR1oxYm1OMGFXOXVJR1YyWlc1MFgyaGhibVJzWlhJb2JHbHVaU3dnZEdGeVoyVjBLUW9nSUNBZ2FXWWdibTkwSUcxeExsUk1UeTVhYjI1bExsTm9iM0owVG1GdFpTZ3BJRDA5SUNkMlpYaDBhR0ZzZEhkdlgyMXBjM05wYjI0bklIUm9aVzRnY21WMGRYSnVJR1Z1WkFvS0lDQWdJR3h2WTJGc0lHbGZZVzFmYldFZ1BTQnRjUzVVVEU4dVIzSnZkWEF1VFdWdFltVnlLREFwTGsxaGFXNUJjM05wYzNRb0tRb2dJQ0FnYkc5allXd2diWGxmYm1GdFpTQTlJRzF4TGxSTVR5NU5aUzVEYkdWaGJrNWhiV1VvS1FvZ0lDQWdiRzlqWVd3Z2JXRmZibUZ0WlNBOUlHMXhMbFJNVHk1SGNtOTFjQzVOWVdsdVFYTnphWE4wTGtOc1pXRnVUbUZ0WlNncENnb2dJQ0FnYVdZZ2RHRnlaMlYwSUQwOUlHMTVYMjVoYldVZ1lXNWtJRzV2ZENCcFgyRnRYMjFoSUhSb1pXNEtJQ0FnSUNBZ0lDQnRjUzVqYldRb1puVnNiRjlqYldRcENpQWdJQ0JsYkhObGFXWWdkR0Z5WjJWMElEMDlJRzFoWDI1aGJXVWdZVzVrSUc1dmRDQnBYMkZ0WDIxaElIUm9aVzRLSUNBZ0lDQWdJQ0J0Y1M1amJXUW9ablZzYkY5amJXUXBDaUFnSUNCbGJtUUtaVzVrQ2dweVpYUjFjbTRnWlhabGJuUmZhR0Z1Wkd4bGNnPT0iLAogY2F0ZWdvcnkgPSAiVG9MIiwKIHR5cGUgPSAiZXZlbnRzIiwKIG5hbWUgPSAiYXRlbnNpbGVuY2UiLAogcGF0dGVybiA9ICIjKiNBdGVuIEhhIFJhIHBvaW50cyBhdCAjMSMgd2l0aCBvbmUgYXJtIyojIiwKfQ==

For anyone who has used weakauras in WoW, its meant to look similar to that, just copy/paste the string to import.
Protect calls to user defined condition and action functions so that the main script stays running in case a broken event is enabled.

failederrors.png


If the condition function fails to run, the first message will be displayed: Failed to invoke condition for event: {name}
If the action function fails to run, the second message will be displayed: Failed to invoke action for event: {name}

Some things I may consider if broken events are too common and spammy:
- Automatically disable event if it gets so many errors
- Throttle printing out the errors

This only applies to condition event functions (the react-like ones), as events are called separately by MQ and will already be caught.

Don't just the macroquest2 folder name in my folders!
Back
Top