This guide will tell you how to retexture existing trains for MTR mod.
MTR4 format is used in this tutorial.
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.
Some train textures may share the same model (such as Class 802 and all LRVs).



assets.{
"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.
mtr in the assets folder.mtr_custom_resources.json
The mtr_custom_resources.json defines all custom resources that you want to add. The template is provided below.
{
"vehicles": [],
"signs": [],
"rails": [],
"objects": [],
"lifts": []
}
mtr with 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.
Typically, an icon for signs is 128 x 128 in size.
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. id to an ID that you like. Only a-z, 0-9, -, _ and ! are accepted.textureResource under models with 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.
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!