Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/xXmizzeryXx/zenodeployment/llms.txt

Use this file to discover all available pages before exploring further.

R2 import is designed for games that are already hosted on a public Cloudflare R2 bucket. Instead of downloading files into IndexedDB, Zeno stores only the game’s URL and loads it in an iframe at play time. No Service Worker involvement, no file storage — the game runs directly from R2.

How to add an R2 game

1

Open the R2 IMPORT tab

Click ADD GAMES in the top bar, then select the R2 tab.
2

Enter the base URL (first time only)

In the BASE URL field, enter your bucket’s public base URL, for example https://pub-abc123.r2.dev. This value is saved to localStorage — you only need to enter it once.
3

Add game links or folder names

In the GAME LINK OR FOLDER NAME field, paste either a full R2 link:
https://pub-abc123.r2.dev/my-game/index.html
Or just the folder name if the base URL is already saved:
my-game
Click ADD (or press Enter) to add the entry to the queue. Repeat for each game you want to load.
4

Load all queued games

Once your queue is ready, click LOAD ALL. Each game is added to your library as a URL reference.

Queueing multiple games

You can queue several games before clicking LOAD ALL. Each entry appears in the queue list below the input. Entries can be reordered by dragging and removed individually with the × button.
If all your games share the same base URL, set it once and then add games by folder name only. The base URL persists across sessions via localStorage.

How R2 games differ from uploaded games

FeatureUploaded / Git-importedR2 imported
Files stored in IndexedDBYesNo
Service Worker registrationYesNo
Re-registration on SW restartAutomaticNot needed
Works offlineYes (if previously loaded)No
File size limitIndexedDB quotaNone (served from R2)
R2 games bypass the Service Worker entirely. When you launch an R2 game, Zeno sets the iframe src directly to the R2 URL — no PING_GAME check, no REGISTER_GAME message.

R2 bucket requirements

Your R2 bucket must be configured correctly before Zeno can load games from it.
The bucket must have public access enabled in your Cloudflare R2 dashboard. Games served from a private bucket will fail to load with a 403 error.
The bucket must have a CORS policy that allows requests from the origin where Zeno is hosted. A permissive policy that allows all origins works for most setups:
[
  {
    "AllowedOrigins": ["*"],
    "AllowedMethods": ["GET"],
    "AllowedHeaders": ["*"]
  }
]
Without correct CORS headers, the browser will block the iframe’s sub-resource requests.

Persistence

R2 games are saved to IndexedDB as a URL reference only — no file buffers are stored. The entry contains the game’s name, icon, and the full index.html URL. Because no files are registered with the Service Worker, R2 games do not need re-registration after a SW restart and continue to work even if the SW is inactive.

Build docs developers (and LLMs) love