Reference
The lookup tables the usage guide points at. A game definition is a folder of
JSON and JavaScript: declarative .json files that
describe the game, and .js files that carry the logic. This section lists the configuration
keys, the field types, the library functions, the contexts and ids each body runs with, and every file,
so each page can link to one source of truth. Search them all, or browse by section below.
Types →
The field types a gamehoster-schema.json can declare, their public or private visibility,
the numeric range hints, and how each is smoothed on the client.
Functions →
Every function the generated front-end library exposes on the global Gamehoster
object.
Contexts →
Which ids each body gets when it runs, and the write firewall that governs what it may change.
Files →
Every file in a game definition and the keys it holds, searchable, each linked to where it's explained.
Internals →
The actual source of the engine and the front-end library, module by module, every function annotated, so you can read exactly how it runs.
Hoster →
The machinery every hoster shares: the local tool, the server, sync and the tools.
The shape of a definition
Every game lives under your game-server domain, one directory per game. That directory is a single version. A breaking change ships as a new directory alongside it, without disturbing the one people are already playing.
game.gameserver.org/ your game-server domain
pong/ one directory per game (a version boundary)
gamehoster-game.json title, browse, create, tickRate, capacity
gamehoster-game-startup.js runs once when the game first starts
gamehoster-player/ the player's schemas and scripts
gamehoster-player-join-schema.json the fixed data supplied on connect
gamehoster-player-schema.json the player's per-instance state
gamehoster-player-join.js route into an instance and set the player up
gamehoster-player-leave.js clean up on leave
gamehoster-player-update.js the authoritative per-tick update
gamehoster-instance/ the instance's schema and updates
gamehoster-instance-schema.json the instance's own state (incl. phase) + tuning
gamehoster-instance-update.js the authoritative per-tick update
gamehoster-commands/<name>/ command schema + handler
gamehoster-entities/<type>/ entity schema + update
pong-v2/ a clean break is a sibling directory
The Files page breaks this down file by file, linking each to where it's explained in the usage guide.