Baba Is You features a level editor used by the developer Hempuli. It is not fully finished and still has errors but it does work.
It allows the user to create both hub worlds and levels. It features a world theme and palette editor in addition to the basic level editing ability. This allows you to swap any sprite group with another and change its colours.
Enabling the Level Editor
Because the editor is not unlockable nor intended to be unlocked or used by a regular player, the user will have to enable it manually.
- You can put this file into your Lua folder (located at SteamApps/common/Baba Is You/Data/Lua), and it will automatically enable the editor. It is also unaffected by updates so you don't have to worry about enabling it every time
- If you do not have a Lua folder, go to SteamApps/common/Baba Is You/Data and open syntax.lua, then add generaldata.strings[BUILD] = "debug" above the first end.
Using the Level Editor
Now that we've enabled the level editor, it's time to use it. Head over to the Guides section for more information.
An external level editor made by DevilSquirrel exists: https://github.com/ShootMe/BabaIsYouEditor. It allows you to do more than the current ingame editor, as well as edit things from a level's .ld file in the editor itself.
- Right click: Set brush to selection
- Left click: Make selection
- Left-ctrl Drag: Drag item under cursor (does not overwrite)
- 1/2/3: Select layer + see layer visible
- WASD: Translate level in direction (with wrap)
- Arrow Keys: Change object's direction
- Tab: Open Objects list
- Z: Set brush to secret
- F3: Switch between playing and editing (requires debug mode)
- E: Go to selected level
How to Use
To place down objects, click on OBJECTS and select what you want to use. Then left click to place it down.
If you want to erase, right click a space with nothing on it or the level border, which sets the brush to erase.
To test your level, click SAVE and then press F3 to switch to playing mode.
To place down levels for an overworld, click Add Level and then click the space you want to place it on.
The top option is what level you will be taken to.
The next option is whether the level is Hidden (can't be seen), Normal (where you can see the outline but not number/symbol), and Opened (level is fully open and visible).
Symbol style lets you choose to use numbers, text, dots, or a custom icon (which is set on MENU>Map-Related Settings>Map Icon Setup).
Symbol lets you advance the amount for the number/text/dots.
Set selector places the map cursor to the mouse position, which can be used to access levels.
For adding paths, first you want to click Set Path. This lets you choose whether your path is Hidden (not seen until adjacent level is unlocked) or Visible.
- You can then set whether it is locked by fluffs or full flowers, the arrows changing the amount required. Then all the objects let you choose what the path looks like if it's locked.
- You then click Add Path and place it however you want.
If you want to change the level objects, click on Menu>Change Level Theme. The theme determines what objects are in a level.
You can change the colours of the whole level using Menu>Change Level Palette.
To change an individual objects properties, use Menu>Object Settings. From here you can change the object sprite, name, type (Object, Text), animation style, text type, and others.
You have to do a bit of external work in order to change object colours. Here is a list of all the default palettes included with the game, upscaled so they can be easily seen.
Then go to your .ld file for your level, and you will see something like colour=x,y activecolour=x,y (when a rule is active), or clearcolour=x,y (when a level is completed). X goes horizontally and Y goes vertically, the top left square being 0,0.
You find your object you want to recolour, then look at the palette horizontally first, and then vertically.
Other Level Things
If you want to set music for a level, go to the .ld file and then add the line music=(your choice) under Settings. The music folder is Baba Is You>Data>Music
If you want particle effects in the background, add particles=(choices below) to your .ld