Can anyone point me to proper ways to work with game mode and game state?

Ah thanks for the info guys that makes a lot of sense to do it that way. Heck it might be better to have listeners like this for all of my cross blueprint communication actually. I have been doing a dance of casting, dispatchers functions and its been fairly complicated and messy. But telling each of my blueprints to just listen for certain things. Now that sounds way easier to deal with but I am not sure how it will be in practice.

Hmm last night I was trying to make a list of all players on the server through game state. I have an array in game state and every time a button is clicked on each client it runs a function on gamestate to add that player controller to an array. Well, the array would only count that individual client and non of the others. Every client seems to have its own array? I was scratching my head about that. I guess stuff like this needs to go into game mode?