Is Player State necessary to bridge information between Player Character and Game Instance?

If I have a costume stored in the game instance (I need it saved even when game is turned off), can I just call that costume from the player character on event begin play directly from the game instance? Or do I need Playerstate acting as a bridge between the two to ensure it is replicated or something? I am trying to wrap my head around the importance of Player State, naively it seems kind of redundant.

Note I am referring to an online multiplayer setting.

To answer your title question, yes, if you want it replicated to server,verified/authorized and replicated to other clients.

For data retention after closing games 3 options: use “save game” and “load game” nodes, or read write to data-tables, or the not so easy save/load data as binary files option.

Basic difference between game instance and player state:

Game Instance: private data, persistent between levels during game play, nice as a personal container of data/variables etc. Can feed these back into player controller or pawn on new levels etc. Use “save game” for exiting game , and “load game” for initiating data, This can also be used during levels depending on your requirements, and to avoid lost data on crashes. Play save waypoints type things.

Player state: data which you want to replicate. Use “copy properties” to bring data across into new levels.

check out this for in depth details: http://cedric-neukirchen.net/2017/02…rk-compendium/ essential reading for all.

So you could store costume type as a variable in “player state” and not in game instance at all, and use “copy properties” node for level changes to bring variable into new levels, and disseminate it from player state instead of game instance. Then periodically and at save game screen save this variable, all sorts of options.

Here’s what the docs have to say:
[TABLE]

		A **PlayerState** is the state of a participant in the game, such as a human player or a bot that is simulating a player. Non-player AI that exists as part of the game would not have a PlayerState. Example data that would be appropriate in a PlayerState include player name, score, in-match level for something like a MOBA, or whether the player is currently carrying the flag in a CTF game. PlayerStates for all players exist on all machines (unlike PlayerControllers) and can replicate freely to keep things in sync.