Why nothing happened

The runtime skips what it does not understand. Here is how to find what it skipped.

8 min read

The runtime is deliberately forgiving: an unknown behaviour, an unknown node or a missing target is skipped rather than crashing the game. That is what lets an old project keep opening in a newer editor — but it also means a mistake often produces silence rather than an error.

So the first move is never to stare at the graph. It is to open the console.

Open the console

  1. Press F12 and choose the Console tab.
  2. Press Play.
  3. Read anything prefixed <span class="mono">[gcs]</span> — that is the game engine talking to you.

What the messages mean

Message Cause
behaviour "x" threw A behaviour hit an error. Everything else keeps running. Usually a setting it cannot use — a missing texture, a number where text was expected.
node x failed A logic node errored. Check its target still exists.
loop node ... stopped at its limit A loop ran to its iteration cap. The exit condition never became false.

The console is silent and it still does not work

Then nothing errored — something simply is not connected. In rough order of likelihood:

  1. A typo in a tag. enemy and Enemies are different tags. Collision rules match exactly, and a rule naming a tag nothing carries is silently never triggered.
  2. A behaviour name is misspelled. Unknown behaviours are skipped, so the entity just sits there. Check the spelling in the inspector.
  3. Nothing is wired to the event. An event node with an empty output pin runs nothing. Follow the wire with your eye.
  4. The entity has no physics body. Collisions need bodies on both sides. Static for walls, dynamic for movers.
  5. It is behind something. See below.

It runs, but I cannot see it

Check the layer of the last thing you added. Backgrounds belong on Background, the game on Main, the score on UI. If a sprite vanished the moment you added scenery, that is why.

The other version: the entity is outside the world bounds, or below the floor. Select it and look at its position in the inspector.

It worked, then stopped

  • Something destroyed it. A node acting on self after the entity was removed does nothing.
  • A Once node in the chain has already fired.
  • A variable drifted out of range — a life count below zero, a timer that went negative. Watch it on the HUD with a bindText template while you play.

Print a variable while it runs

The fastest debugging tool here is a text entity on the UI layer with a bindText template listing whatever you are unsure about. It updates live, costs nothing, and tells you in seconds whether a value is what you assumed.

Template:  hp {health}  spd {speed}  wave {wave}  lives {lives}

Start from something that works

If a graph has grown confusing, delete the wire rather than the nodes. Reconnect one link at a time and press Play after each. Whichever connection brings the problem back is the one to look at — and this beats reasoning about the whole graph at once.