Tank Import Guide
Main battle tanks and heavy armour. Follow these tailored steps for tank 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
- Tanks Config Guidelines
HitHull, tracks, turret hitpoints, and internal penetration
Required Mods for Tank
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
Tank Armour & Hitpoints (Tanks Config Guidelines)
Tanks appear heavily armoured but vulnerable hitpoints enable one-shot neutralization of components.
- armor: overall thickness as seen by AI; armorStructural: fine-tunes damage received
- HitHull: internal penetration handler — vertices only activate after KE penetration
- HitEngine, HitLTrack, HitRTrack, HitTurret, HitGun — each in HitPoints LOD + config
- Turret class HitPoints nested separately from hull HitPoints
- Tune armor, explosionShielding, and radius together — then add FG detail if needed
Fire Geometry & armorComponent
Post-Tanks DLC damage model links hitpoints to Fire Geometry components for penetration.
- armorComponent = "selection_name" in Fire Geometry LOD (7×1e15)
- passThrough behaviour changes when armorComponent is defined — more intuitive damage transfer
- effectRadius and ignoreFuel for DestructionEffects (e.g. ERA plates)
- FG pieces should not overlap; leave airspace between armor FG and HP FG
- Use diagnostics to verify sphere matrix encases each component evenly
Main Gun & Turret Config
Turret weapons[] references CfgWeapons vehicle weapon classes.
- class Turrets >> class MainTurret: weapons[], magazines[], elevation/depression limits
- gunBegin, gunEnd, turretAxis memory points on model
- CfgMagazines for APFSDS/HEAT/HE — ballistics in CfgAmmo
- Commander/periscope turrets as nested Turrets class if applicable
Tank Engine & Main Gun Audio
MBT engine loops from exhaust point; main gun uses vehicle weapon soundSetShot from CfgWeapons.
- Tracked tanks: memoryPointExhaust on rear deck; interior crew hears separate int SoundSets
- cannon_* weapons inherit BI soundSetShot — override in custom CfgWeapons if replacing gun
- HMG_NSVT commander pintle: separate weapon class with its own SoundSet at cupola origin
- Impact: soundCrash[] triggered on destruction — uses vehicle center unless shape defined