Baba Make Level

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 YouAnd the save directory will be located at:

C:\Users\[YOUR USERNAME]\AppData\Roaming\Baba_Is_YouI'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.luaThis 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

[folder Is Not Baba][your World Name]

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\\world_data.txtThis 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= 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 worldAlso, 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!

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=1686041344					

More Baba Is You guilds