Rotators

Rotators are used to transfer power from the powertrain to a physical structure. They work in a way similar to pressureWheels , but without the tire and wheel generation system.

This is mostly used in cases where your vehicle is powered by something other than wheels. Examples include propellers, paddle wheels, train wheels and track sprockets.

They can also be used for continuously rotating objects like the spinner and roller props.

As with wheels, any rotator structure should be built around an axle defined with 2 nodes, which needs to be solidly attached to the rest of the vehicle.

Required arguments

string
type
The name of the wheel
This will be used when referring to the rotator in other sections, like the powertrain.
string
type
The nodegroup of the structure’s nodes.
This identifies the nodes that will be driven by the rotator.
string
type
The first axle node.
string
type
The second axle node
string
type
Name of the stabilizing node
Each node from the hub will attach to this node with a beam. It’s mostly legacy and not generally used. Putting 9999 in will disable it.
string
type
Along with nodeCoupling, this node will be used to apply braking counter torque to the suspension and body.
NodeArm should should located roughly where the brake caliper should be. Keep in mind that this node needs to be far enough from the nodeCoupling, and heavy enough. A node that is too close, or too light for the set braking torque can cause instability in the braking system, resulting in poor braking performance and brakes that overheat when the parking brake is applied.
string
type
The direction that drive torque is applied.
The correct value (1 or -1) depends on which order you define the axle nodes.

Optional arguments

Basic settings and dimensions

These arguments define the size and position of the wheel, along with some basic structural parameter

float
type
Object radius in meters

This is used when the rotator has a speedometer enabled, to give a dimension to calculate the speed.

For tracked vehicles and trains this can be changed to any value with the goal of getting an accurate speed reading.

string
type
Defines if the wheel will be used when calculating speedometer speed.

Should only be used for rotators whose rotation speed has a direct correlation with ground speed.

Should be turned off for boat and plane propellers.

string
type
Along with nodeArm, this creates a lever that will apply braking torque to the suspension or body.

If this is not defined, the inner axle node will be used.

It should be located in the center of the wheel, where the center of the brake disc would be located. It should be heavy enough for the desired braking power.

string
type
Along with torqueArm and torqueArm2 forms a set of nodes that will be used to apply counter torque to the suspension or body.

The torqueCoupling node should be defined either at the differential, or differential output node.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

If torqueCoupling or torqueArm are not defined, the game will default to not generating drivetrain torque reactions.

string
type
Along with torqueCoupling and torqueArm2, forms a set of nodes that will be used to apply counter torque to the suspension or body.

This node should be located on the same structure as the torqueCoupling, and not move compared to it during typical driving. The engine itself, axle, or suspension subframes can be decent choices depending on the suspension and powertrain layout.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

If torqueCoupling or torqueArm is not defined, the game will default to not generating drivetrain torque reactions.

string
type
Along with torqueCoupling and torqueArm, forms a set of nodes that will be used to apply counter torque to the suspension or body.

Will default to one of the axle nodes if not defined.

Should be part of the same structure as torqueCoupling and torqueArm, and not move compared to them during typical driving. The engine itself, axle, or suspension subframes can be decent choices depending on the suspension and powertrain layout.

As with nodeArm/Coupling, nodes that are heavier and further appart will allow for more torque to be transmitted before running into stability issues.

This node should also not form a line between it, torqueArm2 and torqueCoupling.

string
type
The top node of the steering axis.
This is mostly used by the advanced suspension UI tool to calculate caster.
string
type
The bottom node of the steering axis.
This is mostly used by the advanced suspension UI tool to calculate caster.
string
type
Defines beams which, when broken, disable drive torque to the wheel.
These beams should be the beams representing the half-shafts, which transfer power from the differential to the wheels.
float
type
A value of 0 disables drive torque, a value of 1 allows engine torque to drive the wheel.
This is deprecated and has been replaced with the powertrain system. Should be left at 0.

Brakes arguments

These settings affect the parameters that apply to the brakes on this wheel.

Most parameters are related to the brake thermals system, which calculates the amount of energy heating up the rotor, and how quickly it cools.

float
type
0
default
The braking torque when using the service brake (Nm).
float
type
0
default
The braking torque when using the parking brake (Nm).
float
type
10
default
The flexibility of the braking torque (Nm/rad).
This is mostly used for stability purposes, with the brake torque having some level of flexibility to avoid running into instability problems in the wheels and suspension. This value should be proportional to the weight of the wheels and reaction nodes.
boolean
type
false
default
Enables thermals for the brakes.
float
type
0.35
default
The diameter of the rotor at the pad contact point. (Meters)

Used for the thermals calculations.

Defines the cooling area of the brakes.

float
type
10
default
The mass of the rotor (kg)

Used for the thermals calculations.

Affects the thermal inertia of the brakes. Heavier rotors will heat up and cool down more slowly.

string
type
vented-disc
default
The type of rotor

Used by the thermals calculations, and affects how quickly the rotors cool down.

The available options are “vented-disc, disc and drum”

string
type
steel
default
The material of the brake rotor

Used by the thermals calculations, and affects the heat capacity of the rotors, their maximum operating temperature, along with how quickly they cool down.

The available options are “steel, aluminum, aluminium, carbon-ceramic and godmode”

float
type
How much aeration the brakes are getting
Simulates the effect of brake ducts and other similar systems on the brake cooling.
string
type
basic
default
The material of the brake pad.

Affects the braking force vs temperature curves.

The available options are “basic, premium, sport, semi-race, full-race.”

float
type
1
default
Percentage of brake input at which the brakeSplitCoef will apply.
Should be between 0 and 1. Allows to have a point at which braking force rises slower, to have progressive or digressive brakes.
float
type
1
default
Braking curve when brake input is above brakeInputSplit.
Values below 1 will result in a digressive braking curve. Values above 1 will result in a progressive curve.
float
type
0
default
The inherent level of brake squeal generated by the brakes.
Should be 0 for modern brakes.
float
type
0
default
The inherent level of brake squeal generated by the brakes at low speeds.
Should be 0 for modern road brakes.
float
type
1
default
The level of brake squeal generated by glazed brake pads.
float
type
false
default
Indicates if the brakes have ABS enabled.
float
type
0.18
default
The target slip ratio to be achieved by ABS under braking.
float
type
100
default
Vibration frequency of the ABS
ABS works by pulsing the brakes. This parameter changes the pulsation frequency.
number
type
0.05
default
Smoother to replicate delay when pressing the brakes.
Mostly relevant with air brakes.
number
type
0.1
default
Smoother to replicate delay when releasing the brakes.
Mostly relevant with air brakes.

Example

"rotators":[
    ["name","[group]:","node1:","node2:","nodeArm:","wheelDir"],
    {"radius":1.000},
    {"brakeTorque":100000, "brakeSpring":10000},
    {"rotatorType":"rotator"},
    ["roller_D", ["roller_D"], "roller_D_L_6", "roller_D_R_6", "support_L_8", -1],
    ["roller_U", ["roller_U"], "roller_U_L_6", "roller_U_R_6", "support_L_8", 1],
],
Last modified: July 10, 2024

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.