Network game and replication

There is a tutorial Epic put out which shows you how to create a skin select.
It is a very long tutorial but I think #16-20 in the series shows you how to build a character select where you can change skins. I’m not sure if they did it the same way I did - probably not, because I did a weird setup where there is no lobby, and the players choose skins before they even join a session.

Calling multicast from a playercontroller will fail to reach other clients in every case (they only exist on the server and owning client), have you tried running this in your player state class?

Sorry, also for players joining after the fact you’ll likely need a repnotify (set on server) as well so they will also get the change.
There’s a really good series on this stuff here 1 Networking Basics RUS Subs - YouTube

Oh you’re right GrumpyNZ! I remember now - I could use the PlayerController to send the Server RPC, but from there I would trigger my custom GameState to send the Multicast.

Ok, you totally lost me.
I watch the tutorials you gave me (they were really good and help me to learn a lot !)
But I still don’t understand anything of how I have to do it.
What I have tested this time :
-I used the player state, as you said, and in it i create an event “setting skin” that is called when the map is loaded. This event take the variable “skin” that I put in the game instance before (when the player is in the main menu and choose is skin) and it set the variable “current skin that is a rep notify variable.” After setting the current skin, it calls an event “update skin for all”. In this event, I do a multicast that set the skin for everybody.
-in the “current_skin” rep notify function I call the event “notify update skin” that is exactly the same as “update skin for all” (the only reason why I create 2 different event was for my test, so i know it is quite stupid to do 2 different event that are the same).

So, I give you a screen of what I explain :

So, know let’s talk about the result I have for the moment :
My player 1 choose skin 1. He creates a party and then appear in a map with the skin 1 he just choose. So all is good for the moment.
My player 2 decide to choose skin 2. He joins the game and then appear with skin 1…
So the most strange thing is that player 1 sees himself with skin 1 and sees player 2 with default skin (skin 0 that nobody should have).
And player 2 sees himself with skin 1 and sees player 1 with default skin (skin0)…

A test that I made was to delete the multicast event. Then, the rep Notify do the job and it changed nothing.
Another test I made was to delete the repNotify event. Then nothing change for player 1 and player 2 sees himself and player 1 with default skin. (And that seems to be normal in fact, since he never update the skin.)

I have some idea of what the problem can be :
-The player 2 is never updating player 1 skin (and same thing for player1). So the question is how to make them update the skin of the other players ?
-I think that the reason why player 2 is seeing skin 1 is due to the fact that he is looking for is skin in player 1 game instance instead of his game instance. It could be the reason why there is a problem. But I still don’t know how to fix it.

I do another test :
I added in each events (update_skin_for_all) and (notify_update skin) the node where I take the variable in game instance.

And know, player 2 sees himself correctly too !
At this moment there is :
player 1 sees himself with skin 1 (correct)
player 1 sees player 2 with default skin (not correct)
player 2 sees himself with skin 2 (correct)
player 2 sees player 1 with default skin (not correct)

But the way I solve it is quite… stupid ? Because i have to cast to game instance 3 times (in the setting_skin event, in the update_skin_for_all event, in the notify_update_skin event. When it will be working correctly I will be able to do one event of the two event “update_skin_for_all” and “notify update skin” but it still quite strange what I have did…

I really need your help to solve this problem guys… because I haven’t any idea of how to solve this…

Make sure: both the repnotify and the multicast need to be called from the server to do anything over the network and not just on their own machine.

Make sure you are not trying to do any RPCs or repnotifies from GameInstance. If you are, do them from GameState instead. gameInstance doednt do networking

I do nothing from game instance, but i use a variable stored in the game instance

If i change the event “setting skin” into a run on server event, then player 2 sees him again with the skin of player 1. I am quite sure that it came from the game instance that is not the good : the server is setting skin of player 2 by using the player 1 game instance and i have no idea how to say him that it is not the correct skin

Hmm this is hard to figure out what is wrong without seeing how all the blueprints fit together. Do you trust me to download your project and try to figure it out on my computer?if So, my email address is mightyenigma@gmail.com

Ok, I have sent you an email, I hope I can trust you.
Thank you !