💬 Announcement — Midnight 12.0.5 is here! Taking class suggestions at our Discord! 💬

GRIP - EMS (Enhanced Macro Sequencer)

Welcome to our community for World of Warcraft macros.
Post Reply
User avatar
Sataana
Developer
Posts: 3
Joined: Mon May 12, 2025 6:12 pm
Location: England
Been thanked: 1 time
Contact:

GRIP - EMS (Enhanced Macro Sequencer)

Post by Sataana »

GRIP - Enhanced Macro Sequencer

The free macro sequencer for World of Warcraft -- no paywalls, no Patreon, every feature included.

Retail / Midnight 12.0.1+


Features

Sequencing Engine
Drop your spells into the editor, pick a step function (Sequential, Priority, Reverse Priority, or Random), and the addon fires one spell per keypress. Five combinable reset conditions (combat end, target change, gear swap, spec change, idle timer) keep your rotation tight.

Visual Sequence Editor
A 6-tab interface (Steps, Keybind, Macros, Variables, Context, Raw) with spell autocomplete via Tab, dynamic icons, working-copy editing, per-step character counter, Priority preview, and KeyPress/KeyRelease fields with per-step fit status. Sort sequences by name, class, or recently updated.

Multi-Version and Context Switching
Create multiple versions per sequence (single-target, AoE, cleave, etc.) and assign them to 15 context types: raid tiers, dungeon difficulties, PvP, Delves, Timewalking, Solo, and more. Automatic version switching with smart fallback chains. Dedicated Context tab with collapsible groups.

Variables
Account-wide ~varname~ substitution in macrotext. Lua function variables with event-driven re-evaluation. Full WoW macro syntax support.

Keybinds
Per-spec keybinds that auto-switch on spec change. Temporary override bindings that never touch your saved WoW binds. Auto-suspend during vehicles, skyriding, and pet battles.

Sharing and Import/Export
Player-to-player sharing via whisper, party, or raid with clickable chat links and one-click accept. Auto-accept from friends (optional). Multi-select export with automatic variable dependency resolution. Two-stage import with color-coded conflict detection. Full import compatibility with other sequencer addons. Locale-safe export using spell IDs for cross-language sharing.

Tracker HUD
Movable icon overlay showing active sequences with 4 visibility modes (Always, In Combat, Has Target, Never), step counter per icon, active-sequence highlight on last-pressed, and a scale slider with lock/unlock position.

Quality of Life
Profile-based settings via AceDB, dark-themed settings panel, What's New popup on version update, debug window with 500-message scrollback, minimap button + addon compartment, and an interactive HTML guide (in-game or web).

Quick Start
  1. Type /gems in chat to open the editor
  2. Click New to create a sequence
  3. Add your rotation spells -- one per step, press Tab for spell autocomplete
  4. Click Save, switch to the Keybind tab, and press your desired key
  5. Find a target and start pressing -- your rotation fires automatically
For a full walkthrough, type /gems guide in-game or visit the Interactive Guide.

Switching from Another Sequencer?

GRIP-EMS imports sequences from other macro sequencer addons. Sequences, variables, step functions, metadata, multi-version data, and context overrides all transfer.

In-Game Migration: If your previous sequencer is still installed, open GRIP-EMS and click Migrate in the sequence list. Everything transfers automatically with a detailed report in chat.

Clipboard Import: Export a sequence from your old addon, run /gems import in GRIP-EMS, paste the string, and pick which sequences to import. Conflicts are color-coded with skip, replace, and rename options per item.

Slash Commands
  • /gems -- Toggle the sequence editor
  • /gems create -- Create a new sequence
  • /gems import -- Open the import paste window
  • /gems export (name) -- Export a sequence to clipboard
  • /gems exportall -- Open multi-select export window
  • /gems bind (name) (key) -- Bind a key to a sequence
  • /gems binds -- Show all keybinds for the current spec
  • /gems migrate -- Migrate sequences from a compatible sequencer
  • /gems tracker -- Cycle tracker visibility modes
  • /gems guide -- Open the interactive tutorial
Type /gems help in-game for the full command list.

Installation

Addon Manager -- Search for "GRIP - Enhanced Macro Sequencer" or "GRIP-EMS" in CurseForge, Wago Addons, WowUp, or WoWInterface.

Manual -- Download the latest release, extract the GRIP-EMS folder to World of Warcraft/_retail_/Interface/AddOns/GRIP-EMS/, then restart WoW or /reload.

Coming Soon
  • Rotation Preview Panel -- visualize step flow before combat
  • Multi-window editor -- compare sequences side by side
  • Macro recorder -- capture spells to build sequences automatically
  • Sequence comparison -- side-by-side diff of versions
  • Stale spell detector -- flag renamed or removed spells
Links
License

All Rights Reserved. Part of the GRIP addon family by Sataana.
User avatar
MFD00M
Operations
Posts: 120
Joined: Mon Sep 16, 2024 10:25 pm
Has thanked: 11 times
Been thanked: 25 times
Contact:

Re: GRIP - EMS (Enhanced Macro Sequencer)

Post by MFD00M »

I'll start including GRIP EMS strings for all my macros going forward since it's become a much better and easier tool to use. Thanks for your continued work on it!
User avatar
Sataana
Developer
Posts: 3
Joined: Mon May 12, 2025 6:12 pm
Location: England
Been thanked: 1 time
Contact:

Re: GRIP - EMS (Enhanced Macro Sequencer)

Post by Sataana »

⚔️ GRIP-EMS v2.1.0 is LIVE

Released May 12, 2026

Two transformations in one release. Macros learn to branch. Sequences learn to remember who made them.

🧠 IF action nodes -- your sequences can BRANCH now

New step type with separate True and False child action lists. Branch on any WoW conditional -- mod:shift, harm, @focus, the whole macro vocabulary. Compiles to [noparse]/cast [<cond>] <body>; <else body>[/noparse]. Branching.

☑️ Conditional builder -- see your OR groups

Click [noparse][v][/noparse] next to the Cond field. Single-clause input opens a tickbox picker; multi-bracket OR groups like [noparse][mod:shift,harm][@focus,help][/noparse] open a dedicated modal with one tab strip per clause. Targeting tab for @focus / @cursor / @unit / target=. Add, remove, apply -- joined output back into Cond. No more memorizing brackets.

🔍 Spell Picker upgrades

Custom tab: type a partial name, click a match. Spec scope dropdown: current spec, all your specs, or any single one. New All Classes tab: 2,637 spells across every class.

⛔ Combat-blocked warnings

Yellow ! on IF child rows whose leading slash command is blocked in combat. Tooltip names it and suggests [noparse][nocombat][/noparse] gating.

🔒 Authorship Integrity

Original Author field locks after first save. SHA-256 signatures detect tampering. Fork button re-stamps you as Original Author and records multi-hop lineage. Privacy modes per sequence: public / pseudonymous / private (per-export salt for unlinkable exports).
"Built it? Sign it. Forked it? Say so. The badge knows."
👇 Grab it

CurseForge · Wago · WoWInterface

[spoiler]P.S. Full changelog: CHANGELOG.md.[/spoiler]
User avatar
Sataana
Developer
Posts: 3
Joined: Mon May 12, 2025 6:12 pm
Location: England
Been thanked: 1 time
Contact:

Re: GRIP - EMS (Enhanced Macro Sequencer)

Post by Sataana »

🚀 GRIP - Enhanced Macro Sequencer v2.1.2 -- Imports That Actually Import

Yeah, about that.

⚡ The big one. Every native EMS export since v2.1.0 used the new !EMS1! prefix, but the import dispatcher was still looking for the old !GRIP1! prefix. So if you've been trying to share sequences with another v2.1.0+ user and getting "Unknown format" toasts like you tried to type with your elbows -- that's why. Three dispatch sites updated, both prefixes now route through the same path. Working as intended.

🎯 Pershizzle's bug. Imports of sequences that used numeric spell IDs (the base ones that talents override) resolved to the BASE spell, not the talented version. BM hunters were getting /cast Steady Shot where they wanted Barbed Shot. Cobra Shot was coming out as Arcane Shot. Imports now run the spell ID through FindSpellOverrideByID first, so the talent-active variant is what lands in the macro. Big thanks to Pershizzle for the catch.

🔗 Discord label sweep. The Support panel was telling everyone the Discord was at discord.gg/grip-ems (which doesn't exist), even though clicking the button correctly opened discord.gg/temptingus. Eleven locale files now match the button's destination. If you wondered why the link looked wrong: that.

🔧 CVar Manager housekeeping (5 commits). Pinned a CVar mid-throttle and watched it get reset anyway? Not anymore. Got a "Fixed 12 CVars" toast when only 8 actually changed? Not anymore. Per-row Fix in combat silently corrupting the "previous value" cache? Not anymore. Plus a defensive C_Timer guard on both throttle tickers because future-me will thank present-me when Blizzard renames the API for no reason.

📥 Get it: CurseForge · Wago · WoWInterface
Post Reply