ZIP requirements
- index.html must be at the ZIP root.
- Upload the exported web build, not your source project.
- Include only browser runtime files needed to load and play.
- Bundle game engines and libraries into the ZIP. Unity WebGL, Godot Web, Phaser, Arcade Physics, Matter.js, Three.js, Babylon.js, PixiJS, Construct, GDevelop, Defold, PlayCanvas, and similar browser engines are supported when their exported files are included in the build.
- Remote script tags for CDNs such as cdnjs, unpkg, jsDelivr, cdn.babylonjs.com, or similar hosts are blocked in Sandbox and public play.
- Do not include source project folders, node_modules, server files, hidden files, .env files, API keys, or secrets.
- The current hard ceiling is 200 MB per ZIP.
- Unity WebGL, Godot Web/HTML5, Phaser, Vite, Three.js, Babylon.js, PixiJS, Construct, GDevelop, Defold, PlayCanvas, RPG Maker web exports, Twine, Bitsy, PICO-8 HTML exports, and plain HTML builds can work when exported as static browser files.
Good ZIP examples
good-html.zip
index.html
game.js
assets/
good-vite-or-phaser.zip
index.html
assets/
favicon.ico
good-unity-webgl.zip
index.html
Build/
TemplateData/
good-godot-html5.zip
index.html
game.js
game.wasm
game.pckBad ZIP examples
bad-extra-folder.zip
my-game/
index.html
assets/
bad-source-project.zip
package.json
node_modules/
src/
.env
bad-unity-project.zip
Assets/
ProjectSettings/
Packages/Before you upload
- Build or export the production web version of the game.
- Open the exported build from a local static server when the game uses WASM or engine loaders.
- Confirm controls and first-run instructions are visible in the game.
- List every external domain the game calls.
- Replace remote engine/library script tags with local bundled files.
- ZIP the contents of the exported build folder, not the parent folder.
Listing media
- Add a thumbnail, hero image, and screenshots so the game page does not rely on placeholders.
- Images should be JPG, PNG, WebP, or GIF and 8 MB or smaller.
- Screenshots appear in carousel order. In the dashboard, reorder them with the media controls. In the CLI, upload screenshots one at a time in the desired order.
- Use clear alt text that describes what the image shows.
- If you use the CLI, run media upload with --type screenshot, thumbnail, or hero after the game record exists, then use media move, reorder, or remove when the carousel needs cleanup.
- See /developers/docs/cli for command examples and JSON workflow guidance.
Validation checks
Buncha Games checks archive shape, root entrypoint, blocked paths, aggregate size, compression ratio, nested archives, suspicious files, and external domains.
A validated build stays private until you open Sandbox and submit for admin review.
Common fixes
- If index.html is inside an extra folder, zip the folder contents instead of the folder itself.
- If validation flags source files or node_modules, rebuild a clean export folder and package only that export.
- If validation flags external domains, remove the call or request domain approval.
- If validation flags a remote script dependency, bundle that library into the exported build instead of loading it from a CDN.
- If an engine build loads locally only by double-clicking files, test it again from a local static server before uploading.
