Update:
Doing this works, add Sleep between the success/end and reset and start.
OnGoldTimeSpawn(Agent:?agent):void=
if(PlayerObj:=player[Agent?]):
CageGold.GrantItem(PlayerObj)
Sleep(1.0)
FreeGoldTimer.Reset(PlayerObj)
Sleep(1.0)
FreeGoldTimer.Start(PlayerObj)