Editing Sequences - TimothyLuke/GSE-Advanced-Macro-Compiler GitHub Wiki
The Sequence Editor
The Sequence Editor is the primary interface for creating and managing GSE sequences, variables, keybindings, and actionbar overrides. Open it with /gse or by clicking the GSE minimap button.
The editor is a resizable window split into two panels. The left panel is a navigation tree listing everything GSE manages. The right panel shows the editing area for whatever you have selected in the tree. Both panels remember their size and position between sessions.
A − button in the top-right corner minimises the editor to a small draggable widget showing the sequence name. Click the widget to restore the full window.
Navigation tree
The tree has five top-level sections.
New Sequence — Click this (or the + icon next to it) to create a new sequence. You will be prompted for a name. Once named, the editor opens the sequence's Configuration tab ready for editing.
Import — Opens the GSE import window. Paste any GSE string from Discord, a forum post, or Wago here.
Sequences — The main list, grouped by class and specialisation. Each sequence can be expanded to show a Configuration node and one node per version (e.g. "1 - Default", "2 - Mythic"). Shift-click any sequence to post a chat link to it.
Right-clicking a sequence opens a context menu with:
- New — create a new sequence
- Export — generate a shareable export string
- Send — send the sequence to another GSE user on the same server
- Open in New Window — open a second editor for this sequence (Patron feature)
- Chat Link — post a link to chat
- Keybindings — jump to this sequence's keybinding entries
- Delete — permanently delete the sequence
Keybindings — Lists actionbar overrides and key assignments, organised by specialisation and talent loadout.
Variables — Lists all GSE variables. Right-click a variable to export or delete it.
Macros — Shows your account-wide and character-specific WoW macros and lets you mark them for GSE management.
Configuring a sequence
Select the Configuration node under a sequence to edit its metadata.
Toolbar
- Sequence Name — Type a new name here before saving to duplicate the sequence under that name.
- Save — Queues the sequence to be saved out of combat. The status bar shows "Save pending for name" and then "name Saved" once complete.
- Delete — Permanently deletes the entire sequence. This cannot be undone.
- Send — Opens the in-game transmission UI.
Metadata fields
- Disable Sequence checkbox — When checked, GSE will not compile this sequence at startup. Useful for work-in-progress sequences you are not ready to use yet.
- Specialisation / Class ID — Assigns the sequence to a specific class or spec. Set this to Global to make the sequence available to all characters.
- Help Information — Free-text notes shown in the sequence browser. Use this for rotation tips, spec assumptions, or anything another user needs to know.
- Help Link — A URL (forum post, YouTube guide, etc.) linked from the browser.
- Author — Defaults to your character name.
Version routing
These dropdowns let you point specific content types at different versions of your sequence. For example, you might want version 1 in most situations but version 2 in Mythic+. Each dropdown lists your available versions; leaving it unset falls back to the Default Version.
Available contexts: Raid, Arena, PVP, Mythic, Mythic+, Heroic, Dungeon, Timewalking, Party, Scenario.
Dependencies
This section appears automatically when GSE detects references in your sequence to external things:
- Requires Variables — GSE variables (
GSE.V["name"]()) used by the sequence. Missing variables are highlighted in red. - Embeds Sequences — Other sequences included via Embed blocks. Missing ones are highlighted in red.
- Requires Macros — WoW macros referenced by the sequence. Shown in green if present on this character, yellow if only in the stored account cache, red if not found at all.
- Embedded by — Other sequences that embed this one.
Editing a version
Select a numbered version node to open the block editor. A new New Version entry at the bottom of a sequence's node list clones the Default version and opens it.
Version toolbar
- Version Name — A label for this version (shown in the tree and in the routing dropdowns).
- Compiled Template — Compiles the version and shows the final macro text WoW will execute. Useful for checking what the sequence actually does before using it.
- Raw Edit (Patron/Developer only) — Replaces the visual block editor with a raw Lua table view. Make changes, press Compile to validate and apply, or Cancel to discard.
- Delete Version — Removes this version. You cannot delete the only remaining version or the Default version. Any routing dropdowns that pointed to the deleted version are automatically reset to Default.
- Combat Reset checkbox — When enabled, the sequence resets to block 1 whenever you leave combat.
The five Add block buttons at the top-left of the toolbar insert a new block at the top of the sequence. Each block also has its own set of Add buttons that insert immediately after it.
Block types
Every block has a toolbar row with:
- Move Up / Move Down arrows — reorder blocks within their container
- Block Path field — shows the block's dot-notation position (e.g.
2.3means the third block inside the second container). Type a different path and press Enter to move the block there. - Disable Block — greys out the block so it is skipped at compile time. Disabling a container (Loop or If) disables everything inside it too.
- Delete Block — removes the block. Deleting a Loop or If block removes all the blocks inside it as well.
Action block
The workhorse of every sequence. Choose the action type with the radio buttons:
- Macro — a multi-line text box for raw macro commands (
/cast,/use, etc.). A live character count is shown; anything over 255 characters is highlighted in red, as WoW will not execute it. - Spell — a single spell name. WoW will always use the current rank of that spell.
- Item — an item name or item ID.
- Pet — a pet ability name.
- Toy — a toy name.
For Spell, Item, Pet, and Toy types a Unit Name field lets you specify a target (e.g. target, focus).
Tick Repeat to convert the block into a Repeat block and set the Interval — the number of steps between each repeat. For example, interval 3 means the block fires on steps 1, 4, 7, etc.
Pause block
Pauses advancement through the sequence. The Measure dropdown controls the unit:
- Clicks — wait this many button presses before advancing
- Milliseconds — wait this many milliseconds (based on your external click tool's rate)
- GCD — wait exactly one global cooldown
Loop block
Wraps a set of blocks in a repeating container. Choose a Step Function:
- Sequential (1 2 3 4) — executes each block in order, cycling back to the start
- Priority List (1 12 123 1234) — executes block 1, then blocks 1–2, then 1–3, etc., favouring earlier blocks
- Reverse Priority (1 21 321 4321) — as above but favouring later blocks
- Random — picks any block at random each step
The Repeat field controls how many times the loop cycles before the sequence advances past it.
If block
Branches execution based on a GSE variable that returns true or false. Type the variable reference (e.g. =GSE.V["myVar"]()) in the Variable field. Patron users can press Tab for a list of available variables.
- The True container — blocks executed when the variable returns true
- The False container — blocks executed when it returns false
If blocks are evaluated when the sequence compiles (e.g. on zone change or target change), not in real time during combat.
Embed block
Pulls another sequence into this one at this position. Choose the sequence from the Sequence dropdown (all sequences except the current one are listed, grouped by class and spec). The embedded sequence's compiled content is inlined when this sequence is compiled.
Keybindings and actionbar overrides
Select a Keybindings or Actionbar Overrides node in the tree to manage how your sequences are triggered.
KeyBind entries assign a keyboard shortcut directly to a GSE sequence for a given specialisation, with optional Talent Loadout scoping.
Actionbar Override entries replace an action bar slot with a GSE sequence. The slot shows the sequence's icon and the sequence fires when you press the button or its keybind. Hovering the button shows a tooltip for the current step's spell. Overrides can be assigned per specialisation and per Talent Loadout so they swap automatically when you switch specs or loadouts.
To add a new override directly in the game world without opening the editor, right-click an empty action bar button while out of combat.
Variables
Select a variable under the Variables node to edit it. Variables are Lua functions that return a value — most commonly true or false for use in If blocks, but they can return anything used in a sequence.
- Name — renaming the variable updates all references to it
- Author — who wrote it
- Implementation — the Lua function body
- Implementation Link — the string to paste into a sequence action block to call this variable (e.g.
=GSE.V["myVar"]()) - Current Value — the live result if the variable is active in the current session
- Execute on Event / Trigger Events — configure the variable to be re-evaluated automatically whenever a specified WoW event or GSE message fires, rather than only when the macro button is pressed
Saving your work
All saves are queued to run out of combat. If you press Save while in combat the change is held until you leave combat, then applied automatically. The status bar at the bottom of the editor window shows the current state.
If you have the same sequence open in two editor windows (Patron feature) and another window saves a change, the status bar warns you that the view is out of date.