Macro Toolkit - Updated for Dragonflight
Note on the Dragonflight updates:
The priority for any bug fixes, are the core feature (macro management, and extended/keybind-only macros). Other features (such as the various slash-commands) may not be working properly, and might get deleted, to simplify maintenance.
The source has also been moved to GitHub, to make it easier for others to contribute, and keep this addon alive :)
Please also report issues on GitHub, as that's easier to track than curseforge comments
Wrath/vanilla classic support
Since I do not play Wrath classic, support is incidental, and not guaranteed. Blizzard has been making updates to how macros function in retail, that have not (yet) arrived in Wrath or vanilla classic. You're free to report any issue you find on GitHub, but if it takes more than a few minutes to reproduce and fix, it likely won't be touched.
If you're an addon developer, interested in keeping classic support alive: feel free to contact me on GitHub.
Known issues
- ElvUI skin does not work ⇾ no plan to fix this, PRs are welcome
- SpellIDs in [known:spellIDOrSpellName] aren't syntax highlighted as spells ⇾ low priority visual issue
Some features are marked at "[abandoned feature]". This means that they may work, but if anything breaks, it's more likely that the feature will be removed, rather than fixed.
Macro Toolkit is an enhanced macro frame that adds the following features to the default macro UI:
- Macro Shortening
- Key Binding and key bind only macros
- Extended Macros
- Condition Builder
- Extended, Searchable Icon Frame
- Syntax Highlighting
- Syntax Checking
- Drag and Drop Moving
- Movable Macro Frame
- Scalable Macro Frame
- Insert Special commands
- Easy Slot Selection
- Backup [abandoned feature]
- Restore [abandoned feature]
- Clear all Macros [abandoned feature]
- Share Macro [abandoned feature]
- Add Custom Slash Commands [abandoned feature]
- Slash Commands for Common Lua Script Functions [abandoned feature]
- Copy macros between characters [abandoned feature]
- ElvUI Skin [abandoned feature]
- Add certain types of macro to a data broker [abandoned feature]
Using Macro Toolkit
By default, Macro Toolkit overrides the built-in macro UI and can be accessed in the same way. If you chose to keep the default UI as well, Macro Toolkit can still be accessed using the following slash commands:
- /mac
- /mtoolkit
- /macrotoolkit
Be warned though that if you chose this option, the two macro frames may not play well together.
Macro Shortening
Macro Toolkit will attempt to shorting your macros without affecting functionality. It does by looking for the shortest options for each command used, removing unnecessary spaces and optionally replacing known common Lua script functions with Macro Toolkit commands. This is more involved than it may sound, so it's worth checking that nothing has been removed that you kinda wanted to be left alone once you've used this function.
Key Binding and key bind only macros
Macros can be bound directly to keys without the need to place the macro on an action bar. Macro Toolkit also has a special tab that adds 18 keybind only macros - these macros can only be used with key binds, they cannot be put onto action bars.
Extended Macros
Macro Toolkit can extend macros beyond the 255-character limit.
Condition Builder
Macro Toolkit has a tool to help you build conditional statements for use in macros using dropdown boxes with easy to understand descriptions of the conditions.
Extended, Searchable Icon Frame
When creating a new macro or changing an existing one, the default macro UI offers you a small window showing 15 of the available icons for your macro at a time. As of version 5.1.0.1 Macro Toolkit uses LibAdvancedIconSelector to make more icons visible at the same whilst also offering a search facility and icon filtering by means of options.
Syntax Highlighting
Macro Toolkit can optionally highlight commands, conditions and parameters in macros by changing the colour (yeah, I'm British :-)) of each keyword. These colours can be adjusted using the in game options menu.
Syntax Checking
Basic syntax (which can be switched off if required) is performed on the macro as you type (or after they've been typed). Any errors found, along with suggestions for mistyped keywords, are shown in an adjacent window.
Drag and Drop Moving
Macros can be moved from General to Character Specific, or vice versa by a simple drag and drop operation
Movable Macro Frame
Macro Toolkit's frame can be moved to anywhere you want it on your screen. The position will be remembered for future use.
Scalable Macro Frame
Macro Toolkit's scale can be adjusted. This allows you to increase or decrease the size of the frame in relation to the rest of the game UI which can help considerably in making your macros easier to read.
Insert Special Commands
Macro Toolkit contains a dropdown list of common Lua script functions used in macros that can be inserted into your macro. The scripts have been converted to slash commands - see below for an explanation of those commands
Easy Slot Selection
To make is easier to work out which slot number equates to which equipment slot on your character, Macro Toolkit includes a dropdown that list all available slots by name, and inserts the appropriate number into your macro.
Backup / Restore / Clear All [abandoned feature]
Macros can be backed up to your saved variables file and restored later. Macro backups are performed by group, so, if you have the character specific tab selected, then only those macros will be backed up. The same is true for restore. There is also a function to clear all your macros (subject to which tab is selected) if you just want to wipe them all and start again.
Share Macro [abandoned feature]
Macro Toolkit will print the selected macro to either the Guild, Raid or Party frame if required so that you can share your macros with other people. As of version 5.1.0.1 macros can also be sent directly to other Macro Toolkit users, either individually or to your whole group.
Add Custom Slash Commands [abandoned feature]
If you have a Lua script function that you often use, or just want to shorten, you can create your own custom slash command and add the script to it. Parameters to your script can be accessed using the variables arg1, arg2, arg3 and arg4.
Copy macros between characters [abandoned feature]
When you log into a character with Macro Toolkit enabled, that character's macros will be recorded (with the right option set) so they can be used with other characters.
Slash Commands for Common Lua Script Functions [abandoned feature]
Macro Toolkit has the following built in slash commands designed to be used within macros:
- /mtce - Clears UI Errors
- /mtex - Stops errors being sent to the Errors Frame
- /mteo - Allows errors to be sent to the Errors Frame
- /mtrp - Summons a random non combat pet
- /mtso - Enable sound effects
- /mtsx - Disable sound effects
- /mtrt - Set raid target marker
- /mtev - Exit vehicle
- /mtmc - Print the player's map position
- /mtep - Eject all passengers
- /mtsg - Sell all grey quality items at the vendor screen
- /mtdg - Destroy all grey quality items
- /mtnb - Print a list of all people in your raid with no food buff
- /mtnf - Print a list of all people in your raid with no flask buff
- /mtfm - Summons a random favourite mount, like the mount journal button, but this command accepts conditionals
- /mtc - Add conditionals to conditionally execute insecure commands (i.e. not /cast, /target, etc) - new in 6.0.3.4
ElvUI Skin [abandoned feature]
For those of you that use the excellent ElvUI, MacroToolkit will skin itself to match. Note that this will only work for ElvUI users. Version 6.0.3.4 adds an option to switch off the ElvUI skin for ElvUI users if desired.
Bug Reports / Change Requests
If you find any bugs or have any suggestions for improvements, please use the ticketing system, accessible from the following link:
Locales
Macro Toolkit is currently localised for all WoW game client locales. If you would like to contribute to translating Macro Toolkit, please use the following link:
Please note that the quest names and NPC names are not included in the locale and will still appear in English.
Acknowledgements
- Dohram - for features and testing
- HOPE - for very helpful and patient testing.
- marciowb - Keeping her alive
- xBolte - Keeping her alive
- Numy - Dragonflight support