Download

Dedicated Server - Player State values are empty in Game Mode

Hello, I’m trying to switch from the main menu to the game by connecting to a dedicated server session.
The problem I’m having is that I’m unable to read the player state from the server after the OnPostLogin event is executed, the default values are returned.

Below are the images of my blueprints:

Game Mode
GameMode.PNG
When the player first loads the game map, he is directly connected to the dedicated server. in the OnPostLogin event, the playerinfo saved in the game instance is sent to be saved in the player state. and the player is spawned using the Respawn Player event, where the selected class by the player in the main menu is spawned (here is the problem)

Game Mode Function
c6d608d9f0250b350d786c10d58b3e9b0747443a.png
This function retrieves the player info from player state and returns the selected class by the player in the main menu. In this function the retrieved values are correct if we are not connected to the dedicated server session, while if we are connected to the dedicated server they are the default values

Player Controller
2b426a2d877cc4970a7c14756f9b70c5c6362b03.png
This event is located in the custom player controller blueprint where it calls the set Player Info variable located in the in the custom player state blueprint

Player State
cbd0d6c375b6b9f80d5897fccc7d5d4301b3a1d5.png
This event is located in the custom player state blueprint where it saves the sent PlayerInfo

Please help me solve this issue, it’s been almost a week and I still haven’t solved it!

Thanks in advance :slight_smile:

I forgot to mention that I have added Delay functions just for testing, because I read that sometimes the player state takes time to be set on the server, so the function might be executed before the player state has been set

I found out that when I execute the “open” command, the player state’s data is cleared. So now I need to find a way to be able to transfer the data that is in the game instance to the player state when the OnPostLogin event is executed, and I can’t seem to find the proper way.

Can anyone please enlighten me with the best practice to do so in a way to make sure the player did not manipulate with the PlayerInfo?

Thanks!

Use a save game and load it on post login.

Hey there Inph1del, Thank you for your reply.

I just solved my problem by doing the following:
In the Player State blueprint, in the “Event BeginPlay”, if it is “Remote” then I get a reference to the game instance and I call a server event and pass it the “PlayerInfo” and assign it into the player state variable

Could you please explain this better, or show blueprints? I’m not understanding and I have the same problem.

Hey there JLBXB3

Here are the blueprints of my Game Mode and Player State

GameMode
2919589c45de52543a131c1bfaeb40b0e2b7fd27.png

Player State
PlayerState.PNG

Thank you, I appreciate it!

you’re welcome :slight_smile:

Thank you very much for your answer! This is what I need