GRIP - EMS (Enhanced Macro Sequencer)

This is sounding better and better all the time. Thank you for your work on this!

I haven’t tried it yet but if I have a fairly solid GSE macro that I use is it really just as simple as importing it to your EMS?

What benefits could I see aside from the brain telling me the optimal speed?

1 Like

Yeah it’s literally just paste the export string and hit import. Steps, variables, icons, all of it comes across.

The macro runs the same as before, same steps same logic. What changes is that EMS actually tells you stuff about it that you couldn’t see before.

Biggest thing is probably the speed. It reads your latency and GCD in real time and just tells you how fast to click. It also adjusts your SpellQueueWindow on the fly based on your actual connection instead of whatever static number you set once and forgot about.

The other thing you’ll notice pretty quick is after a patch. Blizz renames or shuffles spells around and your macro just silently stops working right. EMS scans every step and shows you which ones broke so you’re not sitting at a target dummy trying to figure out what happened. Most of it you can fix in one click.

And then there’s context versions, which let the same sequence play differently depending on what content you’re doing. Like a different priority for M+ than raid than open world. You set it up once and it just swaps.

Any new updates to this?

1 Like

It sounds good, and I’d like to use it. However, after installation, the text displays incorrectly. My game is the Chinese version.

1 Like

Could you elaborate as to what you mean with incorrectly?
Im on an English client, and I have done my best to support all language clients, but for obvious reasons I cant really test it properly.

After installation, it looks like this: some messy codes, some English, and some Korean. I don’t know what the reason is

1 Like

Gotcha! should be fixed in the update I just released.

The new version has fixed the text issues and does not edit macros. Where can I obtain existing macros for use? Alternatively, is there a method to convert GSE macros? I hope to see a tutorial on how to use them

1 Like

There is a short youtube video with the basics, you can also use GSE strings in the ““Import”” Menu.
Our Discord is one of the ways to find EMS strings.

How do the if statements work? I thought we could not use if statements in macros.

2 Likes

Is it possible to somehow track the number of casts of something? Like, could we know when 5 Thrash’s have been cast, to then cast Sundering Roar?

1 Like

I think it would be better to build a separate website for communication. I have trouble accessing Discord. It often gets stuck on email verification. Alternatively, could we move the EMS strings to GitHub

1 Like

Not within macro’s in the /macro menu, you are correct.

Since you asked this question, I am building out the IF action node system a bit more to make it more obvious, but in its core it is basically a conditional builder.

Hello,

Thank you for your work and for sharing this. I dont know why but sometimes it deletes my sequence and my details addon resets to default. Is there some kind of incompatibility between these two addons?

will try to deactivate details and will let you know.

EDIT: tried disabling details meter addon. problem still occurs. not sure what is causing this.

The problem happens when i move to a new instance although not always it happens from time to time. I have to disable the addon and enable it again for the sequence to return.

1 Like

Im on it! Do you happen to get any BugSack errors? Or any other information?
If you could file a Bug Report on Discord, that would be awesome!

Hello,

Sorry i did not check the BugSack Error. I will post a report on discord when i encounter it again with more information including BugSack error.

Thank you!

1 Like

Upgrade to 2.1.1 and let me know if its fixed pls <3

Thank you for the quick fix. havent encountered the error since. Great job!

I hope you continue updating and improving this.

1 Like

v2.1.5 just shipped. Six fixes, all driven by real-world telemetry.

Hero-talent override spells
Soul Immolation, Eradicate, and other talented override variants no longer trigger the orange “needs attention” warning when used in sequences. The spell cache now registers each active override variant under its own name, and the validator stops counting known-but-not-in-spellbook spells as stale. Override re-translation also runs on every spell cache refresh now, not only on locale change – sequences that imported under one talent loadout and got reloaded under another kept stale names baked in until a locale flip or talent swap kicked things over. That gap is closed.

Mythic Plus /reload no longer breaks keybinds
A /reload mid-key used to leave sequences unbound for the rest of the run. The bootstrap keybind load got silently skipped under the addon-restriction lockdown that M+ keeps active for the whole key, and there was no retry path. Bootstrap now queues that load through the out-of-combat queue so it fires automatically when the lockdown lifts.

Smaller fixes
Opening EMS during combat or inside an M+ no longer throws ADDON_ACTION_BLOCKED. Garbage spell IDs (like {spell:3238019941}) typed into the macrotext editor or imported from corrupt payloads are rejected at the tagging step instead of crashing downstream.

Hi Sataana,

I’ve been trying to understand GRIP-EMS in more detail and I’m a bit confused about how some of the timing features work internally.

The tooltip for “Auto-adjust click rate per sequence” says:

“Click rate adjusts for each sequence when you activate it.”

I’m not fully sure how to interpret that and I’d like to understand what actually happens behind the scenes.

My current understanding (which could be completely wrong) is:

  • OOC Queue Delay may be related to queued actions/updates outside combat.

  • The automatic value (for example “Auto: 16 ms”) might be a learned or calculated timing value for a specific sequence.

  • Per-Character Click Rate might be a character-specific override.

  • Auto-adjust click rate per sequence might automatically apply sequence-specific timing values.

Could you explain how this actually works internally?

Some specific questions:

  1. When “Auto-adjust click rate per sequence” is enabled, what exactly changes when a sequence becomes active?

  2. Does GRIP-EMS actively apply those timing values itself, or only calculate/store/recommend them?

  3. If a sequence already has an automatically learned value (for example 16 ms), how does that interact with Per-Character Click Rate?

  4. Which setting has priority if multiple values exist (global, automatic, character-specific, etc.)?

  5. I saw information mentioning that learning happens after around 30 samples/uses. Is that learning process:

    • separate for each sequence?

    • per character?

    • or shared globally?

  6. Are learned values stored permanently between sessions or rebuilt over time?

  7. Is the learning based on recent usage only, or does it continuously adapt over time?

I’m mostly interested in understanding the logic and architecture behind it.

Thanks :slightly_smiling_face:

1 Like