logo
By Lawrence

5 minutes

Build Your Own Table

Every object on this table was typed into a JSON file before the page loaded. Moving a bumper two units left means editing text, saving, reloading, and squinting at the result — then doing it again. Meanwhile the two systems you switched on last lesson are still sitting there with nothing to run on, because nothing in the scene declares a spinner or a saucer.

One entity fixes both problems.

Add the Builder entity

Add it to entities:

"Builder": {
  "tags": ["builder"],
  "components": {
    "PinballBuilder": {},
    "PinballBuilderInput": {}
  }
}

Save it and the scene is finished. Your scene file now matches the finished Pinball Table scene entity for entity — twenty-one entities, twenty components, the same table that ships in the library.

Both components are empty because both are pure behaviour. PinballBuilder holds spawn defaults and a set of id counters; PinballBuilderInput holds two pointer-sampling knobs. Neither has anything to say until an event arrives.

Continue reading

Unlock the Full Course

Every lesson, the runnable examples, and the finished build — yours to keep.

$9one-time

Was this page helpful?

We read every note — tell us what's working and what isn't.

↑↓ NavigateEnter SelectEsc CloseCtrl+K Open Search