I want to make a scoreboard and think the best way for my project is to use a map in which the key is an actor reference for the associated player and the value is the associated data struct (kills, points, etc). Is using the “set members in struct” node an efficient way to update these values (i.e. is this really just changing the singular variable of the larger struct or am I re-adding all of that map values data every time I update that single variable)? Would something else be better?
On first replication of the Struct the server sends everything. Each future update only includes the changes.
First send: Kills, Points etc.
Second/Third etc: Only what has changed (dirty).
I’d recommend storing the data in the PlayerState as a Repnotify. The GameState stores a copy of every players PlayerState in Player Array.
GameState → PlayerArray → PlayerState
Maps don’t replicate so i might be misunderstanding, you could send the delta and update locally but then you have multiple sources of truth.
GameState (or its components) are designed for this, just keep it there as a single source of truth, have an event dispatcher and poll it from where ever needed.
Arrays in blueprint replicate the entire array though but for the data your showing its not an issue.

