I am currently storing them in the controlled pawn but I suspect that isn’t the best place for them. Should I place them in player state. player controller, gamestate? If relevant, the game will be played online so different players will have different user settings.
Thanks
When you say game user settings are you talking about the resolution, frame rate and so on? If you are talking about the different options you want players to be able to apply then those are likely going to have a umg widget and should all be controlled within the widget blueprint. When a user saves the settings they chose it should write the information to the associated ini file. If that file does not exist it will create one.
Game instance is used for data that needs to cross over from level to level. So if you have some kind of information that needs to persist across levels use this.