In the main menu of my game, you can buy different armor sets, helmets and weapons. You can also select a character race and skin color. Your selections then get saved to a player save slot. This all works fine when playing single player (even if you create a session). But doesn’t work when a client joins the session. My sessions are all advanced sessions plugin, and all Listen Server. The server always sees the clients having the exact same characteristics as the server. The clients always see everyone else having their own same characteristics. Example; Server has a dark skin tone, Client has a light skin tone. Server sees everyone with dark skin tone. Client sees everyone with light skin tone. I’m thinking the issue is maybe with my save game… it’s like the each machine can only see data that is from their save game.
Here is how the blueprints work. Starting in the Player Character Blueprint
The BP checks for a save game
Save game is created when you start the game (in main menu), so this is always true in a lobby/session.
This is how load game works. It’s way bigger than this, but I’ll just use the Race as an example. So load game, get your saved race from the save slot and set the skin material and the race class in the BP w/ notify.
Here is the race set notify
The actor class holds the mesh of the race (it’s a fantasy game, so think dwarves, elfs, etc.). It also holds the data to adjust height. The “Skin” material variable was set from the load game, and used to set the base material for the race actor mesh. The race actor, is set to component replicates. The Mesh of the character blueprint is also set to component replicates. My Armor, Helmet and Weapon all follow the same type of logic.
I tried to get around this my forcing ever player to update when a new player login into the session. From the Game Mode. This runs an event back to the character that just spawned. To check the Load Game - which takes us back to the top of the post. Load game will grab the saved classes, and then set it in the character blueprint on Set W/Notify.
It’s so strange… what is really stumping me is how all of the characters in the session all share the same thing from the machine. The local machines, “race”, “skin”, “armor”, “helmet”, “weapon” are all the same for everyone in their instance… but on another machine,everyone matches the local machine clients character. Even the server’s visibility is wrong.
Thank you for any help.