Parry-based combat that survives ping
A full melee kit (parry, block, posture, perfect dodge, hotbar abilities, aerials) built around parry timing, the one mechanic that breaks hardest when players aren't on fibre.
THE PROBLEM
In most Roblox games, parrying above 100 ping is effectively impossible. The input has to travel to the server and back before anything resolves, so a correct read still registers as a miss. Studios usually "fix" this by letting the client decide, which hands exploiters the whole combat system.
THE APPROACH
The client plays the parry instantly, but only as a prediction; it never decides the outcome. The server stores a short history of both players' states, then rewinds them to the exact tick each input was made and judges the exchange there. Mispredictions reconcile back silently.
THE RESULT
A parry at 150 ping is judged identically to one at 0, with no round-trip delay for the player. The server stays fully authoritative, so nothing on the client is worth exploiting.
WHAT SHIPPED WITH IT
Set a ping, then hit parry as the attack crosses the window. The naive lane sends your input to the server and judges it on arrival. The rewind lane judges it at the tick you actually pressed. Both are server-authoritative in the second case; the difference is when the server thinks you pressed.
Your press is judged half a round trip late, so the attack has already moved past the window.
The server keeps a short state history, rewinds to the tick you pressed, and judges the exchange there.
Run it and the player reads the attack perfectly: the input lands dead centre. Everything after that is ping. Against a 120 ms window, the naive lane stops being able to parry above about 120 ping; the rewind lane never does. Drag the slider down to 40 and watch the difference disappear. That's the honest version of this claim.
WHAT THIS DEMO DOES AND DOESN'T SHOW
The parry window here is 120 ms wide, which is roughly a tight-but-fair window in a melee game. Ping is treated as symmetric, so the client-to-server trip is half the number on the slider. Nothing else is simulated: no jitter, no packet loss, no tick quantisation. All three make the naive lane worse, not better.
What it demonstrates is one thing only: with a fixed window, the naive lane's judgement point drifts by ping / 2 while the rewind lane's does not. That is the whole argument, and it is the same argument the shipped system makes.