Resetting game objects from isEnabled false -> true

Im building pickups into Team Death Match. I am trying to reset the crystal pickups as part of the LobbyStartResetKDServer script

The code runs without error, and produces good object references, but they are not changing state in game to isEnabled = true

CODE *****************************************************************

local ABGS = require(script:GetCustomProperty("API"))
local GOLD = World.FindObjectByName("Gold")

-- nil OnGameStateChanged(int, int, bool, float)
-- Handles resetting team scores when the game state switches to lobby
function OnGameStateChanged(oldState, newState, hasDuration, endTime)
if newState == ABGS.GAME_STATE_LOBBY and oldState ~= ABGS.GAME_STATE_LOBBY then
for _, player in pairs(Game.GetPlayers()) do
player.kills = 0
player.deaths = 0
player:SetResource("playerGold",0)
end

	for _, Crystal in pairs(GOLD:GetChildren()) do
    	if Crystal ~= nil then
    	    print(Crystal)
        	Crystal.isEnabled = true
    	end
    end

end

What am I missing?

Is the script that sets the property "Crystal.isEnabled = true" in the same context (server, client or networked) as the crystal object?

No, the script that tries to call it is in a Game State Setting folder that appears to have no context.

Without changing that, how would I reference the networked crystal objects?

Hmm, I am a bit confused what you are trying to do here. Because isEnabled is not a game state, but rather a property of any CoreObject:

Basically all core objects have that propery and the object should dissapear when toggled on (just liking hiding them in the editor I assume).

What you can do, and seems to be working for me, is to send an Event.Broadcast("SetEnabled", Crystal.id, <true | false>) from your server script, and make your crystal connect to this event, ignoring the event if the CrystalObject != script in the connected event method.