How would you go about making a multiplayer boss with client sided hitboxes?

This is a pretty broad question so obviously i dont expect a code example, just a blueprint

Should all the code be handled on the client? And if yes, wouldnt that cause the npc boss to eventually have desynced attacks? (Aka on one player’s client the boss may attack and therefore try to dodge it way earlier/later than the other players)
Should most of the code be handled on the server with only the hitboxes being client? Should most of the code be client with the server script being there just to sync attacks?

(Ex: fireallclients(“attack1”), task.wait(3), fireallclients(“attack2”), etc.))

Basically im asking what would be the easiest and bugfree way to code something like this
There isnt much need for serverside checking or stuff like that since the game is mostly client based and the boss isnt a player but an npc

That’s up to you, but I would recommend letting the server keep track as to when a player enters/leaves a boss fight so the server can detect “suspiciously fast victory” and punish exploiters if you want to keep it a full client implementation.

After all, a server has to grant an award for completing it, etc.