Having problem with game structure

Currently making class based game, and for now im struggling with hitboxes.
For now they works like this.

  1. Client: Pressing whitelisted key and firing the KeyEvent remote
  2. Server: Checks the key on server and fires :ClientCast() method of hitbox
  3. Server: Connecting Hitbox.OnHit event.
  4. Server: Firing the client with _settings argument to cast the hitbox
  5. Client: Casting hitbox and if it hits, fires back to server that .OnHit event with all required arguments.
  6. Server: Checks the validity of hitbox and then performing some actions.

Any tips on how i can optimise it?

p.s My game is supposed to handle around 10 players per server.