Baba Is You

Baba Is You

45 ratings
Baba Make Level (OUTDATED)
By axollyon
How to access and use the old, pre-release level editor in Baba is You
   
Award
Favorite
Favorited
Unfavorite
GUIDE IS OBSOLETE
Thanks to the update of the same name, this guide is now no longer needed! I'd recommend following along with the in-game level editor tutorials, and if you're interested in something more advanced (like making a levelpack and modding), follow this guide by msmiley instead. Have fun!

(Though, if you want to switch to the old-editor version for whatever reason, this guide will still be here.)
Disclaimer
Baba Is You's level editor is currently unfinished and is not yet intended for player use, as stated by Hempuli in this forum thread. This means that it is currently extremely buggy, and:
  • YOUR GAME WILL (very likely) CRASH.
  • YOUR SAVE DATA OR GAME FILES COULD POTENTIALLY BE CORRUPTED OR DISCARDED.
  • USE CAUTION WHEN USING THE LEVEL EDITOR, AND MAKE BACKUPS!
To make a backup, I'd recommend copying the entirety of both the game directory and save directory to a secure location. For most Windows users, the game directory will be located at:
C:\Program Files (x86)\Steam\steamapps\common\Baba Is You
And the save directory will be located at:
C:\Users\[YOUR USERNAME]\AppData\Roaming\Baba_Is_You
I'm afraid I don't know where these would be on other operating systems, so please leave a comment with where it is for yours if it isn't listed here.
Enabling the Editor
First, you're going to want to navigate to the game's file directory in Steam, as stated in the above section. Then, navigate to and open the following file in your favorite text editor:
Baba Is You\Data\Editor\editor_menudata.lua
This is a Lua programming language file, so we are quite literally going to be modifying the game's code itself in order to re-enable it. Here's what it should look like at the very top (you can just copy and paste to the corresponding section):
main =
{
button = "MainMenuButton",
enter =
function(parent,name,buttonid)
local x = screenw * 0.5
local y = screenh * 0.5 + tilesize * 1

local disable = MF_unfinished()
local build = generaldata.strings[BUILD]

createbutton("start",x,y,2,8,1,langtext("main_start"),name,3,2,buttonid)

y = y + tilesize

createbutton("settings",x,y,2,8,1,langtext("settings"),name,3,2,buttonid)

y = y + tilesize

createbutton("custom",x,y,2,8,1,langtext("main_custom"),name,3,2,buttonid)

y = y + tilesize

createbutton("editor",x,y,2,8,1,langtext("main_editor"),name,3,2,buttonid)

y = y + tilesize

createbutton("credits",x,y,2,8,1,langtext("credits"),name,3,2,buttonid)

if (build ~= "n") then
y = y + tilesize

createbutton("quit",x,y,2,8,1,langtext("main_exit"),name,3,2,buttonid)
end

if (generaldata.strings[LANG] ~= "en") then
local madeby = langtext("intro_madeby")

writetext(madeby,0,screenw * 0.5,screenh - tilesize * 0.8,name,true,1)
end
end,
structure =
{
n = {
{{"start"},},
{{"settings"},},
{{"credits"},},
},
{
{{"start"},},
{{"settings"},},
{{"custom"},},
{{"editor"},},
{{"credits"},},
{{"quit"},},
},
debug = {
{{"start"},},
{{"settings"},},
{{"custom"},},
{{"editor"},},
{{"credits"},},
{{"quit"},},
},
}
},
Originally, there was a condition (if statement) that the "Custom Levels" and "Level Editor" buttons would only be created if the player was in debug mode, and they wouldn't be selectable with the arrow keys (or joystick) if not in debug mode, either. This nullifies both of those.
Now, if you open up Baba is You, you'll have two shiny new buttons on your main menu! As you can probably guess, "Level Editor" allows you to access this fabled tool, and "Custom Levels" allows you to play your creations. We're not done yet, though.
Creating a World
You can now make a level and a world to put that level in with the Level Editor! However, if you try playing that level, your game is going to crash. This is because the game doesn't actually know it has to put you into that level once you load it up. So, again with your favorite text editor, open up this file:
Baba Is You\Data\Worlds\[folder is not baba]\world_data.txt
This is a lot simpler, it's just the properties for the world you created and not any sort of code. Edit it to look something like this:
[levels] levelid=1 [general] name=[your world name] start=1level
  • levelid is the number of levels your world has
  • name is, well, the name that you gave your world when you created it
  • start is the filename of the level you're first put in when you open the world
Also, here's some parameters for world_data.txt that you might want to use later:
  • firstlevel I'm not entirely clear on, but it looks like it's the "introductory" level (like level 0 "Baba is You" in the main campaign) while start is the "map" level
  • themecount is the number of "themes" your world has, which you can use to modify the appearance and behavior of objects
Building a Level
Since the level editor isn't really finished yet, learning the controls to it isn't exactly user-friendly or intuitive. So, here's what I know of it so far:
  • To place an object, click on the "OBJECTS" menu on the top right, pick what you want to place with the left mouse button, and place it in the level with the left mouse button again.
  • To change the layer you're placing objects on, left click on either 1, 2, or 3 at the top. This allows you to place multiple objects on the same tile.
  • To pick an object already in the level to place, make sure you have the layer it's in selected, then right click it.
  • To erase objects, you need to use the picker tool in the point above. The "empty" tile in the top left of the object menu can't actually be selected.
  • To change the direction an object is facing, make sure you're on the right layer, then hover over it with the mouse cursor, and pick its direction using the arrow keys.
  • To move everything in the level in relation to the level bounds, use the WASD keys.
  • To change the size of the level, left click on the "MENU" button at the very top right, then left click on the dimensions you want at the bottom. I would recommend not using "52X30" (the biggest one), as this crunches everything's textures to an unappealing resolution.
  • To change the level's coloration, left click "CHANGE LEVEL PALETTE" on the menu from the above point, then left click which one you want to use. You can also set this through "CHANGE LEVEL THEME". You can create themes in the world's level list.
  • To change technical settings for the objects in the object menu, left click "OBJECT SETTINGS" in the level menu. I wouldn't recommend using this unless you know what you're doing. This can also be set through themes.
  • To change settings for the level itself, left click "MAP-RELATED SETTINGS" in the level menu. This allows you to specify whether the level is a map or a regular level, change settings for if it's a map, and specify what level to return to once beaten (like a regular level to its map).
  • To place a path for a map, you first need to left click the "SET PATH" button at the bottom. In order for it to be usable, make sure to set it as "VISIBLE". Then, you can add it onto a layer with "SET PATH".
  • To add a link to another level for a map, choose "ADD LEVEL" at the bottom left, and place it like a normal object. Make sure you have at least one level adjacent to others opened by default, or else you won't be able to access any.
  • To set the starting position for the map cursor, choose "SET SELECTOR" and place this like a normal object, too. The selector does not take up space on any layer. Make sure to place it on a path or a level, otherwise it won't be able to move.
Credits
/u/lilybeevee on Reddit figured out how to access the editor in the first place, and everything else in this guide was from my own experimentation. If you figure out how something in the editor works, I'll credit you here.

I can't wait to see what levels people come up with for this game! Hempuli is planning on releasing a more polished editor, but in the meantime, this is a good substitute for allowing community-made content. If you want, you can post your creations in this guide's comment section for now, until a better way of sharing them is made. Have fun!
19 Comments
msmiley 20 Nov, 2021 @ 2:27pm 
It happened, Hempuli released the more polished editor! No need to modify game files or change branches to get the editor anymore.
pato 2 Jun, 2021 @ 5:48pm 
editor > help n settings > enable extended features and words
orrin.pants 6 May, 2021 @ 11:12am 
I could do it, but couldn't create a levelpack
Kaynex 21 Mar, 2021 @ 4:45am 
Yes, this is outdated. Please don't follow this guide. I don't know what that unofficial jank Wiki page was supposed to prove?

There's no need to access your files, and if you do, the editor you get will be old.

Right click the game in the list > Properties > Betas
Then set it to "betatest".
pato 1 Mar, 2021 @ 1:00pm 
https://tcrf.net/Baba_Is_You
this is outdated??
spongedev 14 Jan, 2021 @ 3:55am 
this is still working what do you mean
Kaynex 1 Sep, 2020 @ 9:56am 
This is now outdated. The editor is accessed through the "betatest" branch under your game's settings.
Sparkette 19 Oct, 2019 @ 2:29pm 
@TemmieNeko: Yeah, so?
Meat Clown 14 Sep, 2019 @ 3:57pm 
I really hope an actual level editor will be released!
huz17 18 Aug, 2019 @ 6:55am 
wont work in the new version