General Advice on where functionality belongs in MP

Hi guys, I’m working my way through multiplayer tutorials and documentation and I wanted to get other takes on what belongs where in a perfect world in terms of owning client, server and multi-casted to other clients. Any feedback would be appreciated!

Own Client

  • UI Interface / Interface Variables / Reticles
  • Camera Movements / Shake / FOV Changes

Run on Server

  • Skill based variables (fire rate, spread, Is Firing or not)
  • Line Traces and Hit Detection
  • Hit Interfaces

Multicasts

  • Any Visible Animations
  • Sound Effects
  • Particle / Hit Effects

Thoughts?

Where do you typically cut corners for optimization?
Where do you typically handle line tracing and the variables needed going into and coming out of line traces?

My Primary Weapon handling for Context (which isn’t working right):

Initiating Client

Run on Server

Multicasted to other Clients