ive just started to learn how to make games on roblox, and ive realized some fundamental things on why theres desync on effects in wom and ao.
generally, there are two ways to render effects: serverside and clientside.
rendering things on the server makes so everyone can see it, and there are no desync issues because the server handles all the visual movement, and connects to the client in exact times (not counting ping)
the problem with full serverside effects is that it would easily overload the roblox server, as they are preeeetty weak.
fully clientside effects would look good, but it would cause near complete desync without complicated methods to prevent that, and also you could hit players but the server doesnt register that they got hit (if your ping is high so other players on your screen are behind where they actually are serverside)
so developers use a hybrid server-clientside system where the client handles the effects, so the server doesn’t overload, and the server handles the hitboxes, so people actually get hit, but this, depending on your ping, would desync the effects when firing remotes and such. it can be prevented, but due to ao being such a large game, would be hard to manage without either the player or server lagging a lot more.
hope that clears things up
tldr: serverside pvp causes huge lag, clientside pvp causes worse desync, and ao is too large of a game for easy fixes to desync.
thanks to vetex for trying his best to fix something everyone hates, while also somehow managing to keep ao extremely optimized.