Also, because our spell casting is never instant, there’s always some wind-up, I can make it feel better on the client by move the “fire” event slightly earlier in the animation, and send the server request then, and delay the client spawn by a predicted lag amount. The server fast-forwards less. That makes it far more likely that they mostly sync up and neither end has to adjust very much.