Quick answer: GameMaker room Creation Code referencing placed instances and failing? Creation Code runs before instance Create events — instances don’t exist yet.
Room creation code tries to set Player.hp = 100; Player doesn’t exist yet so the assignment errors.
Execution Order
1) Room transition starts. 2) Room Creation Code runs. 3) Each placed instance’s Create event runs. 4) Room Start events on instances. Trying to find instances in step 2 fails.
Use Room Start on a Controller
// On an obj_RoomManager Room Start event
with (obj_Player) hp = 100;Room Start runs after all Create events. Instances exist; you can reference them.
instance_create_layer in Creation Code
If you spawn instances in Creation Code (instance_create_layer), they exist by the time you reference them — just don’t expect placed instances yet.
Persistent Manager
A persistent obj_GameManager whose Step or Other > User Event handles per-room init reliably. Doesn’t depend on Creation Code timing.
Verifying
Per-room setup runs after all instances exist. References resolve; init values apply correctly.
“Creation Code is too early. Move init to Room Start on a controller instance.”
Reserve Creation Code for setting room properties (background, view bounds); put gameplay init on a manager’s Room Start.