Table of Contents
How to add custom train retextures for MTR
This guide will tell you how to retexture existing trains for MTR mod.
MTR4 format is used in this tutorial.
Before we get started
Minecraft Transit Railway mod utilises Blockbench models (BBMODEL) for all train models. One single PNG file is used as the UV for each model. By specifying another file in mtr_custom_resources.json, you can create a train retexture without modifying the texture from the main mod.
Dependencies
- Blockbench. You will need this to view the models and check the UV position.
- A Raster graphics editor that supports transparency. You will need this to edit the textures. You can use editors such as Paint.NET and Photoshop. Microsoft Paint for Windows 10 or below does NOT support transparency.
- A text editor. Using Notepad is sufficient, but you can use applications designed for coding such as VS Code.
Editing a texture
Some train textures may share the same model (such as Class 802 and all LRVs).
- Open Bloackbench, and apply the texture you've downloaded by dragging to the Textures area on the bottom left. A dialogue show show, asking you if you want to import the texture / replace the file. Click either of them.
- Now you can select a cube to find its UV position and start retexturing. By clicking the eye icon to the right of each cube / group you can hide / unhide cubes.
Adding a texture
- Go to your .minecraft folder.

- Then find the resourcepacks folder

- Create a folder with a name that you want (for example: My custom signs)

- Create a new folder inside of the existing folder called
assets. - Upload a pack.png to your folder, this image will show in the resourcepack selection screen and should be 128×128.
- Download this template pack.mcmeta and put it into your resourcepack folder:
- pack.mcmeta
{ "pack": { "description": "put your pack description here", "pack_format": 9 } }
The pack format is what version of Minecraft the pack is for. If you are only adding MTR models or textures, this is not important.
However, if you feel the need to add a number, it is recommended to use 8 or 9, as they correspond to versions 1.18 and 1.19 respectively.
If a pack tells you it's “not compatible”, just remember that the only thing that changes that is this number, so it really doesn't say much.
- Create a new folder named
mtrin the assets folder.
- Create a text file inside the folder named
mtr_custom_resources.json
JSON files
The mtr_custom_resources.json defines all custom resources that you want to add. The template is provided below.
- mtr_custom_resources.json
{ "vehicles": [], "signs": [], "rails": [], "objects": [], "lifts": [] }
Adding your custom texture
- Create a folder under
mtrwith a name that you want (for example:custom_trains). Now drop your custom texture there.
Note that you can only use a-z, 0-9, - and _ for the folder name. CAPITAL LETTERS, white spaces and any other characters are not acceptable.
- Add in the custom icon that you wanted to use.
Typically, an icon for signs is 128 x 128 in size.
Registering the sign data
- Return to the
mtr_custom_resources.json. Inside the square brackets of“vehicles”, find the vehicle properties that you want to apply your custom textures to. A full reference is available here. - Replace the
idto an ID that you like. Only a-z, 0-9, -, _ and ! are accepted. - Replace all values in
textureResourceundermodelswith the path to the train texture. DO NOT do this to any of the door overlay models.
If you want to have a train without the door overlay, simply remove the models with door overlay properties and models defined.
- Save the JSON file.
Please remember to validate your JSON file. Websites such as JSONLint may be used to validate your JSON. Minecraft will NOT load any custom resources in a mtr_custom_resources that is invalid!




