GSE Alternative! -> GRIP - EMS (Enhanced Macro Sequencer)

Will WLM allow the posting of EMS Sequences?

https://www.curseforge.com/wow/addons/grip-enhanced-macro-sequencer

And yes, EMS is mine, full disclosure, no shady stuff, not pay-walled etc.

I am going to give it a try and give you feedback later today :smiley: it’s always fun to test new stuff.

1 Like

Just released a Beta version with a ton of updates, here is the announcement:

:rocket: GRIP-EMS v1.7.0-Beta is LIVE

The biggest update since launch. 41 new features. 20 bug fixes. 22 new modules. Nearly 11,000 lines of new code.

And every single feature is completely free. No Patreon. No paywall. No companion app. No external platform collecting your data. No subscription. Just the addon.

Your sequences. Your keybinds. Your computer. Nothing leaves your machine.


:warning: BETA — READ THIS FIRST

This is a beta release. Things can and will break.

:small_orange_diamond: Back up your WTF folder before updating
:small_orange_diamond: Some sequences may need to be re-created or re-imported after this update
:small_orange_diamond: The new Steps Tab is a ground-up redesign — expect rough edges
:small_orange_diamond: If something breaks, don’t panic — your old sequences are still in your SavedVariables

Report ALL bugs and feedback here:
:point_right: https://discord.com/channels/170244820910997504/1487956469960806451

Even small things — “this felt weird” or “I expected X but got Y” — that feedback is gold right now.

:sparkles: What’s New — Editor & Engine

Steps Tab Redesign
The flat step list is evolving. You can now build action trees — structural nodes like Loop, Pause, If, and Embed that organize your rotation logic visually. Breadcrumb navigation lets you drill into nested structures. Drag-to-reorder everywhere. One-click migration from flat steps to the new tree model (with full undo).

Syntax Highlighting
Your macro text is now color-coded in the editor. /cast, /use, conditionals, spell names — all highlighted.

Spell Autocomplete
Press Tab in any step and get a searchable dropdown from your spellbook. No more typos.

Undo/Redo
Ctrl+Z / Ctrl+Y works across step edits, drag operations, and structural changes.

Popup Editor
Quick-edit any sequence right from the sequence list without opening the full editor.

Side-by-Side Comparison
Compare two versions of a sequence to see what changed.

Action Bar Icons
Your action bar buttons now show the correct spell icon for your active sequence step. Works with Blizzard bars, ElvUI, and Bartender4. Updates live as you advance through your rotation.

53 Context Keys
28 new per-map contexts for every arena and battleground. Your Blade’s Edge Arena macro can be different from your Dalaran Sewers macro. Battleground Blitz detected automatically.

Tab-Autocomplete for Variables
Press Tab in a step to insert ~variable~ references and sequence names. No more remembering exact names.

:sparkles: What’s New — Quality of Life

:small_blue_diamond: 10 Locale Stubs — Framework for community translations (deDE, esES, frFR, koKR, zhCN, and more)
:small_blue_diamond: Floating Menu — Movable shortcut bar for quick access
:small_blue_diamond: Remote Browser — Browse sequences shared via P2P
:small_blue_diamond: Spell Cache Viewer — Diagnostic tool for spell name issues
:small_blue_diamond: ESC closes Debug Window — Finally
:small_blue_diamond: Version switch warns on unsaved edits — No more accidental data loss
:small_blue_diamond: 25 Unit Tests — Automated quality checks on every build

:wrench: Under the Hood

A full code audit resolved 38 findings — broken P2P metadata sync, undo getting permanently stuck, wrong database paths, macro stub deletion bugs, cross-realm chat link failures, and more. Every shipped file passes luacheck and selene with zero warnings.


:green_heart: The GRIP Promise

No paywalls. No Patreon tiers. No companion apps phoning home. No platform accounts. No data collection. No “premium” features.

Every feature ships to every user, every time. For free.


Get it now: CurseForge / Wago Addons / WoWInterface — search GRIP-EMS and switch to the Beta channel

Report bugs here:
:point_right: https://discord.com/channels/170244820910997504/1487956469960806451

Thank you for testing. This addon is built for you. :green_heart:

1 Like

Sounds very interesting! I have been testing sequences made by Claude and ChatGPT with some decent results. I was wondering if there is a wat to make it more AI friendly. Most of the time GauPanda, EA, OAK and NTX are battling it out for best Sequence! With the proper information, AI can help tweak macros to be that much closer to ‘perfect’, lol. Just curious.

1 Like

If the AI is given enough specific information, directions, time and resources, as well as crossing fingers it will not hallucinate, you for sure can get a decent sequence out of it.

1 Like

On initial login, errors: 1x LUA_WARNING: GRIP-EMS/GRIP-EMS.toc:35 Couldn’t open GRIP-EMS/Libs/LibQTip-2.0/lib.xml

1x GRIP-EMS/Engine/BarIntegration.lua:245: attempt to call field ‘RegisterCallback’ (a nil value)
[GRIP-EMS/Engine/BarIntegration.lua]:245: in function ‘Init’
[GRIP-EMS/Engine/Engine.lua]:1441: in function <GRIP-EMS/Engine/Engine.lua:1439>

Locals:
self = {
enabled = false
pendingRescan = false
trackedButtons = {
}
adapters = {
}
}
allAdapters = {
1 = {
}
2 = {
}
3 = {
}
}
LAB = {
callbacks = {
}
activeButtons = {
}
ACTION_HIGHLIGHT_MARKS = {
}
eventFrame = Frame {
}
nonActionButtons = {
}
flyoutHandler = LABFlyoutHandlerFrame {
}
actionButtons = {
}
actionButtonsNonUI = {
}
NumChargeCooldowns = 0
buttonRegistry = {
}
FlyoutInfo = {
}
FlyoutButtons = {
}
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = {
enabled = false
pendingRescan = false
trackedButtons = {
}
adapters = {
}
}
(*temporary) = “OnButtonUpdate”
(*temporary) = “attempt to call field ‘RegisterCallback’ (a nil value)”
BI = {
enabled = false
pendingRescan = false
trackedButtons = {
}
adapters = {
}
}
GRIPEMS = {
SequenceList = {
}
SpellPicker = {
}
RemoteBrowser = {
}
PopupEditor = {
}
ActionRenderers = {
}
StepFunctions = {
}
UndoStack = {
}
KeybindManager = {
}
ContextTab = {
}
SpellValidator = {
}
SequenceEditor = {
}
state = {
}
OOCQueue = {
}
VehicleKeybinds = {
}
Transmission = {
}
MacroRecorder = {
}
ActionCompiler = {
}
GearVariables = {
}
DebugWindow = {
}
addonName = “GRIP-EMS”
LegacyMigrate = {
}
PluginAPI = {
}
KeybindTab = {
}
SyntaxHighlight = {
}
Settings = {
}
StepListView = {
}
Serialization = {
}
ComparisonFrame = {
}
TrackerHUD = {
}
WhatsNew = {
}
version = “v1.7.0-beta1”
UI = {
}
Defaults = {
}
Engine = {
}
RawImport = {
}
wagoAnalytics = {
}
GRIPExport = {
}
MacroManager = {
}
FloatingMenu = {
}
gamepadDetected = false
SpellCache = {
}
ExecutionTracer = {
}
VariableStore = {
}
ExportFrame = {
}
BarIntegration = {
}
SettingsPanel = {
}
LegacyImport = {
}
ImportFrame = {
}
PetBattleButtons = {
}
VariablesTab = {
}
RawTab = {
}
MacrosTab = {
}
SpellCacheViewer = {
}
}
BlizzardAdapter = {
name = “Blizzard”
}
ElvUIAdapter = {
name = “ElvUI”
}
BT4Adapter = {
name = “Bartender4”
}

No worries. Looking forward to checking it out!

1 Like

Just pushed an update, should be fixed!

1 Like

[v1.7.2] - 2026-04-06

Fixed

Tree-Mode Editor (BUG-060)

  • Action bar buttons (Del, Dup, Up, Down) now correctly operate on the
    action tree in hierarchical sequences instead of silently targeting the
    flat step array
  • Node badge rows (If/Loop/Embed) can now be manipulated via action bar
    buttons, not just right-click context menus
  • Button enable/disable states are now tree-mode-aware, reflecting the
    selected node’s position in the action tree
  • Outline selection is now mutually exclusive: clicking a step row clears
    node badge highlight and vice versa

Slash Command (BUG-061)

  • /gems now opens the main UI on first use without requiring a prior
    minimap or compartment button click
1 Like

:crossed_swords: GRIP - Enhanced Macro Sequencer v1.7.3 :crossed_swords:

:globe_showing_europe_africa: The “We Speak Your Language Now” Update

EMS just learned 10 new languages overnight. Every single UI string — all 795 of them — translated across every WoW client language. Your macro engine finally stops yelling at you in English.

:germany: German · :spain: Spanish (EU) · :mexico: Spanish (MX) · :france: French · :italy: Italian
:south_korea: Korean · :brazil: Portuguese · :russia: Russian · :china: Simplified Chinese · :taiwan: Traditional Chinese

All translations use Blizzard’s own official terminology — no Google Translate crimes here. Every string is tagged -- MT so community translators can spot-check and refine. See something weird? That’s your cue to be a hero. :superhero:


:control_knobs: Per-Sequence Reset Modifier Overrides

Tired of flipping your global reset settings just because ONE sequence is special? Now each sequence can override reset modifiers independently. Your globals stay global. Your exceptions stay exceptional.

:shield: Variable Locale Safety

Switch your game language mid-session and watch your variables… not break. Spell-name variables now carry spell IDs under the hood, and EMS auto-heals them when your locale changes. Witchcraft? No. Phase 2f.

:video_game: ConsolePort Integration

Controller gang, we see you. The keybind tab now detects your ConsolePort bindings and warns about conflicts before you discover them the hard way in a key.

:locked: Restriction State Awareness

M+? Raid encounter? PvP? The Tracker HUD now lights up with an amber restriction label when Blizzard’s addon restrictions kick in. No more guessing why your sequence feels different mid-pull.

:package: Import Resilience

Imports got an armor upgrade. Failed format detection? Logged. Import stats? Tracked. Cross-locale imports? Source language recorded. Your import flow is now basically a black box flight recorder.


Lok’tar ogar :saluting_face:

:wrench: GRIP-EMS v1.8.0 — The Repair Module :wrench:

Your sequences just got a doctor.

:stethoscope: Sequence Repair

GRIP-EMS now scans every sequence you own across 13 diagnostic categories and tells you exactly what’s wrong — then fixes it with one click.

Stale spells? Fixed. Broken variables? Fixed. Character limit violations, keybind conflicts, action tree issues? Fixed. Fixed. Fixed.

  • :green_circle: Health Score on every sequence — green, yellow, or red at a glance
  • Right-click any sequence → Repair to scan instantly
  • /gems repair <name> or /gems repairall to batch-fix everything
  • Hit Fix All and let it rip

:shield: Quality Gates

  • Exporting or sending sequences with critical issues? Warning dialog first.
  • Just imported something? Chat notification so you know to /gems repair right away.

:test_tube: Test Suite Ships In-Game

/gems test now ships with the addon — run it anytime to verify your install.


:warning: Fresh Paint — Feedback Wanted!

These features are brand new. Built with care, but not yet battle-tested by hundreds of players — that’s your job.

False positive? Missed issue? Weird edge case? Tell me. Drop it in Discord or DM me. No report is too small. This is how we make it bulletproof. :muscle:

Update: CurseForge, Wago, WoWInterface, or WowUp.
No paywalls. No Patreon. Every feature included. Always.

Already downloaded it and tested it a few days ago, think it was the day of the post.

As a backend dev i cant really talk about ui/ux :sweat_smile:

Didnt do a lot of testing but when i tried it out it worked out if the box, migrated my monk sequence and used it without issue. TBH II am more impressed by the easy transition from another addon to this one, thats one of the hard tasks.

Not checked all the new features, so i apologize if i mention something that exists already. Are there any plans for adding something like a simulation mode, testmode with custom stats like x haste, lastly any plans of evaluating damage logs for tryining dummies if thats possible due to the API changes that came with midnight.

PS. If i can help with anything let me know, mainly a python dev here but i know basic lua.

1 Like

““As a backend dev i cant really talk about ui/ux :sweat_smile:”” - This is one of my pain points, i just KNOW there are a lot of things that can LOOK and “feel” better/more polished, but… so many ideas! :stuck_out_tongue:
As far as sims (and related), as far as I am aware, running simulations or evaluating logs (automagiclly) will be rough, for one there is obviously the calculations that have to be done on the fly and be dynamic etc. And like you mentioned, the API changes dont make it any easier.

I have… ideas and “side projects" that are related, but they arent the main focus right now

:sparkles: GRIP - Enhanced Macro Sequencer · v1.9.0 :sparkles:

:green_circle: CVar Dashboard · SQW Optimizer · Repair Fix All
The free macro sequencer for World of Warcraft — no paywalls, no Patreon, every feature included.

━━━━━━━━━━━━━━━

:control_knobs: CVar Dashboard

Take control of the 212 game variables that affect your combat performance, visuals, and input responsiveness.

:small_blue_diamond: 13 sections with live health scoring — see at a glance what’s off
:small_blue_diamond: 4 built-in profiles (Raid · M+ · Solo · PvP) with automatic zone-based switching
:small_blue_diamond: “What Changed?” login detection — know exactly what moved since your last session
:small_blue_diamond: Per-CVar auto-fix opt-in — only the variables YOU choose get corrected
:small_blue_diamond: Combat-safe writes gated behind InCombatLockdown()

:zap: Dynamic SQW Optimizer

Real-time SpellQueueWindow tuning that adapts to your connection.

:small_blue_diamond: EWMA latency smoothing with outlier rejection — lag spikes don’t wreck your queue
:small_blue_diamond: Hysteresis prevents the value from flapping between ticks
:small_blue_diamond: Automatic restore on logout — your original SQW is always safe
:small_blue_diamond: /gems sqw and /gems msadvisor show live optimizer data

:wrench: Repair: Fix All

One-click Fix All button in single-sequence repair view.

:small_blue_diamond: Batch-fixes every fixable issue in one pass
:small_blue_diamond: Full undo support — snapshot before fix, revert anytime
:small_blue_diamond: Live counter shows remaining fixable issues

:earth_africa: Localization

:small_blue_diamond: 448 new CVar locale strings across all 10 translated languages

━━━━━━━━━━━━━

:inbox_tray: Get It

:purple_circle: CurseForge: https://www.curseforge.com/wow/addons/grip-enhanced-macro-sequencer
:blue_circle: Wago: https://addons.wago.io/addons/qGZODqNd
:orange_circle: WoWInterface: https://www.wowinterface.com/downloads/info27081
:book: Interactive Guide: https://jesperlive.github.io/grip-ems-guide/

━━━━━━━━━━━━━

-# :green_circle: Part of the GRIP addon family by Sataana · Feedback and bug reports welcome · No paywalls, ever.

1 Like

Keep doing what your doing, thank you!

1 Like