Map Editing Guide - Deijin27/RanseiLink GitHub Wiki
To edit 3D models of maps you will need RanseiLink v5.0 or above, as well as an external 3D modelling software. This guide will use blender, but if you have experience with another software you should be able to get the job done with that too.
Also make sure you have clicked the button "Populate Graphics Defaults" on the home screen of RanseiLink.
Create a new mod, and enter into it. Navigate to the "Map" tab, and within there the "Import/Export" tab.
You will see multiple export options.
- PSLM
- PSL is the "code name" of pokemon conquest. This file contains the map data that you can edit on this page, EXCEPT THE 3D MODEL. That is, locations of gimmicks, pokemon, terrain types, elevation values etc.
- PAC
- PAC is the 3D model data as it is stored in the game in a single file. This does not include the data in the PSLM. This may be useful for moving maps, or as a convenient way of sharing your final results.
- OBJ
- OBJ is Wavefront OBJ. This is a standard format that can be imported and exported from most 3D editors. It will actually export a collection of files all related to the OBJ.
We will be exporting to OBJ. Once exported you will see a folder like this:
The files you see in this folder:
- OBJ
- OBJ is Wavefront OBJ.
- MTL
- This is a Wavfront Material Template Library. This is a companion file to the OBJ, containing the materials used by model
- PNG
- These are the textures used by materials in the MTL
- NSBTA
- Nitro Sdk Binary Texture Animations: This is nintendo ds's UV animation format, e.g. moving lava. I haven't got an exporter working for these yet, so if you are just adding to an existing model the animations should continue to work, otherwise just omit this file before importing.
The way you import into and export from blender is important, follow these steps carefully.
Launch blender and delete the default objects to have a clear scene:

You can open the obj in blender File > Import > Wavefront (.obj)
:
THE SETTINGS ARE VERY IMPORTANT:
The default settings should be correct, but make sure it says "split by objects"

Loaded correctly the scene should look like this.

View the textures on the texture paint tab:
The model is quite big, so it will likely look clipped. You, bagon, can increase the clipping distance with View
and turn on the sidebar, then on the View
tab of the sidebar, increase the clip end.
I will show you some basic edits, but it is beyond the scope of this tutorial to properly teach you 3D modelling.
- The PSLM defined in ranseilink is centered on your 3D model.
- One square on the grid in RanseiLink is equivalent to 100x100m in the 3D model.
- If you assess the elevation map in RanseiLink, you will see that they tend to choose heights in specific steps, multiples of 12.5m.
- The orientation of the map in RanseiLink corresponds to +X an -Y in the 3D model:
Edit the textures as you wish, keep in mind you have palette count limits. ATM the importer uses 256 color palettes for everything, and only supports full-transparency, not semi-transparency. This is not set in stone however.
The command simplify palette <imagePath> <maxColors>
may help you simplify the image.
I will add a simple cube for this example.
Hit Shift+A
and select cube to add a cube
It will appear in the scene collection on the right. You can rename it, but remember there is a 16 character limit on names. Scale the cube up using the scale tool. I have named it "polygon17", scaled it up, and moved it to above the water.
On the texture paint tab, you should select the cube object, and see in the bottom right it has no material yet. Click "new" to add a material.
Click new and it creates a new material. Rename the material if you like, making sure to stay within the 16 character limit. You can edit diffuse, ambient, specular color, and alpha.
In the material info, by "Base Color" click the yellow dot and select "Image texture".

Now you can choose an image from your file system, but we are going to click to create a new image
Because of how texture width and height are stored, a dimension can only have values: 8, 16, 32, 64, 128, 256, 512, 1024.
I will create a 64x64 texture for the cube. The name must be less than 13 characters because the palettes are stored as <texture_name>_pl so we have 3 less than the normal 16 length name limit.

Then edit the texture. It has the cube UV map, but you can create a more complex shape and unwrap the UV, but this is just general 3D modelling knowledge that you will need to learn. For now, this is what I have, a cube with a smiley face:
Make sure to save the image Image > Save
, then we can export the model.
File > Export > Wavefront (.obj)
The settings are once again very important.
"Objects as OBJ objects"

You should see the obj and mtl files appear. The textures will be wherever those files were located originally, and wherever you saved your custom textures too. Be careful moving the obj file around, since these may be relative paths. You can easily open the mtl file in a text editor and see, and change if necessary.
You open the .obj in a text editor to confirm things are looking right. If exported with the correct settings, you should see a o
line for each object in blender: o polygon0
, o polygon1
etc.
As mentioned earlier, decide whether you need to include or omit the NSBTA. Then proceed with importing.
Back on the map import/export tab in RanseiLink, choose the option Import 3D Model From OBJ
. Pick the obj, and it will import it. Above it will now say "3D Model is Overwritten: true".
You will also want to modify the PSLM elevation and terrain to match your 3D model on the relevant tabs.
