SnowRunner

SnowRunner

Discover a wealth of new maps, vehicles, modes, and more, all created by the community! Discover something new every day and expand your SnowRunner experience.

Find the game on Epic Games, Xbox, Playstation, Facebook, Twitter, Instagram, Reddit, Forums, Discord.

Integration of Trucks and Addons. Part #4.

This guide describes the integration of Trucks and Addons. Part #4 of this guide covers tags and attributes used for description of Suspensions, Engines, Gearboxes, Wheels, and Addons (Chapters 9-14).

11 comments

Posted by on (updated ago)


Please refer to:

  • Part #1 of this guide - for the general info on modding files (Chapters 1-4).
  • Part #2 for general aspects of the XML structure (Chapters 5-6).
  • Part #3 for description of tags and attributes used for Meshes and Trucks (Chapters 7-8).

This part describes particular tags and attributes used for Suspensions, Engines, Gearboxes, Wheels, and Addons. The hierarchy of sections below corresponds to the hierarchy of tags.

NOTE: When describing attributes, we will mark mandatory attributes with *.

If you want an offline copy, you can download this full guide in PDF format from here and Russian here.

9. <SuspensionSetVariants>

The root tag of the suspensions class file.

9.1. <SuspensionSet>

Section that contains suspensions. This section contains a set of suspensions for all axes of the truck.

Attributes:

  • Name="ank_mk38_suspension_default"
    * The name of a set of suspensions.
  • UiName="ank_mk38_suspension_default"
    UI name of the suspension. By default: "".
  • DamageCapacity="200"
    Amount of the allowed damage. By default: 0. Value range: [0; 64000].
  • CriticalDamageThreshold="0.4"
    Critical damage threshold. By default: 0.7. Value range: [0; 0.999].
  • BrokenWheelDamageMultiplier="2"
    This coefficient is responsible for increasing the damage to the suspension when a wheel is broken (has a flat tire). By default: 1. Value range: [0; 100].
    When a blow goes to a particular wheel and it becomes Broken, the damage to the suspension is multiplied by this coefficient.

9.1.1. <Suspension>

Suspension. Determines the interaction of the wheel with the truck.

Attributes:

  • WheelType="rear"
    * Type of the wheel. Allowed values: front аnd rear. In the XML file of the truck, it is described by the Location attribute of the Wheel tag.
    See the "8.1.2.1. <Wheel>" section.
  • Height="0.15"
    * Suspension height. Wheel shift along the -OY axis relative to the position defined by the Pos attribute of the Wheel tag (in the truck description). See the "8.1.2.1. <Wheel>" section.
    Value range: [-1000;1000].
  • Strength="0.15"
    * Suspension stiffness. Value range: [0; 1000].
  • Damping="0.3"
    Damping.
  • SuspensionMin="0.3"
    * Minimum suspension travel. (The position that the wheel can take in case of the full lowering of a suspension.). Value range: [-1000; 1000].
  • SuspensionMax="0.3"
    Maximum suspension travel. (The position that the wheel can take if the suspension is in the operating condition and its stiffness is a zero when the wheel hangs in the air). Default value: 1. Value range: [-1000; 1000].
  • BrokenSuspensionMax="0.25"
    * Maximum suspension travel for a broken suspension. Value range: [-1000; 1000].

9.1.1.1. <GameData>

Info on the interaction of the suspension with the environment.

Attributes:

  • Price="4200"
    Price.
  • UnlockByExploration="false"
    Whether it is unlocked by exploration. I.e., if this option is “true”, the suspension will be locked in the Store, until you find it on the map. Values: true, false
  • UnlockByRank="1"
    Unlocking by the rank.

9.1.1.1.1. <UiDesc>

Attributes:

  • UiDesc="UI_SUSPENSION_DEFAULT_DESC"
    Description of the suspension.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.
  • UiName="UI_SUSPENSION_DEFAULT_NAME"
    Name of the suspension.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.

10. <EngineVariants>

The root tag of the engines class file.

10.1. <Engine>

Engine.

Attributes:

  • Name="ru_scout_old_engine_2"
    * Name of the engine.
  • FuelConsumption="0.6"
    Fuel consumption. By default: 0.5. Value range: [0; 100].
  • DamageCapacity="120"
    Amount of allowed damage. By default: 0. Value range: [0; 64000].
  • CriticalDamageThreshold="0.9"
    Critical damage threshold. By default: 0.7. Value range: [0; 0.999]. After this threshold, fuel consumption and engine power are changed.
  • DamagedConsumptionModifier="1.3"
    The maximum value of the change in fuel consumption after engine failure.
    By default: 1. Value range: [0.1; 32].
    If engine damage exceeded DamageCapacity*CriticalDamageThreshold, then the fuel consumption starts to increase linearly, from FuelConsumption to FuelConsumption*DamagedConsumptionModifier (the latter value corresponds to the situation when the engine is completely broken).
  • EngineResponsiveness="0.04"
    Engine responsiveness (speed of increase of the engine speed). By default: 0.04. Value range: [0.01; 1].
  • Torque="40000"
    * Torque. By default: 0. Value range: [0; 1000000].
  • DamagedMinTorqueMultiplier="1.0"
    The multiplier for torque when the damage to the engine has reached the CriticalDamageThresold threshold. By default: 0. Value range: [0; 1].
  • DamagedMaxTorqueMultiplier="0.7"
    Multiplier for torque when the engine is close to complete breakdown. By default: 0. Value range: [0; 1]. After passing the threshold, the multiplier value changes linearly from DamagedMinTorqueMultiplier to DamagedMaxTorqueMultiplier.
  • BrakesDelay="0.5"
    Braking Delay. By default: 0. Value range: [0; 1].
  • MaxDeltaAngVel="0.01"
    * Limiter for the maximum angular acceleration of the wheels. The smaller it is, the slower the car accelerates. By default: 0. Value range: [0; 1000000].

10.1.1. <GameData>

Info on the interaction of the engine with the environment.

Attributes:

  • Price="4200"
    Price.
  • UnlockByExploration="false"
    Whether it is unlocked by exploration. I.e., if this option is “true”, the engine will be locked in the Store, until you find it on the map. Values: true, false.
  • UnlockByRank="1"
    Unlocking by the rank.

10.1.1.1. <UiDesc>

Attributes:

  • UiDesc="UI_SUSPENSION_DEFAULT_DESC"
    Description of the engine.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.
  • UiName="UI_SUSPENSION_DEFAULT_NAME"
    Name of the engine.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.

11. <GearboxVariants>

The root tag of the gearbox class file.

11.1. <Gearbox>

Gearbox.

Attributes:

  • AWDConsumptionModifier="1.1"
    The coefficient of change in fuel consumption during all-wheel drive usage. Default value: 1. Range of values: [0; 32].
  • CriticalDamageThreshold="0.5"
    Percentage of damage, after which the box begins to show signs of failure: the vehicle starts to switch from particular gears to neutral gear from time to time (see MinBreakFreq and MaxBreakFreq below) and the fuel consumption increases.
    Default value: 0.7. Range of values: [0; 0.999].
  • DamageCapacity="120"
    Amount of allowable damage.
    Default value: 0. Range of values: [0; 64000].
  • DamagedConsumptionModifier="1.4"
    The maximum fuel consumption modifier. This multiplier is used for fuel consumption when the gearbox is completely broken.
    Default value: 1. Range of values: [0; 32].
  • FuelConsumption="1.8"
    Basic fuel consumption of the gearbox.
    Default value: 0.1. Range of values: [0; 10].
  • IdleFuelModifier="0.2"
    Fuel consumption multiplier when the vehicle stands still with the running engine.
    Default value: 0.3. Range of values: [0; 10].
  • Name="g_scout_default"
    The name of the gearbox.
  • MinBreakFreq="0.0"
    The minimum frequency of switching to neutral gear, at the moment when the durability has reached the CriticalDamageThreshold. See CriticalDamageThreshold above.
    Default value: 0. Range of values: [0; 60].
  • MaxBreakFreq="15.0"
    The maximum frequency of switching to neutral gear, at the moment when the durability approaches zero. See CriticalDamageThreshold above.
    Default value: 0. Range of values: [0; 60].

11.1.1. <ReverseGear>

Reverse Gear.

Attributes:

  • AngVel ="2.0"
    The maximum angular speed of the wheel when this gear is active. Default value: 0. Range of values: [0.1; 32].
  • FuelModifier ="0.9"
    The fuel consumption multiplier when this gear is active. Default value: 1. Range of values: [0; 10].

11.1.2. <HighGear>

High Gear. The “H” gear.

Attributes:

  • AngVel ="2.0"
    The maximum angular speed of the wheel when this gear is active. Default value: 0. Range of values: [0.1; 32].
  • FuelModifier ="0.9"
    The fuel consumption multiplier when this gear is active. Default value: 1. Range of values: [0; 10].

11.1.3. <Gear>

Gear. There are as many of these tags as many gears the gearbox has.

Attributes:

  • AngVel ="2.0"
    The maximum angular speed of the wheel when this gear is active. Default value: 0. Range of values: [0.1; 32].
  • FuelModifier ="0.9"
    The fuel consumption multiplier when this gear is active. Default value: 1. Range of values: [0; 10].

11.1.4. <GameData>

Info on the interaction of the gearbox with the environment.

Attributes:

  • Price="4200"
    Price.
  • UnlockByExploration="false"
    Whether it is unlocked by exploration. I.e., if this option is “true”, the gearbox will be locked in the Store, until you find it on the map. Values: true, false.
  • UnlockByRank="1"
    Unlocking by the rank.

11.1.4.1. <GearboxParams>

The presence of gears in the gearbox.

Attributes:

  • IsHighGearExists="true"
    “H”. If false, the button is inactive (the <HighGear> tag does not make sense in this case). Default value: true.
    image 48 image 49
  • IsLowerPlusGearExists="true"
    “L+”. First gear (the first <Gear> tag by order of occurrence in the XML).
    image 50
    If false, the button is inactive. Default value: true.
  • IsLowerGearExists="true"
    “L”. Maximum angular velocity 0.45*AngVel from the first gear (see the IsLowerPlusGearExists attribute above). If false, the button is inactive.
    Default value: true.
  • IsLowerMinusGearExists="true"
    “L-”. Maximum angular velocity 0.2*AngVel from the first gear (see the IsLowerPlusGearExists attribute above). If false, the button is inactive.
    Default value: true.

11.1.4.2. <UiDesc>

UI block.

Attributes:

  • UiDesc="UI_GEARBOX_SCOUT_DEFAULT_DESC"
    Description of the gearbox.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.
  • UiName="UI_GEARBOX_SCOUT_DEFAULT_NAME"
    Name of the gearbox.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.

12. <TruckWheel>

The root tag of the wheel class file, when a wheel is a single entity.
This tag is used for wheels, where a tire and a rim are a single entity.

Attributes:

  • Mesh="wheels/trailer_sideboard_2"
    Path to the Fbx file of a wheel.
  • Mass="100"
    Mass of the wheel.
  • Radius="0.594"
    The radius of the wheel, which is used to create the collision cylinder in Havok. The wheel described in such a way cannot be scaled. Therefore, this radius must match the outer radius of the tire in the Fbx file.
  • Width="0.44"
    Width. This parameter is used to create a collision cylinder in Havok, to determine the area where the ​​dirt is sticking to the tread of the tire and to identify the width of the track. The specified width should match the width of the tread in the Fbx file.
  • DamageCapacity="50"
    Amount of the allowed damage. Value range: [0; 64000].

12.1. <WheelTracks>

Tracks of tires.

  • TextureAlpha="tracks/default_alpha__s_d.tga"
    Path to the map of the wheel track, relative to the .../textures/ folder.
  • TextureHeight="tracks/default_height__s_d.tga"
    Path to the map of normals of the depression depth, relative to the .../textures/ folder.

12.2. <WheelSoftness>

Softness of Tires.

  • RadiusOffset="0.02"
    * The radius of the collision object of the wheel equals to the difference between the radius of the wheel (the Radius parameter specified in the <TruckWheel> tag) and this offset (RadiusOffset). Default value: 0. Value range: [0; 0.25].
  • SoftForceScale="0.32"
    * The multiplier of the body momentum in case of collisions with other collision objects. Default value: 1. Value range: [0.1; 1].

12.3. <WheelFriction>

Friction of the wheel.

  • BodyFriction="3"
    * Friction with soil, with bare terrain without dirt, and with other collision objects.
    Default value: 1, Value range: [0.1;10].
  • BodyFrictionAsphalt="1.5"
    Friction with the road. Default value: BodyFriction, Value range: [0.1;10].
  • SubstanceFriction="1.2"
    * Friction with dirt. Default value: 1. Value range: [0;10].
  • IsIgnoreIce="true"
    Whether or not the ice surfaces should be ignored. For example, this parameter is used for tires with chains.

13. <TruckWheels>

The root tag of the wheel type class file, when a wheel is a set of tires and rims.
A type of a wheel that contains several interchangeable tires and rims.

Attributes:

  • DamageCapacity="50"
    * Amount of allowed damage. Value range: [0; 64000].
  • Radius="1"
    * Wheel radius. It should match the outer radius of the tire in the Fbx file. This is the radius of the collision object of the wheel in Havok. We recommend making wheels with a radius of 1 meter. In this case, when the wheel is installed on the truck, the value of the Scale parameter from the <CompatibleWheels> tag will correspond to the desired wheel radius for a particular truck. See the "8.1.23. <CompatibleWheels>" section.
  • Width="0.58"
    * Wheel width. The specified width should match the width of the tread in the Fbx file. This is the height of the collision cylinder of the wheel in Havok. It is used to determine the area where the dirt is sticking to the tread of the tire and to identify the width of the track.
  • RadiusRear="1.2"
    The radius of the rear wheel. It must match the radius of the mesh of the rear wheel that has the "tire_back" name. By default is the same as Radius.
  • WidthRear="1.2"
    The width of the rear wheel. It must match the width of the mesh of the rear wheel that has the "tire_back" name. By default is the same as Width.

13.1. <TruckTires>

Section that describes tires.

13.1.1. <TruckTire>

Tire. Single tire or a pair of front and rear tires.

Attributes:

  • Mesh="wheels/tire_medium_highway_double_1"
    * Path to the Fbx file of the tire.
  • Name="highway_2"
    * Name of the tire. This name will be displayed in the debug menu. It is also used to determine the default tires of the truck.
  • Mass="100"
    * Mass of the wheel.
  • RearMassScale="2"
    Scale of the mass of the rear wheel. Using this parameter, you can make twin rear wheels heavier than single front wheels.

13.1.1.1. <WheelTracks>

Tracks of the wheels.
Tracks of the front and rear tires may be different. So, this tag can be used twice for a single <TruckTire> tag.

Attributes:

  • TextureAlpha="tracks/default_alpha__s_d.tga"
    Path to the map of the wheel track, relative to the .../textures/ folder.
  • TextureHeight="tracks/default_height__s_d.tga"
    Path to the map of normals of the depression depth, relative to the .../textures/ folder.
  • Rear="true"
    Flag that indicates that the tracks belong to the rear wheels.

13.1.1.2. <WheelSoftness>

All attributes are similar to the attributes of the WheelSoftness tag of the wheel as a single entity. See the "12.2. <WheelSoftness>" section.


13.1.1.3. <WheelFriction>

Attributes:

  • BodyFriction, BodyFrictionAsphalt, SubstanceFriction, IsIgnoreIce are the same as the corresponding attributes of the WheelFriction tag of the wheel as a single entity. See the "12.3. <WheelFriction>" section.

  • UiName="UI_TIRE_TYPE_OFFROAD_NAME"
    Name of the type of tires in the UI. This field links this tire to one of the tire categories in the UI (in the Garage). The value of this field cannot be custom. It must be one of the following predefined values:
    • UI_TIRE_TYPE_HIGHWAY_NAME – highway tires
    • UI_TIRE_TYPE_ALLTERRAIN_NAME – all-terrain tires
    • UI_TIRE_TYPE_OFFROAD_NAME – off-road tires
    • UI_TIRE_TYPE_CHAINS_NAME – chained tires
    • UI_TIRE_TYPE_MUDTIRES_NAME – mud tires

13.1.1.4. <GameData>

Info on the interaction of the tire with the environment.

Attributes:

  • Price="4200"
    Price.
  • UnlockByExploration="false"
    Whether it is unlocked by exploration. I.e., if this option is “true”, this tire will be locked in the Store, until you find it on the map. Values: true, false
  • UnlockByRank="1"
    Unlocking by the rank.

13.1.1.4.1. <UiDesc>

UI block.

Attributes:

  • UiDesc="UI_TIRE_HIGHWAY_DESC"
    Description of the tire.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.
  • UiName="UI_TIRE_HIGHWAY_DOUBLE_1_NAME"
    Name of the tire.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.

13.2. <TruckRims>

Section that describes rims.

13.2.1. <TruckRim>

A single rim or a pair of rims.

Attributes:

  • Mesh="wheels/rim_medium_highway_allterrain_double_1"
    * Path to the Fbx file of the rim.
  • Name="rim_1"
    * Name of the rim. This name will be displayed in the debug menu. It is also used to determine the default rims of the truck.

13.2.1.1. <GameData>

Info on the interaction of the rim with the environment.

Attributes:

  • Price="4200"
    Price.
  • UnlockByExploration="false"
    Whether it is unlocked by exploration. I.e., if this option is “true”, this rim will be locked in the Store, until you find it on the map. Values: true, false.
  • UnlockByRank="1"
    Unlocking by the rank.

13.2.1.1.1. <UiDesc>

UI block.

Attributes:

  • UiDesc="UI_RIM_MEDIUM_DOUBLE_1_DESC"
    Description of the rim.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.
  • UiName="UI_RIM_MEDIUM_DOUBLE_1_NAME"
    Name of the rim.
    NOTE: You can just put your text in this XML attribute, in double quotes (e.g. you can specify "Some text goes here" as a value). Or, you can use a string identifier (e.g. "UI_STRING_IDENTIFIER") here and localize the value of this field to different languages. For details, see the "UiName & UiDesc: Names, Descriptions, and Their Localization" guide.

14. <TruckAddon>

The root tag of the addon class file.

14.1. <WheelRepairsHide>

Spare wheels visibility section.

14.1.1. <Mesh>

There may be several of these tags.

Attributes:

  • Frame="wheel1"
    The mesh name that is defined in the Fbx file.
  • HideThreshold="0.4"
    Threshold for hiding. In percent.
    Usage: Consider that the number of spare wheels in the TruckData tag is two (WheelRepairsCapacity = "2"). In this case, to hide two wheels as they are spent, you will need:
    -- for one Mesh tag, specify any HideThreshold value in the half-interval of [0.5; 1).
    -- for the second Mesh tag, specify the value in the half-interval of [0; 0.5).
    If you specify a value of 0.4 in this example, then the wheel1 mesh will be hidden when both spare wheels are used up.

14.2. <RepairsHide>

Repair kit visibility section.

14.2.1. <Mesh>

Similar to WheelRepairsHide. See 14.1.1. above.

14.3. <FuelHide>

Section for visibility of removable fuel tanks.

14.3.1. <Mesh>

Similar to WheelRepairsHide. See 14.1.1. above.

14.4. <TruckData>

Properties of the addon itself (not related to the behavior of bones).

Attributes:

  • FuelCapacity="100"
    Fuel capacity.
  • RepairsCapacity="150"
    Repair kit quantity.
  • WheelRepairsCapacity="3"
    Number of spare wheels.

14.4.1. <Shakers>

See the "8.1.10. <Shakers>" section in the Part #3 of this guide.

14.4.2. <Intake>

See the "8.1.15. <Intake>" section in the Part #3 of this guide.

14.4.3. <LimitedFluid>

See the "8.1.14. <LimitedFluid>" section in the Part #3 of this guide.

14.4.4. <Damage>

Changes in the parameters of the damage of the truck upon installation of the addon.

14.4.4.1. <Multiplier>

Damage multiplier.

Attributes:

  • Multiplier="0.8"
    Multiplier. Default value: 1. Value range: [0; 10].
  • Type="Engine"
    Type. Values: Engine, FuelTank.

14.5. <Snorkel>

See the "8.2. <Snorkel>" section in the Part #3 of this guide.

14.6. <Rotator>

See the "8.3. <Rotator>" section in the Part #3 of this guide.



For description of tags and attributes used for the creation of custom skins and colorization - please refer to Part #5 of this guide.

11 comments

Join the community or sign in with your gaming account to join the conversation:

MrGTAmodsgerman
MrGTAmodsgerman @mrgtamodsgerman

is it possible to add custom engine sounds including horn?

blamelessleaf
blamelessleaf @blamelessleaf

you can add custom sounds for new vehicles that you'll create, you cannot change sounds of existing vehicles

TexasDrifter
TexasDrifter @txdrifter

not true, i have done it

M
Maypeur @maypeur

How do we tracduct labels like UiDesc ?

TrumanStarr
TrumanStarr @truman1588534191

Yeah, I would really like to know this as well. Also, is it by any means possible to edit the UiDesc values of the base game without creating a separate mod?

10
1000100010 @jeroenv1982

Sorry for the dumb question; what make the truck drives faster or slower in dirt/water? Is that SubstanceFriction? If yes, and 1 is default; does value 5 means more or less friction / truck speed trough dirt?

CZ
ChealonZeang @chealonzeang

More Value more friction

CO
codypickoski @codypickoski

im trying to do my own editing but i dont seem to know the method to pack the zip files properly, i tried to see how people did it but i cant open the archives from mod.io it gives an error...anyone have any insight?

S
Stellarvorha @stellarvorha

Where can you edit what addons can go on which truck? (The main bed addons, like flatbed and fifth wheel etc.)

Evilomatic
Evilomatic @evilomatic

Is there a section about moving Axles? or is this not possible?

Zukakis
Zukakis @zukakis

SuspensionMin/Max value is added to the value set with Height or it's an absolute value (World Coord)? Example: if SuspensionMin is -0.2 and Height is 0.3, does it mean that at max compression the wheel/suspension move up of 0.2 respectful to the "rest" position? Sorry if it is a dumb question but I can't wrap my head around it for some reason. THX