Skip to content
Docs
Reference

game.json

The project manifest and the package limits.

Every project has a game.json at its root.

game.json

Keys

KeyRequiredRule
schemaVersionyesThe integer 1.
gameto publishThe game address, <namespace>/<slug>. disko publish --dry-run and local rooms work without it.
versionyesA SemVer 2.0.0 version without build metadata (+…), at most 64 bytes, for example 1.4.2 or 2.0.0-beta.1.
entryyesThe package path of the entry module, a .js or .ts file. Its extension selects the language of the project.
$schemanoAny string, for editor support. Ignored.
  • Any other key is an error (manifest_invalid).

  • The file is UTF-8 JSON, at most 4 KiB, with no duplicate keys.

  • There are no name, description, icon or asset keys. Display metadata lives in the Creator Portal, and assets are found through imports.

  • The published archive holds a rewritten game.json with only entry (the emitted .js path), schemaVersion and version, so one archive is valid under any address.

Package paths

Paths are ASCII, /-separated, at most 128 bytes and 8 segments. Each segment is 1–64 bytes, matches ^[A-Za-z0-9_][A-Za-z0-9._-]*$, does not end in . and is not a Windows reserved name such as con or lpt1. Hidden files cannot be imported, and no two paths may differ only in case.

Limits

Generated from the release checks.

LimitValue
Maximum compressed archive length in bytes.10 MiB (10,485,760 bytes)
Maximum uncompressed tar length in bytes, headers included.64 MiB (67,108,864 bytes)
Maximum game.json length in bytes.4 KiB (4,096 bytes)
Maximum number of module files.512
Maximum length of one module in bytes.2 MiB (2,097,152 bytes)
Maximum combined length of all modules in bytes.8 MiB (8,388,608 bytes)
Maximum number of asset files.512
Maximum length of one asset in bytes.16 MiB (16,777,216 bytes)
Minimum image side in pixels.1
Maximum image side in pixels.4 KiB (4,096 bytes)