This page explains how to use the RKSL Arma 3 Vehicle PhysX Tuning Tool to create a first-pass config.cpp and model.cfg export for simulation = “carx” and simulation = “tankx” vehicles.
The tool is here:
Use the tool as a structured data-entry and export aid. It does not replace in-game testing. Final values still need validation in Arma 3 using the actual P3D, memory points, geometry LOD, wheel selections, engine sound setup, and addon inheritance.
Before opening the tool, collect as much of this source material as possible.
| Data needed | Best source | Fallback source |
|---|---|---|
| Vehicle dimensions | Manufacturer data sheet, technical manual, or measured model dimensions | Measure in Object Builder from the P3D |
| Mass | Real vehicle combat/curb mass or project design target | Closest vanilla/mod vehicle with similar size |
| Wheel radius and width | Tyre size or model wheel mesh | Measure wheel selection in Object Builder |
| Axle positions | P3D wheel centres or memory LOD points | Even spacing from wheelbase |
| Track width | Left wheel centre to right wheel centre at each axle | Front/rear track from real spec sheet |
| Centre of gravity | Geometry LOD mass distribution and project handling target | Start near wheelbase centre, slightly forward for most road vehicles |
| Engine power and torque | Engine data sheet, dyno graph, or real vehicle manual | Tune from a similar Arma 3 vehicle |
| Gear ratios and final drive | Transmission data sheet | Use similar vehicle ratios, then test acceleration and shift points |
| Wheel memory names | P3D Memory LOD and model.cfg named selections | Use the tool defaults, then rename to match the model |
| model.cfg inheritance | Existing project model.cfg and base model class | Start from Car or the existing project base class |
The tool assumes Arma model-space style measurements:
Y is vehicle length.Y is forward.Y is rearward.Y is measured relative to the vehicle centre or model origin used by the project.The generated wheel classes use two wheels per axle:
| Tool side | Exported wheel class pattern | Meaning |
|---|---|---|
| Left | L1 to L10 | Left wheels, front to rear |
| Right | R1 to R10 | Right wheels, front to rear |
The editable wheel base names drive these exported names:
| Export field | Default pattern | Source |
|---|---|---|
center | {base}_axis | Memory point at wheel centre |
boundary | {base}_bound | Memory point on tyre edge/radius boundary |
boneName for CarX | {base} | Rotating visual wheel bone |
boneName for TankX | {base}_damper | Damper bone used by TankX |
suspForceAppPointOffset | {base}_axis or custom suffix | Suspension force application point |
tireForceAppPointOffset | {base}_axis or custom suffix | Tyre force application point |
| model.cfg damper selection | {base}_damper | Damper translation bone/selection |
| model.cfg damper axis | {base}_damper_axis | Axis for damper translation |
| model.cfg steering selection | {base}_steering | Steering yaw bone/selection |
| model.cfg steering axis | {base}_steering_axis | Axis for visual steering |
| model.cfg rotation selection | {base} | Rotating wheel selection |
| model.cfg rotation axis | {base}_axis | Wheel rotation axis |
Open the tool and select the simulation branch first.
| Option | Use when | Notes |
|---|---|---|
CarX wheeled vehicle | Cars, trucks, trailers, wheeled APCs, and ordinary steerable wheeled vehicles | Uses rotating wheel bones and standard CarX wheel steering/braking behaviour. |
TankX multi-wheel/tracked vehicle | Tracked vehicles, skid-steer vehicles, and heavy multi-wheel vehicles where TankX behaviour is preferred | Arma 3 TankX PhysX supports up to 20 wheels, with 10 wheels per side. TankX wheels are not steerable in the normal CarX sense. |
For TankX layouts, keep all left-side wheels in one line, all right-side wheels in one line, and use the same wheel size across the driven ground-contact wheels. Add only wheels that meaningfully contact the ground. Sprockets and idlers do not need to be simulated unless they affect ground contact; if they are included and should not suspend, set maxCompression and maxDroop to 0.
| Field | Where to find it | What it affects |
|---|---|---|
Class name | Addon naming plan or existing CfgVehicles class | Exported vehicle class name. |
Inherits from | Existing config.cpp base class | Parent class in the generated CfgVehicles entry. |
Display name | Vehicle naming plan | Exported displayName. |
maxSpeed km/h | Real spec sheet or design target | Exported maxSpeed and used for derived speed actions. |
brakeIdleSpeed m/s | Start from similar vehicle config | Exported directly as brakeIdleSpeed. |
Use the Arma 3 Config Viewer or source config to find a close parent vehicle. Prefer a known project base class over inheriting directly from a vanilla class if the addon already has shared vehicle base classes.
| Field | Where to find it | What it affects |
|---|---|---|
model.cfg class | P3D filename without .p3d, or existing CfgModels class | Generated class CfgModels entry. |
model parent class | Existing project model.cfg | Parent model class inherited by the generated model class. |
skeleton class | Existing project skeleton naming convention | Generated class CfgSkeletons entry and skeletonName. |
skeleton parent class | Existing project model.cfg | Parent skeleton class inherited by the generated skeleton. |
sections[] | Named selections used for hidden selections, texture swaps, damage materials, or other section-level control | Exported sections[] list. Leave blank if not needed. |
The generated model.cfg creates CfgSkeletons and CfgModels scaffolding for damper, steering, and wheel rotation animations. The exported names must match real named selections and memory axes in the P3D.
| Field | Where to find it | What it affects |
|---|---|---|
thrustDelay s | Similar vehicle config, then tune in game | Engine response delay. |
accelAidForceCoef | Similar vehicle config, then tune launch behaviour | Low-speed acceleration aid. |
accelAidForceSpd m/s | Similar vehicle config | Speed range over which acceleration aid applies. |
accelAidForceYOffset | Test value from similar vehicle | Longitudinal offset of acceleration aid force. |
slow forward coef | Design target | Derived slow driver action speed. |
normal forward coef | Design target | Derived normal driver action speed. |
Source note | Free text | Stored in JSON only, for handoff notes. |
| Field | Where to find it | What it affects |
|---|---|---|
Wheel layout | Count the active axle pairs | Generates 4×4 through 20×20 layouts. |
mass kg | Vehicle data sheet or design mass | Axle load, sprung mass, TankX turn-force starting point. |
wheelbase m | Front axle centre to rear axle centre | Generated axle spacing when measured layout is off. |
front track m | Front left wheel centre to right wheel centre | Generated front track and preview width. |
rear track m | Rear left wheel centre to right wheel centre | Generated rear track and preview width. |
CG Y offset m | Geometry LOD mass centre or chosen handling target | Axle load distribution. Positive moves mass forward. |
CG height m | Geometry LOD mass centre above ground | Rollover and handling tuning reference. |
For a quick first pass, use real vehicle dimensions and leave measured layout off. For a serious export, enable measured layout and enter every axle station from the model.
Enable use measured layout when the model has known axle positions.
Measure each axle station from the model centre:
Y position.The preview mockup scales from these measured stations and tracks, so unusual layouts should be checked here before moving to wheel names.
| Field | Where to find it | What it affects |
|---|---|---|
wheel radius m | Tyre radius from spec sheet or Object Builder measurement | Exported radius, wheel circumference, wheel MOI, gear speed estimates. |
wheel width m | Tyre width from spec sheet or model | Exported width. |
wheel mass kg | Real wheel/tyre mass or estimate | Wheel MOI calculation. |
dampingRate | Similar vehicle config | Normal wheel damping. |
damping damaged | Similar vehicle config | Damaged wheel damping. |
damping destroyed | Similar vehicle config | Destroyed wheel damping. |
The tool derives:
wheelCircumference = 2 * pi * wheelRadiusM wheelMOI = 0.5 * wheelMassKg * wheelRadiusM^2
The MOI formula is a practical solid-cylinder approximation for a first pass. Tune MOI and wheel damping in game, especially for TankX vehicles where wheel MOI and damping have a large effect on acceleration, braking, and maximum speed.
Enter the wheel base name for each active wheel. The base name should match the project's P3D naming convention.
Example for axle 1:
| Wheel | Base name | Generated centre | Generated boundary | CarX boneName | TankX boneName |
|---|---|---|---|---|---|
| Left front | wheel_1_1 | wheel_1_1_axis | wheel_1_1_bound | wheel_1_1 | wheel_1_1_damper |
| Right front | wheel_2_1 | wheel_2_1_axis | wheel_2_1_bound | wheel_2_1 | wheel_2_1_damper |
For each base name, confirm these exist in the P3D:
Use templates to adapt the export to the real model naming convention.
| Field | Default | Meaning |
|---|---|---|
damper selection | {base}_damper | Selection/bone moved by suspension travel. |
damper axis | {base}_damper_axis | Memory axis used by damper translation. |
steering selection | {base}_steering | Selection/bone rotated for visual steering. |
steering axis | {base}_steering_axis | Memory axis used by steering rotation. |
steering angle deg | 35 | Visual steering rotation angle used in model.cfg. |
{base} is replaced with the wheel base name. If a model uses shared axes, enter the shared axis name without {base}.
The generated model.cfg animation stack per wheel is:
damper.steering, only on axles listed as steering axles.wheel for CarX.wheelL or wheelR for TankX.| Field | Where to find it | What it affects |
|---|---|---|
steering axles | Vehicle steering design | Sets steering = 1 on those wheel classes and exports steering animations. |
service brake axles | Vehicle brake design | Applies maxBrakeTorque to listed axles. |
handbrake axles | Vehicle brake design | Applies maxHandBrakeTorque to listed axles. |
service brake Nm | Brake spec or similar vehicle | Brake torque on service brake axles. |
handbrake Nm | Brake spec or similar vehicle | Handbrake torque on handbrake axles. |
unbraked torque Nm | Usually 0 | Brake torque on axles not listed for service braking. |
Use comma lists or ranges, for example:
1 1,2 1-3 2,4-6
For TankX, wheel steering should normally stay off. Use TankX turning fields in Step 8 instead.
| Field | Where to find it | What it affects |
|---|---|---|
front compression m | Suspension travel or measured model travel | Front maxCompression. |
front droop m | Suspension travel or measured model travel | Front maxDroop. |
rear compression m | Suspension travel or measured model travel | Rear maxCompression. |
rear droop m | Suspension travel or measured model travel | Rear maxDroop. |
front frequency | Handling target | Front spring strength calculation. |
rear frequency | Handling target | Rear spring strength calculation. |
front damping ratio | Handling target | Front spring damper rate calculation. |
rear damping ratio | Handling target | Rear spring damper rate calculation. |
suspTravelDirection[] | Model suspension direction | Usually 0, -1, 0. Exported to each wheel. |
The tool estimates load per axle from mass, axle positions, and CG Y offset. The sum of generated wheel sprungMass values should equal the vehicle mass.
For each axle:
springStrength = naturalFrequency^2 * sprungMass springDamperRate = dampingRatio * 2 * sqrt(springStrength * sprungMass)
Start with matching left/right values on the same axle. Then tune in game for pitch, roll, bottoming out, braking dive, and obstacle response.
| Field | Where to find it | What it affects |
|---|---|---|
long stiffness | Similar vehicle config | longitudinalStiffnessPerUnitGravity. |
latStiffX | Similar vehicle config | Lateral stiffness curve X. |
latStiffY | Similar vehicle config | Lateral stiffness curve Y. |
frictionVsSlipGraph[] | Similar vehicle config, then tune | Tyre grip versus slip curve. |
Treat tyre stiffness as a tuning pass, not a data-entry pass. Use a similar Arma 3 vehicle as a baseline, test on asphalt and off-road surfaces, and adjust only after mass, suspension, and wheel dimensions are credible.
| Field | Where to find it | What it affects |
|---|---|---|
enginePower kW | Engine data sheet | Exported enginePower. |
peakTorque Nm | Engine torque data | Exported peakTorque and wheel torque estimates. |
idle RPM | Engine data sheet or sound setup | Exported idleRpm and derived minOmega. |
red RPM | Engine data sheet or sound setup | Exported redRpm and derived maxOmega. |
engineMOI | Similar vehicle config | Engine rotational inertia. |
full throttle damping | Similar vehicle config | dampingRateFullThrottle. |
zero throttle engaged | Similar vehicle config | dampingRateZeroThrottleClutchEngaged. |
zero throttle neutral | Similar vehicle config | dampingRateZeroThrottleClutchDisengaged. |
The tool derives:
minOmega = idleRpm * 2 * pi / 60 maxOmega = redRpm * 2 * pi / 60
Use realistic RPM values if the vehicle has a real engine. If the vehicle is fictional, start from an existing Arma 3 vehicle with a similar mass and role.
The torque curve uses normalized engine speed on the X axis and a multiplier of peakTorque on the Y axis.
Example:
0.0, 0.55, 0.3, 0.85, 0.5, 1.0, 0.8, 0.92, 1.0, 0.72
Where to find it:
| Field | Where to find it | What it affects |
|---|---|---|
GearboxRatios[] | Transmission data sheet | Exported gear ratios. |
final drive ratio | Axle/final drive spec | Exported as TransmissionRatios[]. |
moveOffGear | Vehicle gearbox design | Automatic/semi-auto start gear. |
gearBoxMode | Usually auto | Exported gearbox mode. |
clutchStrength | Similar vehicle config | Clutch coupling strength. |
switchTime s | Similar vehicle config | Gear shift duration. |
latency s | Similar vehicle config | Minimum time between automatic shifts. |
changeGearType | Shift strategy | Uses RPM ratio or effectivity thresholds. |
Gearbox ratios should include exactly one reverse gear, one neutral gear, and forward gears ordered from higher ratio to lower ratio.
Example:
"R1", -3.231, "N", 0, "D1", 2.462, "D2", 1.870, "D3", 1.241, "D4", 0.970, "D5", 0.711
The tool estimates each forward gear speed:
finalRatio = gearRatio * finalDriveRatio gearSpeedKmh = redRpm / finalRatio * wheelCircumference * 60 / 1000 wheelTorqueNm = peakTorqueNm * finalRatio
Use those derived speeds to check whether the gear stack matches the intended vehicle top speed and acceleration profile.
Use changeGearOmegaRatios[] when changeGearType is rpmratio. These are normalized RPM thresholds for automatic shifting.
Use changeGearMinEffectivity[] when changeGearType is effective. These values control shifting based on drivetrain effectivity.
Find starting values in a similar Arma 3 vehicle, then test:
| Field | Where to find it | What it affects |
|---|---|---|
differentialType | Drivetrain layout | Which axle groups receive drive and whether limited slip is used. |
frontRearSplit | Drivetrain design | Torque split between front and rear groups. |
frontBias | Similar vehicle config | Front limited-slip bias. |
rearBias | Similar vehicle config | Rear limited-slip bias. |
centreBias | Similar vehicle config | Centre limited-slip bias. |
Use real drivetrain layout when known. For example, an ordinary permanent 4×4 should not be tuned like a rear-wheel-drive car.
| Field | Where to find it | What it affects |
|---|---|---|
turnCoef | Similar vehicle config, then test | General turn response. |
terrainCoef | Similar vehicle config, then test | Terrain resistance. |
dampersBumpCoef | Similar vehicle config | Visual damper bump response. |
antiRollbarForceCoef | Similar vehicle config, then test | Roll resistance during cornering. |
antiRollbarForceLimit | Similar vehicle config, then test | Anti-roll force cap. |
antiRollbarSpeedMin | Similar vehicle config, then test | Speed where anti-roll begins blending in. |
antiRollbarSpeedMax | Similar vehicle config, then test | Speed where anti-roll reaches full strength. |
waterLeakiness | Similar vehicle config | Water ingress behaviour. |
Tune handling aids after core mass, suspension, tyres, and gearbox are plausible. Do not use anti-roll or terrain coefficients to hide incorrect centre of mass or suspension values.
These fields appear only when TankX is selected.
| Field | Where to find it | What it affects |
|---|---|---|
tankTurnForce | Start from mass-scaled value, then tune in game | Low-speed force to overcome turning friction. |
turn force min rad/s | Similar TankX vehicle | Angular speed where turn force begins fading. |
turn force zero rad/s | Similar TankX vehicle | Angular speed where turn force reaches zero. |
A practical starting point for tankTurnForce is approximately:
tankTurnForce = vehicleMassKg * 11
Increase if the vehicle will not pivot or begin turning. Reduce if it spins too aggressively or breaks traction unrealistically.
Use this step to review checks and export files.
| Button | Output |
|---|---|
Copy config | Copies generated config.cpp text. |
Copy model.cfg | Copies generated model.cfg text. |
Download JSON | Saves the editable tool profile. Keep this with the vehicle source. |
Download config | Downloads generated config.cpp text. |
Download model.cfg | Downloads generated model.cfg text. |
Always save the JSON profile with the addon source. It records assumptions, measured layout, editable wheel names, and tuning notes so the setup can be reproduced later.
After exporting, test in Arma 3 before considering the values final.
| Symptom | Likely cause | First fix |
|---|---|---|
| Vehicle barely moves or tops out at very low speed | Wheel radius, MOI, damping, gear ratios, or TankX wheel-size mismatch | Check wheel radius, same-size TankX wheels, maxOmega, final drive, and wheel damping. |
| Vehicle bounces continuously | Spring strength too high, damper rate too low, or sprung mass wrong | Check mass, CG, axle positions, natural frequency, and damping ratio. |
| Vehicle feels sluggish over bumps | Damper rate too high or spring frequency too low | Reduce damping ratio or raise natural frequency carefully. |
| Wheels spin visually around the wrong axis | Wrong center, model.cfg rotation axis, or memory axis direction | Check P3D memory points and model.cfg axis names. |
| Damper moves opposite direction | Damper axis direction or offset sign mismatch | Check {base}_damper_axis, offset0, and offset1. |
| TankX vehicle will not pivot | tankTurnForce too low or wheel damping/MOI too high | Raise tankTurnForce gradually and review wheel damping. |
| Gearbox hunts between gears | Gear ratios too close, torque curve too steep, shift latency too low | Increase latency, smooth torque curve, or adjust shift thresholds. |
| Vehicle rolls over too easily | CG too high, track too narrow, anti-roll too weak, suspension too soft | Check measured CG/track first, then tune anti-roll. |