Map Creation - saikedemon/omori-modding GitHub Wiki
Required Tools
To start creating custom maps (or editing vanilla ones) you will need a few things:
- RPGMAKER MV (for data editing)
- Tiled (for tile editing)
- Playtest copy of the game assets (see the mod workspace page)
Setting Up Tiled
As stated on the resources page, Tiled is the application of the game's maps and tilesets. Note: This is the visual aspect of the maps, the data and events stored in the maps are accessed via RPGMAKER.
Tiled 1.0.3
This is an older version of Tiled, and it is the version that is the most stable out of the box for omori modding. You just follow the instructions here to install it and you're ready to make maps!
Later Versions of Tiled
For any versions of Tiled beyond 1.0.3, more specifically the latest version, the maps created on it will be unstable when put into the game. The latest version is linked here.. To correct this there are a few things you will have to do.
First, Download the TerrainTiles.json
file found here, and replace it with the one in your playtest copy. The file should be located in the "maps" folder.
Next, download the Tiled Map Fixer plugin on the page linked here to the js/plugins
folder.
The maps should now work fine on your playtest copy and when packaged into a proper mod!
Creating a New Map
Maps can be created from RPG Maker's main interface. You can either right click on the maps list toward the left or press the enter key to create a new map. You'll know if you're doing it right if the menu shown below appears.
The creation menu is straightforward but if you're struggling to understand it I would advise watching tutorials on how RPG Maker MV works. What's important here for Omori modding specifically is that you remember the id and the width and the height set, but if you need a refresher that information can be found toward the bottom of the screen.
In the image shown here, the map's id is 516, and the dimensions are 40x40 (in order of widthxheight). I recommend remembering the location of these items as you'll reference them often!
Now you have to make the Tiled map file. If you don't do this, the map will not load in game! This is usually the next step you'd want to take anyways as you can only set tiles and collision in Tiled.
Open Tiled. A template file for maps can be found in the game's maps folder, titled map00_Template_32x32.json
. It is highly recommended to use this file as a base for your own map, but if you're interested in learning how to create the maps from scratch a Youtube tutorial can be found here. To use the file as a base, open it then go to
File>Save As...
at the top left menu. You will want the save the map as map[id], in the maps folder. For example, using the map in the previously shown image, the map's name would be map516.json
. It is important that you save the map in the maps folder and not the data folder. The data folder contains the map data from RPG Maker and not Tiled!
The template map comes with layers and properties already prepared for you. They're even labeled! All you have to do to use it now is resize the map, which you can do by going to Map>Resize Map...
on the top left menu. You should change the width and height to the one of your own map's. Again following the previous image example, the width and height would both be 40.
Map and Data Editing
In Tiled
Tiling/Map editing in Tiled is rather simple, but you're confused on the basics, you can find a YouTube guide here. Here's just some core things to remember:
Layers
Like in any editing program, layers higher up on the list in Tiled will appear overtop of the lower layers. In addition, there are three extra layer levels!
Layers labeled GROUND
will appear below the player character, layers labeled SAME AS CHARACTER
will appear on the same level as the player character and above the ground layers, and layers labeled with ABOVE ALL
will appear above the player character and all other layers. (It's important to note that usually level objects such as chairs and tables are actually put on the ground layer, but with collision tiles on top to prevent character movement through them)
Collision
There is a tile based collision system in Tiled that Omori uses, using the tileset TileCollision_32x32.json
found in the "maps" folder. If the tileset doesn't appear in the tilesets tab, then open the file in a separate tab and it should appear. The tiles for collision must be put on the COLLISION
layer or else they won't work! The layer isn't visible in game so don't worry.
The red tile in the tileset, found at the top left is for spaces that can't be passed through in any direction. This will be your go-to for most collision purposes. The tiles with arrows on them indicate the directions in which the tiles can be passed through. Any side that has a dot on them is still impassable, though.
Tilesets
Tilesets in Tiled will appear toward the right side of the screen. You can click on one tile to select it for placement, or click and drag to select a whole section of tiles at one time. This is especially useful for placing objects more than one tile in length, such as buildings and tables.
The different tilesets will appear as tabs that can be selected toward the top of the menu. They can be added for use in your own map by opening the tileset or a map that uses it on a separate tab or by going to Map>Add External Tileset...
and selecting the tileset from there. All of Omori's tilesets are found in the "maps" folder and are named according to their use.
Terrains
Terrains are complex tile patterns that are automated for ease of use. You can access Omori's terrains by opening TerrainTiles.json
on a seperate tab. To use them, you go to the bottom right side of the screen and switch the tab from Tilesets to Terrains. You can select the terrain that you want and then click and drag on the map, "blocking in" the shapes. Terrains make placing commonly used cliffs and walls incredibly easy so it's recommended to use them for this purpose.
Tiled Levels
Using Tiled you can make certain layers visible based on where the player has been, for instance a bridge, that can appear above the player if they walk under it, or appear below the player if they walk above it. Tiled levels use a minimum of 5 new layers to your map, and therefore is a little complicated to setup.
To Level layers
With that being said, lets start with the layers that will transition to a different level, this is done with To Level - X
layers, as seen here:
While the name of the layer itself doesn't matter, the properties of the layer do, adding a string property onto a layer and typing in level
specifies what level this layer is, and by itself the level property doesn't do much. Going back to our To Level
layer, we want to not only add a level
property, but also another string property toLevel
after which we want to set a value to them, for To Level - 0
(which will sent the player to level 0 when they walk those tiles) we want to set its properties like so:
And on To Level - 1
we want the opposite values for the properties:
So now tiles placed on To Level - 0
will sent the player to level 0, while tiles on To Level - 1
will sent them to level 1, for reference any layer without a level
property is level 0.
level
and hideOnLevel
properties
So now that we have the ability to get the player onto a different level, we need to setup something to actually change in the map, lets use the bridge example once more, first we want to make a new above all layer that is on level 0, after adding in the priority
and zIndex
properties we want to also add level
of 0 and hideOnLevel
of 1, hideOnLevel
, as the name suggests, hides this layer when the player is on the specified level, in this case that being 1. Here is a example as to how this should look:
On this layer we created, we want to place a bridge (or whatever it is you want to appear above the player when they are on level 0), after which, we want to duplicate this layer and flip the level
and hideOnLevel
, alongside changing its name and priority
and zIndex
properties accordingly, like so:
Now this ground layer will appear when the player is on level 1 while hiding the above all layer.
Collision Layer
With that we have one more layer to create, a extra collision layer, it is recommended to save this until the map is completely done and do collision last, we need to modify the existing collision layer like so:
this collision will be active when the player is on level 0 (when they enter the map, this collision will be used), duplicate this layer and flip the hideOnLevel
and level
properties like so:
This new level 1 collision layer is where we need to set the collision for when the player is able to walk onto the bridge. When the player is on level 0 and enters the map, they should be able to walk under the bridge no issues, but when we want the player to walk on top of the bridge, we obviously don't want the player to be able to walk off the bridge, so you need to change this level 1 collision layer to account for that.
Only other thing to mention is that regions need to be level'd also, using the same properties level
and hideOnLevel
.
In RPG Maker MV
RPG Maker MV is where you can change things such as the map's music, background, and most importantly, the events on the map, including flavor text. Note that the Tiled map will not appear on the software normally, so most maps will appear almost invisible. All of the tiles on the map should correspond to that specific tile on the Tiled map, for example, The tile (26,5) on the Tiled map will be the same one as (26,5) on the RPG Maker map. This is important to keep in mind when trying to position an event for flavor text, or put an NPC on top of a specific object such as a chair.
Showing Tiled Maps in RPG Maker
If you're struggling to grasp the connection between Tiled and RPG Maker you can export the tiled map as an image by setting the zoom in Tiled to 150% at the bottom right, then going to File>Export As Image...
. Save the image to img/parallaxes
, only checking the specific options shown on the image below.
You will now be able to change the parallax to the Tiled map on RPG Maker's map settings menu, which can be accessed by either right clicking the target map or by hitting the space key with the map selected. The map should now appear, making Event placement significantly easier!
Event editing
To create a new event or edit an existing one, double click on any of the tiles in RPG Maker. Events will appear as tiles with thick white borders, and can be selected by left or right clicking on them. They can even be copied, cut, and pasted when selected using the CTRL+C
, CTRL+X
, and CTRL+V
commands, respectively. For reference, here is what the menu should look like when you create or edit and event.
A detailed guide on what can be done in RPG Maker's event menu will be created later. For now, I would recommend going onto YouTube for tutorials on RPG Maker MV's event system!