Car / Truck Import Guide
Wheeled civilian and military light vehicles. Follow these tailored steps for car / truck imports including config inheritance, memory points, and in-game testing.
- LOD
Resolution, Geometry, Memory, Fire Geometry, and Hit Points LOD types
- LOD Resolutions
Numeric LOD identifiers used by the engine (1e13, 1e15, etc.)
- Model Config
model.cfg — cfgModels, cfgSkeletons, Animations, and AnimationSources
- CfgVehicles Config Reference
Token reference for CfgVehicles parameters
- Creating an Addon
config.cpp, CfgPatches, and Addon Builder workflow
- Addon Builder
Packing, binarize, and file copy options
- Arma 3 Vehicle Configuration
Index of all vehicle config wiki pages
- Arma 3: Sound (category)
CfgSoundCurves, Shaders, Sets, Controllers, and processing types
- Sound: Sound Curves
volumeCurve / rangeCurve attenuation — relative 0–1 or absolute meters
- Sound: cfgSoundShaders
samples[], range, rangeCurve — closest/farthest audio layers
- Sound: SoundSet
Mixes SoundShaders; soundSetShot[] / vehicle SoundSets hook here
- Vehicle Hitpoint Creation
Fire Geometry spacing, HP sphere matrix, and damage leakage rules
- Jets Hitpoint Configuration
radius, explosionShielding, passThrough — applies to all vehicles
- Damage Enhancement (Tanks DLC)
armorComponent, passThrough overhaul, and destruction effects
- Turret Config Reference
Turret class, weapons[], and turret HitPoints
- Sound: Processing Types
Emitter vs stereo panner — Vehicle_Ext vs WeaponMediumShot processors
- Cars Config Guidelines
PhysX carx, Wheels class, engine, suspension, and reflectors
Required Mods for Car / Truck
A3_Soft_F (Base Game)
Vanilla wheeled vehicles — parent for cars, trucks, and light MRAPs.
Use C_Offroad_01_F, B_MRAP_01_F, etc. as inheritance bases.
A3_Armor_F (Base Game)
Vanilla tracked and heavy armour — parent for APCs, IFVs, and tanks.
Use appropriate tank/APC parent (e.g. B_APC_Tracked_01_F).
A3_Air_F (Base Game)
Vanilla aircraft — parent for helicopters and planes.
Helicopters: Heli_Transport_01_F family. Planes: Plane_Fighter_03_F family.
A3_Boat_F (Base Game)
Vanilla watercraft — parent for ships and boats.
Use Boat classes for buoyancy and water simulation inheritance.
RHS (USAF / AFRF / GREF / SAF)
OptionalOptional but common dependency when retexturing or extending RHS assets.
Subscribe to the RHS packs your project extends; list in requiredAddons[].
CUP Weapons / Vehicles / Units
OptionalCommunity Upgrade Project — optional base for CUP-compatible retextures.
Enhanced Movement / RotorLib
OptionalRotorLib (RTD) is built into Arma 3 for advanced helicopter flight models.
Enable advanced flight model testing for helicopters and planes.
Step-by-Step Process
Install Arma 3 Tools
Install Arma 3 Tools from Steam. Object Builder, TexView 2, and Addon Builder are required for the full pipeline.
- Steam → Library → Tools → Arma 3 Tools → Install
- Verify Object Builder opens and can load .p3d files
- Addon Builder packs and binarizes — formerly known as BinPBO
Create Mod Folder Structure
Organize as @YourMod/addons/your_addon/. config.cpp must sit at the addon folder root.
- Create @YourMod/addons/ — packed .pbo files go here
- Each addon source folder needs its own config.cpp at root
- All model/texture paths use your addon prefix (e.g. mymod\data\texture.paa)
- model.cfg lives alongside the .p3d (see Model Config wiki)
Configure Arma 3 Launcher
Enable your local mod and every mod listed in requiredAddons[] before testing.
- Launcher → Mods → Add local mod → select @YourMod
- Enable CBA_A3 and all CfgPatches requiredAddons[] entries
- After each pack, restart the game or reload to pick up PBO changes
Plan LODs & Selections
Before modelling, plan every LOD the asset needs. LOD resolution numbers only determine sort order in Arma 3 — not view distance.
- Resolution LODs (0, 1, 2…): visual mesh — aim for ~50% triangle reduction per step
- Geometry (1×1e13): collision — required for physics interaction
- Geometry Phys (4×1e13): PhysX convex components for vehicles
- Memory (1×1e15): axes, memory points, proxies, and animation pivots
- View Geometry (6×1e15) & Fire Geometry (7×1e15): line-of-sight and ballistics
- Hit Points (5×1e15): vertices for damage sphere placement on vehicles
- Land Contact (2×1e15): ground contact points for placement
Proxied sub-models (turrets, weapons) switch resolution LOD independently of the parent
If Geometry LOD is missing, named properties fall back to the first resolution LOD
Model & Export to P3D
Build meshes in Blender/3ds Max, export via Object Builder. 1 unit = 1 metre in Arma.
- Triangulate before export; check face normals and UV seams
- Named selections for hiddenSelections[], hitpoints, and glass
- Memory LOD: place all axes and memory points here (not in resolution LODs)
- Validate each LOD in Object Builder before moving to config work
Write model.cfg
model.cfg links the P3D to cfgModels — sections, skeleton, and procedural animations. It takes precedence over config.cpp animation defs when both exist.
- cfgModels: class name matches model filename; define sections[] and skeletonName
- cfgSkeletons: skeletonBones[] parent→child bone hierarchy for skinning
- Animations: type (rotation, translation, hide), source controller, selection, axis
- Vehicle wheels use source="wheel"; dampers use source="damper" with offset0/offset1 ±0.5
- Weapons: reloadMagazine hide/unhideValue, hasOptics for folding sights, ammoRandom for muzzle flash rotation
- config.cpp AnimationSources (designer) maps user actions to model.cfg Animations (artist)
Several model.cfg files can chain via inheritance (folder model.cfg → vehicle model.cfg)
Damper axis length should match the moveable suspension travel
Convert Textures to PAA
Arma requires .paa textures. Convert PNG/TGA with TexView 2.
- Power-of-two sizes: 256, 512, 1024, 2048
- Suffixes: _co (colour), _no (normal), _as (ambient shadow), _smdi (specular)
- hiddenSelectionsMaterials[] paths must match rvmat and PAA locations
Write config.cpp
CfgPatches is mandatory. Token names in CfgVehicles/CfgWeapons are context-specific — always check the reference for your class.
- CfgPatches: units[], weapons[], requiredAddons[], requiredVersion
- CfgVehicles covers soldiers (Man), land/air/sea vehicles, backpacks, and statics
- CfgWeapons holds guns/launchers; CfgMagazines holds ammo (separate since Arma 3)
- CfgWeapons Items/Equipment/Glasses for NVGs, headgear, and facewear
- scope = 2 for editor visibility; inherit from the closest vanilla parent
Pack with Addon Builder
Binarize converts configs and embeds model.cfg. Non-.cpp files must be listed to copy.
- Source: addon folder containing config.cpp
- Destination: @YourMod/addons/
- Enable Binarize — catches config syntax errors during pack
- Copy list: *.p3d;*.paa;*.rvmat;*.ogg;*.wss;*.jpg;*.png (as needed)
- Project path should match source path — setting P:\ binarizes the entire drive
Test In-Game & Diagnostics
Verify in Eden Editor. Use BI diagnostics for hitpoint spheres and PhysX on vehicles.
- Check %localappdata%\Arma 3\*.rpt for binarize and runtime errors
- Vehicles: run hitpoint diagnostics to visualize radius spheres vs Fire Geometry
- Cars: epevehicle diag mode helps tune suspension and gearbox
- Test all crew positions, damage states, and wreck transition
Vehicle Hitpoints (All Types)
Shared rules from Vehicle Hitpoint Creation and Jets Hitpoint Configuration wikis apply to every vehicle.
- Hit Points LOD (5×1e15): place vertices per hitpoint selection; config radius defines sphere size
- Place HP vertices inside Fire Geometry — not on the visual surface (more durable, fewer verts)
- Leave airspace between different FG types — overlapping armor/HP causes damage leakage
- HP spheres should only contact ONE component type; standardize radius across all HP for easier layout
- armorStructural divides passThrough; explosionShielding multiplies indirect damage (<1 = shielding)
- Post-Tanks DLC: armorComponent links hitpoint to Fire Geometry selection for penetration calc
- Use Arma 3 Diagnostics to visualize hitpoint spheres in-game
Fewer vertices with larger radius beats dense vertex rings — e.g. 1×5 @ 0.2 radius vs 4×15 @ 0.05
When tweaking feels wrong, add detail to Hit Points and Fire Geometry LODs before more config
Vehicle Sound Locations & Curves
Engine and impact sounds are 3D-positioned using memory points and distance curves — not played from model origin by default.
- memoryPointExhaust + memoryPointExhaustDir — engine loop emitter on Memory LOD (place at tailpipe, not [0,0,0])
- Gun/turret shots use gunBegin (usti hlavne) as spatial origin — same as ballistics
- Modern: class SoundSets in CfgVehicles links to CfgSoundSets; playTrigger uses rpm, engineOn, camPos controllers
- Legacy: class Sounds >> EngineExt { sound[], frequency, volume, cone[] } — still valid on older inheritances
- soundGetIn/Out/Crash[] — one-shots: { "SoundSetOrPath", volume, pitch }
- CfgSoundShaders: range + rangeCurve per layer; CfgSoundSets: volumeCurve on mixed output
- Interior vs exterior: separate SoundSets with playTrigger = "engineOn * (1-camPos)" vs "engineOn * camPos"
- sound3DProcessingType — Vehicle_Ext_3DProcessingType (Emitter) vs WeaponMediumShot3DProcessingType
Use getAllSoundControllers while in vehicle to debug rpm/thrust/camPos live values
Match highest rangeCurve X to SoundShader range — mismatch causes silent or full-volume at distance
Library: /library/sound-vehicle-locations and /library/sound-set-vehicle-engine templates
Car P3D Requirements (Cars Config Guidelines)
Wheeled vehicles need PhysX LOD, wheel memory points, and optional reflector/mirror setup.
- Geometry Phys LOD (4×1e13): convex hulls ~60 faces for main body only — wheels added by engine
- Per wheel in Memory LOD: wheel_X_Y_axis (center) and wheel_X_Y_bound (radius edge)
- Bone chain: wheel_X_Y_damper → wheel_X_Y_steering → wheel_X_Y (rotating bone = boneName)
- Reflectors: LightCarHeadL/RXX position + LightCarHeadL/RXX_end direction memory points
- Mirrors/screens: pipX_pos, pipX_dir + RTT texture #(argb,256,512,1)r2t(rendertargetX,1.0)
- hiddenSelections[] sections defined in model.cfg
carx Simulation & Wheels Class
simulation = "carx" enables PhysX 3. Wheel parameters live in class Wheels >> class Wheel_X_Y.
- Engine: enginePower (kW), maxOmega, peakTorque, torqueCurve[], clutchStrength
- Differential: differentialType (all_limited etc.), frontRearSplit, frontBias/rearBias/centreBias
- Per wheel: center, boundary, boneName, steering, side, mass, MOI, maxBrakeTorque
- Suspension: maxCompression, maxDroop, sprungMass (sum = vehicle weight), springStrength, springDamperRate
- Tires: longitudinalStiffnessPerUnitGravity, latStiffX/Y, frictionVsSlipGraph[]
- complexGearbox: GearboxRatios[] (one R, one N, forward gears descending), TransmissionRatios[]
- Anti-roll: antiRollbarForceCoef (0 disables — good for civilian); reflectors in class Reflectors
- Military: override PlateInfos class to disable island plate randomization
Car Engine Sound & Exhaust Point
carx vehicles need exhaust memory points and RPM-layered SoundSets for believable engine audio.
- Model Memory LOD: exhaust + exhaust_dir vertices — align with visible exhaust pipe
- Inherit Car_F or B_MRAP_01_F SoundSets, replace sample paths in your CfgSoundShaders
- RPM crossfade: multiple loop SoundSets with playTrigger rpm factor ranges
- rangeCurve on exterior shaders — typical engine range 300–500 m
- Door foley: soundGetIn[] / soundGetOut[] — small volume factors (~0.0003)