Trying to understand CoC and server ticks, help is welcome

I did some reasearch and thoughs on CoC. While googling "Poe Cast on Crit" you can find various information.

1) Attack speed and wasted hits

There is 150ms cooldown on CoC (from 3.5.0 patch notes). There for it says if your attack trigger CoC you wont be albe to do it again for 150ms. We can transfer 150ms in actions per second by dividing. 150 ms = 0,15 s.
"
1 / 0,15 = 6,6(6)
2 * 6,6(6) = 13,3(3)


From my understanding it means that:

Between 6,66 and 13,33 aps, every second hit is wasted for CoC trigger.

2) Cooldown recovery rate (CRR)

There is in game modifier for items "Cooldown recovery rate". Lets say we have 20% CRR.

On wiki you can find:
"
Cooldown time can be changed with different sources of Cooldown Recovery Speed. Cooldown Recovery Speed changes the rate of cooldowns recovering, not the cooldown timer. For example, a 50% increased Cooldown Recovery Speed on a skill on a 6 second cooldown will change the cooldown period to 4 seconds (6 / (1 + 0.5)), not 3 seconds (6 * (1 - 0.5)).


What wiki says is CRR is not making 150ms lower by 20%. Next formula is wrong
"
150ms * (100%-20%), so 0,15 * 0,8 = 0,12


They say you should other formula
"
150ms / (100%+20%), so 0,15 / 1,2 = 0,125


So after CRR new cooldown is 0,125. There will be new attack speed limits. 1 / 0,125 = 8.

Between 8 and 16 aps, every second hit is wasted for CoC trigger.

3) Server ticks

Here are a lot of stuff I don't understand, because I'm nor IT nor Gaming Industry but I have done some low level programming in my life.

Googling will show results with community made tests (post on reddit). They say that game tick for 33 ms. In my understanding it means game can measure time in multiples of 33ms. Also multiples of 33 ms are:
"
33, 66, 99, 132, 165, 198, 231


So here we assume we use round up always so:
- default 150 ms is not 150 ms but 165 ms (cant measure sth that is not x * 33ms)
- the 125ms get rounded up to 132 ms.

So new values are:

For <0-13>% CRR. Between 6,06 and 12,12 aps, every second hit is wasted for CoC trigger.

For <14-51>% CRR. Between 7,57 and 15,14 aps, every second hit is wasted for CoC trigger.

4) Some final thoughts and questions

Depending on how is event handling solved there might be different outcomes. I believe GGG are smart and they were very aware of this when making the game.

Here is the link from reddit I was reading.
https://www.reddit.com/r/pathofexile/comments/e5pyr8/the_cyclone_cast_on_critical_strike_cooldown/

You can read there they probably use another timer for calculating in which tick should attack happen.
"
But since the cooldown checks are constrained to whole server ticks, how can it sometimes skip procs and sometimes not skip?

The answer, as far as I can tell, is that your attacks are actually timed to a background timer instead of tied to whole numbers of server ticks. This means that having an attack time of 4.5 server ticks per attack does not round up to 5 ticks, but instead alternates between 4 and 5 ticks, to accurately represent that non-integer number of ticks over a long sample.


What it means then, in my understanding, we shouldn't care about server ticks if we have background timer (depending on how its implemented) but rather event handling? Depending on how many background timers are there and how event handling is implemented there might be different outcomes.

For example there might be attack timer, CoC timer. Ticks could probably check only if timer stopped counting and reset them. If this would be implemented this way there are few new questions. Is the reset immediate? Probably it is. It would mean depending on when event happened there might be 1 to 33 ms delay.

Well tbh I have pretty head ache from thinking about all CoC stuff I wish some one could explain this in pretty simple way. I assume in my every though that during tick game ignores anything that happens in background timers because thats how PLC does and they are pretty fast. Maybe I'm wrong. So if event happens during tick, the next tick will take new states. Or maybe if event happens during tick there is no delay of tick's fraction. Or maybe there are no background events.

Tick delay could explain why some one on reddit said that 4.5 tick attack speed might give you 4 or 5 ticks for attacks but also I dont understand why you think about ticks when you have background events. Other thing I dont know how did they measure that skill can hit in different frames.

Any one smarter could suggest how to test this in game or could help me understand how it works? Links are welcome also.
Last edited by Abrakadabra#3898 on Feb 25, 2021, 12:16:51 PM
Last bumped on Feb 25, 2021, 2:21:25 PM
I'm going to be honest. As someone who's had many CoC questions over the years, the intricate ones were always left unanswered. I don't think anyone actually knows.

Good luck getting an answer, but be prepared not to.

P.S.
You'll also get a lot of responses that just copypasta stuff you've already read and that don't actually answer anything you asked :( (Which further emphasizes that nobody actually knows.)
Last edited by ShadyC#1006 on Feb 25, 2021, 12:56:40 PM
"
Abrakadabra wrote:

So here we assume we use round up always so:


FWIW, I believe that GGG's data always rounds down.Whether or not this also pertains to server ticks is beyond me.

Report Forum Post

Report Account:

Report Type

Additional Info