Blueprint config variables in Game Instance classes do not appear to be set properly. This is unexpected behavior, as setting up a config variable in a native C++ Game Instance class works as expected. Also, the same method works in an Actor blueprint as well.

Steps to Reproduce
  1. Open the editor
  2. Create a new blueprint based on Game Instance (MyGameInstance)
  3. Add a new string variable to the Game Instance and set it to be a config variable (TestVar)
  4. Open the DefaultEngine.ini in the project's config folder
  5. In the variables details panel, hover over the Config Variable option to show the tooltip containing the section you'll need to add (Example: [Game/MyGameInstance.MyGameInstance_C]
  6. Add that section to the DefaultEngine.ini and underneath it set your variable (Example:TestVar=Hello)
  7. Save the DefaultEngine.ini and restart the project
  8. Create a new Actor blueprint and on Tick, GetGameInstance->CastToMyGameInstance->GetTestVar->PrintString
  9. Add the Actor to the level and PIE

Result: No value is printed to the screen.

Expected: Game instance config variables would be set and the value would be printed to the screen

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-43854 in the post.

Login to Vote

By Design
ComponentUE - Gameplay - Blueprint
Affects Versions4.144.15
Target Fix4.17
CreatedApr 11, 2017
ResolvedJun 22, 2017
UpdatedApr 27, 2018