Skip to content

Repository files navigation

MacroMaker for Ascension WoW

MacroMaker is a point-and-click macro builder for Ascension WoW running the 3.3.5a client. It combines a guided builder with a full text editor, making it easy to create useful macros without memorizing every command and conditional.

The addon reads the abilities your character actually knows directly from the in-game spellbook. This is especially useful on Ascension, where classless builds and custom spellbook tabs make static class lists unreliable.

Features

  • Create, load, edit, and delete account-wide and character-specific macros.
  • Open MacroMaker with /macromaker, /mmaker, or the MacroMaker entry in Ascension's Escape menu.
  • Drag saved macros from the macro list directly onto an action bar.
  • Browse learned abilities using the categories from the live spellbook.
  • Search commands, abilities, and templates independently; each tab remembers its own search text.
  • Build macros from clickable commands, targets, and secure macro conditionals.
  • Select a spell-aware command first, then click an ability to insert the completed line.
  • Automatically use the first selected ability as the macro name when the name field is empty.
  • Detect the stance number for a selected stance or form ability and generate a [nostance:N] check.
  • Start from templates for mouseover healing, focus interrupts, modifiers, cast sequences, trinkets, and Ascension's @cursor support.
  • Edit the generated macro text directly at any time.
  • Track macro size using Ascension's 511-byte limit or the classic 255-byte compatibility mode.
  • Defer save requests made during combat until combat lockdown ends.
  • Warn when the client truncates a saved macro.

Screenshots

Screenshot 2026-07-20 175308 Screenshot 2026-07-20 175314 Screenshot 2026-07-20 175321

Requirements

  • Ascension WoW
  • World of Warcraft client version 3.3.5a
  • Interface version 30300

MacroMaker is designed for Ascension's client. It may also load on other 3.3.5a clients, but Ascension-specific features such as its Escape-menu integration, @cursor, and 511-byte macro limit may not be available there.

Languages

MacroMaker automatically follows the language selected by the World of Warcraft client when the addon loads:

  • deDE uses the complete German interface.
  • enUS and enGB use the complete English interface.
  • Any unsupported locale, or a client that does not report a locale, falls back to English.

Changing the client language requires a UI reload or client restart before MacroMaker selects the new language. Interface labels, command descriptions, templates, tooltips, dialogs, and status messages are localized. Macro commands and conditional tokens such as /cast, #showtooltip, and [@mouseover] remain unchanged so generated macros stay compatible. Ability names are read directly from the active client's spellbook and therefore already use the client's language.

Installation

From a release archive

  1. Download the latest MacroMaker-<version>.zip file from the GitHub Releases page.
  2. Extract the archive.
  3. Copy the contained MacroMaker folder into your client's Interface/AddOns/ directory.
  4. Confirm that the final path is Interface/AddOns/MacroMaker/MacroMaker.toc and not a second nested MacroMaker folder.
  5. Restart the client, or return to the character-selection screen and reload the addon list.
  6. If necessary, enable Load out of date AddOns on the AddOns screen.

Open MacroMaker in game with:

/macromaker

The shorter /mmaker command is also available. On Ascension, MacroMaker additionally registers an entry in the AddOns section of the Escape menu alongside addons such as ElvUI and MoveAnything.

Installing from source

Clone or download this repository, then copy these addon files into a folder named MacroMaker under Interface/AddOns/:

MacroMaker/
├── MacroMaker.toc
├── Core.lua
├── Locale.lua
├── Data.lua
├── Spellbook.lua
├── MacroStore.lua
└── UI.lua

Development files such as README.md, CHANGELOG.md, package.ps1, and the dist directory are not required by the game client.

Usage

Create a basic ability macro

  1. Open MacroMaker and select New Macro.
  2. Open the Abilities tab and click an ability.
  3. If the name field is empty, MacroMaker fills it with the first selected ability, shortened safely to WoW's 16-character name limit when needed.
  4. Without a pending command, clicking an ability inserts a standard tooltip and cast macro.
  5. Choose whether the macro is account-wide or character-specific, then select Save.

Combine a command with an ability

Spell-aware commands use a two-step workflow:

  1. In Functions, select a command such as Cast Spell, Show Tooltip, Show Ability Icon, Cancel Aura, or Check and Change Stance.
  2. MacroMaker switches to Abilities and displays the pending command.
  3. Click the required ability.
  4. MacroMaker inserts the completed command once and clears the pending selection.

For example, selecting Cast Spell, choosing @mouseover plus the help and nodead conditionals, and then clicking a healing spell produces a line similar to:

/cast [@mouseover,help,nodead] Healing Spell

If no spell-aware command is pending, an ability click falls back to the normal /cast behavior.

Build a stance macro

  1. Select Check and Change Stance in Functions.
  2. Click the desired stance or form ability in Abilities.
  3. MacroMaker compares the ability's spell ID, name, and icon with the client's stance bar.
  4. When a unique match is found, it inserts a command such as:
/cast [nostance:2] Defensive Stance

The Show Current Stance ID template prints the stance number currently reported by the client. Ascension custom forms work only when the client exposes them as a real shapeshift form or stance. If a form is not registered that way, MacroMaker cannot generate a reliable stance number for it.

Search the builder

The Functions, Abilities, and Templates tabs each keep a separate search query. Switching tabs restores the previous search for that tab. The Abilities tab can also be filtered by the categories reported by the live spellbook.

Edit and place a macro

The text editor always remains available, so generated lines and templates can be adjusted manually. To place a saved macro on an action bar, drag it from the list on the left to an action-bar slot. WoW blocks this action during combat.

Macro behavior and limitations

MacroMaker creates normal World of Warcraft macros and does not bypass the secure-action system.

  • A macro cannot wait between protected actions. There is no secure /sleep or /wait command.
  • reset= in /castsequence controls when a sequence resets; it does not delay or automatically execute the next spell.
  • Every protected action requires a real hardware input such as a key press or mouse click.
  • Multiple abilities on the global cooldown cannot normally be cast in sequence with a single key press.
  • Normal macros cannot branch on arbitrary buffs, health values, cooldowns, or whether an ability is currently usable.
  • Stances are a special supported macro state and can be checked with [stance:N] and [nostance:N].
  • An addon may display information about buffs or cooldowns, but it cannot use that information to perform protected actions automatically.
  • Changes to macros and action bars are restricted during combat lockdown.

Ascension and 3.3.5a compatibility

Area Behavior
Interface Wrath 3.3.5a, interface 30300
Spellbook Read dynamically through GetNumSpellTabs, GetSpellTabInfo, GetSpellName, and GetSpellTexture
Macro storage Uses the 3.3.5a GetNumMacros, GetMacroInfo, CreateMacro, EditMacro, and DeleteMacro APIs
Macro slots Native client limits: 36 account-wide and 18 character-specific macros
Macro name Native limit of 16 characters; automatic names are shortened without splitting UTF-8 characters
Macro body Ascension supports 511 bytes as of June 25, 2026; classic Wrath clients generally use 255 bytes
Ground targeting Ascension provides backported @cursor support
Escape menu Uses Ascension's EscapeMenu:AddButton API, with a classic GameMenuFrame fallback

The limit toggle in MacroMaker switches validation between 511 and 255 bytes. The client remains authoritative: if an older client truncates the text during saving, MacroMaker reports the size that was actually stored.

Packaging a release

The repository includes package.ps1, which creates a clean release archive in dist/ using the version declared in MacroMaker.toc.

From PowerShell in the repository root:

./package.ps1

Before publishing a release:

  1. Update ## Version in MacroMaker.toc.
  2. Add the release to CHANGELOG.md.
  3. Run the manual test checklist below in Ascension.
  4. Run package.ps1.
  5. Inspect the archive and confirm it extracts to a single top-level MacroMaker folder.
  6. Attach the generated ZIP file to the matching GitHub Release.

Manual test checklist

  • Load the addon without Lua errors.
  • Start an English (enUS or enGB) client and confirm the complete interface and feedback messages are English.
  • Start a German (deDE) client and confirm the complete interface and feedback messages are German.
  • Confirm an unsupported or unavailable locale falls back to English without Lua errors.
  • Search for localized command, template, and category labels in both English and German.
  • Confirm longer German labels fit buttons, tabs, dropdowns, dialogs, and tooltips without being clipped.
  • Confirm generated macro commands and conditionals remain unchanged in both languages.
  • Confirm spell names inserted into macros match the active client's spellbook language.
  • Open and close the window with /macromaker and /mmaker.
  • Open MacroMaker from Ascension's Escape menu next to other addon entries.
  • Move the MacroMaker window and reopen it.
  • Create, load, edit, rename, and delete an account-wide macro.
  • Create, load, edit, rename, and delete a character-specific macro.
  • Drag a saved macro onto an action bar while out of combat.
  • Confirm drag-and-drop is rejected cleanly during combat.
  • Search abilities from several Ascension spellbook tabs and insert them.
  • Change builds or spellbook contents and confirm newly learned abilities appear.
  • Confirm Functions, Abilities, and Templates retain independent search text.
  • Confirm the first selected ability fills an empty name field but does not replace an existing name.
  • Verify mouseover, focus, modifier, cast-sequence, and @cursor templates.
  • Verify spell-aware commands are combined with the next selected ability exactly once.
  • Verify stance detection with each stance or form available to the test character.
  • Request a save during combat and confirm it completes after leaving combat.
  • Save a macro longer than 255 bytes with the 511-byte profile and confirm the current Ascension client stores it completely.
  • Switch to the 255-byte profile and confirm oversized macros are rejected before saving.
  • Confirm multibyte characters are counted correctly in macro names and bodies.

References

Disclaimer

MacroMaker is an independent community addon and is not affiliated with or endorsed by Ascension, Blizzard Entertainment, or their respective owners. World of Warcraft and related names are trademarks of Blizzard Entertainment.

About

A click-based macro builder for Ascension WoW and the World of Warcraft 3.3.5a client.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages