Region From The Ground Up
This article needs structural or tonal clean-up to meet quality standards. Feel free to help improve it.
So you want to make a region, but you have no clue where to start! The idea of modding something so big is certainly daunting! However, looking at everything in small repeatable pieces will let you work step by step until one day you’ll suddenly have a finished region! However before that happens you need to learn some basics to get you started! Lets start with some terminology of the tools used!
- Level Editor - This is the tool given to the modding community by the Rain World developers. These are the actual tools used to make Rain World. However much of its features and hotkeys are difficult and quirky to work with at first, but given enough time and use, the editor becomes an extremely powerful tool.
- Unofficial level editor - This is a tool created by AndrewFM and Mikronaut to edit Rain World rooms before the official editor was released. While it lacks many features needed to make rooms. It does have the incredibly useful feature of being able to edit already exported rooms. As well as changing creature dens into doors, and vice versa.
- Dev Tools - These are in game tools Rain World uses for editing room visual effects, sounds, and triggers. As well as the regions map, and the various other specific configurations of your room!
- World File Format - This controls how your region (or any other region!) binds rooms together. As well as creature spawns!
- Room settings text - These files are present for every room that you save a configuration for in the dev tools. It contains the placement of objects, sounds, room effects, and any other setting applied using the dev tools.
I will not be giving a full control outline for every editor in this tutorial. If you need the editor’s controls, please see the full article on the specific tool you are using for their list of inputs and quirks. This article is an exercise in how to bring a level from an empty screen, to a fully fleshed out room. Largely following my own process. Don’t be afraid to branch out and try weirder things as you get comfortable with the editor!
Important terms and info[edit source]
- A region is a large collection of connected rooms. Using a Worldfile to setup data inside them.
- A room is stored as several files that contain:
- Geometry and pathfinding data
- Room graphics, one .PNG file per camera
- Settings file containing additional data such as room effects, sound triggers and placed objects (defined in Dev Tools)
- The editor can only export the collision and graphics for rooms, Dev Tools are used to set the colors and effects.
- Every room needs at least one valid door in order to be connected
- By default, the editor will create a room the correct size for a single screen, with a single camera already set up. By default, a single room is 72 x 43. Changing room size after some tiles have been added breaks the tiles, and has a chance of corrupting the level project with uneraseable invisible tiles!
Setting Up[edit source]
Once you open the official editor for the first time. you will be greeted with a file select. It is advised to make a folder for your rooms to keep them organized before you open the editor. Use the arrow keys to navigate into that folder, and press N to make a new room. You will then be greeted with the editor’s main menu.
Saving, and name quirks:[edit source]
Before we do anything, lets save our room. It is REQUIRED that you start all of your rooms names with a region prefix. You can check the Rain World, World folder for the regions in game. We will be using SU_ the prefix for outskirts, at least until we have several rooms for our region later, or you are confident enough to begin making rooms for your own region.
Secondly, NEVER use spaces. Always use an underscore _ to separate your name’s sections. Examples of correct room names:
The developers often used the letter (A, B, C…, J…) after the underscore _ to track the number of cameras in the room (for non-shelter (S) rooms), but this is not required. Examples of actual rooms in the game:
- SU_A05 - small Outskirts room with 1 camera (A)
- SU_B08 - larger Outskirts room with 2 cameras (B)
- HI_C14 - wide Industrial Complex room with 3 cameras (C)
- CC_D01 - tall Chimney Canopy room with 4 cameras (D)
- SL_F01 - Shoreline room with 6 cameras (F)
- UW_J01 - huge room in The Wall with 10 cameras (J)
So now. You are ready to begin painting!
A Blank Canvas[edit source]
Click the geometry editor button to begin painting your level’s basic geometry. However, before we do anything. We will first clear all the layer using the “clear all” tool. Use the arrow keys while the mouse is over the tile grid to change tools. Once the red box is over the X shaped tool. Used the numpad to navigate to the top left corner, click once to start drawing the rectangle of the clear tool, and navigate to the bottom right to place the other corner. When you are finished all the solid walls in the room will be removed. Leaving you with a completely blank canvas to work from.
A “fuzzy” grey border marks the very edge of a room. Where tiles no longer exist to the game. The white rectangle is the game play border Anything outside of this will repeat off into the distance, this ONLY applies to the room’s collision. Visually they will be fine. All room in Rain World use these borders. For a more simple explanation. Keep everything related to gameplay inside the white rectangle! Anything outside will only show up visually, but will not act the same as they would inside the rectangle!
Blocking It Out[edit source]
Lets start painting out the shapes we want for our basic level! This seems like a bit sudden of a jump, but only a few moments of messing around in the editor will let you achieve what you see in the screenshot! Short cuts to doors and dens require walls to be placed in specific ways around them. The Geometry Editor article goes into more depth about properly connecting short cuts, doors, and dens.
For now, we will simply place walls, some poles, and at least one “Entrance” to the room. The Dens seen in the screenshot are optional. Only one door is required for this tutorial.
A Test Render[edit source]
Before we move on; Lets do another save. So if anything goes wrong we won’t lose the level geometry we now have. Press 1 on the number row to return to the main menu, and press the save button! Press enter in the name field to save the room without changing the name of it. It is now time to do a test render of our room so we can see if it plays correctly in game! First, we need to click “Text Output” to save the levels collision data, and then press “Render Level.”
The editor will appear to freeze for a few moments. This is normal! Do not be worried, or attempt to close the editor! Eventually the editor will begin processing each layer of the room. Before it will render the rooms data into a red and black image. The files will be output into the “Levels” folder by the editor’s executable.
The files ROOMNAME.txt and ROOMNAME_1.png are the exported version of your room, for use by Rain Worlds engine. Lets get to seeing our room in game!
Setting Up a Mod[edit source]
In order to get the room into the game, we need to set up a new mod first. It's super easy! In Rain World's root directory, navigate to RainWorld_Data\StreamingAssets\mods\. This folder is where all the built-in mods are kept (workshop mods are installed to a different directory.) To create a new mod, all we need to do is create a new folder. I'll call mine "MyRegionMod" but you can call yours whatever you want. The mod will now appear in the Remix menu, so we can enable it. To add details like a description, dependencies, ect. we can add modinfo file as detailed in the Downpour Reference/Mod Directories page, but for now we'll leave it as a default folder.
The StreamingAssets folder is the main directory where the game keeps all its assets. And each mod folder is treated as if its contents are in StreamingAssets, which is how we can modify the game without touching any of its files.
The vanilla rooms for SU are kept in StreamingAssets\world\su-rooms\, so we're going to make a parallel folder in our mod, at MyRegionMod\world\su-rooms. Then, we can copy the ROOMNAME.txt and ROOMNAME_1.png files from the editor’s level export folder and past them into our su-rooms folder.
Next, we need to actually connect our room to the rest. There is already an easy to use DISCONNECTED entrance in Outskirts, so we will use that as a way to quickly test our room.
Navigate to StreamingAssets\world\su\ and open world_su.txt. This is Outskirt's World.txt file. The details of this file are in this article: World File Format. However, for the purpose of this tutorial, we won't go into the formatting quirks too much, but rather doing what's necessary to get our room in.
If we create a new world_su.txt in MyRegionMod\world\su\ then it'll replace the vanilla one - but that's not what we want to do! We only want to modify a small portion of it. We can do this using Downpour Reference/Modification Files. These are a special format of files that go in a slightly different directory. Instead of MyRegionMod\world\su\world_su.txt we'll create a new file at MyRegionMod\modify\world\su\world_su.txt. Inside this file we can put the following contents:
[MERGE] ROOMS SU_A63 : SU_B12, SU_A37, SU_myroom SU_myroom : SU_A63 END ROOMS [ENDMERGE]
This will merge the lines we specified into the ROOMS section of the vanilla world_su.txt. The vanilla file already contains SU_A63 : SU_B12, SU_A37, DISCONNECTED, but the merge operation will automatically replace that line with out new one.
We can now start Rain World! If this has all been done correctly. Then you will be able to load your file without it crashing to a grey screen. Simply navigate to SU_A63 to see the freshly added connection! You can peak into the su-rooms folder and find SU_A63_1.png to see what the room looks like to know where it is in game!
Making Mistakes[edit source]
Our first room is pretty rough! Not everything will be perfect of course! This is a time to see if everything in our geometry works right! If pits are impossible to jump across, or if a jump is just a little our of reach. This is the time to tweak our level till we are happy with the layout. Render times are very fast with just a single layer and some walls after all! Don’t be afraid of mistakes at this point. Just fix them and tweak until your room feels like it is playable, and there are no locations that you can become stuck in.
Repeat the steps above to edit, re-render, and re-install the room. You will no longer need to link the level to the world again! You only need to update the room files and image. You do not even need to close Rain World to test these changes. Simply dying, and returning to the room is enough to cause the room to reload for you to test the new collisions!
A Start To Detailing[edit source]
This looks like another crazy jump! But once you get used to the materials the editor gives you, the tile editor will become a playground, and you may even start designing your levels with it, and instead use the geometry editor just to compliment your tiles! It will all come to you as your understanding and comfort of the editor increases.
The details I’ve applied myself, have been to paint various materials in the same style Outskirts uses. Large metal plates surrounding dense pipes on corners. Concrete as the base material. The rare inclusion of pipes and machines. Along with a few things I enjoy using in my own levels. Such as large signs from the Misc category, and the insides of large pipes! The tile menu can be navigated using WASD keys. Many large tiles have a collision requirement. Holding G while clicking will automatically place the required geometry for you. This allows you to build things like pipes or complex machines without revisiting the geometry editor, or to construct rooms almost entirely out of tiles. However, you will still need to visit the geometry editor at some point for the bulk of your room’s padding. Where you will paint the traditional tile “materials” over solid walls.
The colored dots in the picture are walls painted with a specific material. These are applied as the level is rendered! For now we are still just focusing on layer 1!
A Second Render[edit source]
Things are starting to come together now! We can do a second little peak at how the room plays. After all, we’ve likely done some tweaks with our detailing.
Something is still missing however. Using only the first layer of Rain World’s rooms can only give us so much detail! This level needs some DEPTH!
Depth, and the Art of Backgrounds[edit source]
Lets head back into the editor! In the geometry editor, use the layer tool in the bottom left to change to layer 2, and paint over the places we want to place a “back wall” to our room! This layer is also one that creatures can climb on. Blue lizards often do this!
Some details on the first layer will also “bleed” into layers behind them. This happens most with the insides of pipes and large chimneys! You can see in the screenshot that I have not placed any layer 2 walls behind the pipe segments at the bottom of the room’s vat area. I’ve done this so that the back wall will not cover over the inside of the pipes during the render! Once you are done painting, save, export text, and do a render! Lets do another test of how our level looks!
A Third Render[edit source]
Yet another render, and more to see and tweak! We can fix any mistakes easily as we go. You can also skip each rendering step, and do all the layers at once if you are confident with the editor! I’ll be doing a third layer, and correcting all the issues on layer 2 by the next section. All the info you need is in the official editor’s article here: Level Editor. There is also a large guide of all tiles and materials, and how they look once rendered here: https://imgur.com/a/Vz3Kk
The next steps involve tweaking, rendering, retweaking, and rerendering until you are happy with the base design of your level! Remember, that some creatures use layer 2 to climb on walls, but layer 3 is far enough in the background for nothing to interact with it! Layer 1 is solid to all creatures with few if at all exceptions. Make sure you cannot get trapped in your level!
Effects and You[edit source]
It’s time to start painting! Now that you’ve solved any issues on your tile layers, and painted yourself a background layer. You are now ready to start painting effects! Remember though. Each effect slows down the render of the level quite a bit. From now on it will begin to get more time consuming to fix mistakes in the level! Especially once you start making larger rooms! Effects are what make Rain World rooms look special. They alter, distort, and deform your tiles. Grow plants, and even alter tiles entirely! The effects editor has an example image of every effect, and its basic usage outline in this article: Effects Editor.
For the basics though! BlackGoo and Slime; These two effects are used in nearly every screen in Rain World to some degree! Slime makes every tile look slightly drippy and goopy. Like a mess has been rubbed onto them. BlackGoo forms the outer “shadow” of rooms. Both of these work together to make your room look less repetitive and clean!
Yet another rendering[edit source]
Look how far we’ve come! From an empty screen with nothing. To a room that feels like it is simply missing “something” before it is finished! Things like the brickwork along the sides passing over the BlackGoo( It only applies itself over certain materials!) can be corrected using large junk or dirt where you would want the BlackGoo down there.
You can also apply other effects till you are happy with the room. This includes everything from rubble, distortions, plants, and even daddy long leg corrupted walls! The only limits is your imagination to making effects work together, and the tiles you have to use! Once you’ve applied the effects you want, and have re-rendered till the level looks right. Next up is to add some props to our room!
Fancy Props and Design[edit source]
Remember to always save and keep backups! Some editor tabs can be more fussy then others!
Props are used to detail your room even further. Allowing you to place details without the grid, and at any angle and distorted shape you want! The control are outlined in the article here: Prop Editor. While this is not too complex of a section. Adding a few proper can help break the rather straight geometry normally present in Rain World’s levels by giving them some more curved shapes to look at. Such as tubes and valves between containers or machines!
Once you are all setup, we can render and move onto using the dev tools to configure the rooms more fine details! Remember. You can always re-render and re-export a level as many times as you need. At no point does a level become impossible to edit. With the one exception of losing its project save file!
Dev tool configurations[edit source]
We can now move onto using the Dev Tools to configure the level’s more detailed settings! Everything from the room’s colors, effects, and even how the rain timer affects this room!
Want a section of outskirts with some kind of lightning machine? Go ahead! Want to make a flooding cave system? It’s all in here! The room’s palette is not tied to the region. However most regions have “templates” that you can use to automatically set room settings to. Instead of needing to do each room one by one the same way. You can change anything you need to away from the template default, or click “NONE” beneath in the template section to use purely your own settings.
The rooms palette can also be configured to fade between it, and another palette. Allowing you to configure the exact colors you would need. The various effects can also be configured to use Color1 or Color2 of the effect palettes. These are used to set the colors of plants. Giant signs, and even daddy long leg corruption!
Exploring the dev tools documentation will give you far more info and ideas then me directly telling you every possible situation. Remember that some objects and room settings require a reload of the room to appear! Don’t forget to add sounds and some environmental ambience to flesh out your room, to make it feel like a unique location in this world!
A very IMPORTANT notice! Be sure to click the save button before you reload the room somehow! Or your changes will be lost! All of these configurations are save to ROOMNAME_settings.txt.
Over and Over Again[edit source]
The process of making a full region is filled with this! Making rooms from the ground up, detailing and configuring them, before linking another room onto the chain. The only real difference is that you are doing so from the gates of your own region, instead of a small room connected to the side of outskirts! There are already a few pages of documentation related to connecting in a new region yourself! The main one can be found here: Adding new Regions. The details of how to setup creatures and connections for the region are here: World File Format. Finally, the dev tool’s map editor for making your region properly show as a map in game is here: Map Tab. I’ll likely be expanding this guide at some point in the future, but for now this is the basics of how to create a room from scratch! Look through the other articles for things like: Raising the water level, setting up creature spawns, understanding doors, adding food, placing objects and plants, adding sounds and effects, specific room triggers, and the various special room settings!
And remember! Have fun!
Why Do My Rooms Crash?[edit source]
There are multiple reasons Rain World will dislike your rooms or connections. These are a few common, and more niche reasons why the game may be crashing.
Doors outside of room bounds:[edit source]
ALWAYS place every part of a short cut’s path inside the room’s boundary. Any short cut paths outside of it are ignored and will break the game when loaded. Crashing to a grey screen on file load.
Accidental Doors and Dens:[edit source]
The editor is a strange tool. It also has a second cursor in geometry mode… for some reason. An accidental key press may have placed a den, short cut entrance, or other kind of door in the room without proper connections. Take a peak over your room for any issues.
Incorrect Region Prefix:[edit source]
the prefix at the start of a room file should match the region you are placing it inside. For this guide we focus on tests rooms inside of outskirts ( SU_ ). If you are bringing these rooms to a custom region by renaming them, be sure to open the room’s data file, and edit the first line to match the renamed version of the file.