Getting started

First of all, you'll need to acquire the map editor project from the official GitHub repository. This is the only download method. You can follow the same instructions for this step as detailed here. I also advice new Unity users to read this section as well, with some of the basics you'll need to work on Orchid Rain content. The Orchid Rain map editor is a Unity project, that means that you'll need to download and install Unity. Refer to the links provided for more information on how to install the correct version of Unity.

Building your first map file

After opening the project you might see something like this. For this project I've chosen a different Layout than the Modding Template project.

You'll also note the presence of a new panel called ProBuilder. You can ignore it for now, as I'll explain what it's for and how to use it on a later chapter of this guide.

In case you don't see the map in this screenshot, you can find it browsing through the Project panel in Examples > Template_Mission.

We'll now try to build this map into a file that the game will be able to load. First we'll take care of the metadata information of our level. Create a new empty GameObject in the scene by pressing "Ctrl + Shift + N". Rename the new GameObject to "LevelContainer". This step is necessary, and the name cannot be something else, otherwise your map will not load. In the Inspector, with LevelContainer selected, press the Add Component button and type "level info" in the search field. Select and add that component.

Fill all the fields with the information you want your map's metadata to have. The image field requires a square image, of about 512 x 512. This image needs to be imported as a Sprite. To do this, drag and drop an image somewhere in the Project panel. Then, click on this image, and in the Inspector, under Texture Type, select "Sprite (2D and UI)" and hit Apply at the bottom.

After your Level Info component has been filled, you need to turn it into a Prefab. To do this, drag the LevelContainer in the Hierarchy and drop it into the Project panel. If the icon of your GameObject turns blue, it means that it is now a prefab. You can now delete your LevelContainer GameObject from the Hierarchy panel by selecting it and pressing the Delete key in your keyboard.

Now, select the LevelContainer prefab in the Project panel, and all the way down in the Inspector, you'll see a small black window that says "AssetBundle". To the right of that label is a dropdown field. Click on it and select New. Then type the name of your map. At this point, the level of your map can't have spaces in it. You can use "_" or "-" in its place. I'll just type "tutorial_map".

We've just defined an Asset Bundle. Orchid Rain uses Asset Bundles for mods and maps. We need to create an Asset Bundle for the map itself now. Let's locate the map's scene in the Project panel. Go to Examples > Template_Mission. Once you're in that directory you'll see another folder and a file with a Unity icon. The Unity icon symbolizes a "scene" file. Scenes in Unity are basically "levels" for a game. A scene normally contains a whole level, and with Orchid Rain it's no different. Template_Mission is a bare-bones level I created to give you a working example that you can use to get started with your levels.

Usually, together with a scene there's a folder that share's the scene name. Inside that folder you will find lighting and navmesh data belonging to the level. We'll tackle those concepts later. For now, you don't need to do anything with those files. We'll select the Template_Mission scene file, and create an Asset Bundle just as we did with our LevelContainer.

Warning

It's possible that Unity might freeze when you assign an Asset Bundle name to a scene file. This is a bug from Unity. As a precaution, make sure you've saved your work before doing this. Go to the File menu, and select Save (Ctrl + S). If Unity freezes, use the Task Manager to close it.

The name of your level's scene Asset Bundle has to be the same name you chose for the LevelContainer's Asset Bundle, with an add "_map" at the end. So, in my case, I'll have to name my level's Asset Bundle "tutorial_map_map". If you name it as anything else, your map won't load.

If Unity crashed, check your scene file to see if the Asset Bundle name got assigned. It always does, but to be sure you can see if it did.

When the two Asset Bundles are defined, you need to build them. Do this by going to the AssetBundleBuilder menu and selecting Build. You'll have to wait a short duration before the files are compiled. Once this process finishes, go to the StreamingAssets folder in the Project panel. You'll see 6 files. Right click any of them and select Show in Explorer.

Once the Windows Explorer opens, you'll see even more files. Only two of them are useful to use, the rest can be deleted. It's easier to identity the files if you look at their sizes. They should be the two biggest. Create a new folder and name it as the name you chose for your level + "_data". In my case that would be "tutorial_map_data". If you name it anything else, your map won't load. Place your "_map" file (the biggest one) in that folder.

This is so because the game first looks for the level's metadata file and stores its name. When you choose a level, the stored name will be used to search for the map file to be loaded. If you name the files with different names, the game won't be able to find the correct files and the map won't be able to load.

Now, well need to grab the metadata file and the folder containing the map and place them in the game's folder. In the game's folder, go to:

Orchid Rain - Mission X build_Data > StreamingAssets > maps

You can put your files in that location.

Open up the game and go to Mission Browser. See if you can find your map. Click on it to load it. If it loads and you can play the map to the end, then have yourself a cookie. On me.