AmidKnight

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.

Create Checklist

Required Mods for Car / Truck

CBA_A3 (Community Base Addons)

Foundation library used by most modern Arma 3 mods. Required for scripted features, keybinds, and compatibility macros.

Subscribe on Steam Workshop, enable in Arma 3 Launcher before your mod.

ACE3

Optional

Advanced Combat Environment — needed if your assets use ACE ballistics, medical, or interaction systems.

Only required when inheriting ACE classes or using ACE-specific config.

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)

Optional

Optional but common dependency when retexturing or extending RHS assets.

Subscribe to the RHS packs your project extends; list in requiredAddons[].

CUP Weapons / Vehicles / Units

Optional

Community Upgrade Project — optional base for CUP-compatible retextures.

Enhanced Movement / RotorLib

Optional

RotorLib (RTD) is built into Arma 3 for advanced helicopter flight models.

Enable advanced flight model testing for helicopters and planes.

Step-by-Step Process

1

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
Arma 3 ToolsObject BuilderTexView 2Addon Builder
2

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)
3

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
CBA_A3
4

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
5

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
Blender or 3ds MaxObject Builder
6

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)
7

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
TexView 2
8

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
9

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
Addon Builder
10

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
11

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
12

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
12

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
13

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
A3_Soft_F
14

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)