How to sync server and client for combat / abilities

stuff like combat & abilities in battlegrounds games are always so smooth
in how everyone can see the same thing no matter your ping and its just flows really well

im looking to replicate that somehow but all the ideas i tought about wouldnt work well.
one of the ideas were using fireallclients() but that has its issues too

im fine with having a little delay at the start, thats inevitable because of ping but the rest needs to be smooth

Use a client-authoritative model with server-side validation. Allow clients to predict actions locally for immediate responsiveness, while the server validates and reconciles these actions to ensure consistency across all players. Use RemoteEvents to communicate actions between clients and the server, with the server broadcasting the final, validated state to all players to correct any discrepancies.

whatever you said there sounds like what i did which didnt work
plus, i can think of what to do too. the real problem is how to do it