Collaboration & projects
VoxelForge can save your world together with its add-on packs as a project, keep
named version checkpoints, package the result as either a .mcworld or a
.mcaddon, and let several people edit the same world together in real time.
Projects
A project bundles a world plus its Behavior and Resource packs and a history of checkpoints. Projects can live in two places:
- A folder on your computer (Chrome/Edge): pick a directory and VoxelForge
keeps
working.mcworld, aversions/folder, and aproject.jsonmanifest inside it. The folder reopens later (you may be re-prompted for permission). - On a collaboration server: the shared room is the project — everyone edits the same canonical world.
A rolling crash-recovery snapshot is always kept in your browser regardless.
Very large worlds
A streamed world is already kept on disk while you work on it, so saving it as a project doesn't copy it again — the project points at that copy, and saving is instant however big the world is. Opening the project later brings it back in seconds.
Two things follow from that. The world lives in this browser's storage, so clearing site data for Quarry takes it with it — use Export for a file you can play, move to another machine, or keep as a copy that outlives your browser's storage. And a checkpoint only stores the areas you changed since the previous one, which is what keeps it a few megabytes and a couple of seconds instead of a full copy of a very large world.
Behavior & Resource packs
Use Import .mcaddon to add an add-on to the current world; its behavior and/or resource packs are unpacked into the world and activated. Custom blocks re-texture in the viewport automatically. You can then export:
.mcworld— the world with its packs (the usual export)..mcaddon— just the behavior + resource packs, with no world data.
Pack bytes are preserved exactly: anything VoxelForge doesn't interpret is still written back out unchanged.
Version checkpoints
Save a named checkpoint at any time. Each checkpoint is a full snapshot you can restore, export, or compare against another (the comparison reports how many blocks were added, removed, and changed, and where). History is linear — newest first.
On a very large world a checkpoint records the areas you edited rather than the whole world, and the card says how many. Restore and compare work the same way; comparing reports how many of those areas have changed since. Restoring an older checkpoint doesn't delete the newer ones — carry on from where you landed and your next checkpoint follows on from it.
Live collaboration
Click 👥 Collaborate to start or join a session.
Sign in with GitHub
Collaboration requires a quick GitHub sign-in — it's how the server knows a real person (not an anonymous script) is connecting. Open the Collaborate panel and click Sign in with GitHub; a popup confirms your GitHub account and closes. Nothing is posted to GitHub on your behalf — VoxelForge only reads your username to identify you. You stay signed in across sessions, and can Sign out from the same panel. Opening a share link while signed out prompts you to sign in first, then joins automatically.
- Starting a session uploads your current world as the room's canonical state and copies a share link to your clipboard.
- Joining (via the link or a room code) streams the world to you and then keeps it in sync.
Sessions are not storage. The shared world is held on the server for 24 hours, then automatically deleted. Always export a
.mcworld(or save the project to a folder on your computer) to keep your work — don't treat a live session as a place to store a world long-term.
While connected, every edit you make — placing, erasing, brushing, filling, biome painting — is sent to everyone else and applied live, and you'll see other people's cursors and names in the world. Edits are ordered by the server with last-write-wins on contested blocks.
Very large edits (big fills, pastes, or agent builds — up to millions of blocks) are streamed across in pieces rather than as one giant message, with a progress indicator shown to both the person making the edit and everyone receiving it. They appear progressively as the pieces arrive.
Large worlds (region streaming)
When you start a session on a large world (roughly 50 MB or more), collaborators no longer download the entire world to join. Instead each person loads the area around them and streams in more regions as they explore, so joining is fast even on very big worlds.
In this mode the host keeps the full world and serves regions to everyone else on demand. Two things to know:
- Keep the host's tab open for the duration of the session — it's the source of truth that serves world data to the others.
- Exporting and saving the complete world are done from the host (who has all of it). Guests are streaming only the parts they've visited.
Running a server
Collaboration needs a small server (VoxelForge's static site can't host one). It runs on PartyKit:
npx partykit dev # local development server at 127.0.0.1:1999
npx partykit deploy # deploy to Cloudflare; use that host in the Collaborate dialog
Enter the server host (e.g. 127.0.0.1:1999 for local dev) when prompted. The room
code in your share link is the only thing needed to join — treat it like a password.
Enabling the GitHub sign-in gate. The gate turns on once the server has a
SESSION_SECRET. Register a GitHub OAuth App (callback URL
https://<your-worker-host>/auth/callback), put its Client ID in wrangler.toml,
then set the secrets and redeploy:
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put SESSION_SECRET # any long random string
npm run collab:deploy
With no SESSION_SECRET set (the default for local dev), the server stays open and
no sign-in is required — handy while developing.
World generation
Terrain made with the World Generation panel — or by a connected agent — is shared like any other edit: the generated chunks travel to everyone in the session, and undoing the run takes them back out for everyone. A big run arrives chunk by chunk, with a progress indicator while it streams.
Generating needs the whole world in memory, so it isn't available to guests in a large-world session (see above), who are streaming only part of it.
Mobs
Mobs travel like any other edit. Placing, moving, turning, recolouring and deleting one reaches everyone in the session, whether you did it with the Mobs tools or a connected agent — and undo takes it back for all of you. Moving a selection with Include mobs ticked brings the animals along on everyone's screen, and the End crystals a generation run places arrive with its chunks.
Two people placing mobs at the same moment both get their mob: nobody's placement overwrites anyone else's. Two people editing the same mob is the same last-write-wins race as two people editing the same block — the last edit the server sees is the one everybody ends up with.
A mob you move is sent when you let go of it, not while you drag — during the drag your collaborators see your cursor, and the mob lands in one step.
Undo/redo
Undo and redo propagate to everyone: each person has their own history (you undo your actions), and undoing updates the shared world for all collaborators, ordered the same last-write-wins way as any other edit.
Current limits
- Structure-placement previews and selections are not shared yet (the resulting blocks are, once applied).
- Which mob a collaborator has selected, and their placement preview, aren't shown — you see their cursor, and the mob once they place it.
Quarry