A server (whether it be a Dedicated or a Listen server) is automatically there by default when you start the game, it is not an object or an actor, it is your computer or the computer-server hosting a multiplayer game.
When you say than an event is run on server, it means that whoever calls the event will try to reach the server and tell him to trigger the event in his realm.
SwitchHasAuthority returns “Authority” on the realm owning the actor you’re calling it on and “Remote” on all other realms.
No, SwitchHasAuthority has to be called when you want to make sure only certain realms execute certain chunks of code.
Imagine the node you’re building are executed on every computer running your game (every realm). Each Realm has a different name: Server, Client1, Client2 etc.
Each Realm can “own” an actor, which means this realm will be the Authority on this actor if you call “SwitchHasAuthority”.
Only the server can tell other Realms what’s going on in the game (Multicast Event).
The clients can call the server to communicate information with him (and only him) using “RunOnServer” events called from Actors that are owned by the Clients (PlayerCharacter and PlayerController by default).
If you want more details, quote me with my name (it will generate a notification for me).