KUMODeck

Godot games

A Godot 4 game exported for the web runs on KUMODeck. Export it, put the folder on KUMODeck, and open the link.

Build/index.htmlBuild/game.loader.jsBuild/game.wasm.brBuild/game.data.br1Export for the web (Unity: WebGL / Web, Godot: Web)KUMODeckDrop a zip or a folder hereUpload2Put the whole folder on KUMODeck, as it isyour-game▶3Open the link and play

1. Export for the web#

  1. In Godot, open Editor › Manage Export Templates and download the templates for your Godot version (once).
  2. Open Project › Export…, press Add… and pick Web.
  3. Set Export Path to index.html in an empty folder. The link opens index.html, so the name matters.
  4. Leave Thread Support off unless your game needs threads (see below). Off is the default.
  5. Press Export Project and leave Export With Debug off.

The folder looks like this:

index.html
index.js
index.wasm
index.pck
index.audio.worklet.js
index.audio.position.worklet.js
index.png, index.icon.png, index.apple-touch-icon.png

2. Put the folder on KUMODeck#

Pick one:

  • Ask your AI: "Publish my Godot game in this folder with KUMODeck." The engine file (index.wasm) is about 40 MB, more than an AI can send in a message, so your AI gives you a link to an upload page. Drop the folder (or a zip of it) there.
  • From a terminal: kumodeck deploy path/to/the/folder (add --env production to put it on the public version).

It goes on the test version first. Open the link it gives you and play.

Thread Support#

AThread Support off (default)Export › WebThread SupportUpload the folder as it isBThread Support on_headers/*Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corpBoth: open the link and play

With Thread Support on, the game uses SharedArrayBuffer, which browsers allow only when the page sends two extra headers. Put a file named _headers (no extension) next to index.html before you upload:

/*
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Embedder-Policy: require-corp

Without this file, a game exported with Thread Support stops at the start with "The following features required to run Godot projects on the Web are missing: Cross-Origin Isolation … SharedArrayBuffer". With these headers, images or scripts from other sites load only if those sites allow it. With Thread Support off, you need neither.

Use the _headers file rather than Godot's Progressive Web App › Ensure Cross Origin Isolation Headers option.

If something goes wrong#

What you seeWhat to do
The link shows "404"The export is not named index.html. Export again with Export Path index.html, or rename the .html file only (keep the other names).
"Cross-Origin Isolation … SharedArrayBuffer" is missingAdd the _headers file above, or export again with Thread Support off.
A file is over 100 MBOne file can be up to 100 MB (Limits). Move large assets out of the .pck and load them when needed.

See also: Unity games · Hosting & deploy