Thomas Burke
Games Designer, Developer & Rapid Prototyping

Making a Racing Game Framework Part 7
Now to allow our server to manipulate the clients we'll need a reference to them stored on the actual server, we can do this through a Gamemode blueprint, the Gamemode blueprint can only be accessed on the server though.
First however we'll want to make our own custom Structure (Right click in the content browser then Blueprints > Structure) and in this structure we'll want to add variables associated with the players, including a reference to their player controller.

Now we'll actually want to set these variables up, we can do this in a menu or something similar but for this game (As we haven't set up a main menu yet) we'll want to do this in our custom player controller (The one you referenced in the struct), In our gamemode class we'll need an array of player controllers called "Connected / Current Players" or something similar, and an array of our Custom Struct (As we'll have a list of all connected players and a list of all players with appropiate statistics alongside them

We'll need to use a custom event, which will "Run on Server" and we'll want to tick the Reliable check box (This means it'll always run the event even if there is a lot of network traffic)

After we've done this custom event we just need to "Get Gamemode" and run a cast to the Custom Gamemode we've created, select the Current Players variable we've created and add ourselves to it.

Now we just need to call our event when our player controller spawns in (Which happens when clients will connect to the server), however I place a small delay in just to avoid any potential bugs