Campaign & Worlds
The main hub, twelve theme worlds with 64 missions, the bonus world, how missions unlock and how every world is built.
The campaign has the original's structure and the original's numbers: 78 worlds, each a hand-authored 3D design that teaches what the same-numbered world of Speedy Blupi teaches. All of them are built, and each has a scripted playthrough; all 78 passed on 2026-11-06. The whole campaign in one run from a new game last reached the ending on 2026-11-01; a later run stopped early at a script check in world 021 (that mission passes alone), so a full run is not claimed for the build of 2026-11-10.
Structure
| World file | What it is |
|---|---|
world001 | The main hub. The original's machine shaft becomes a stepped machine ziggurat: seven tiers, each a jump above the last, the twelve world signs in niches paired per tier as the original pairs them per level, and on the summit a tunnel of twelve gold bars before the exit to the bonus world. |
world010 … world120 | The twelve theme hubs, one per world, each with one sign per mission. |
world011 … world125 | The 64 missions: mission k of world N is number N×10 + k. |
world199 | The bonus world, the original's final world rebuilt in 3D as one journey (rebuilt on 2026-11-06). Its red arrow ends the game with the Win screen. |
world999 | Galaxy Eggbert's showcase of the mechanics, reached by its own portal on the main hub's bottom tier; used by several tests and the golden frames. |
world998 | The gallery: every block, object and big decor in one place (its map: plans/audit/gallery_map.md). The editor gives it a slot of its own. |
title.vwr | The scene behind the main menu. |
All 81 files live in worlds3d/. A world's mission number is stored in its header, and
VerifyShippedWorlds checks that it matches the file name.
The twelve worlds
The themes, mission counts and last missions are the original's; tools/campaigncheck.py checks them
against the shipped files. The first mission's title is the one of its design brief in plans/briefs/.
| World | Theme | Hub | Missions | Golden key in | First mission |
|---|---|---|---|---|---|
| 1 | Blue machines | world010 | 011-014 (4) | 014 | The first lesson |
| 2 | White palace | world020 | 021-025 (5) | 025 | The palace garden |
| 3 | Village | world030 | 031-034 (4) | 034 | Birds over the rooftops |
| 4 | Cheese | world040 | 041-046 (6) | 046 | The helicopter caves |
| 5 | Space station | world050 | 051-058 (8) | 058 | The station and the cistern |
| 6 | Slime | world060 | 061-066 (6) | 066 | The slime chasm |
| 7 | Toys | world070 | 071-075 (5) | 075 | The jeep and the toy tower |
| 8 | Machine works in the sky | world080 | 081-084 (4) | 084 | The sky steps |
| 9 | Clay clods | world090 | 091-095 (5) | 095 | The climb out of the clods |
| 10 | Grey cobbles | world100 | 101-107 (7) | 107 | The dynamite caves |
| 11 | Hangar of blue machine panels | world110 | 111-115 (5) | 115 | The hangar shaft |
| 12 | Brick house | world120 | 121-125 (5) | 125 | The brick house |
Missions 11-14 carry the original's training hints. The inventory of every world (the original's objects and
tiles beside the 3D world's counts) is plans/inventory/worlds.md.
How hubs unlock missions
The hubs work as the original's Decor::AdaptDoors, read along X and Z in 3D
(HubDoors, include/GalaxyEggbert/HubDoors.hpp):
- In the main hub every world sign is open from the start. Walking into a sign makes Blupi wave goodbye and loads that world's hub.
- In a theme hub, mission 1's sign is open; every later mission's sign sits behind a blue bar (tile 182) one or two cells away. Winning mission k opens the bar of mission k+1: Blupi comes back to the hub just outside it and watches it slide up.
- The world's last mission ends at the golden key. It leads back to the main hub, where the world's sign shows it finished and one more gold bar (tile 183) slides up, the lowest first. Blupi arrives beside the sign of the world he last played.
- With all twelve worlds finished the gold bars are gone and the main hub's red arrow leads to world 199. Its own red arrow is the ending.
Pause's Back returns from a theme mission to its hub and from a theme hub to the main hub. Progress is kept
per player (A, B, C) in savedata.txt; see Save Data & Resume. The
opendoors cheat opens every bar while it is on.
How the worlds are made
Every world is a .vwr file: a 100 × 100 × 100 grid of blocks in 10 × 10 × 10
chunks, whose block numbers are the original's tile icons, plus sparse records for objects, big decor, hint zones
and turns. The format is described on The .vwr Format.
Hand-authored true 3D
The original's 2D maps give a world its identity, theme, mechanics, difficulty and order, and nothing else. No map is converted, extruded or traced; a side-view 2.5D conversion was tried and rejected on 2026-10-25. Each world is its own design, using only the original's tiles and objects as the original uses them.
Python generators
Each campaign world is the output of a script in tools/worlds/ (world001.py …
world199.py, gallery.py, title.py) built on tools/worldkit.py
and the theme kits (kit.py, palace.py, village.py, cheese.py,
station.py, slime.py, toys.py, skyworks.py, clods.py,
cobbles.py). Re-running a script reproduces the committed file byte for byte:
python3 tools/worlds/world012.py # writes worlds3d/world012.vwr
python3 tools/vwr_inspect.py worlds3d/world012.vwr # header, block counts, objects
The showcase world999 has no Python script: the C++ tool GenerateSampleWorld3D writes it.
Each world has a brief in plans/briefs/worldNNN.md: what the original teaches, the 3D design and the
checks that were run.
Checks
| Tool | Checks |
|---|---|
tools/levelcheck.py, tools/flightcheck.py | Every goal is reachable on foot, and with the helicopter. |
tools/campaigncheck.py | Signs, mission counts, one red arrow or golden key per mission. |
tools/watercheck.py | No pool Blupi cannot climb out of. |
VerifyShippedWorlds (CTest) | Every shipped world loads and carries its own mission number. |
tools/autoplay/ | Scripted playthroughs of all 64 missions, each world's chain from its hub to the main hub, world 199 and the whole campaign (Testing). |
The in-game editor
Worlds can also be built in the game's 3D world editor, which writes the same format.
Typing xnjttjpo in play opens the world being played in it. Each player can also build a
galaxy of their own with the campaign's hub rules. Step-by-step authoring:
Modifying Levels.
Jumping to a mission
For development and checks, the desktop build starts straight in a world, skipping the menus. Run it from the build directory, where the assets are:
./GalaxyEggbert --mission 12 # mission 012
./GalaxyEggbert --mission 999 --spawn 34,1,6,0 # showcase, Blupi at raw cell 34,1,6 facing 0 degrees
./GalaxyEggbert --galaxy --mission 11 # mission 11 of the selected player's galaxy
--spawn x,y,z[,yaw] takes raw grid coordinates (0-99, Y up), the ones vwr_inspect.py
and the editor show. In play, Pause's Restart starts the current mission again. More options:
Running the Game.