Posts by Skiwee

Willkommen in der Transport Fever Community

Welcome to the fan community of Transport Fever and Train Fever, the economic simulators of Urban Games. The community is free for you to share and inform yourself about the game. We cultivate a friendly and objective interaction with each other and our team will be happy to answer any questions you may have.


Registration and use is of course free for you.


We wish you a lot of fun and hope for active participation.

The Team of the Transport-Fever Community

    Hi everyone,

    So 3 days ago I finally released my KiwiRail AK Class on Steam, my end everything works fine. However users (4 so far) are commenting that there game is crashing to the desktop (either with error or without I have no idea).

    Nothing is more ...:thumbdown: ... going threw a working mod only to look for a bug, I'm not experiencing.

    I question the validity of there report and question what hardware it is there using (my computer is all ready 9 years old).

    Just asking here as I'm tempted to just throw in the towel and take it down.

    Hi Ladies & Gents,

    I have a question that's vaguely on-topic with labelList's;

    I was wondering if it's possible to have each wagon individualy numbered/lettered, eg. A, B, C, D, E, F enz. as emissive text.

    I was hoping that the Custom type would somehow be able to do this but as I understand it I still need some kind of input (like how many wagons are connected to the locomotive).

    I'm not very good at creating strings from scratch, as to why I'm calling on anyone with more experiance.

    Any disscussion on the topic is very helpful.

    Is anyone working on a tutorial for setting up fbx import enz. ?

    I'm curious about setting up animations (So I don't having to manually remake all of mine).

    I've had this idea of implementing a random texture to one of my mods sinds Train Fever. this would be fantastic to have I just haven't got the knowledge to figure it out yet. There must be a way using a .lua script, or with groupFileName I have my fingures crossed.

    So how do I rescale a model in the mdl?

    Use the tool Xanos made: Transformation Matrix
    copy/paste the code into the .mdl file.

    1. transf = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, },

    I've always been keeping an eye on NS content and would love to see it in the game, but personally I'd start from scratch as this version of the VIRM was made for 3d-printing and not Train Fever (the reason the doors are fixed and the groups where never setup which is why it pivots on it's centers/origin).
    I'ld do it my self but I know there are others that have made an attempt or try'ed. Besides that I'm rather busy with my own projects;[Blocked Image:]
    this is an old screen-shot, but you get the idea (it's such a big/complex project I've been taking it slow). I've also been rather intimidated by the new .con system that I've been putting it off (not being sure where to start).


    Thank you, so I will also try to see if scale will work lol. But it seems scale mean nothing? Perhaps for smokes it's useful.

    I've used scaling with my End-of-train device to minimize the light(emitter) bleeding threw the mesh (practical application). I'm sure there are other uses for it as wel, I've just not had the need for it besides that. Also there are scripts (vehicleutil.lua) to animate rods/piston's of steam-locomotives that use it.

    p.s. Smoke uses the particle-emitter system:


    Ok. It's clear, is there any scale transform animations?

    There is using the animation type "KEYFRAME_MATRIX":

    There's also a third animation type which is "FILE_REF", which references an .ani file with time and transf data.


    OK. Are the animations applied to the whole mesh/blob?

    Yes they are and activated via events in the .mdl file and can also cascade down .grp files.

    For Blender I've looked for a exporter but all thats available is an importer (which doesn't help me here).
    I've managed to get my hands on a copy of Max but I'm so new to it, I may as well be chasing cheese in a maze. I think (not sure where I can see uvmaps) I've managed to import a mesh with both uv's, but exporting it to .ase I've had zero luck (end result only gives me 1 uv).
    I've tried .dae but the mesh gets distorted in crazy ways by the converter.

    I've had far more succes with hex-editing and almost works like a charm. I say almost because "ModelViewer" still crashes and I don't know why or whats missing. But works ingame.

    edit: I accualy found my "almost" problem was just a copy/paste mistake using map_albedo_opacity insted of map_albedo what it should be.

    You can have a look at this files: BR 193 - Siemens Vectron (TPF)

    I created a second uv with the help of a hex editor ;)
    Not really comfortable - but working well. But don't know wether wavefront (obj) does support a second uv map saved within a single file.

    Sadly wavefront(obj) doesn't support multiple-uv's. collada(dae) and filmbox(fbx) do, they're currently the only formats I've played with and I like the .fbx flexibility so far, I'm not sure what other formats can/can't.

    Thx @mediziner I'll take a swing at it with a hex-edit (don't suppose there are any details you could pass on?).

    Ok. I will try to figure it out tonight. I don't know much about vehicle modding so perhaps I need your help.


    Could you provide a full set of mdl and material/textures so that I can test by myself easily?

    I can provide an unconverted example. Even my work-around still lacks the first uv-map and was just a means to get it working in-game (untill we get a converter that suports multi-uv), my method also causes the model-viewer to crash. I can give an example but currently the only files that have a first/second working uv-map are the ones provided with the game (which is I think every vehicle).
    If it where posible to open a .msh.blob I'ld know a lot more I think.
    I spent a few hours comparing converters and except for the indices being copy/paste from the normal = { }, your spot-on so I think the problem might be within the .msh.blob (orientation can always come later or leave it to the user).

    Also I can confirm my original thought was correct as I was e-mailed this:

    Quote from Christian - UrbanGames

    Usually the logos are created as follows :

    • Create a submesh for the logo.
    • Assign the model’s UV to it. This will be [uv0] and specify where on the original mesh the logo lies.
    • Create a second UV set. This will be [uv1] and specify which part of the logo texture is used.
    • Export the logo mesh with the two UV sets. You need an exporter which can handle multiple UV sets.

    I'm tempted to want to figure out how to write a converter, but thats like learning to swim in the deep end of the pool. my level of skill is reading/modifying scripts not writing them from scratch.

    in "indices" section there are an error: there are two uv0s, the second should be uv1
    however, what lead to crash is the texture path, check if it's correct, currently you need to added the path by yourself

    Yea I know all that.
    I was just sharing the raw data TpFMC was generating, so you could see what it's doing. Of course I edited it before testing and it caused a crash. I didn't have time to look into it. Later tonight when I have time I'll see what I can figure out.

    I love how clean it is, has great potential 8)

    I think managing multiple uv's broke it though, as doing a regular mesh it tries to add the uv1 even when there is no second uv-map.

    But when there is (.fbx test, I've included my file below as well) generates:

    I also have to rotate the fbx z -90° > x 90° for the correct orientation, but that might just be me Blender plugin I have to rotate z-90° and when exporting .obj orientation is perfect.


    Yea thats for adding extra materials. So prime example are repaints (have 1 mesh with multiple textures). they get configured in the .mdl file and in the .msh file would then have the list of materials.
    Taking the v100 as an example again:

    in the .mdl when

    1. -- MODEL
    2. matConfigs = {
    3. {
    4. 0,
    5. },

    it shows: vehicle/train/db_v100.mtl

    1. -- MODEL
    2. matConfigs = {
    3. {
    4. 1,
    5. },

    it shows: vehicle/train/db_v100_second.mtl

    Submeshes are then represented like:

    1. -- MESH
    2. matConfigs = {
    3. {
    4. 0, 0, -- first material and first submaterial
    5. }, {
    6. 1, 1, -- second material and second submaterial
    7. },
    8. },

    the srn6 has an example of submeshes: