User Tools

Site Tools


tools:a3physxvehicletuningtool

Arma 3 Vehicle PhysX Tuning Tool Workflow

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.

Source Material You Need

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

Coordinate And Naming Rules

The tool assumes Arma model-space style measurements:

  • Longitudinal Y is vehicle length.
  • Positive Y is forward.
  • Negative Y is rearward.
  • Track width is measured left wheel centre to right wheel centre.
  • Axle station Y is measured relative to the vehicle centre or model origin used by the project.
  • Wheel radius is measured from wheel centre to tyre tread.
  • Wheel width is measured across the tyre.

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

Step 1: Simulation Type

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.

Step 2: Vehicle Identity

Class Setup

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.

Model Config Export

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.

Throttle And Speed Actions

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.

Step 3: Mass And Geometry

Vehicle Dimensions

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.

Track And Axle Stations

Enable use measured layout when the model has known axle positions.

Measure each axle station from the model centre:

  1. In Object Builder, identify the wheel centre or wheel axis memory point for the axle.
  2. Read or measure its Y position.
  3. Enter positive values for axles forward of centre.
  4. Enter negative values for axles rearward of centre.
  5. Measure track width from left wheel centre to right wheel centre for the same axle.

The preview mockup scales from these measured stations and tracks, so unusual layouts should be checked here before moving to wheel names.

Wheel Physical Values

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.

Step 4: Wheel Layout

Memory Point Bases

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:

  • A rotating wheel selection or bone.
  • A centre memory point.
  • A boundary memory point.
  • A damper selection/bone if using damper bone names.
  • A damper axis for model.cfg if the damper animation is exported.
  • A steering selection and steering axis for steerable CarX axles.

model.cfg Bone Rules

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:

  1. Damper translation using source damper.
  2. Steering yaw using source steering, only on axles listed as steering axles.
  3. Wheel rotation using source wheel for CarX.
  4. Wheel rotation using wheelL or wheelR for TankX.

Brake And Steering

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.

Step 5: Suspension And Tyres

Travel And Frequency

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.

Tyre Stiffness

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.

Step 6: Engine

Power And RPM

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.

Torque Curve

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:

  • Use a real dyno curve when available.
  • If only peak torque and rated power are known, shape the curve from a similar engine.
  • Keep the final curve smooth enough that gear changes do not drop the engine into an unusable RPM range.

Step 7: Gearbox

Complex Gearbox

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.

Automatic Shift Logic

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:

  • Launch from stationary.
  • Full throttle acceleration.
  • Hill starts.
  • Low-speed reversing.
  • Gear changes near top speed.
  • AI driving.

Step 8: Differential And Handling

Differential

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.

Handling Aids

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.

TankX Turning

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.

Step 9: Validate And Export

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.

In-Game Validation Checklist

After exporting, test in Arma 3 before considering the values final.

  1. Confirm the vehicle spawns without config or model.cfg errors.
  2. Confirm every wheel appears in the correct place and rotates around the correct axis.
  3. Confirm damper animation moves in the correct direction.
  4. Confirm steerable CarX wheels rotate visually and physically on the intended axles.
  5. Confirm TankX left and right wheels rotate correctly and the vehicle can turn from rest.
  6. Drive straight on flat road and check acceleration to target speed.
  7. Brake from speed and check wheel lock, stopping distance, and vehicle pitch.
  8. Drive across small obstacles and check bottoming out, wheel clipping, and suspension oscillation.
  9. Test uphill starts and off-road movement.
  10. Test AI driving on roads and rough terrain.
  11. Damage wheels and confirm damaged/destroyed damping behaves acceptably.
  12. Check multiplayer/server RPT logs if the vehicle is intended for MP.

Common Problems

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.
tools/a3physxvehicletuningtool.txt · Last modified: by rock