Basement_Bob:
If you want to continue with the game instance array you currently have…a few things to take into consideration:
Your picture suggests you have a game instance called “Variables” , bad idea using a common name, better to use a unique name for blueprints.
**Also for this to work, “Variables” should be set as the designated level game instance. “Game_Instance” is a special blueprint not sure of your knowledge level, no insult intended. (only one game instance runs per level, sure you can cast to game instance that is not running without a compile error, but they are dead) Suspect this is the case.
Run a print string off the cast fails pin to check… **
Casting to game instance from construction could result in timing errors not sure on this but doesn’t hurt to error check, run a print string off the failed cast pin to check if cast still fails, then try using begin play instead to ensure game instance is present, but then light settings will only show in the running game and not in level designing.
If you have created an array in a blueprint like in “Variables game instance”, you either have to feed variables into it or manually set the array elements and their variables, check if the array elements have the correct colour settings, be annoying if they are set to default.
“Variables” is a game instance. I’m not going to use an array for colors and will set the color of each light individually. I’ve decided to make a rule for myself that all blueprint code should relate to gameplay to prevent any unexpected bugs later on. Thank you for the help.