Please help, repnotify set material

Can you show how you are doing this?

This has been driving me insane for the last couple of days, because I have made dozens of different implementations to achieve the same thing, and it works perfectly for the server, but never for the clients.

I use Switch Has Authority to make sure only server does the checking, since only the server knows all the actors in the level, and then send the result to RepNotify that then does the actual changing of the material. Doesn’t work for clients, they get odd results!

I have 16 collision boxes in my level, and a static mesh map that represents that grid. I want it so that when anyone begins overlapping with one of these boxes, the server calculates for all boxes if someone is in one of them, and then light up that part of the map. The map also has 16 different material slots I access. How would you do this, while making sure the changes are replicated to all clients for that one map?

Level boxes, in BP_TrackingBox:


In MyMapBP:

Still doesn’t work. As soon as I actually check for a tag, clients start getting a different outcome.

I actually resolved this myself, and it deepened my understanding of repnotify quite a bit. I might create a blogpost with steps on how to create networked maps like this.

The way I resolved this was to create a macro where I add delay to a standard for each node (easily found online), because what I noticed in my troubleshooting was that repnotify doesn’t trigger on clients if it doesn’t get a little breathing space between each loop iteration. What happens is that it only executes the very last entry in the loop for both server and clients, but only the server processed everything before that.