Modding

Modding Changes 1.15.0

Recomendations

  • Some new models utilizing the "sc" suffix or prefix are still work in progress and it is likely that they might change significantly in some next patch. For this reason it is recommended that you avoid using them in your mods at this time.
  • When basing you model on the original ones, add to your mod also ALL original /automat/ files used by it. The names of the files are generated as SHA1 hash of theirs content so whenever we change the parameters of the material in any way, a different file will be used to store them and the original file might cease to exist if there is no other model utilizing the original parameters.
  • When modifying original models, always include ALL compoments of the model (pmg+pmd) instead of just those you changed. Otherwise you risk crash if we change the model.
  • As always when adding new objects to files which support multi-file approach (e.g. road_look.sii) it is HIGHLY RECOMMENDED to use suffix or prefix in the name to avoid conflicts with new objects we are adding in patches. Otherwise you might have to use the batch renaming functionality (see Batch renaming) to fix the conflicts when new patch appears.

Misc useful commands

  • Running the game with -unlimitedlog command line parameter will disable the standard 1MB limit on size of game log file. This might be useful during update if you want to focus on some bugs first.
  • Running the game with -validate command line parameter or executing validate command on the console will run special game mode which will load all defined models, prefabs, vehicles and other objects to detect missing textures and similar errors. By examining the game log you can determine what the game was trying to do when error appeared. Note that there is still lot of things which might be wrong which are not checked in this mode.
  • Running the game with -error_overlay command line parameter will show overlay with number of error and warning messages printed to the log once at least one such message is printed.

How to convert map

  • Visit small truck dealers and do the following
    • Set proper variant of the prefab model to match the brand it sells.
    • Set the look to default if it was set to something else previously.
    • Select prefab, unselect the main node of the prefab (so only signs remain selected) and press delete to delete the existing signs.
    • Use "Add prefab signs" to add new signs
    • Select proper model for the prefab-based "Give way" sign based on country or drop the sign entirely if you already using a custom one.
    • Remove any unwanted signs.
    • Do any necessary corrections in the surrounding (e.g. grass, terrain, signs)
  • Save map
  • Do rebuild (F8)
  • Save map

Changes

Changes in cargoes

The cargo attribute heavy was renamed to valuable to correspond to its real usage.

Changes in economy_data

The attributes reward_bonus_heavy and exp_heavy_bonus were renamed to reward_bonus_valuable and exp_valuable_bonus to correspond to the real usage.

Changes in city data

Optional property city_name_sort has been added to city_data unit. It is used for sorting cities on various screens instead of city name if defined. It should be used for cities that has non-basic characters in name and basic sorting is not sufficient (eg. Łódź).

Changes in truck dealer

The mechanism used for handling the truck dealers was replaced to allow for bigger number of prepared configurations however it is still limited to one definition file per brand.

The small truck dealer prefab did change. It is now necessary to select the proper variant for the truck branch it represents, regenerate the signs and it might be necessary to do small corrections in its surrounding.

Changes in animated models

While this change did already happen in 1.14, it was not mentioned in its modding info. As part of speed optimizations, the skinning now takes advantage of the knowledge that skinning info in our model format should have the sum of weights of all bones affecting a vertex set to 1.0. If you have model which does not meet this requirement, its vertices will be pulled towards or pushed outwards from the origin of the model depending on the sum.

Changes in vehicles

Multiple dashboard colors

The luminosity materials on the truck dashboard now support up to 16 different sets of colors. The color slots are defined using dashboard_color array in the interior. The color slot used for part of the geometry is selected using integer part of UV coordinates of the geometry. See new dashboard_color.sui in our trucks.

Changes in trailers

The game now respects the trailer model look if one is specified in the trailer definition.

Removed redundant definitions of chemical/fuel cisterns (the company look was always assigned automatically). If you are using one from those removed trailers in your cargoes, you need to update them to point to the base one.

Changes in editor

Added experimental bezier patches

The editor now supports creation of terrain based on bezier patches. Please note that this is still experimental feature and might change in future versions.

Additional optional checks

  • Item connection check - this check is performed only on 'AI-enabled' roads and prefabs. It checks if there are smooth AI navigation line transitions from one item to another. It generates error messages like "Connection error (Offset: ... Node: ... ".
    • The Offset value is the key in determining what is wrong:
      • In case of offsets around 4.5 and larger (4.5 m is the width of one road lane) it is most often a map bug. It usually means there are two incompatible items connected to each other (for example UK road and non-UK prefab) However, it can also mean that there are some input/output prefab curves incorrectly assigned to nodes.
      • In case of smaller offsets, it is most probably a prefab bug. This usually occurs when input/output prefab locators are not exactly in the center of corresponding road lanes.
  • Navigation check - this check is performed only on items which are shown in the map. It checks if it is possible for navigation to compute a route between items. It generates error messages like "Error navigating to prefab at node ... ".
    • For example, it can be caused by connecting a one-way road to a prefab in the opposite direction (map bug -> to solve it, connect items correctly).
    • Another example is when there is no prefab navigation curve leading to/from a road where player can drive (prefab bug -> to solve it, add missing curves).