All of the advice here, including the “GameMode only exists on the server” and “PlayerController is owned by a client but is also instantiated on the server” and such, ought to be distilled down to a “cheat sheet” for replication and RPC.
It’s super helpful to have tutorials for how to get started with the concepts, but having a single place where the rules for each “special” class, and the general-purpose rules for normal classes, are clearly and briefly collected, would be super helpful.
If I need more details, I’ll go look at the documentation for each particular class, but doing that for all the classes involved is way more work than needed, and the documentation for each individual class does not focus on making its network requirements a prime goal.