Networking is a highly difficult concept to grasp, with that being said you should feel pretty proud that it only took you 4 videos to understand most of what you need. I feel kinda ashamed because everytime I learn the concepts I forget and even now I don’t even know if I know what I’m talking about.
So I created this little video of kinda what I understand to be happening, and hope everyone feels free to correct me on this.
The server is like the big boss, in this particular model of client/server connection the server is responsible for keeping the game alive. The server is also the link from one player to the other. When sending stuff over from player 5 to player 30 for example you ask the server to do it and then he sends something over to player 30. When you want to do something that occurs on everybody’s computer like spawn a weapon, you ask the server to do it and then he’ll decide if that’s ok and tell the rest of the players (himself included) to spawn the weapon.
So to answer your question about whether you should spawn the actor on the client, my guess is no unless you want the object to be hidden from everyone else. Instead have all clients ask the server to spawn things anyone else will see then pass it down the the rest of the players.
One simple way to solve all networking issues that don’t make sense is to switch things around back and forth like a mad man. I mean you only have 3 options really, to run on the current machine, the server and multicast. It only takes a few runs in order to check if something is working on all machines. Another tip is to create a function that handles all spawning of object types on all machines. Then when you forget the networking concepts you can just call that function and expect everything is going to run smoothly.