Your Own Galaxy

Each of the three players builds a whole campaign of their own, plays it from the main menu with separate progress, and can share it as a single file.

Speedy Blupi let a player build private worlds in its Construction screens. Galaxy Eggbert turns that into a complete world system per player: a main hub, up to fourteen worlds with a hub and eight missions each, and a bonus world. It is built with the in-game 3D World Editor from the game's existing blocks and objects and is played under the campaign's own hub rules; nothing in it adds gameplay (ledger row BD-0119). This page describes the state as of 2026-11-10.

Done Building, playing, progress, Continue, delete and restore, naming, export and import (desktop and web). Not verified Android, a physical gamepad, a real touch screen.

What a galaxy is made of

A galaxy uses the campaign's own mission numbers, so its hubs, doors, gold bars and signs work exactly as the campaign's do (see Campaign & Worlds).

PlaceMission numbersRole
Main hub1World signs 1-14 lead to the world hubs. A gold bar appears for each world completed.
World hubs 1-1410, 20, ... 140Mission signs 1-8, a door beside each. Every door but the first opens once the mission before it is won; the golden key ends the world; the return sign leads back to the main hub.
Missions11-18, 21-28, ... 141-148Ordinary missions, played and won like the campaign's.
Bonus world199Reached after the main hub's exit, as in the campaign.

A galaxy can therefore hold up to 14 worlds, two more than the campaign's twelve. Each place is an ordinary .vwr world file (see The .vwr format).

Building it: the galaxy screen

The galaxy is built in the editor's galaxy screen. Open the main menu's 3D World Editor, then the world screen's Galaxy button. The main menu's own Galaxy button also opens this screen while the selected player's galaxy has no main hub yet.

Playing it

The main menu's Galaxy button (top right, left of Demo) plays the selected player's galaxy: from its main hub, or from the place where the player left it. The game then reads every world from the galaxy's folder instead of the shipped ones. Returning to the main menu leaves the galaxy; the menu always belongs to the campaign. Each player's panel in the menu shows "Galaxy : N gates", the gates opened in that galaxy, with the galaxy's name in place of "Galaxy" once it has one.

Its own progress

A galaxy's lives, current mission, last world and opened doors are kept apart from the campaign's, under keys of their own in savedata.txt. They are written only once a galaxy has been played, so a player who never plays one keeps the file exactly as before. Whether a galaxy is being played is never saved. Player A's campaign progress (gamer0.*) and galaxy progress (galaxy0.*) side by side:

gamer0.lives=3
gamer0.missionNumber=11
...
galaxy0.lives=3
galaxy0.missionNumber=20
galaxy0.lastWorld=2
galaxy0.hasProgress=1
galaxy0.doorsUnlocked=0100...

Continue in a galaxy

A galaxy mission writes the resume file exactly like a campaign mission: it is saved when Play loses the focus and deleted on a clean exit. If the game ends without one in the middle of a galaxy mission, the next start shows the Resume screen, and Continue goes back into the galaxy and the mission at the recorded moment. The resume log names the galaxy's world file and its hash; if the world was changed meanwhile, the game falls back to the checkpoint, as it does for the campaign. See Save Data & Resume.

Naming it

Click the galaxy screen's title and type a name: letters, digits, spaces, - and ', at most 24 characters (Shift for capitals, Backspace to erase). For touch and gamepad players a keyboard is drawn on the screen under the title. Enter, OK or a click elsewhere keeps the name; Escape or Cancel leaves it as it was. The name is stored in galaxy/name.txt, shown in the menu's player panel and in the import list, travels inside an exported pack and names its file.

Deleting and restoring places

Sharing it: one .galaxy file

The pack is a simple container with a checksum:

GALAXY_PACK 1
name <size>               the galaxy's name, when it has one
world <mission> <size>    each place: its .vwr bytes follow
demo <position> <size>   each recording made in the galaxy: its .gdemo bytes follow
END <FNV-1a of everything before it, 16 hex digits>

Import refuses a pack that is damaged or truncated, of another version, holds a place or a position twice, names a place that is not a galaxy's, or contains a world that does not load. A demo recorded with another simulation revision is left out and the galaxy is kept.

Where it is stored

WhatPath in the player's folder
Player N's places (N = 0, 1, 2 for players A, B, C)customworlds/gamerN/galaxy/world001.vwr, world010.vwr, world011.vwr ... world199.vwr
Their backupscustomworlds/gamerN/galaxy/backups/world011.1.vwr (newest) to .3.vwr
The galaxy's namecustomworlds/gamerN/galaxy/name.txt
Exported packscustomworlds/shared/*.galaxy
ProgressgalaxyN.* keys in savedata.txt

The player's folder is the system's per-user folder on the desktop (~/.local/share/Galaxy Eggbert on Linux, %LOCALAPPDATA%\Galaxy Eggbert on Windows, or --user DIR / GALAXY_USER_DIR), /save in the browser's storage on the web, and the app's private storage on Android.

For developers

For QA, --galaxy together with --mission N starts mission N of the selected player's galaxy, with the galaxy's progress; it works with --autoplay as well:

./GalaxyEggbert --mission 11 --galaxy
SourceRole
src/GalaxyEggbert/Editor/CustomWorldStorage.hpp/.cppGalaxyDir(), GalaxyWorldPath(), IsGalaxyMission(), GalaxyMissionName(), CreateGalaxyStarterWorld(), GalaxyName()/SetGalaxyName(), PackGalaxy()/UnpackGalaxy(), ExportGalaxy(), ImportGalaxy(), DeleteGalaxy(), RestoreBackup(), DeleteSlotWorld(). See CustomWorldStorage.
src/GalaxyEggbert/Editor/GalaxyBrowserScreen.hpp/.cppThe galaxy screen: places, bins, Backups, Export, Import, Delete galaxy, naming.
src/GalaxyEggbertCNA/GalaxyEggbertGameMissions.cppStartGalaxy(), LeaveGalaxy(), MissionPath(): which file a mission loads while a galaxy is played.
src/GalaxyEggbert/Game/SaveData.hppSetGalaxyMode(), GalaxyProgress(), ResetGalaxyProgress(), GetGalaxyGatesForGamer(). See SaveData.

Tests: VerifyGEEditorStorage (the galaxy's files, packs, import, delete, restore), VerifyGESaveData (the separate progress), VerifyGEInputPad (the menu's Galaxy button and panel), VerifyDemoReplay (galaxy recordings).

Verification status (as of 2026-11-10)

Editing while playing. The typed cheat xnjttjpo in a galaxy mission opens the editor on that mission's world; saving writes the galaxy's file, its backup kept beside it, and Stop returns to the mission from its start. See 3D World Editor.