Settings
A quick note on terminology before anything else. ms means milliseconds. 1000ms is one second. Your latency is your ping, the world-ms number WoW shows you in the network display. It comes up a lot below.
Installing GRIP-EMS is the easy part. The settings that determine whether your sequences feel smooth or stuttery are spread across three different WoW menus; none of them are set correctly by default, and most guides either skip them entirely or mention them once without explaining what they do. This page covers all of them and explains the why behind each one, because knowing why lets you tune them for your setup instead of just copying someone else's numbers.
Key Down Casting
Settings > CVar Health > Macro Sequencing
This is the WoW setting ActionButtonUseKeyDown. It controls whether your abilities fire when you press a key or when you release it. GRIP-EMS fires on the press, and it needs this set to on to work correctly. Leave it off, and your sequence either does not advance at all or advances on the wrong event, with an extra 50 to 100ms of dead time on every single press, eating into your rotation.
This is the one setting on this entire page that is not a preference. Everything else is tuning. This one is mandatory.
The Installation page covers how to fix it through the CVar Health tab. If you have not done that yet, start there.
Spell Queue Window
Settings > CVar Health > Macro Sequencing
The WoW setting SpellQueueWindow. This controls how many milliseconds before a GCD ends WoW will accept your next cast input. Blizzard's default is 400ms, which is also the ceiling. WoW calls this Custom Lag Tolerance under Options > Network. GRIP-EMS surfaces it in CVar Health so you do not have to go hunting for it.
The way it works: say your GCD is 1.5 seconds. With SQW at 400ms, the queue window opens at 1100ms into that GCD. Any press inside that window gets queued. The last press before the GCD ends is the one that fires, replacing anything queued before it.
Dynamic SQW Optimiser
Settings > CVar Health
This is the setting that does the SQW math for you and keeps it updated as your connection moves around during a session. It continuously monitors your world latency, using a smoothed average sampled every 10 seconds, ignoring one-off spikes that would otherwise throw your numbers off. From that, it sets SQW to your current latency plus a configurable Safety Buffer, kept inside the 50 to 400ms ceiling.
So if your latency is 120ms and your Safety Buffer is 50ms, SQW lands at around 170ms. Your latency jumps to 160ms mid-key, SQW adjusts.
While the Optimiser is running, it has exclusive control over the SQW value. You will see "Managed by SQW Optimiser" in the manual control and the slider locks. If you want to set SQW by hand, turn the Optimiser off first.
Click Rate
Settings > General
How fast you are pressing your sequence key, in milliseconds. GRIP-EMS advances one step per keypress and does not cap how fast you press, so this number is really a reference: it feeds the Faster/Slower recommendation in the Tempo Advisor and controls the timing of any imported pauses in a sequence. The default is 250ms, and the slider will not go below 100ms.
The reason it floors at 100ms is that nobody is realistically pressing a key faster than ten times a second, and at that speed, you would be running past steps before the spells they contain can land. GRIP-EMS calls 100ms the human and hardware floor.
Per-Character Click Rate, under the same menu, is a setting scoped to your current character only and overrides the global value while that character is active. Range is 0 to 1000ms in steps of 10. Set it to 0 to fall back to the shared global value. This is also the only way to go below the 100ms floor if you have an edge case that needs it, down to 10ms. GRIP-EMS will pop a warning on screen when you drop under 100.
Note on the Tempo Advisor: prior to v2.1.21 it was skewing its click rate recommendation due to idle time and login data creeping into the calculation. It is accurate as of v2.1.21 and applies a one-time repair to clean up the bad data on your next login. If your Faster/Slower numbers felt off before, update and let it recalibrate.
Outside programs: AHK, iCue, Synapse, and others
External programs that send repeated keypresses work fine with GRIP-EMS. A full keypress is a down event followed by an up event. Your program needs to send both. GRIP-EMS fires on the key-down signal specifically, so a program that sends only an up event or a custom hold signal will not trigger the sequence correctly.
For interval settings: one full keypress every 50ms or slower is a sensible floor. Randomizing slightly, say between 50 and 75ms rather than a fixed number, produces cleaner behavior than a perfectly robotic fixed interval. The click rate guidance above applies here, too. Faster is not better past the point where your spells can actually land.
The key-down requirement is the only thing that is not optional. Everything else is tuning.
How these settings connect
The outside program sends keypresses at the rate you set. GRIP-EMS turns each keypress into one sequence step. The GCD is the actual ceiling on how fast spells can land, regardless of how fast you press. SQW controls the window in which your next press is queued into that GCD. And the Dynamic SQW Optimiser ties SQW to your real latency, so the queue window is always sized correctly for your connection.
Get Key Down Casting right, let the Optimiser handle SQW, and set your click rate somewhere near your actual cast pace. Everything else on this page is fine-tuning from there.