Projectile movement laggy on clients solution

Hey everyone,

I’m trying to understand online multiplayer and the problem i have is with projectile blueprints that have a projectile movement component moving not very smoothly on the clients.
I read up on this and this is the solution i ended up with:

  1. When the button is pressed, server spawns the projectile and attaches it to the player character(Run on server, reliable)
  2. When the button is released, server tells everyone to release the projectile and activate the projectile movement component(Run on server event that calls a Multicast event)

This seems to work correctly as the movement is smooth for all players, but i’m not sure i understand why :s

My thinking is that only one projectile is spawned, on the server, and then everyone is told to simulate it’s movement separately (replicate movement is unchecked in the projectile blueprint). This would also explain why the On Hit event of the projectile is called on every client even though it’s nothing in it is replicated. Am i understanding this correctly and is this the best approach to handling projectiles with minimum net load impact?