But it works! It automatically tracks levels cleared, supports locked paths that cost dandelion puffs or lotus flowers, and even lets you nest submaps infinitely.
See Axonium’s guide to learn how to access the beta editor and make regular puzzle levels. This guide assumes you are familiar with the contents of Axonium’s guide, and will focus purely on constructing overworld maps.
You should also go into map-related settings and change the level type from “Level” to “Map.” This will make the transitions a little smoother once you start adding submaps and stuff. However, there’s a quirk to this property: it generates something called a leveltree for your world, which can mess with you if you want to change the starting level. More on those later.
Which level to go to. You can only select from the levels in the specific custom world you’re editing.
The symbol used on the world map. Can be 0-99, A-Z, 1-9 dots, or a custom icon. Levels are named automatically based on your chosen symbol, e.g. 3 dots will show up as “Extra Level 3 – Your Name.”
The custom icons are selected from a palette of 20, which can be configured in
“Map-Related Settings” -> “Map Icon Setup.” You can pick from any sprite in your Sprites folder + a few defaults; I recommend you copy over the Sprites folder from Data\Worlds\baba so you can access every sprite in the game.
- Opened: Accessible from the start. At least one level in your map should be opened!
- Normal: Visible, but inaccessible until an adjacent level is cleared.
- Hidden: Same as Normal, but invisible until unlocked. Useful for those secret extra levels.
To modify an existing level tile, simply click “Add Level” and click on the tile you wish to modify. Make sure you’re on the right layer!
Click “set paths” to configure them, and “add paths” to place them in the level with a left click.
These are the features you can control in the “set paths” menu:
Visible paths are always visible. Hidden paths only appear when an adjacent level is cleared.
Is this path locked?:
- Nope: Nope, it’s not locked. If you can reach it, you can go down it.
- Level clears: Set a toll of dandelion puffs (individual levels cleared).
- Map clears: Set a toll of lotus flowers (entire submaps cleared).
It must be placed on a level tile. If you place it on a path, it will snap to an arbitrarily chosen level tile when the game starts. If you put in on anything other than a path or a level tile, it won’t be able to move at all.
“Return to Map” just works when you set it up like this. Players also get lotus flowers for clearing your submaps. It’s very elegant! And if you want to, you can make yourself a subsubmap, or even a subsubsubsubsubmap. There’s no limit!
To give the player a lotus flower, you can alter the “levels needed for clear” value under “Map-related settings.”
If you want a secret parent map, like in the main game, I believe you can set customparent=whatever in your .ld file. I haven’t experimented with this at all.
Saving Progress & Renaming Files
These four sections may be near each other or far apart, but they will usually all be there. If you want to delete your progress for testing purposes, simply delete all the Test World (or whatever you called your world) sections.
Don’t mess with the [baba] stuff; that’s data for the main game. I believe 0ba.ba, 1ba.ba, and 2ba.ba are the three save files on the main menu.
If you want to, you can rename all your levels. I highly recommend you do so, because 1level, 2level, 3level… starts to get confusing real fast. Be sure to rename the .l, .ld, and .png files. If you do rename a level, make sure to:
- Update start in world_data.txt
- Delete your leveltree
- Update any level tiles in any maps
leveltrees live in your ba.ba file as part of your world save data. They help the game know where you are and what should happen when you press “Return to Map.” The start field from world_data.txt is ignored when a leveltree exists, which frustrated me to no end before I figured out what was going on! In fact, I ended up loading a nonexistent level and getting some WD Gaster creepypasta♥♥♥♥♥♥
Your world’s leveltree is stored under the plain tag (not _prize or _clears) as a comma-separated list of level names.
You will need to delete it if you want to modify the starting level. Or you can mess around and create your own level tree!
But wait! This behavior is not hard-coded! In 106level.ld (level 106 is the main game’s overworld), the following can be found:
By copying these lines into your .ld file, you too can have a lush and beautiful island as your background. Or anything, really! Each PNG is drawn on top of the last one, so you can layer stuff, too.
So sadly, you can’t construct a custom island out of tiles. But I’d say using literally any image as a background more than makes up for it!
You can always stick to making cute little forests and stuff out of standard level elements, like the main game’s submaps.