There used to be leeway on the GCD because of latency between the client and server.
The effective GCD before could be anywhere between 1.1s and 1.5s, and sometimes the player would hit any amount inbetween the 1.15s and 1.5s. The client attempts to fire off abilities on cooldown about 70% (75%?) way through the cast if activated.
I'm linking a very old leaked copy of the codebase that WAR Apoc stole from us that proves this fact: https://github.com/cooler-SAI/ProjectWA ... ace.cs#L27
There's a few issues with this 400ms batch window. Mainly the fact that it no longer exists. The server now strictly enforces the 1.5s GCD, and unfortunately a lot of the balance / 'feeling' is due to this 1.5s GCD.
On top of this issue, an AP regeneration change on top of the patch further added complexity to an already lower GCD.
https://github.com/cooler-SAI/ProjectWA ... r.cs#L4561
Under the old code, you could potentially get a 'free' AP tick at 1.5ms, if your client was outside of the 400ms batch window and sent the response too late, or the server was delayed processing the next frame.
At some high stress situations, the server can be overloaded and those AP batch windows can be delayed by anywhere from 50 to 100 ms. This means that you would potentially have a server frame that updates on the same time as the AP tick, but the AP tick is processed before the abilities fire. That means that you would sometimes get a free tick of AP that was inconsistent due to GCD usage.
In my opinion, there's only one great way to fix this:
1) Implement the GCD at 1.1s on the clientside, and enforce a GCD anywhere from 1.1s to 1.5s where the server checks abilities. This means the client will queue its abilities 70% into the frame of 1.1s, as opposed to the 1.5s that is normally longer than what players are used to. The current metagame is designed around the fact that the game had a GCD between 1.1s and 1.5s.
1.1s also allows addons like Sequencer to still have an additional amount of time to actually send data after an ability activation. There's still a significant round trip if you use Sequencer, but this will at least give players with Australian ping (~250ms) a ~550ms window to actually have their addon updated and their next ability sent and queued, accounting for the 500ms round trip + 50ms leeway for latency spikes.
NOTE: This is a hack to work around functionality in the client. Though, as I mentioned to Max before, we've done far worse. (Remember when we hardcoded the entire Apothecary / Talisman Making packets?

2) Allow a free AP regen tick when an ability fires anywhere in the 1.1s to 1.5s window, but do not allow that tick to happen when an ability is queued. This allows consistency with the previous mechanics where if you are spamming abilities, you simply let up on attacking and your AP will regenerate more consistently. This also makes the previous bug more consistent. Generally, it's not fun to run out of AP for any reason, and this is why players feel inconsistent gameplay as compared to before the patch.
3) Anything that doesn't use action points (ie; Soul Essence / RF spenders) should not stop AP regeneration. It should consume the GCD, of course, but not stop AP regeneration. This is likely a bug or oversight, but it should allow for supplication / ritual to be more consistent in its regeneration of SE/RF from your existing AP while spamming fast casts such as group heals.
4) Set up a system with the Community Management team to propose any future updates like this before they happen. Players were absolutely blindsided by this update, and they felt like they had no input before it was integrated. This is a massive change with a lot of moving components. I'd recommend opening up a public test server in the future that isn't the main live server, or scheduling out a time of the week where you can push this build, test for a few hours, then revert after watching people provide feedback.
Every change in RoR has some sense of permanence because of the lack of communication; players just assume they have no input when major changes that are untested by the general public get implemented without warning. This should have been previewed 2 weeks to a month before, feedback should've been gathered and adjusted from actual play sessions, not focus groups, and the final implementation would have either been what I am proposing above, or at least the will of the community who actually plays this game, not the opinions of one or two developers and the people they speak to.
This is also why, imo, the NerfedButtons change hit too hard. People were used to playing this game one way, and the next day, they had to quit as they couldn't play that way anymore and there was no alternatives for practically a month until sequencer was integrated. Even then, Sequencer isn't perfect and still is lacking the 'greyed out' skip feature that would make it usable.
Hopefully this new ability system allows Sequencer to be updated with that functionality. With proper feedback and communication with the rest of the team and the community, you could even determine (without my help) that you would need to integrate those changes before they were even a problem.
(in closing)
Please consider all 4 bullet points. I've provided a reasonable explanation, factual information through code examples, examples of extreme scenarios / usage, and my unbiased opinion as to how the new abilities code could be hacked on the client to suit the new abilities code paths. I'm for keeping the code in its current form, but those adjustments I feel are reasonable, and would return the game to its previous state before the patch. And please, do patch previews. People aren't going to die of boredom if they have to wait a week for something they know they will enjoy. If you have a proposal, get the community team to listen to it first, and have feedback gathered. Don't be afraid to scrap entire core systems or ideas in code you've written because they're deemed terrible by a community you are performing a free service for. I don't know what kind of satisfaction one could get from making 1,000+ players miserable with one update, but know that it has, and will happen again if that part of the team is not adjusted accordingly.
Listen to your community and your community team; they aren't there to fight you, they're there to support you.
Remember - you're doing it for them. They're not obligated to play here. Give them a game they'll remember.