ConfigReference - AntonIT99/Flans-Mod-Ultimate-2.0 GitHub Wiki
This page documents the legacy content-pack .txt parameters read by the classes in com.flansmodultimate.common.types.
The source of truth for this page is the current Java parser code. Some legacy keys are aliases for the same internal field; those aliases are shown together.
- Keywords are case-insensitive.
- Most scalar values use
Key value.Key = valueis also accepted for scalar reads. - Boolean values accept
true,false,1, or0. - Repeated scalar keys usually use the last non-empty value.
- Repeated line-list keys, such as
Ammo,Paintjob,AddRound,AddGun,AddAmmo,AddToAmmoGroup, andUseAmmoGroup, are accumulated. - Resource names are sanitized before use. Prefer lower-case names without spaces.
- Unless a table says otherwise, times are in ticks.
-
~means unset, empty, or not configured. - Vector keys read with
readVectoraccept bracketed, parenthesized, or bare three-component vectors. Both[1,2,3]and[1 2 3]are valid; compact comma vectors and decimal commas are also accepted where unambiguous. Keys that explicitly sayfloat float floatuse whitespace-separated values.
Concrete type files inherit every parameter from their parent type.
InfoType
|-- PaintableType
| |-- AttachmentType
| |-- GunType
| `-- DriveableType
| |-- VehicleType
| |-- PlaneType
| `-- MechaType
|-- ShootableType
| |-- BulletType
| `-- GrenadeType
|-- BlockType
| |-- ArmorBoxType
| `-- GunBoxType
|-- AAGunType
|-- ArmorType
|-- GloveType
|-- ItemHolderType
|-- MechaItemType
|-- PartType
|-- ToolType
|-- PlayerClass
|-- Team
|-- RewardBox
`-- LoadoutPool
| Config folder | Class | Inherits |
|---|---|---|
aaguns |
AAGunType |
InfoType |
armorFiles |
ArmorType |
InfoType |
armorBoxes |
ArmorBoxType |
BlockType, InfoType
|
attachments |
AttachmentType |
PaintableType, InfoType
|
bullets |
BulletType |
ShootableType, InfoType
|
gloves |
GloveType |
InfoType |
grenades |
GrenadeType |
ShootableType, InfoType
|
guns |
GunType |
PaintableType, InfoType
|
boxes |
GunBoxType |
BlockType, InfoType
|
itemHolders |
ItemHolderType |
InfoType |
mechaItems |
MechaItemType |
InfoType |
parts |
PartType |
InfoType |
tools |
ToolType |
InfoType |
vehicles |
VehicleType |
DriveableType, PaintableType, InfoType
|
planes |
PlaneType |
DriveableType, PaintableType, InfoType
|
mechas |
MechaType |
DriveableType, PaintableType, InfoType
|
classes |
PlayerClass |
InfoType |
teams |
Team |
InfoType |
rewardBoxes |
RewardBox |
InfoType |
loadouts |
LoadoutPool |
InfoType |
| Format | Meaning |
|---|---|
string |
One token. Spaces are not preserved unless the key uses a text-line reader. |
text line |
The full text after the key. Used by Name and Description. |
resource |
Sanitized content-pack resource or short name. |
sound |
Sanitized sound id registered by the mod. |
bool |
true, false, 1, or 0. |
enum |
One of the enum values listed in the table description. |
vector |
Bracket vector, for example [0,1,2]. |
effect line |
<effectId> [duration] [amplifier] [ambient] [visible]. Duration defaults to 250, amplifier to 0; ambient/visible defaults depend on the caller. |
amount/item pairs |
<amount> <item> [<amount> <item> ...]. |
item/amount pairs |
<item> <amount> [<item> <amount> ...]. |
Inherited by every concrete type.
| Key | Format | Default | Purpose |
|---|---|---|---|
Name |
text line | "" |
Display name read from the full remainder of the line. |
ShortName |
resource | ~ |
Content-pack id for this type entry. |
Description |
text line | "" |
Description text. |
Icon |
resource | ~ |
Icon texture/item name used by generated items and paintjobs. |
Texture |
resource | ~ |
Main skin or item texture name. |
Overlay |
resource | ~ |
GUI/scope overlay texture. |
Model |
string | ~ |
Legacy model class name stem. |
ModelScale |
float | 1.0 |
Scale applied to the model. |
TranslucentRendering |
bool | false |
Enables translucent rendering mode. |
AdditiveBlending |
bool | false |
Enables additive blending for rendering. |
DisableCulling |
bool | false |
Forces face culling off for this type, overriding client culling defaults. |
DisableFrustumCulling |
bool | false |
Entities holding this item in either hand are not frustum culled, so oversized parts such as long laser beams stay visible when the holder is off-screen. The normal render distance still applies. On guns it applies only while powered on; on attachments only while the attachment is active on the held gun. |
Colour / Color
|
int int int |
255 255 255 |
RGB color packed into the internal color field. |
| Key | Format | Default | Purpose |
|---|---|---|---|
DungeonProbability / DungeonLootChance
|
int | 1 |
Relative chance for dungeon loot handling. |
RecipeOutput |
int | 1 |
Output stack count for generated crafting recipes. On 1.21.1, the generated count is limited to the output item's maximum stack size; durable fuel parts therefore produce one item. |
SmeltableFrom |
resource | ~ |
Item id used to generate a smelting recipe. |
CanDrop |
bool | true |
Whether the item can be dropped. |
Recipe |
Recipe <char> <item> ..., followed by 3 shape rows |
none | Defines a shaped crafting recipe. Key tokens are character/item pairs; the next 3 lines are the grid. |
ShapelessRecipe |
<item> [item ...] |
none | Defines a shapeless crafting recipe. |
Both maintained versions use the same .txt recipe generator and write both JSON layouts: data/<namespace>/recipes/ for 1.20.1 and data/<namespace>/recipe/ for 1.21.1. The compatibility layer writes legacy crafting outputs as result.item and smelting outputs as a string; modern outputs use result.id and a smelting result object with id. Modern crafting counts are limited to the output item's stack size; legacy counts preserve RecipeOutput. Loading an existing content pack fills missing counterparts without replacing authored recipes and regenerates definition-backed recipes when a generated layout is missing or the modern crafting count is invalid.
Inherited by AttachmentType, GunType, and the currently unregistered DriveableType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Paintjob |
<icon> <texture> [<dye> <amount> ...] |
default paintjob from Icon/Texture
|
Adds a paintjob. Dye rainbow marks the paintjob as legendary. |
AdvPaintJob |
<name> <icon> <texture> [<dye> <amount> ...] |
none | Adds a named paintjob. |
AddPaintableToTables |
<bool> or <texture> <bool>
|
true |
Enables/disables all paintjobs for paint tables, or toggles a specific paintjob texture. |
Inherited by ArmorBoxType and GunBoxType.
| Key | Format | Default | Purpose |
|---|---|---|---|
TopTexture |
resource | ~ |
Top block texture. |
BottomTexture |
resource | ~ |
Bottom block texture. |
SideTexture |
resource | ~ |
Side block texture. |
Inherited by BulletType and GrenadeType.
| Key | Format | Default | Purpose |
|---|---|---|---|
AddAmmoFor |
resource line, repeatable | none | Adds this shootable as extra ammo for the named gun or AA gun short name. |
AddToAmmoGroup |
group name, repeatable | none | Adds this shootable to the named ammo group. The group is declared by its first mention. |
StackSize / MaxStackSize
|
int | 1 |
Maximum item stack size. The parsed value is raised to at least RecipeOutput for shootables. |
DropItemOnShoot |
resource | ~ |
Item to drop when fired. |
DropItemOnReload |
resource | ~ |
Item to drop when reloaded. |
DropItemOnHit |
resource | ~ |
Item to drop when the projectile hits. |
RoundsPerItem |
int | 0 |
Number of rounds contained in one ammo item. |
NumBullets |
int | 0 |
Ammo-side bullet count override. 0 defers to the gun. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Accuracy / Spread
|
float | -1.0 |
Ammo-side spread value or multiplier. |
Dispersion |
float degrees | unset | Alternative angular spread input. Converted internally. |
FallSpeed |
float | 1.0 |
Gravity/fall speed multiplier. |
ThrowSpeed / ShootSpeed
|
float | 1.0 |
Legacy grenade throw speed; grenade launch velocity is 0.5 blocks/tick per unit (10 m/s). |
ThrowSpeedMs |
float m/s | unset | Grenade throw speed in metres per second. Overrides ThrowSpeed and ShootSpeed regardless of definition or category order; divided by 20 for launch velocity. 0 drops the item. Always shown in grenade tooltips. |
HitBoxSize |
float | 0.5 |
Projectile hitbox size. |
Mass / MassKg
|
float grams / float kilograms | 0.0 |
Enables kinetic damage when greater than 0, including against normalized-health vehicles. Damage uses a 9 g anchored mass^(2/3) progression; a missing mass uses fixed Damage as the normalized-vehicle compatibility fallback. Grenades and bomb-type bullets use getDeltaMovement() at impact; other bullets use firing velocity. The two keys are the same stat at different scales, so set one, not both. |
Damage / DamageVsEntity / HitEntityDamage
|
float | 1.0 |
Base direct-hit damage. |
DamageVsLiving |
float | inherits | Direct-hit damage against living entities. |
DamageVsPlayer / DamageVsPlayers
|
float | inherits | Direct-hit damage against players. |
DamageVsVehicle / DamageVsVehicles / DamageVsDriveable / DamageVsDriveables
|
float | inherits | Direct-hit damage against driveables/vehicles. |
DamageVsPlane / DamageVsPlanes
|
float | inherits | Direct-hit damage against planes. |
IgnoreArmorProbability |
float | 0.0 |
Chance or factor used by armor ignoring logic. |
IgnoreArmorDamageFactor |
float | 0.0 |
Damage factor used when armor is ignored. |
BreaksGlass |
bool | false |
Whether impact can break glass. |
Bounciness |
float | 0.0 |
Motion multiplier after impact. GrenadeType changes the absent-key default to 0.9. |
HasLight |
bool | false |
Full-bright projectile rendering. |
HasDynamicLight |
bool | false |
Dynamic light around the projectile. |
Damage fallback after reading:
- If base
Damageis absent, it is derived from the first available specific value in this order: living, vehicles, players, planes. - Missing
DamageVsLivingfalls back toDamage. - Missing
DamageVsPlayerfalls back toDamageVsLiving. - Missing
DamageVsVehiclefalls back toDamage. - Missing
DamageVsPlanefalls back toDamageVsVehicle.
| Key | Format | Default | Purpose |
|---|---|---|---|
Fuse |
int | 0 |
Detonation delay. 0 means no fuse condition. |
DespawnTime |
int | 0 |
Quiet despawn time. 0 means no despawn timeout. |
ExplodeOnImpact / DetonateOnImpact / CringeExplodeOnImpact / CringeDetonateOnImpact
|
bool | false |
Detonate on hit. The Cringe spellings are the Labjac Edition names for the same flag. |
LivingProximityTrigger |
float | -1.0 |
Mine/proximity trigger radius for living entities. |
VehicleProximityTrigger |
float | -1.0 |
Mine/proximity trigger radius for driveables. |
DamageToTriggerer |
float | 0.0 |
Damage dealt to the triggering entity. |
PrimeDelay / TriggerDelay
|
int | 0 |
Minimum delay before detonation can occur. |
FireRadius / Fire
|
float | 0.0 |
Radius for spreading fire. |
ExplosionBreaksBlocks / ExplosionsBreaksBlocks / ExplosionBreakBlocks / ExplosionsBreakBlocks
|
bool | true |
Whether the explosion can break blocks. |
ExplosiveMassTNTg / ExplosiveMassTNTKg
|
float grams / float kg TNT equivalent | 0.0 |
Enables the new explosion system when greater than 0 and supplies the TNT mass used by armoured-vehicle overpressure checks. The two keys are the same stat at different scales, so set one, not both. |
ExplosionRadius / Explosion
|
float | 0.0 |
Explosion radius. |
ExplosionPower |
float | 1.0 |
Explosion power multiplier. |
BlastRadius |
float | 0.0 |
Blast radius. |
FragType |
enum | DEFAULT |
Casing preset: DEFAULT (none), LOW_FRAG, STD_FRAG, SLEEVE_FRAG, HIGH_FRAG, IED_SHRAPNEL, HE_SHELL, HE_GRENADE, GP_BOMB, THICK_CASE, AIRBURST_AP, PREFORMED. Supplies typical metal mass when Mass is absent, effective fragment size/count, energy retention and peak fragment damage. Requires a positive ExplosiveMassTNTg/Kg. See Fragmentation Damage. |
FragPattern |
enum | RADIAL |
RADIAL, HORIZONTAL_BAND, FORWARD_FAN, or FORWARD_CONE. Controls solid angle and which targets can be hit. Forward patterns follow the projectile's travel direction while moving, or its facing when stopped. |
FragMetalMassg |
float grams | derived | Optional metal mass available to form fragments. Normally derived from Mass minus TNT-equivalent charge, or from the casing preset when Mass is absent. This changes count and energy retention, not blast damage. |
FragCount |
float | derived | Optional effective fragment count; useful for preformed balls or subprojectiles. It replaces the count derived from metal mass and preset fragment size. |
FragBurstHeight |
float blocks | 0 |
For grenade entities such as bounding mines: move the detonation point this far upward if the space is clear. Blast, fragments, sound, fire and visual effects all use that actual raised point. A ceiling leaves the burst at the grenade position. |
DropItemOnDetonate |
resource | ~ |
Item to drop when detonating. |
DetonateSound |
string | "" |
Detonation sound name. |
powerShake |
float | 10 |
Explosion camera-shake strength (0–100). Applied only when this shootable produces an explosion; clients independently control intensity and duration. No effect on aim. |
rangeShake |
float | 32 |
Explosion-shake recipient radius in blocks (0–4096). All recipients receive the authored strength, matching Labjac. Both shake fields must be positive. |
The same damage inheritance rules used for direct-hit damage also apply to blast and frag damage groups.
| Key | Format | Default | Purpose |
|---|---|---|---|
BlastDamage / ExplosionDamage / ExplosionDamageVsEntity
|
float |
1.0, then scaled |
Base blast damage. The loaded blast stats are scaled by 8 * ExplosionRadius + 1. |
ExplosionDamageVsLiving |
float | inherits | Blast damage against living entities. |
ExplosionDamageVsPlayer / ExplosionDamageVsPlayers
|
float | inherits | Blast damage against players. |
ExplosionDamageVsVehicle / ExplosionDamageVsVehicles / ExplosionDamageVsDriveable / ExplosionDamageVsDriveables
|
float | inherits | Blast damage against driveables/vehicles. |
ExplosionDamageVsPlane / ExplosionDamageVsPlanes
|
float | inherits | Blast damage against planes. |
FragDamage / FragDamageVsEntity
|
float | preset peak for a non-default FragType; otherwise 1.0
|
Peak fragment damage before hit probability and retained energy. TNT mass does not multiply it. |
FragDamageVsLiving |
float | inherits | Fragment damage against living entities. |
FragDamageVsPlayer / FragDamageVsPlayers
|
float | inherits | Fragment damage against players. |
FragDamageVsVehicle / FragDamageVsVehicles / FragDamageVsDriveable / FragDamageVsDriveables
|
float | inherits | Fragment damage against driveables/vehicles. |
FragDamageVsPlane / FragDamageVsPlanes
|
float | inherits | Fragment damage against planes. |
| Key | Format | Default | Purpose |
|---|---|---|---|
FlareParticleCount |
int | 0 |
Smoke/flare particle count. |
DebrisParticleCount |
int | 0 |
Debris particle count. |
TrailParticles / SmokeTrail
|
bool | false |
Enables projectile trail particles. |
TrailParticleType |
string | smoke |
Trail particle type id. |
NumExplodeParticles / ExplodeParticles
|
int | 0 |
Number of detonation particles; the latter alias wins. |
ExplodeParticleType |
string | largesmoke |
Detonation particle type id. |
SmokeTime |
int ticks | 0 |
Keeps a detonated bullet or grenade as a smoke source for this duration. A bullet shell stops at its impact point while smoking. |
SmokeParticles / SmokeParticleType
|
string | explode |
Particle type emitted by the active smoke source. |
SmokeParticlesCount |
int | common config smokeParticlesCount
|
Particles emitted by the smoke source each tick. |
SmokeRadius |
float | 5.0 |
Radius in which the smoke applies its effects. |
SmokeEffect |
effect line, repeatable | none | Potion effect applied to unprotected living entities within SmokeRadius; ambient/visible default to false. |
These smoke keys are shared by bullets and grenades. A smoke shell should use a physical projectile
(BulletSpeed or MuzzleVelocity) so its projectile entity can remain at the impact point for SmokeTime.
An ammo group is a named set of ammo items. It saves repeating the same ammo list in every gun, AA gun, and driveable that shares a calibre, and it lets a content pack extend an existing weapon's ammo selection without editing that weapon's definition.
A group has no definition file of its own. It is declared implicitly the first time a shootable type claims membership, and every later claim of the same name joins the same group:
// bullets/762x39_ball.txt
AddToAmmoGroup 762x39
// bullets/762x39_ap.txt
AddToAmmoGroup 762x39
Guns, AA guns, and driveables then pull the whole group in with UseAmmoGroup:
// guns/ak47.txt
UseAmmoGroup 762x39
| Key | Used by | Format | Purpose |
|---|---|---|---|
AddToAmmoGroup |
ShootableType (BulletType, GrenadeType) |
group name, repeatable | Adds this ammo item to the named group, declaring the group if it does not exist yet. |
UseAmmoGroup |
GunType, AAGunType, DriveableType
|
group name, repeatable | Accepts every ammo item in the named group, exactly as if each had been listed with Ammo (guns and AA guns) or AddAmmo (driveables). |
Notes:
- Group names are case-insensitive and may contain spaces, for example
UseAmmoGroup 7.62 x 39 mm. Trailing//comments are stripped, and repeated whitespace inside a name collapses to a single space. - Group names are global: a group declared in one content pack can be used from another.
- Both keys are repeatable, so one ammo item may belong to several groups and one weapon may use several groups.
- Ammo pulled in from a group is merged with the weapon's own
Ammo/AddAmmoentries and with anyAddAmmoFormappings. Duplicates are ignored, and the weapon's own entries keep their order and priority, so the default ammo of a weapon that lists both is still its firstAmmo/AddAmmoentry. - Driveables only accept
BulletTypemembers of a group; other shootables in the group are ignored there. -
UseAmmoGroupnaming a group that no ammo item ever joined is reported in the log and contributes no ammo. - A weapon can restate what a shared group member does out of its own barrel with the per-ammo statistic overrides below, instead of forking the ammo item.
Generic ammunition is deliberately shared. One 75mm AP Tank Shell item is loaded by a dozen
different vehicles, and one belt is fed to several guns, so the ammunition item cannot describe
every barrel that fires it. These keys let the firing weapon restate what a shared round does
out of its own barrel, without splitting the content pack's item into a dozen near-duplicates.
They are read by GunType, AAGunType, and DriveableType, and they apply to ammunition reached
through Ammo, AddAmmo, or UseAmmoGroup alike.
| Key | Format | Purpose |
|---|---|---|
AmmoMass / AmmoMassKg
|
<ammoShortName> <grams> / <ammoShortName> <kilograms>
|
Replaces the round's projectile mass. Both spellings write the same gram-based value; a later line wins. |
AmmoMuzzleVelocity |
<ammoShortName> <metresPerSecond> |
Replaces the round's muzzle velocity. Divided by 20 internally, exactly like MuzzleVelocity. |
AmmoExplosiveMassTNTg / AmmoExplosiveMassTNTKg
|
<ammoShortName> <gTntEquivalent> / <ammoShortName> <kgTntEquivalent>
|
Replaces the round's bursting charge, and with it the derived blast radius, power and damage. |
AmmoPenetrationAt100m |
<ammoShortName> <millimetres> |
Replaces the round's armour penetration. |
AddRoundForAmmo |
<ammoShortName> <name> <count> <massG> [explosiveMassG] [muzzleVelocityMps] [penetrationMm] |
Replaces the round's whole AddRound belt for this weapon. |
// vehicles/panther_g.txt — the shared 75 mm shell, fired from a KwK 42 L/70
AddAmmo 44_75APShell
AmmoMass 44_75APShell 6800
AmmoMuzzleVelocity 44_75APShell 935
AmmoExplosiveMassTNTg 44_75APShell 29
AmmoPenetrationAt100m 44_75APShell 188
The same item loaded by a Panzer IV would carry the KwK 40's 770 m/s and 143 mm instead, from that vehicle's own definition. Neither vehicle has to fork the shell item.
-
The short name is the ammunition's own
ShortName, as written in its definition, before any duplicate-resolution renaming. Matching is case-insensitive. - Each ammunition is overridden strictly individually. Declaring a mass for one short name says nothing about any other ammunition the same weapon accepts.
-
Resolution is against the weapon that actually fires the shot. A driveable firing a shell from
its own bank uses the driveable's overrides. The same driveable firing through an
AddGun/PilotGunmount uses that gun's overrides, because the gun is what declared the ammunition. Overrides never cascade from a driveable down into its mounted guns. -
Every key is repeatable, once per ammunition. A later line for the same key and the same
ammunition replaces the earlier one;
AddRoundForAmmoinstead accumulates into that ammunition's replacement belt, in declaration order. -
AddRoundForAmmoreplaces rather than appends. As soon as a weapon declares one round for an ammunition, that ammunition's ownAddRoundlines are ignored for this weapon. This is the opposite ofAddRound, which accumulates. - Values must be finite and non-negative. A malformed or negative value is reported as an ordinary content warning and dropped, leaving the ammunition's own value in place; it never aborts loading.
- An override may give a mass to a round that had none, which puts that round on the kinetic damage and penetration scale for this weapon only.
- Overrides are resolved from the weapon type at fire time and are never written into the projectile, so they survive world reloads and cost nothing in save data.
Per field, highest first:
1. the weapon's AmmoMass(Kg) / AmmoMuzzleVelocity / AmmoExplosiveMassTNTg(Kg) / AmmoPenetrationAt100m
2. the matching field of the weapon's AddRoundForAmmo belt
3. the matching field of the ammunition's own AddRound belt
4. the ammunition's own top-level value
5. for velocity only, the firing weapon's BulletSpeed, then the default bullet speed
A weapon may therefore override one field and leave the rest of the round untouched. The
ammunition's BulletSpeedMultiplier still applies on top of an overridden velocity.
RemoveAmmo refuses ammunition a weapon would otherwise accept. It is read by GunType,
AAGunType and DriveableType.
| Key | Format | Purpose |
|---|---|---|
RemoveAmmo |
<ammoShortName> [<ammoShortName> ...] |
Drops those rounds from the weapon's accepted ammunition. |
// A cruiser's 20.3 cm main battery, wrongly handed the ship's 2 cm AA shell
Ammo ships_shell_german20cmhe
RemoveAmmo ships_shell_german20mmaa
-
It is applied last, after
Ammo,AddAmmoand everyUseAmmoGroup, so it always takes precedence over all three. Order within the file does not matter. - The short name is the ammunition's own
ShortName, matched case-insensitively, exactly as for the per-ammo overrides above. - The key is repeatable, and one line may name several rounds.
- Naming ammunition the weapon never accepted is harmless and silent.
- Use it to correct an obviously wrong inherited entry, or to deliberately narrow what a weapon accepts, without having to fork a shared ammunition group.
Inherits InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Damage |
float | 0.0 |
Multiplier applied to ammo damage for display and use. |
ReloadTime |
int ticks | 0 |
Reload time, scaled by the heaviest loaded ReloadTimeMultiplier. The wait after the round that empties a barrel is this or the cadence, whichever is longer. A multi-barrel mount reloads every barrel together, and only once all of them have run dry. See Fire Rate and Reloading. |
Recoil |
float | 5.0 |
Recoil value. |
Accuracy / Spread
|
float | 0.0 |
Barrel/projectile spread. |
Dispersion |
float degrees | unset | Alternative angular spread input. Converted internally. |
SpreadPattern |
enum | CIRCLE |
Spread pattern: CIRCLE, CUBE, TRIANGLE, HORIZONTAL, VERTICAL. |
ShootDelay |
float ticks | 0.0 |
Legacy delay between firing events. With neither this nor RoundsPerMin stated, the gun fires once per tick. |
RoundsPerMin |
float RPM | 0.0 |
Firing-event rate. When nonzero, overrides ShootDelay as 1200 / RPM ticks. Fractional delays are kept, so rates above 1200 RPM put several events into one tick. With alternating barrels one barrel fires per event; otherwise every loaded barrel fires per event. |
NumBullets |
int | 1 |
Number of projectiles per shot. |
Ammo |
resource line, repeatable | none | Allowed ammo short name. |
UseAmmoGroup |
group name, repeatable | none | Allows every ammo item in the named ammo group. Individual members can be restated with the per-ammo overrides. |
Health |
int | 0 |
Entity health, retained as the fallback when mass-normalized health is disabled or invalid. |
RealMassKg / MassKg
|
float kilograms, greater than 0
|
unset | Complete firing/operational mass used by UseRealisticVehicleHealth. |
UseRealisticVehicleHealth |
bool | false |
Derives the AA gun's single health pool as realisticVehicleHealthScale * RealMassKg^(2/3), rounded to the nearest integer. Invalid mass retains authored Health. |
CanShootHomingMissile |
bool | false |
Allows homing missile behavior. |
CountExplodeAfterShoot |
int | -1 |
Counter for explode-after-shoot behavior. |
IsDropThis |
bool | true |
Whether this AA gun drops itself. |
| Key | Format | Default | Purpose |
|---|---|---|---|
NumBarrels |
int | 1 |
Number of barrels, clamped to 1..16. |
Barrel |
<id> <x> <y> <z> |
all 0
|
Barrel origin for the given barrel id. The id is a whole number; the position may be fractional (1.7.10 read whole pixels only). Used until a client reports the model's measured muzzles. |
GunnerPos |
<x> <y> <z> |
0 0 0 |
Gunner eye position in model pixels; the seated gunner's feet go 1.62 blocks below it. |
HitBoxSize |
float | 2.0 |
Width and height, in blocks, of the AA gun's physical and targetable box. |
HitBoxWidth |
float | HitBoxSize |
Width and depth in blocks, with a minimum of 0.0625 and no upper cap. The single square box is centred on the gun, turns with gun yaw, and controls hits, walking into it, and standing on it. |
HitBoxHeight |
float | HitBoxSize |
Height in blocks, with a minimum of 0.0625 and no upper cap. The axis-aligned entity box only encloses the rotating box for broad queries. |
TopViewLimit |
float | 75.0 |
Upward view limit. |
BottomViewLimit |
float | 0.0 |
Downward view limit. |
SideViewLimit |
float | 180.0 |
Horizontal view limit. |
TraverseSpeed |
float degrees per second |
0 (unlimited) |
Caps yaw and pitch traverse per axis for mounted gunners and sentries. Mouse sensitivity still controls the input amount; this value sets the mount's maximum rate. Omitted or 0 retains legacy instant rider aiming. |
FireAlternately |
bool | false |
Fires one barrel per firing event when true. When false, every loaded barrel fires in the event. |
ShareAmmo |
bool | false |
All barrels share one ammo slot when true. |
| Key | Format | Default | Purpose |
|---|---|---|---|
TargetMobs |
bool | false |
Enables mob targeting. |
TargetPlayers |
bool | false |
Enables player targeting. |
TargetVehicles |
bool | false |
Enables vehicle targeting. |
TargetPlanes |
bool | false |
Enables plane targeting. |
TargetMechas |
bool | false |
Enables mecha targeting. |
TargetDriveables |
bool | false |
Alias that sets vehicles, planes, and mechas together. |
TargetRange |
float | 10.0 |
Sentry targeting radius. |
ShootSound |
sound | "" |
Shooting sound. |
ReloadSound |
sound | "" |
Reload sound. |
SoundLength / ShootSoundLength
|
int | 0 |
Shoot sound length. |
GunSoundRange |
int | -1 |
Gunshot sound range. -1 uses the mod config gunFireSoundRange. Ignored while overridePackSoundRanges is enabled. |
ReloadSoundRange |
int | -1 |
Reload sound range. -1 uses the mod config reloadSoundRange. Ignored while overridePackSoundRanges is enabled. |
Inherits InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Type |
enum/synonym | helmet if missing or invalid | Armor slot. Accepted groups: helmet, hat, head; chestplate, chest, body; leggings, legs, pants; boots, shoes, feet. |
ArmourTexture / ArmorTexture
|
resource | inherited Texture
|
Armor texture name. The runtime appends _1 or _2 depending on the slot. |
CapeTexture |
resource | none | Cape drawn on any player or humanoid mob wearing the piece, from textures/skins/<name>.png of the same pack (a vanilla-layout 64x32 cape sheet). It replaces the wearer's own cape and ignores their cape display setting. Ignored with a warning if the file does not exist. When several worn pieces declare one, the first of chest, helmet, leggings, boots wins. Hidden while an elytra is worn or the wearer is invisible. |
| Key | Format | Default | Purpose |
|---|---|---|---|
DamageReduction |
double | 0.0 |
Legacy ratio-based damage reduction. |
Defence / Defense
|
double | 0.0 |
Legacy ratio by default. Can be treated as armor points by common config. |
OtherDefence / OtherDefense
|
double | 0.0 |
Always legacy ratio-based reduction. |
BulletDefence |
double | inherits effective defense | Bullet-specific legacy defense. |
PenetrationResistance |
float | unarmoured value of the slot | Cost in penetrating power of defeating this piece, and the reference used to scale bullet damage. Defaults to 1.0 for helmets and chestplates, 0.65 for leggings and 0.35 for boots, so an armour piece is never worse than bare skin. Requires useNewPenetrationSystem. See Penetration System. |
DamageReductionAmount / ArmorPoints
|
double | 0.0 |
Vanilla Minecraft armor points. |
Toughness |
int | 0 |
Vanilla armor toughness. |
Durability |
int | 0 |
Item durability. 0 means no durability. |
Enchantability |
int | 0 |
Enchantability. If absent, config defaults may be used elsewhere. |
| Key | Format | Default | Purpose |
|---|---|---|---|
MoveSpeedModifier / Slowness
|
float | 1.0 |
Movement speed multiplier. |
JumpModifier |
float | 1.0 |
Jump modifier. |
KnockbackReduction / KnockbackModifier
|
float | 0.2 |
Knockback modifier/resistance value. |
NightVision |
bool | false |
Applies night vision behavior. |
Invisible / Playermodel
|
bool | false |
Makes the wearer invisible while the piece is worn: the wearer's body is not drawn, and the armor itself stays visible. Players and mobs get the invisibility effect; NPCs of the NPC module are drawn without their skin. |
NegateFallDamage |
bool | false |
Prevents fall damage. |
FireResistance |
bool | false |
Prevents fire damage. |
WaterBreathing / Submarine
|
bool | false |
Allows breathing underwater. |
SmokeProtection |
bool | false |
Protects from smoke grenade effects. |
OnWaterWalking |
bool | false |
Lets the wearer stand and walk on the surface of still (source) water. A wearer who is already deeper than ankle-deep swims normally. |
Hunger |
bool | false |
Applies hunger debuff behavior. |
Regenerate |
bool | false |
Applies regeneration behavior. |
EquipSound |
sound | "" |
Sound played when equipped. |
AddEffect / AddPotionEffect / PotionEffect
|
effect line | none | Potion effects applied by the armor. Ambient defaults to true, visible defaults to false. |
Inherits PaintableType and InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
AttachmentType |
enum | GENERIC |
Attachment slot: BARREL, SIGHTS, STOCK, GRIP, GADGET, SLIDE, PUMP, ACCESSORY, GENERIC. |
Silencer |
bool | false |
Muffles gunshot sounds. |
DisableMuzzleFlash / DisableFlash
|
bool | false |
Disables muzzle flash model rendering. |
Flashlight |
bool | false |
Enables flashlight behavior. |
FlashlightRange |
float | 10.0 |
Flashlight range. |
FlashlightStrength |
int | 12 |
Flashlight strength, usually 0..15. |
Toggleable |
bool | value of Flashlight
|
Lets the toggle key (default G) switch the attachment on and off. The state is stored on the gun and shared by all of its toggleable attachments. While off, a flashlight casts no light and the model's toggleModel parts (laser beams and the like) are hidden. Stat modifiers are unaffected. |
ToggleOnSound / ToggleOffSound
|
sound | ~ |
Sounds played when the toggle key switches the attachment on or off. The gun's own toggle sounds take precedence, and the fallback is switchfiringmode. |
ModeOverride |
fire mode | ~ |
Overrides the gun fire mode. Values: SEMIAUTO, FULLAUTO, MINIGUN, BURST. |
| Key | Format | Default | Purpose |
|---|---|---|---|
MeleeDamageMultiplier |
float | 1.0 |
Multiplies melee damage. |
DamageMultiplier |
float | 1.0 |
Multiplies gun damage. |
SpreadMultiplier |
float | 1.0 |
Multiplies spread. |
RecoilMultiplier |
float | 1.0 |
Multiplies recoil. |
RecoilControlMultiplier |
float | 1.0 |
Multiplies recoil return-to-center force. Lower is stronger control. |
RecoilControlMultiplierSneaking |
float | 1.0 |
Sneaking recoil-control multiplier. |
RecoilControlMultiplierSprinting |
float | 1.0 |
Sprinting recoil-control multiplier. |
BulletSpeedMultiplier |
float | 1.0 |
Multiplies bullet speed. |
ShootDelayMultiplier |
float | 1.0 |
Multiplies shoot delay. |
MovementSpeedMultiplier / MoveSpeedModifier
|
float | 1.0 |
Multiplies player movement speed while used. |
| Key | Format | Default | Purpose |
|---|---|---|---|
SecondaryMode |
bool | false |
Enables secondary/underbarrel fire. |
RenderOnlyOnMode |
bool | false |
Grip model and its ammunition mesh are visible only in secondary mode or during a switch. Does not change gameplay or hide the attachment as an inventory item. Other attachment slots ignore this flag, matching the fork. |
SecondaryAmmo |
resource | ~ |
Ammo short name for secondary fire. |
SecondaryDamage |
float | 1.0 |
Secondary fire damage. |
SecondarySpread / SecondaryAccuracy
|
float | 1.0 |
Secondary fire spread. |
SecondaryBulletSpeed |
float | 5.0 |
Secondary projectile speed. |
SecondaryShootDelay |
int | 1 |
Secondary shoot delay. |
SecondaryReloadTime |
int | 1 |
Secondary reload time. |
SecondaryNumBullets |
int | 1 |
Secondary projectile count. |
LoadSecondaryIntoGun |
int | 1 |
Secondary ammo stacks loaded into the gun. |
SecondaryFireMode |
fire mode | SEMIAUTO |
Secondary fire mode. |
SecondaryShootSound |
sound | ~ |
Secondary shoot sound. |
SecondaryReloadSound |
sound | ~ |
Secondary reload sound. |
ModeSwitchSound |
sound | ~ |
Sound played when toggling the grip's secondary fire on or off. |
| Key | Format | Default | Purpose |
|---|---|---|---|
MinZoom |
float | 1.0 |
Minimum variable zoom. |
MaxZoom |
float | 4.0 |
Maximum variable zoom. |
ZoomAugment |
float | 1.0 |
Zoom step/change amount. |
ZoomLevel |
float | 1.0 |
Scope zoom level. |
FOVZoomLevel |
float | 1.0 |
FOV zoom level. |
ZoomOverlay |
resource | inherited Overlay
|
Scope overlay texture. Value none clears it. |
HasNightVision |
bool | false |
Gives night vision while scoped. |
HasThermalVision / HasThermal
|
bool | false |
Shows the white-hot generation 3 thermal image while fully zoomed through this scope, and lights the view like night vision so the image stays readable at night. Night vision alone does not enable it. |
Inherits ShootableType and InfoType. Bullet files also reread Accuracy, Spread, and Dispersion using the same meanings as ShootableType.
| Key | Format | Default | Purpose |
|---|---|---|---|
BulletSpeed |
float | 0.0 |
Bullet speed override. Runtime fallback may use 3.0 when a default speed is required. |
MuzzleVelocity |
float m/s | 0.0 |
Alternative speed input. Converted to blocks/tick by dividing by 20. |
BulletSpeedMultiplier |
float | 1.0 |
Multiplies projectile speed. |
PenetrationAt100m |
float millimetres | 0.0 |
Perpendicular-plate penetration rating used at every range. The historical key name is retained for pack compatibility. Required to directly damage a vehicle face with physical armour greater than 0 mm. |
HEAT |
bool | false |
Marks a shaped-charge (HEAT) warhead. PenetrationAt100m is then tested against a face's protection against HEAT, the round stops at the first vehicle part it strikes, and on realistic-health vehicles a penetration deals damage from the explosive charge rather than the round's speed. Same key as the Labjac edition. See HEAT ammunition. |
HESH |
bool | false |
Squash-head explosive ammunition. Stops at the first driveable part or entity using driveable armour; uses kinetic protection and existing direct damage, without a HEAT jet. Existing explosion settings still apply. See Special ammunition. |
FlakParticles |
int | 0 |
Number of flak particles on explosion. |
FlakParticleType |
string | largesmoke |
Flak particle type. |
SetEntitiesOnFire |
bool | false |
Sets hit entities on fire. |
HitSoundEnable |
bool | false |
Enables hit sound. |
EntityHitSoundEnable |
bool | false |
Enables entity-hit sound. |
HitSound |
sound | ~ |
Hit sound. Blank HitSound lines are ignored. |
HitSoundRange |
float | Mod config bulletHitSoundRange (64 by default) |
Hit sound range. Ignored while overridePackSoundRanges is enabled. |
FlyBySound, missNoise
|
string | unset | Per-ammunition near-miss sound. Unset keeps the generic bullet fly-by sound; blank or None disables it. If both aliases occur, FlyBySound wins. |
FlyBySoundRange |
float | 5 |
Maximum near-miss sound distance from the actual travelled segment, in blocks (0–32). Zero disables it. Applies to flying and hitscan rounds; each player hears at most one sound per round. |
Suppression |
float | 16 |
Near-miss impulse multiplier on the Labjac scale (16 = neutral; 0 = disabled; capped at 160). Enabled by default; the server can disable nearMissSuppression; no aim, accuracy or damage penalty is applied. |
SuppressionRange |
float | 3 |
Maximum near-miss suppression distance in blocks (0–32), before the server range multiplier. Zero disables it. Stopping impacts, cover, shooter/owner exclusions and direct hits are respected. |
DragInAir |
float | 0.99 |
Air drag, clamped to 0..1. |
DragInWater |
float | 0.8 |
Water drag, clamped to 0..1. |
TrailTexture |
resource |
defaultbullettrail if blank |
Bullet trail texture. |
FancyDescription |
bool | true |
When false, the ammo tooltip shows only the pack name and description, without the hold-for-details statistics. |
BlockHitFXScale |
float | computed | Block-hit particle velocity scale. If absent, computed from explosion radius. |
AddPotionEffect / PotionEffect
|
effect line | none | Potion effects applied on hit. Ambient defaults to false, visible defaults to false. |
A round with a tracer beam leaves a glowing 3D beam behind it every tick, drawn at full brightness and fading over 3 ticks, so the beams blend into one streak. Above 15 blocks per tick the beam grows with the square root of the speed, up to three times its length. Colours and alpha are fractions from 0 to 1. Beams are drawn by every client from the round's own state, so other players see them too.
A mixed belt makes every AlternateBulletLoad-th round fired from one ammunition item an alternate round, counted from the first round of the item, for guns, driveable weapons, AA guns and mechas alike. As in the Labjac Edition, alternate rounds exist only with HasAlternateModel true. They can use their own model, texture, beam and trail particles, and fall back to the ordinary ones for anything they do not set.
| Key | Format | Default | Purpose |
|---|---|---|---|
TracerBeam |
bool | false |
Draws a tracer beam behind every round. |
TracerBeamColor |
<r> <g> <b> |
0.1 1.0 0.15 |
Beam colour. |
TracerBeamLength |
float blocks | 4.0 |
Beam length behind the round. |
TracerBeamWidth |
float blocks | 0.04 |
Beam core half-width; a wider, fainter halo is drawn around it. |
TracerBeamAlpha |
float | 0.9 |
Beam opacity. |
HasAlternateModel |
bool | false |
Enables alternate rounds. |
AlternateBulletLoad |
int | 0 |
Every n-th round is an alternate round. 1 or less disables them. |
AlternateModel |
model | none | Model of alternate rounds. Without it they keep the ordinary model. |
AlternateTexture |
resource | none | Texture of alternate rounds. Without it they keep the ordinary texture. |
AlternateTracerBeam |
bool | false |
Alternate rounds draw this beam instead of TracerBeam. |
AlternateTracerBeamColor / Length / Width / Alpha
|
as for TracerBeam
|
as for TracerBeam
|
Settings of the alternate beam. |
AlternateTrailParticles |
bool | false |
Alternate rounds leave trail particles even when TrailParticles is off. |
AlternateTrailParticleType |
particle | smoke |
Trail particle of alternate rounds. |
AlternateTrailParticleCount |
int | 10 |
Trail particles per tick of alternate rounds. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Penetrates |
bool | true |
Enables penetration. If set false, penetrating power is forced to 0.7 and the kinetic derivation is skipped. |
Penetration / PenetratingPower
|
float | 1.0 |
Penetrating power. Ignored when the ammunition declares a Mass, because penetrating power is then derived from muzzle kinetic energy. |
PenetrationDecay |
float | 0.0 |
Penetration lost per tick. |
BlockPenetrationModifier |
float | -1.0 |
Block penetration modifier. |
PlayerPenetrationDamageEffect |
float | 0.0 |
How player penetration loss affects damage. |
EntityPenetrationDamageEffect |
float | 0.0 |
How entity penetration loss affects damage. |
BlockPenetrationDamageEffect |
float | 0.0 |
How block penetration loss affects damage. |
PenetrationDecayDamageEffect |
float | 0.0 |
How decay affects damage. |
PenetrationAt100m is the separate, range-independent physical millimetre value
used by vehicle armour. Penetration / PenetratingPower, decay, and block
penetration remain legacy abstract-scale mechanics and are not converted to
millimetres.
When the ammunition declares a projectile Mass, meaning it uses the kinetic
damage system, penetrating power is derived from muzzle kinetic energy instead of
from the authored Penetration / PenetratingPower:
penetratingPower = kineticPenetrationReference * cbrt(0.5 * massKg * muzzleVelocityMps^2)
AddRound belts derive it per round. See
Penetration System
for the resulting scale, the velocity resolution order, and what spends the
budget.
| Key | Format | Default | Purpose |
|---|---|---|---|
Bomb |
optional bool | false |
Sets WeaponType to BOMB. A key with no value counts as true. |
Shell |
optional bool | false |
Sets WeaponType to SHELL. A key with no value counts as true. |
Missile |
optional bool | false |
Sets WeaponType to MISSILE. A key with no value counts as true. |
WeaponType |
enum | GUN |
One of MISSILE, BOMB, SHELL, MINE, GUN. Overrides the legacy bool keys. |
LockOnToDriveables |
bool | false |
Sets plane, vehicle, and mecha lock-on flags together. |
LockOnToVehicles |
bool | false |
Lock on to vehicles. |
LockOnToPlanes |
bool | false |
Lock on to planes. |
LockOnToMechas |
bool | false |
Lock on to mechas. |
LockOnToPlayers |
bool | false |
Lock on to players. |
LockOnToLivings |
bool | false |
Lock on to living entities. |
MaxLockOnAngle |
float | 45.0 |
Maximum lock-on acquisition angle. |
LockOnForce / TurningForce
|
float | 1.0 |
Homing turn force. |
MaxDegreeOfLockOnMissile |
int | 20 |
Maximum lock-on missile turn degree. |
TickStartHoming |
int | 5 |
Tick when homing begins. |
EnableSACLOS |
bool | false |
Enables SACLOS guidance. |
MaxDegreeOFSACLOS |
int | 5 |
Maximum SACLOS turn degree. |
MaxRangeOfMissile |
int | 256 |
Maximum missile range. |
CanSpotEntityDriveable |
bool | false |
Enables spotting driveable entities. |
ShootForSettingPos |
bool | false |
Uses a configured/top-attack position behavior. |
ShootForSettingPosHeight |
int | 100 |
Height used by setting-position shots. |
IsDoTopAttack |
bool | false |
Enables top-attack behavior. |
ManualGuidance |
bool | false |
Enables manual guidance. |
LaserGuidance |
bool | false |
Enables laser guidance. |
MaxRange |
int | -1 |
Maximum projectile range. -1 means unset. |
KnockbackModifier |
float | 0.0 |
Bullet knockback modifier. |
| Key | Format | Default | Purpose |
|---|---|---|---|
VLS / HasDeadZone
|
bool | false |
Enables vertical launch/dead-zone behavior. |
DeadZoneTime |
int | 0 |
Dead-zone duration. |
FixedTrackDirection |
bool | false |
Uses a fixed tracking direction. |
GuidedTurnRadius |
float | 3.0 |
Guided turn radius. |
GuidedPhaseSpeed |
float | 2.0 |
Boost/guided phase speed. |
GuidedPhaseTurnSpeed |
float | 0.1 |
Boost/guided phase turn speed. |
BoostParticle |
string | ~ |
Boost phase particle type. |
Torpedo |
bool | false |
Enables torpedo behavior. |
depthCharge |
bool | false |
Enables depth-charge sinking and water-only server detonation. Forces a projectile entity even if no muzzle velocity is authored. Takes precedence over Torpedo motion. See Special ammunition. |
activationDepth |
float | 20 |
Depth in blocks below the sea-level reference; detonation requires water and depth strictly greater than this value. Clamped to 0–4096; nonfinite values revert to 20. Prime delay, fuse and lifetime still apply. |
DepthChargeLifetime |
int | 2400 |
Maximum depth-charge lifetime in ticks (120 seconds), replacing the normal 600-tick projectile limit only when depthCharge is enabled. Clamped to 1–72000. A positive Fuse may still detonate it earlier. |
DepthChargeSeaLevel |
int | dimension sea level | Optional absolute Y coordinate used only for depth charges. Supports negative Y. Omitted values use the current dimension's sea level. |
HasSubmunitions |
bool | false |
Enables submunitions. |
Submunition |
resource | "" |
Submunition bullet short name. |
NumSubmunitions |
int | 0 |
Number of submunitions. |
SubmunitionDelay |
int | 0 |
Delay before deploying submunitions. |
SubmunitionSpread |
float | 1.0 |
Submunition spread. |
DestroyOnDeploySubmunition |
bool | false |
Destroys parent projectile when submunitions deploy. |
AddRound |
<name> <count> <massG> [explosiveMassG] [muzzleVelocityMps] [penetrationAt100m] |
none | Adds per-round stats when RoundsPerItem > 1. |
Inherits ShootableType and InfoType.
Grenades use the same per-tick simplified projectile drag as bullets: velocity is retained at 0.99 in air, 0.8 in water, and 0.6 in lava, followed by gravity (9.81/400 blocks/tick squared times FallSpeed). Thrown guns use these same medium factors and the same 9.81/400 gravity.
| Key | Format | Default | Purpose |
|---|---|---|---|
MeleeDamage |
int | 1 |
Damage from melee-hitting with the grenade item. |
ThrowDelay |
int | 0 |
Delay between throws. |
ThrowSound |
string | "" |
Sound name played when thrown. |
DropItemOnThrow |
resource | ~ |
Item dropped when thrown. |
CanThrow |
bool | true |
Whether right-click throwing is allowed. |
PenetratesBlocks |
bool | false |
Whether thrown grenade penetrates blocks. |
BounceSound |
sound | "" |
Sound played on bounce. |
Bounciness |
float |
0.9 if absent |
Overrides inherited bounciness. If the key is absent or has no value, grenade bounciness becomes 0.9. |
HoldToThrow |
bool | false |
Labjac Edition hold-to-throw. Hold and release attack to throw overhand, hold and release use to toss underhand. The grenade is spent only on release, which the server validates, so its fuse starts then. Switching items, opening a screen or entering a vehicle puts it away without throwing. Right-click does not throw these grenades. |
OverhandThrowSpeedMultiplier |
float | 1.0 |
Speed multiplier of an overhand throw, which also lobs half again as high as an ordinary throw. |
UnderhandThrowSpeedMultiplier |
float | 0.45 |
Speed multiplier of an underhand toss, which climbs at 0.6 times the rate plus 0.08 x ThrowSpeed. |
GrenadeGroundFriction |
float | 1.0 |
Horizontal speed kept after bouncing off a floor or ceiling. |
GrenadeAirDrag |
float | 1.0 |
Extra speed kept per tick in flight and after bouncing off a wall, on top of the normal drag. |
GrenadeStopSpeed |
float |
0.03 with HoldToThrow, else 0
|
A grenade slower than this after a bounce comes to rest. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Sticky |
bool | false |
Sticks to surfaces. |
StickToThrower |
bool | false |
Sticks to the thrower. |
StickToEntity |
bool | false |
Sticks to entities. |
StickToDriveable |
bool | false |
Sticks to driveables. |
StickToEntityAfter |
bool | false |
Delayed entity sticking behavior. |
AllowStickSound |
bool | false |
Allows stick sound playback. |
StickSoundRange |
int | Mod config grenadeStickSoundRange (10 by default) |
Stick sound range. Ignored while overridePackSoundRanges is enabled. |
StickSound |
sound | ~ |
Stick sound. |
SpinWhenThrown |
bool | true |
Whether the model spins when thrown. |
Remote |
bool | false |
Can be detonated by remote tools. |
DetonateWhenShot |
bool | false |
Can be detonated by being shot. |
FlashBang |
bool | false |
Enables flashbang behavior. |
FlashTime |
int | 200 |
Flash duration. |
FlashRange |
int | 8 |
Flash radius/range. |
FlashSoundEnable |
bool | false |
Enables flash sound. |
FlashSoundRange |
int | Mod config grenadeFlashSoundRange (16 by default) |
Flash sound range. Ignored while overridePackSoundRanges is enabled. |
FlashSound |
sound | ~ |
Flash sound. |
FlashDamageEnable |
bool | false |
Enables flash damage. |
FlashDamage |
float | 0.0 |
Flash damage. |
FlashEffects |
bool | false |
Enables the configured flash potion effects. Effects are applied by the flash-damage path, so FlashDamageEnable must also be enabled. |
FlashEffectsID / AddFlashEffect
|
effect line, repeatable | none | Adds a flash potion effect. The keys are exact aliases and may be repeated or mixed. Omitted duration and amplifier use FlashEffectsDuration and FlashEffectsLevel; ambient/visible default to false. |
FlashEffectsDuration |
int | 0 |
Default duration for flash effect lines that omit duration. |
FlashEffectsLevel |
int | 0 |
Default amplifier for flash effect lines that omit amplifier. |
Flash effects use the standard effect-line format and support multiple entries:
FlashEffects true
FlashDamageEnable true
FlashEffectsDuration 100
FlashEffectsLevel 0
FlashEffectsID 15
FlashEffectsID 2 200 1
AddFlashEffect 18 80 0
In this example, the first effect inherits duration 100 and amplifier 0. Values supplied on an individual line override those defaults. FlashEffectsID and AddFlashEffect behave identically.
| Key | Format | Default | Purpose |
|---|---|---|---|
DeployableBag |
optional bool | false |
Enables bag behavior. A key with no value counts as true. |
NumUses |
int | 1 |
Uses before the bag runs out. |
HealAmount |
float | 0.0 |
Amount healed per use. |
AddPotionEffect / PotionEffect
|
effect line | none | Potion effects applied to the user. Ambient/visible default to false. |
NumClips |
int | 0 |
Number of clips supplied for the user's current gun. |
Inherits PaintableType and InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Damage |
float | 0.0 |
Gun damage multiplier. Multiplied with ammo damage. |
MeleeDamage |
float | 1.0 |
Melee damage. Also affects inferred primary/secondary functions. |
MeleeDamageDriveableModifier |
float | 1.0 |
Melee damage modifier against driveables. |
CanForceReload |
bool | true |
Allows reload key reloads. |
ReloadTime |
int ticks | 0 |
Whole-magazine reload, scaled by attachment multipliers and the loaded ammunition's ReloadTimeMultiplier, and divided across NumAmmoSlots so only the slots actually refilled are paid for. The wait after the round that empties the gun is this or the cadence, whichever is longer. See Fire Rate and Reloading. |
TacticalReloadTime |
float ticks | -1 |
Live-ammunition reload duration. Positive values override the base duration; -1 derives it using TacticalReloadMultiplier; 0 disables the tactical bonus. Explicit positive values also enable tactical timing for internal/multiple-slot ammunition. Selection happens before reload scheduling. The existing attachment, ammunition and enchantment multipliers still apply. |
TacticalReloadMultiplier |
float | 0.8 |
Derived tactical-duration factor (0–2), used only when TacticalReloadTime is negative. Automatic selection requires one loaded ammo slot with live multi-round ammunition. Use 1 to preserve ordinary reload timing. Shipped reviewed belt-fed categories use 1. Secondary attachment reloads keep SecondaryReloadTime. |
SecondarySwitchTime / SecondaryUnSwitchTime
|
float ticks |
8 each |
Entering/leaving secondary mode blocks shots and reload attempts for this server-selected duration. Rounded up, bounded 0–1200; zero disables the delay in that direction. Requests during cooldown or reload are rejected. |
SecondarySwitchMovement |
bool | true |
Cosmetic first-person dip during secondary-mode changes. Disable this independently of the server delay. This does not load glTF switch clips. |
ConsumeBulletType |
int | 1 |
Digital ammo type consumed by reloads. |
BulletsPerReload |
double | 30.0 |
Digital ammo amount consumed per reload. |
ShootDelay |
float ticks | 0.0 |
Legacy delay between shots. Falls back to 2 ticks (600 RPM) when neither this nor RoundsPerMin is stated. |
RoundsPerMin |
float RPM | 0.0 |
Fire rate in RPM; overrides ShootDelay as 1200 / RPM ticks. Fractional delays are kept, so rates above 1200 RPM fire more than once per tick. |
NumBullets |
int | 1 |
Projectiles fired per shot. |
NumAmmoSlots / NumAmmoItemsInGun / LoadIntoGun
|
int | 1 |
Number of ammo stacks loaded into the gun. |
NumBurstRounds |
int | 3 |
Shots per burst. |
AllowSpreadByBullet |
bool | false |
Uses loaded ammo spread when available. |
AllowNumBulletsByBulletType |
bool | true |
Allows ammo to override projectile count. |
BulletSpeed |
float or instant
|
5.0 |
Bullet speed. instant sets speed to 0. |
MuzzleVelocity |
float m/s | 0.0 |
Alternative speed input. Converted to blocks/tick by dividing by 20. |
ThrowSpeedMs |
float m/s | unset | With SecondaryFunction Throw, overrides BulletSpeed and MuzzleVelocity as the thrown weapon's launch speed. Converted to blocks/tick by dividing by 20; always shown as Throw Speed in its tooltip. |
Ammo |
resource line, repeatable | none | Allowed ammo short name. |
UseAmmoGroup |
group name, repeatable | none | Allows every ammo item in the named ammo group. Individual members can be restated with the per-ammo overrides. |
Mode |
fire mode list | effective default FULLAUTO
|
One or more values: SEMIAUTO, FULLAUTO, MINIGUN, BURST. First value becomes the default allowed mode. If absent, mode is SEMIAUTO but allowed/default stack mode currently remains FULLAUTO. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Accuracy / Spread
|
float | 0.0 |
Gun spread. |
Dispersion |
float degrees | unset | Alternative angular spread input. Converted internally. |
SpreadPattern |
enum | CIRCLE |
CIRCLE, CUBE, TRIANGLE, HORIZONTAL, or VERTICAL. |
ADSSpreadModifier |
float | -1.0 |
ADS spread modifier. -1 uses common config. |
ADSSpreadModifierShotgun |
float | -1.0 |
ADS spread modifier for multishot guns. -1 uses common config. |
Recoil |
float | 0.0 |
Vertical recoil. |
RecoilYaw |
float | 0.0 |
Horizontal recoil. Divided by 10 after reading. |
RandomRecoilRange |
float | 0.5 |
Random extra vertical recoil range. |
RandomRecoilYawRange |
float | 0.3 |
Random yaw recoil range. |
CounterRecoilForce |
float | 0.8 |
Return-to-center coefficient. Higher means slower return. |
CounterRecoilForceSneaking |
float | 0.7 |
Sneaking return coefficient. |
CounterRecoilForceSprinting |
float | 0.9 |
Sprinting return coefficient. |
DecreaseRecoil |
float | 0.0 |
Deprecated sneaking recoil reduction. |
DecreaseRecoilYaw |
float |
0.5 if absent or non-positive |
Deprecated yaw reduction/divisor. |
RecoilWalkingMultiplier |
float | 1.0 |
Walking recoil pitch multiplier. |
RecoilWalkingMultiplierYaw |
float | 1.1 |
Walking recoil yaw multiplier. |
RecoilSprintingMultiplier |
float | 1.0 |
Sprinting recoil pitch multiplier. |
RecoilSprintingMultiplierYaw |
float | 1.2 |
Sprinting recoil yaw multiplier. |
RecoilSneakingMultiplier |
float | -1.0 |
Sneaking recoil pitch multiplier. -1 preserves legacy behavior. |
RecoilSneakingMultiplierYaw |
float | 0.8 |
Sneaking recoil yaw multiplier. |
FancyRecoil |
<vertical> [horizontal] [recovery] [recoveryScope] [fall] [increase] [sneak] [speed] |
off | Enables extended recoil. Tokens may also be written as name=value; only the value after = is used. |
HasScreenShake |
bool | false |
Labjac Edition infantry screen shake: every shot narrows the shooter's field of view by up to 10 degrees, recovering over the next ticks, and optionally kicks the camera up. It only changes the view, never the aim. Players can turn it off with the gunScreenShake client setting. |
ScreenShakeStyle |
Sustained or Clean
|
Sustained |
Sustained makes the punch grow with sustained fire, up to about 2.4 times during long bursts; Clean keeps it constant. |
ScreenShakeIntensity |
float | 1.0 |
Punch per shot, and a multiplier on the camera kick. |
CameraRecoil |
float | vertical FancyRecoil, else 0
|
Camera kick strength, about 2.8 degrees per unit, fading to a fifth every tick. Drawn only with view bobbing on, as in 1.7.10. |
ScreenShakeCameraKick |
bool | true |
Whether a screen-shaking gun also kicks the camera. |
| Key | Format | Default | Purpose |
|---|---|---|---|
CanLockAngle |
int | 5 |
Lock-on angle setting. |
LockOnToDriveables |
bool | false |
Sets planes, vehicles, and mechas together after reading. |
LockOnToVehicles |
bool | false |
Allows vehicle lock-on. |
LockOnToPlanes |
bool | false |
Allows plane lock-on. |
LockOnToMechas |
bool | false |
Allows mecha lock-on. |
LockOnToPlayers |
bool | false |
Allows player lock-on. |
LockOnToLivings |
bool | false |
Allows living entity lock-on. |
MaxRangeLockOn |
int | 80 |
Lock-on range. |
Knockback |
float | 0.0 |
Shooter knockback per shot. |
WalkSpreadModifier / WalkSpreadMultiplier
|
float | 1.8 |
Spread multiplier while walking. |
SneakSpreadModifier / SneakSpreadMultiplier
|
float | 0.63 |
Spread multiplier while sneaking. |
SprintSpreadModifier / SprintSpreadMultiplier
|
float | 7.0 |
Spread multiplier while sprinting. |
AirborneSpreadModifier / AirborneSpreadMultiplier
|
float | 1.5 |
Spread multiplier while airborne. |
AllowRearm |
bool | true |
Allows ammo from ammo magazines/supply behavior. |
ConsumeGunOnUse |
bool | false |
Consumes the gun after use. |
ShowCrosshair |
bool | true |
Shows crosshair while holding the gun. |
DropItemOnShoot |
resource | ~ |
Item dropped when shooting. |
MinigunStartSpeed |
float | 15.0 |
Spin speed needed before minigun fires. |
CanShootUnderwater |
bool | true |
Allows firing underwater. |
CanSetPosition |
bool | false |
Allows setting guided/launcher target position. |
OneHanded |
bool | true |
Allows one-handed/dual-wield behavior. |
ForceAimPose |
bool | false |
Keeps this gun's holding arm raised in the aiming pose even when the holder uses dynamic aiming. Applies to players and humanoid mobs; the other hand follows its normal pose rules. |
MirrorInLeftHand |
bool | false |
Mirrors the custom gun model across its side axis in first- and third-person left-hand views. Right-hand, inventory, and dropped-item views are unchanged. |
UsableByPlayers |
bool | true |
Allows player use. |
Toggleable |
bool | false |
Lets the toggle key (default G) power the weapon itself on and off, as with lightsabers. While off it cannot shoot or melee, its melee damage and idle and melee sounds are disabled, and the model's toggleModel parts are hidden. New stacks start switched on. Toggleable attachments make the key usable even when this is false. |
UsableByMechas |
bool | true |
Allows mecha use. |
ItemUseAction |
enum | BOW |
Minecraft UseAnim value. |
HipFireWhileSprinting |
bool | unset | If absent, uses common config. If present, true force allows and false force denies. |
MoveSpeedModifier / Slowness
|
float | 1.0 |
Movement speed modifier while held. |
KnockbackReduction / KnockbackModifier
|
float | 0.0 |
Knockback resistance modifier while held. |
SwitchDelay |
float | 0.0 |
Delay when switching to the gun. |
Deployable guns keep the direction chosen at placement across world reloads. Their barrel can traverse within SideViewLimit while operated, then returns to the placed direction when unoccupied. They move an operator who mounts from the front to a clear position behind the gun. They cannot be mounted without room there. An obstruction to either side stops the operator from moving farther around the emplacement, while the weapon can continue traversing through its normal yaw range. A configured FlashModel or MuzzleFlashModel is drawn for two ticks at the deployed model's automatically measured muzzle and follows its yaw and pitch. The client's muzzleFlashStyle preference selects the model when both are declared. When that muzzle can be measured, projectiles start there and first-person view height follows the model with enough clearance to see over the weapon. Unmeasurable legacy models retain normal standing eye height and use PivotHeight for firing. The bundled conventional machine guns use consistent envelopes: bipod guns use 30 degrees up, 10 degrees down and at most 40 degrees to either side; tripod and heavy guns use 20 degrees vertically and at most 40 degrees to either side.
| Key | Format | Default | Purpose |
|---|---|---|---|
Deployable |
bool | false |
Places a deployed gun instead of normal firing. |
DeployedModel |
string | "" |
Model for deployed gun. |
DeployedTexture |
resource | "" |
Texture for deployed gun. |
StandBackDistance |
float | 1.5 |
Player distance behind a deployed gun. The standing player follows the gun around the emplacement until an obstruction blocks further movement, and follows the ground surface, dismounting if no support is within one block below the gun. |
TopViewLimit |
float | -60.0 |
Upward view limit. Positive configured values are negated. |
BottomViewLimit |
float | 30.0 |
Downward view limit. |
SideViewLimit |
float | 40.0 |
Horizontal view limit, capped at 40 degrees when loaded. |
PivotHeight |
float | 0.375 |
Compatibility projectile origin in blocks above the gun's block position, matching its 1.7.10 meaning. A successfully measured deployed model fires from its actual muzzle instead. This value does not control the operator's standing position or eye height. |
MeleeTime |
int | 1 |
Delay between custom melee attacks. |
AddNode |
<x> <y> <z> <pitch> <yaw> <roll> |
none | Adds a melee path node. Position values are divided by 16. |
MeleeDamagePoint / MeleeDamageOffset
|
<x> <y> <z> |
none | Adds melee damage point. Values are divided by 16. |
UseCustomMeleeWhenShoot |
bool | false |
Makes shooting use custom melee behavior. |
UseCustomMelee |
optional bool | false |
Enables custom melee. A key with no value counts as true. |
PrimaryFunction |
enum | inferred, usually SHOOT
|
shoot, fire, zoom, melee, custommelee, custom_melee; otherwise defaults to ADS_ZOOM. throw is refused here with a content warning and falls back to SHOOT. |
SecondaryFunction |
enum | inferred, usually ADS_ZOOM
|
Same accepted values as PrimaryFunction, plus throw: holding the use button draws the throwing arm back over the shoulder, like the vanilla spear pose, while the other arm keeps the pose it had (a shield stays raised, and a free arm that supported the raised weapon keeps pointing ahead), and releasing it after ThrowChargeTime throws the item itself, trident-style. The thrown item keeps its NBT, sticks where it lands and can be picked up again (it despawns after 5 minutes, like a dropped item; creative throws are not consumed and cannot be picked up). Its speed is ThrowSpeedMs when present, otherwise the gun's MuzzleVelocity / BulletSpeed, its spread the gun's Dispersion / Accuracy including movement modifiers, and RoundsPerMin / ShootDelay becomes an item cooldown after each throw. ShootSound replaces the vanilla trident throw sound. In flight it is drawn with the item's flat icon, tip first, sized by ModelScale. |
ThrowMass |
float, grams | 0 |
With SecondaryFunction Throw: a positive mass derives the hit damage kinetically from the mass and the throw speed, with the same formula as ammunition Mass; otherwise the gun's Damage is dealt. The result is rounded to the nearest half point. Hits use the shootable damage type, so armour BulletDefence applies. |
ThrowChargeTime |
int, ticks | 10 |
With SecondaryFunction Throw: how long the throw must be held before releasing it throws. Negative values become 0. |
| Key | Format | Default | Purpose |
|---|---|---|---|
ShowAttachments |
bool | true |
Shows attachments in the item GUI/tooltips. |
ShowDamage |
bool | true |
Shows damage stat. |
ShowRecoil |
bool | true |
Shows recoil stat. |
ShowAccuracy |
bool | true |
Shows spread/accuracy stat. |
ShowReloadTime |
bool | true |
Shows reload stat. |
ShowShootDelay |
bool | true |
Shows shoot delay stat. |
ShowBulletSpeed |
bool | true |
Shows bullet speed stat. |
ShowMode |
bool | true |
Shows fire mode. |
DistortSound |
bool | true |
Randomizes pitch for shots, reloads, and melee swings. Set to false to preserve the sound's original pitch. |
SoundLength |
int | 0 |
Shoot sound length. |
IdleSoundLength |
int | 0 |
Idle loop length. |
WarmupSoundLength |
int | 20 |
Warmup sound length. |
LoopedSoundLength / SpinSoundLength
|
int | 20 |
Looped/spin sound length. |
IdleSoundRange |
int | -1 |
Idle sound range. -1 uses the mod config gunActionSoundRange. Ignored while overridePackSoundRanges is enabled. |
MeleeSoundRange |
int | -1 |
Melee sound range. -1 uses the mod config meleeSoundRange. Ignored while overridePackSoundRanges is enabled. |
ReloadSoundRange |
int | -1 |
Reload sound range. -1 uses the mod config reloadSoundRange. Ignored while overridePackSoundRanges is enabled. |
GunSoundRange |
int | -1 |
Gunshot sound range. -1 uses the mod config gunFireSoundRange. Ignored while overridePackSoundRanges is enabled. |
DistantSoundRange |
int | -1 |
Distant shoot sound range. -1 uses 1.5 times the mod config gunFireSoundRange. Ignored while overridePackSoundRanges is enabled. |
ShootSound |
sound | ~ |
Shot sound. |
BulletInsertSound |
sound | defaultshellinsert |
Shell insert/reload sound. |
ActionSound |
sound | ~ |
Pump/action sound. |
LastShootSound |
sound | ~ |
Sound for the last round. |
SuppressedShootSound |
sound | ~ |
Suppressed shot sound. |
LastSuppressedShootSound |
sound | ~ |
Suppressed last-round shot sound. |
ReloadSound |
sound | ~ |
Reload sound. |
EmptyReloadSound |
sound | ~ |
Empty reload sound. |
EmptyClickSound |
sound | ~ |
One-shot empty click sound. |
EmptyClickSoundRepeated |
sound | ~ |
Repeated empty click sound. |
ModeSwitchSound |
sound | switchfiringmode |
Sound played when the fire mode is cycled (fire mode key). Use None or leave the value empty to disable it. |
IdleSound |
sound | ~ |
Idle/held sound. Playback follows the entity emitting it in world space, with direction and distance attenuation for all listeners, including the holder. Use mono audio for positional sound. Changing the held item immediately stops that hand's idle playback for nearby listeners; holding the weapon again starts playback immediately without waiting for the old loop timer. Switching a toggleable weapon off also stops playback; switching it on restarts playback. |
ToggleOnSound / ToggleOffSound
|
sound | ~ |
Sounds played when the toggle key switches the weapon or its toggleable attachments on or off. Falls back to the attachment's toggle sounds, then to switchfiringmode. |
MeleeSound |
sound | ~ |
Melee swing sound. |
MeleeHitSound |
sound | ~ |
Played when a melee hit with this weapon damages its target. Applies to vanilla swings and custom melee paths alike, using MeleeSoundRange. |
ShieldHitSound |
sound | ~ |
Played when a melee hit with this weapon is stopped by a shield: a Flan's shield's ShieldBlockChance, a vanilla shield, or a held item's hitbox met by a custom melee path, which also ends that swing. Uses MeleeSoundRange. |
WarmupSound |
string | ~ |
Loop warmup sound. |
LoopedSound / SpinSound
|
string | ~ |
Main looping sound. Enables looping sound behavior when set. |
CooldownSound |
string | ~ |
Loop cooldown sound. |
LockOnSound |
sound | "" |
Lock-on sound. |
LockOnSoundTime |
int | 0 |
Lock-on sound interval/time. |
DistantSound / DistantShootSound
|
sound | "" |
Distant shot sound. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Scope |
resource | inherited Overlay
|
Scope overlay. none clears it. |
ZoomLevel |
float | 1.0 |
Default scope zoom. |
FOVZoomLevel |
float | 1.5 |
Default FOV zoom. |
AllowNightVision |
bool | false |
Allows night vision while scoped. |
HasThermalVision / HasThermal
|
bool | false |
Shows the white-hot generation 3 thermal image while fully zoomed through the gun's own scope. A scope attachment uses its own setting instead. |
HasVariableZoom |
bool | false |
Enables variable zoom. |
MinZoom |
float | 1.0 |
Minimum variable zoom. |
MaxZoom |
float | 4.0 |
Maximum variable zoom. |
ZoomAugment |
float | 1.0 |
Variable zoom step/change. |
CasingModel |
string | "" |
Casing model. |
CasingTexture |
resource | "" |
Casing texture. |
FlashModel |
string | "" |
Three-frame flash model drawn at the muzzle for two ticks after each shot, including on Deployable guns whose DeployedModel has measurable gun geometry. DefaultFlash selects the built-in flash (Warfare 44 geometry), which needs no FlashTexture; its frames are centred on the origin, so animMuzzleFlashPoint is the hand-held muzzle position divided by the flash scale. Deployable placement is measured automatically. |
FlashTexture |
resource | "" |
Flash texture. Optional with FlashModel DefaultFlash, which defaults to the built-in texture. |
MuzzleFlashModel |
string | "" |
Alternative single-frame muzzle flash model; DefaultMuzzleFlash selects the built-in 1.12.2 flash. A gun may declare both this and FlashModel: the client setting muzzleFlashStyle selects one, falling back to the available model for older packs. With both declared, the hand-held muzzle position follows the FlashModel flash-scaled coordinate convention for either style; a MuzzleFlashModel-only pack retains ordinary unscaled model coordinates. The 1.12.2 flash geometry retains its fixed model size. On deployable guns it is placed at the automatically measured DeployedModel muzzle. |
HitTexture |
resource | "" |
Hit marker texture. |
MuzzleFlashParticle |
string | flansmod.muzzleflash |
Muzzle flash particle type. |
MuzzleFlashParticleSize |
float | 1.0 |
Muzzle flash particle size. |
ShowMuzzleFlashParticleFirstPerson |
bool | false |
Shows muzzle flash particles in first person. |
MuzzleFlashParticleShoulderOffset |
vector | [0,0,0] |
Shoulder-fire particle offset. |
MuzzleFlashParticleHandOffset |
vector | [0,0,0] |
Hand-fire particle offset. |
ShowMuzzleFlashParticle |
bool | true |
Shows muzzle flash particles. |
AllowAllAttachments |
bool | true |
Allows all attachments without checking restrictions. |
AllowAttachments |
resource list | none | Specific allowed attachment short names. |
AllowBarrelAttachments |
bool | false |
Allows barrel slot. |
AllowScopeAttachments |
bool | false |
Allows scope/sights slot. |
AllowStockAttachments |
bool | false |
Allows stock slot. |
AllowGripAttachments |
bool | false |
Allows grip slot. |
AllowGadgetAttachments |
bool | false |
Allows gadget slot. |
AllowSlideAttachments |
bool | false |
Allows slide slot. |
AllowPumpAttachments |
bool | false |
Allows pump slot. |
AllowAccessoryAttachments |
bool | false |
Allows accessory slot. |
NumGenericAttachmentSlots |
int | 0 |
Number of generic attachment slots. |
Shield |
<absorb> <originX> <originY> <originZ> <sizeX> <sizeY> <sizeZ> |
none | Adds a shield hitbox. Coordinates and size are divided by 16; absorption is 0.0..1.0. Bullets crossing the hitbox lose that much penetrating power; other non-melee damage from the front is reduced by that fraction. Melee and blockable projectiles are handled by ShieldBlockChance instead. |
ShieldBlockChance |
float 0.0..1.0
|
0.5 |
Chance that a shield held in either hand blocks a melee hit (vanilla attacks, mob attacks and custom melee) or a projectile (vanilla projectiles such as arrows and tridents, and guns thrown with SecondaryFunction Throw) coming from the front half-circle; for a projectile, the front is judged from the direction it flies in. Flan's bullets and grenades are not rolled for: they meet the shield hitbox instead. A blocked hit is cancelled entirely: no damage, no knockback, and a shield-block sound. The best chance among both hands applies. |
ShieldMaxBlockableMeleeDamage |
float | 10 |
Melee hits stronger than this cannot be blocked. It is compared with the Flan's weapon's MeleeDamage, whether swung or thrown, with the attack damage attribute of any other melee attacker, and with the damage dealt by any other projectile. |
All keys in this subsection are read by GunAnimationConfig from gun type files on the client. Defaults are unset, meaning the model/default animation values are used.
| Key | Format | Purpose |
|---|---|---|
animMinigunBarrelOrigin |
vector | Minigun barrel origin. |
animBarrelAttachPoint / animScopeAttachPoint / animStockAttachPoint / animGripAttachPoint / animGadgetAttachPoint / animSlideAttachPoint / animPumpAttachPoint / animAccessoryAttachPoint
|
vector | Attachment points. |
animDefaultBarrelFlashPoint / animMuzzleFlashPoint
|
vector | Flash/muzzle points, in model blocks; the flash is scaled by animFlashScale before this translation. animDefaultBarrelFlashPoint is added only while no barrel attachment is fitted. |
animHasFlash / animHasArms / easyArms
|
bool | Flash and arm-rendering toggles. |
armScale |
vector | Global arm scale. |
animLeftArmPos / animLeftArmRot / animLeftArmScale
|
vector | Left arm transform. |
animRightArmPos / animRightArmRot / animRightArmScale
|
vector | Right arm transform. |
animRightArmReloadPos / animRightArmReloadRot / animLeftArmReloadPos / animLeftArmReloadRot
|
vector | Reload arm transforms. |
animRightArmChargePos / animRightArmChargeRot / animLeftArmChargePos / animLeftArmChargeRot
|
vector | Charge arm transforms. |
animStagedRightArmReloadPos / animStagedRightArmReloadRot / animStagedLeftArmReloadPos / animStagedLeftArmReloadRot
|
vector | Staged reload arm transforms. |
animRightHandAmmo / animLeftHandAmmo
|
bool | Hand ammo display toggles. |
animGunSlideDistance / animAltGunSlideDistance / animRecoilSlideDistance / animRotatedSlideDistance / animShakeDistance / animRecoilAmount
|
float | Slide, recoil, and shake movement amounts. |
animCasingAnimDistance / animCasingAnimSpread / animCasingRotateVector / animCasingAttachPoint
|
vector | Casing animation vectors. |
animCasingAnimTime / animCasingDelay
|
int | Casing timing. |
animCasingScale / animFlashScale
|
float | Casing and flash scale. |
animChargeHandleDistance / animChargeDelay / animChargeDelayAfterReload / animChargeTime
|
float/int | Charge handle movement and timing. |
animCountOnRightHandSide / animIsBulletCounterActive / animIsAdvBulletCounterActive
|
bool | Ammo counter options. |
animTiltGunTime / animUnloadClipTime / animLoadClipTime
|
float | Reload timing stages. |
animScopeIsOnSlide / animScopeIsOnBreakAction
|
bool | Scope attachment movement flags. |
animNumBulletsInReloadAnimation |
float | Number of bullets represented in reload animation. |
animPumpDelay / animPumpDelayAfterReload / animPumpTime / animHammerDelay
|
int | Pump and hammer timing. |
animPumpHandleDistance / animEndLoadedAmmoDistance / animBreakActionAmmoDistance
|
float | Pump/end-loaded/break-action movement. |
animGripIsOnPump / animGadgetsOnPump
|
bool | Attachment-on-pump flags. |
animBarrelBreakPoint / animAltBarrelBreakPoint
|
vector | Break-action pivot points. |
animRevolverFlipAngle / animRevolver2FlipAngle / animBreakAngle / animAltBreakAngle
|
float | Revolver and break-action angles. |
animRevolverFlipPoint / animRevolver2FlipPoint
|
vector | Revolver flip points. |
animSpinningCocking |
bool | Spinning cocking behavior. |
animSpinPoint / animHammerSpinPoint / animAltHammerSpinPoint
|
vector | Spin/hammer points. |
animHammerAngle / animAltHammerAngle
|
float | Hammer angles. |
animIsSingleAction / animSlideLockOnEmpty
|
bool | Single-action and slide-lock behavior. |
animLeftHandPump / animRightHandPump / animLeftHandCharge / animRightHandCharge / animLeftHandBolt / animRightHandBolt
|
bool | Handedness flags for pump, charge, and bolt actions. |
animPumpModifier / animGunOffset / animCrouchZoom / animRotateGunVertical / animRotateGunHorizontal / animTiltGun
|
float | General first-person transform modifiers. |
animChargeModifier / animTranslateGun
|
vector | Charge/gun translation vectors. |
animFancyStance / animStagedReload / animStillRenderGunWhenScopedOverlay
|
bool | Stance, reload, and scoped rendering toggles. |
animTranslateClip |
vector | Current code reads this for both stance translate and clip translate. |
animStanceRotate |
vector | Stance rotation. |
animRotateClipVertical / animStagedRotateClipVertical / animRotateClipHorizontal / animStagedRotateClipHorizontal / animTiltClip / animStagedTiltClip
|
float | Clip rotation and tilt. |
animStagedTranslateClip / animThirdPersonOffset / animItemFrameOffset
|
vector | Staged clip, third-person, and item-frame offsets. |
animAdsEffectMultiplier |
float | ADS visual effect multiplier. |
animAnimationType |
NONE, BOTTOM_CLIP, PISTOL_CLIP, TOP_CLIP, SIDE_CLIP, P90, SHOTGUN, RIFLE, REVOLVER, END_LOADED, RIFLE_TOP, BULLPUP, ALT_PISTOL_CLIP, GENERIC, BACK_LOADED, STRIKER, BREAK_ACTION, any of those prefixed CUSTOM, or CUSTOM
|
Replaces the reload animation the gun model declares. As in 1.7.10, REVOLVER2 and CUSTOMREVOLVER2 resolve to REVOLVER and CUSTOMREVOLVER. |
animMeleeAnimation |
DEFAULT, NONE, BLUNT_SWING, BLUNT_BASH, STAB_UNDERARM, or STAB_OVERARM
|
Replaces the melee animation field the gun model declares. As in 1.7.10, the built-in renderer does not act on it; custom model code can read it. |
Inherits BlockType and InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
GuiTexture |
file-name resource | default gun box GUI | Custom GUI texture. |
GunBoxNameColor |
hex string | 404040 |
Gun box title color. |
PageTextColor |
hex string | FFFFFF |
Page text color. |
ListTextColor |
hex string | 404040 |
Item list text color. |
ItemTextColor |
hex string | 404040 |
Item text color. |
ButtonTextColor |
hex string | FFFFFF |
Button text color. |
ButtonTextHighlight |
hex string | FFFFA0 |
Button hover text color. |
| Key | Format | Default | Purpose |
|---|---|---|---|
Page / SetPage
|
text line | Default |
Starts or names a page. Pages hold up to 8 guns; overflow creates another default page. |
AddGun / AddType
|
<shortName> [<amount> <item> ...] |
none | Adds a gun/item entry and its required parts. |
AddAmmo / AddAltType / AddAltAmmo / AddAlternateAmmo
|
<shortName> [<amount> <item> ...] |
none | Adds ammo to the most recently added gun entry. |
Inherits BlockType and InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
GuiTexture |
file-name resource | default armor box GUI | Custom GUI texture. |
AddArmour / AddArmor
|
<shortName> <display name...> followed by 4 armor lines |
none | Adds one armor set page. The following four lines are parsed as helmet, chest, legs, and boots. |
Armor set lines after AddArmor use:
<armorShortName> [<item> <amount> ...]
The recipe parser uses item/amount pairs for those four armor lines.
Inherits InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Category |
enum | COCKPIT |
COCKPIT, WING, ENGINE, PROPELLER, BAY, TAIL, WHEEL, CHASSIS, TURRET, FUEL, MISC. |
StackSize |
int | 0 |
Item stack size. |
FuelConsumption |
float | 1.0 |
Engine fuel consumption. |
EngineSpeed |
float | 1.0 |
Engine speed/thrust multiplier. |
EnginePower |
float | 10.0 |
Engine power output. |
UseRF / UseRFPower
|
bool | false |
Uses RF power instead of Flan's Mod fuel. |
RFDrawRate |
int | 1 |
RF draw per tick. |
Fuel |
int | 0 |
Fuel amount for fuel parts. |
WorksWith |
one or more of plane, vehicle, mecha
|
all three | Restricts the driveable kinds the part can power and for which it can be selected as a default engine. |
CanBeDefaultEngine |
bool | true |
Allows an engine to be selected automatically or through a configured default-engine override. |
IsAIChip |
bool | false |
Marks the part as an AI chip. |
PartBoxRecipe |
current parser starts amount/item pairs at the third token | none | Part box recipe ingredients. The first two tokens after the key are currently skipped by code. |
RF engines are not eligible for automatic/default-engine selection, even when
CanBeDefaultEngine is enabled.
Inherits InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Parachute |
bool | false |
Deploys a parachute on use. |
ExplosiveRemote |
bool | false |
Detonates remote explosives. |
Key |
bool | false |
Marks the tool as a key. |
Heal / HealPlayers
|
bool | false |
Enables player healing. |
Repair / RepairVehicles
|
bool | false |
Enables driveable repair. |
HealAmount / RepairAmount
|
int | 0 |
Heal/repair amount per use. |
ToolLife / ToolUes / ToolUses
|
int | 0 |
Number of uses. 0 means infinite. ToolUes is the supported legacy typo; ToolUses is the corrected alias. |
DestroyOnEmpty |
bool | true |
Destroys the tool when depleted. |
Food / Foodness
|
int | 0 |
Hunger restored when eaten/used as food. |
RechargeRecipe |
current parser starts amount/item pairs at the second token | none | Shapeless recharge ingredients. The first token after the key is currently skipped by code. |
Inherits InfoType.
| Key | Format | Default | Purpose |
|---|---|---|---|
Enchantability |
int | 20 |
Glove enchantability. |
Durability |
int | 200 |
Glove durability. 0 means no durability. |
Inherits InfoType.
ItemHolderType currently reads no additional parameters beyond the shared InfoType keys.
Inherits InfoType. Loaded from mechaItems.
| Key | Format | Default | Purpose |
|---|---|---|---|
Type |
mecha item type | NOTHING |
Attachment slot/type. |
ToolType |
mecha tool type | SWORD |
Tool function. |
Speed / ToolHardness / Reach
|
float, at least 0
|
1.0 |
Tool speed, mining hardness, and reach. A mecha digs one block at a time with one combined rate, as in 1.7.10: it starts at 1 and is multiplied by the Speed of every tool in an intact arm whose ToolType suits the block and whose ToolHardness is at least the block hardness. Each tick adds a tenth of that rate, divided by the block hardness, to the break progress, so two effective tools work much faster together than either alone. |
Armour |
float | 0.0 |
Damage resistance supplied by the item. |
SpeedMultiplier |
float, at least 0
|
1.0 |
Mecha movement-speed multiplier. |
EnergyShield |
int, at least 0
|
0 |
Energy-shield strength. |
LightLevel |
int, clamped to 0..15
|
0 |
Light emitted by the equipped item. |
Floatation / StopMechaFallDamage / ForceBlockFallDamage
|
bool | false |
Floating and fall-damage modifiers. |
AutoFuel / ItemVacuum / IronRefine / Nanorepair
|
bool | false |
Automatic fuel, item collection, iron refining, and repair abilities. |
RocketPack / DiamondDetect / InfiniteAmmo / ForceDark / WasteCompact / FlameBurst
|
bool | false |
Optional special abilities. |
NanorepairAmount / RocketPower
|
float, repair at least 0
|
1.0 |
Repair amount and rocket strength. |
CoalMultiplier / DiamondMultiplier / EmeraldMultiplier / IronMultiplier / RedstoneMultiplier
|
float | 1.0 |
Resource yield multipliers. |
SoundEffect / DetectSound
|
sound | "" |
Ability and detector sounds. |
SoundTime |
float, at least 0
|
0.0 |
Sound interval/duration. |
Inherits InfoType. Loaded from classes for the Teams system.
| Key | Format | Default | Purpose |
|---|---|---|---|
UnlockLevel |
int, at least 0
|
0 |
Level required to select the class. |
RequiredPrestigeLevel |
int, at least 0
|
0 |
Prestige level required to select the class, on top of UnlockLevel. |
ClassLimit |
int | -1 |
Most players of one team who may use the class at once. Negative means no limit. |
ClassLimitPercent / ClassLimitPercentage
|
float, up to 100
|
-1 |
Largest share of a team that may use the class at once, rounded up to whole players. Negative means no limit. When ClassLimit is also set, the smaller of the two applies. |
SkinOverride |
resource/string | "" |
Optional player skin override. |
Hat / Helmet
|
item short name | none | Starting head armour; the second alias wins when both are present. none clears the slot. |
Chest / Top
|
item short name | none | Starting chest armour. |
Legs / Bottom
|
item short name | none | Starting leg armour. |
Shoes / Boots
|
item short name | none | Starting foot armour. |
AddItem |
<item[+attachment...]> [amount] [damage] [Paintjob=id], repeatable |
none | Adds a starting item. Amount defaults to 1 and damage to 0; gun attachments use +shortName. For paintable items, append Paintjob=id after amount and damage to select a paintjob (0 is the default; additional paintjobs are numbered from 1 in definition order). Missing, malformed, negative, or unknown IDs use the default paintjob; non-paintable items ignore this option. Example: AddItem romanScutumImperial 1 0 Paintjob=2 gives the first blue imperial scutum. |
The SkinOverride texture is read from the pack's skins folder and is only applied when
its size matches a player skin layout, otherwise it is ignored with a warning in the log:
- A square sheet (
64x64, or any whole multiple of it for HD skins) is used as it is. - A 2:1 sheet (
64x32, or any whole multiple of it) is read as the old skin format and rebuilt into the modern layout before use, the same way Minecraft treats old skins: the left arm and the left leg are filled with horizontally mirrored copies of the right ones, only the head keeps a second layer, and a hat layer painted fully opaque, which is how old editors wrote "no hat", is dropped.
Clients only draw the override when enablePlayerClassSkinOverrides is on, and never on
players another mod renders with its own player renderer or model.
Inherits InfoType. Loaded from teams.
| Key | Format | Default | Purpose |
|---|---|---|---|
TeamColour |
int int int |
255 255 255 |
RGB team colour. |
TextColour |
formatting colour name | white |
Chat/display colour. Also accepts orange, light-colour legacy spellings, and Grey spellings. |
AllowedForRoundsGenerator |
bool | false |
Allows automatic round generation to choose the team. |
HasVictorySound |
bool | true |
Whether a round this team wins is announced with victory and defeat sounds. |
VictorySound |
sound name | victory |
Sound the team's members hear when it wins. Where no pack provides a sound of that name, clients play a vanilla fanfare instead. |
DefeatSound |
sound name | defeat |
Sound the team's members hear when it loses. Silent unless a pack provides it. |
VictoryFlagTexture |
skin texture name | "" |
Texture from the pack's skins folder shown beside the round result and flown on the capture points the team holds. Without one the flag is plain, in the team colour. |
Hat / Helmet, Chest / Top, Legs / Bottom, Shoes / Boots
|
item short name | none | Team armour overrides; the second alias in each pair wins. |
AddDefaultClass / AddClass
|
class short name, repeatable | none | Adds selectable player classes. Default classes are ordered before added classes. |
Inherits InfoType. Loaded from rewardBoxes.
| Key | Format | Default | Purpose |
|---|---|---|---|
RarityWeight |
<rarity> <weight>, repeatable |
1.0 per rarity |
Sets a non-negative selection weight for a paintjob rarity. |
AddPaintjob |
<rarity> <paintableType> <paintjob>, repeatable |
none | Adds a paintjob reward and assigns its rarity. Unknown types or paintjobs are skipped. |
Inherits InfoType. Loaded from loadouts for ranked Teams loadouts.
| Key | Format | Default | Purpose |
|---|---|---|---|
MaxLevel |
int, at least 1
|
20 |
Maximum rank. |
XPForKill / XPForDeath / XPForKillstreakBonus
|
int, at least 0
|
10 / 5 / 10
|
XP awards. |
XPPerLevel |
integer list | max(30, level * 30) |
XP thresholds, one entry per level; missing entries use the formula. |
SlotUnlockLevels |
up to five integers | 0 0 5 10 20 |
Unlock ranks for the five saved loadouts. |
AddPrimary / AddSecondary / AddSpecial / AddMelee / AddArmour
|
<type> <unlockRank> [<extraItem> <count> ...], repeatable |
none | Adds an item choice to a loadout slot with optional granted extras. |
DefaultLoadout |
<1..5> <primary> <secondary> <special> <melee> <armour> |
empty | Defines one saved default loadout. Use none for an empty slot. |
AddRewardBox |
reward-box short name, repeatable | none | Adds a reward box; duplicates are removed and at most three are retained. |
AddReward |
<rewardId> <rank>, repeatable |
none | Grants a reward at a positive rank. |
Extends PaintableType and inherits its parameters along with the shared InfoType parameters. It also reads driveable-specific parameters for seats, parts, weapons, movement, sounds, collision meshes, and particle emitters.
Driveables also accept optional real-world specification keys prefixed with Real, plus DriveType, and optional physical armour and normalized-health keys. These are documented separately on the Realistic Vehicle Physics and Vehicle Armour and Damage pages. They are entirely optional: a definition that declares none of them keeps its existing behavior exactly, and no legacy key listed on this page changed its meaning or unit.
These Krishna-compatible keys configure driver, pilot, and passenger gunsights.
Sight indices are one-based. Camera positions use model units and are divided by
16. See Vehicle Optics
for controls, rendering behavior, examples, and the HUD editor.
| Key | Format | Default | Purpose |
|---|---|---|---|
HasScope |
bool | false |
Enables the driver scope. |
NightScope / NightSight
|
bool | false |
Enables optical night vision for the driver sight. |
Gunsight |
one or more textures | inherited Overlay
|
Ordered driver sight overlays. |
GunsightZoom |
one or more floats, each at least 1
|
1 |
Ordered magnifications; missing later values reuse the last value. |
ThermalGuis |
one or more one-based sight indices | none | Marks driver sights as thermal channels. |
ThermalSight |
bool | false |
Allows thermal toggling for a single driver sight. |
ShowCrosshair |
bool | false |
Retains the vanilla crosshair while using driver optics. |
HasGunsightPos |
bool | false |
Enables a custom driver camera anchor. |
GunsightPos |
<x> <y> <z> |
0 0 0 |
Driver camera anchor following the turret. |
HeliGUI / PassengerGunsight
|
texture | none | Shared passenger fallback overlay. Singular PassengerGunsight is distinct from plural PassengerGunsights. |
OpticsModeSeat / SeatOpticsMode
|
<seat> <bool> |
false |
Enables a toggleable optics mode for a seat and enables scope support. |
PilotOptics / DriverOptics / GunnerOptic
|
bool | false |
Applies the same optics-mode setting to seat 0. |
SeatOpticsCamera / OpticsCameraSeat
|
<seat> <x> <y> <z> |
none | Enables and positions a seat camera anchor. |
PilotOpticsCamera / DriverOpticsCamera / GunnerOpticCamera
|
<x> <y> <z> |
none | Enables and positions the seat 0 camera anchor. |
PassengerZoom |
<seat> <float> |
1 |
Fallback seat magnification, clamped to at least 1. |
SeatHasScope / PassengerHasScope
|
<seat> <bool> |
false |
Enables scope availability for a seat. |
SeatAutoScope / PassengerAutoScope
|
<seat> <bool> |
false |
Keeps the seat scope up while occupied; the occupant cannot lower it. |
SeatNightSight / PassengerNightSight
|
<seat> <bool> |
false |
Enables optical night vision for a seat. |
HeliGUISeat / SeatOverlay
|
<seat> <bool> |
false |
Enables the passenger overlay for a seat; the gunner opens and closes it with the vehicle scope key. |
SeatGunsight / PassengerGunsights
|
<seat> <texture...> |
fallback overlay | Sets ordered seat overlays and enables scope support. |
SeatGunsightZoom / SeatGunsightZooms / PassengerGunsightZoom
|
<seat> <float...> |
1 |
Sets ordered per-sight magnifications. |
SeatThermalGuis / PassengerThermalGuis
|
<seat> <index...> |
none | Marks one-based thermal channels and enables scope support. |
Optics HUD keys beginning with SeatOptics take a seat id immediately after the
key. Sight variants then take a one-based sight id. The PilotOpticsHUD...
forms apply to seat 0 and omit the seat id.
| Key | Remaining format | Default | Purpose |
|---|---|---|---|
SeatOpticsHUD / SeatOpticsHUDEdit / SeatOpticsHUDRequireRangeKey
|
<seat> <bool> |
false / false / true
|
Enables the HUD, its editor, or stored rather than live range measurement. |
SeatOpticsHUDMaxRange |
<seat> <distance> |
5000 |
Maximum ranging distance, clamped to at least 1. |
SeatOpticsHUDInherit |
<seat> <sourceSeat> or <seat> NONE
|
inferred | Selects another seat's HUD or disables inheritance. |
SeatOpticsHUDScale / SeatOpticsHUDScaleSight
|
<seat> <scale> / <seat> <sight> <scale>
|
1 |
Global or per-sight HUD scale, clamped to at least 0.1. |
SeatOpticsHUDColor / SeatOpticsHUDColorSight
|
<seat> <color> / <seat> <sight> <color>
|
55FF55 |
Packed or RGB HUD colour, globally or per sight. |
SeatOpticsElevationIndicator |
<seat> <bool> |
false |
Enables the elevation indicator. |
SeatOpticsCompassMarker / SeatOpticsCompassMarkerSight
|
<seat> <texture> / <seat> <sight> <texture>
|
none | Compass marker texture, globally or per sight. |
SeatOpticsCompassMarkerSize / SeatOpticsCompassMarkerOffset
|
<seat> <width> <height> / <seat> <x> <y>
|
18 24 / 0 10
|
Compass marker size and offset. |
SeatOpticsRangePos / SeatOpticsRangePosSight / SeatOpticsRangeScale / SeatOpticsRangeScaleSight / SeatOpticsRangeTexture / SeatOpticsRangeTextureSight / SeatOpticsRangeTextureSize
|
seat, optional sight, then the value | built-in range layout | Range-element position, scale, texture, and texture size. |
SeatOpticsSpeedPos / SeatOpticsSpeedPosSight / SeatOpticsSpeedScale / SeatOpticsSpeedScaleSight / SeatOpticsSpeedTexture / SeatOpticsSpeedTextureSight / SeatOpticsSpeedTextureSize
|
seat, optional sight, then the value | built-in speed layout | Speed-element position, scale, texture, and texture size. |
SeatOpticsTraversePos / SeatOpticsTraversePosSight / SeatOpticsTraverseScale / SeatOpticsTraverseScaleSight / SeatOpticsTraverseTexture / SeatOpticsTraverseTextureSight / SeatOpticsTraverseTextureSize
|
seat, optional sight, then the value | built-in traverse layout | Traverse-element position, scale, texture, and texture size. |
SeatOpticsCompassPos / SeatOpticsCompassPosSight / SeatOpticsCompassScale / SeatOpticsCompassScaleSight / SeatOpticsCompassTexture / SeatOpticsCompassTextureSight / SeatOpticsCompassTextureSize
|
seat, optional sight, then the value | built-in compass layout | Compass-element position, scale, texture, and texture size. |
SeatOpticsElevationPos / SeatOpticsElevationPosSight / SeatOpticsElevationScale / SeatOpticsElevationScaleSight / SeatOpticsElevationTexture / SeatOpticsElevationTextureSight / SeatOpticsElevationTextureSize
|
seat, optional sight, then the value | built-in elevation layout | Elevation-element position, scale, texture, and texture size. |
PilotOpticsHUD / PilotOpticsHUDEdit / PilotOpticsHUDRequireRangeKey / PilotOpticsHUDMaxRange / PilotOpticsHUDInherit / PilotOpticsHUDScale / PilotOpticsHUDScaleSight / PilotOpticsHUDColor / PilotOpticsHUDColorSight
|
same values as the corresponding SeatOpticsHUD... key, without a seat id |
same | Configures the seat 0 HUD directly. |
For each element family, Pos takes <x> <y>, Scale takes a positive float,
Texture takes a texture or NONE, and TextureSize takes <width> <height>.
The listed PosSight, ScaleSight, and TextureSight forms insert a one-based
sight id for a per-sight override; texture size is global to the element.
Positions in these rows use legacy model units and are divided by 16 unless stated otherwise. Seat id 0 is the driver; passengers start at 1.
For planes and helicopters, a running engine and its selected throttle remain active while any seat is occupied. If the driver seat becomes empty while player passengers remain, the first occupied player passenger seat in definition order receives throttle, yaw, pitch, and roll control. Pilot weapon banks and auxiliary pilot controls are not delegated; the passenger's own authored gun remains independent. When the last rider leaves, the engine request and throttle are cleared.
| Key | Format | Default | Purpose |
|---|---|---|---|
Driver / Pilot
|
<x> <y> <z> [minYaw maxYaw minPitch maxPitch] |
model origin | Defines the driver seat. The first valid driver/pilot line is used. |
DriverPart |
part name | core |
Part carrying the driver seat. |
DriverGun / PilotGun
|
gun short name | none | Gun mounted for the driver. DriverGun has priority. |
NumPassengers / Passengers
|
int | number of Passenger lines |
Declared passenger count. The highest passenger id can increase it. |
Passenger |
<id> <x> <y> <z> <part> [minYaw maxYaw minPitch maxPitch [gunType gunName]], repeatable |
none | Defines a passenger or gunner seat. |
DriverGunOrigin |
vector | driver position | Driver gun firing origin. |
GunOrigin |
<seatId> <x> <y> <z>, repeatable |
seat position | Passenger-gun firing origin. The round leaves 1.35 blocks above this point, the legacy mounted-gunner offset, so the authored value sits below the muzzle it produces. Author the muzzle with the gun at rest: when the seat's registered gun model has a pivot, the origin turns round that pivot as the gun aims. Positions are divided by 16. |
RotatedDriverOffset |
vector | 0 0 0 |
Driver offset in the rotating seat frame. |
RotatedPassengerOffset |
<seatId> <x> <y> <z>, repeatable |
0 0 0 |
Passenger rotating-frame offset. |
DriverAimSpeed |
vector | 2 2 0 |
Driver yaw/pitch aiming speed. |
TurretRotationSpeed |
float | none | Legacy vehicle driver-yaw fallback used only when DriverAimSpeed is absent. This older mouse-turn coefficient is converted to yaw degrees per tick by multiplying it by 100 / 3; it does not change pitch speed. |
PassengerAimSpeed |
<seatId> <x> <y> <z>, repeatable |
2 2 0 |
Passenger aiming speed. This vector is not divided by 16. |
DriverLegacyAiming / DriverYawBeforePitch / DriverLatePitch / DriverTraverseSounds
|
bool |
false / false / true / false
|
Driver aiming and traverse behavior. |
PassengerLegacyAiming / PassengerYawBeforePitch / PassengerLatePitch / PassengerTraverseSounds
|
<seatId> <bool>, repeatable |
false / false / true / false
|
Per-passenger aiming and traverse behavior. |
PassengerYawSound / PassengerPitchSound
|
<seatId> <sound>, repeatable |
none | Per-seat traverse sounds. |
PassengerYawSoundLength / PassengerPitchSoundLength
|
<seatId> <ticks>, repeatable |
0 |
Per-seat traverse sound lengths. |
Wheel / WheelPosition
|
<index> <x> <y> <z> [part], repeatable |
none | Wheel anchor. Part defaults to coreWheel. As in 1.7.10, ModelScale scales the anchors' horizontal spacing but not their height, so a driveable rests at the same height at any scale. |
| Key | Format | Default | Purpose |
|---|---|---|---|
SetupPart / SetupArmoredPart / SetupCompositeArmoredPart
|
<part> <health> <x> <y> <z> <width> <height> <depth> [resistance] [crewMultiplier] |
none | Defines a part hitbox. Resistance defaults to 5; crew multiplier defaults to 0. |
SetupCrewedPart / SetuCrewedpPart / SetupAnimalPart
|
same as SetupPart
|
none | Defines a crew-bearing part hitbox; crew multiplier defaults to 1. SetuCrewedpPart is a supported legacy typo. |
PartDeathExplosion |
<part> <radius> <power> <breakBlocks> [living player plane vehicle] |
none | Explosion created when the part dies. |
AddRecipeParts / AddRecipePart / AddRecipieParts
|
<part> [<amount> <item> ...], repeatable |
none | Adds partwise and overall recipe ingredients. The misspelling is accepted. |
AddDye |
<amount> <colour>, repeatable |
none | Adds a vanilla dye ingredient. |
FancyCollision |
bool | false |
Makes the authored collision meshes, instead of the part hitboxes, the solid shape entities stand on and bump into. Projectiles and damage always use the part hitboxes. |
AddCollisionMesh / AddTurretCollisionMesh
|
<positionVector> <sizeVector> <8 vertexVectors>, repeatable |
none | Adds a core or turret collision mesh. |
AddCollisionMeshRaw / AddTurretCollisionMeshRaw
|
<x y z> <w h d> [compat] <24 vertex values>, repeatable |
none | Raw numeric form of the collision mesh. |
Bomb banks release their projectiles at zero velocity relative to the driveable. A dropped bomb inherits the driveable's world velocity at release, then its configured gravity changes its motion. The bank's BulletSpeed adds no launch speed to a dropped bomb. Other weapon-bank types continue to use their resolved muzzle velocity and firing direction.
| Key | Format | Default | Purpose |
|---|---|---|---|
AllowAllAmmo / AcceptAllAmmo
|
bool | true |
Allows all compatible bullet types; the latter alias wins. |
AddAmmo |
ammo short name, repeatable | none | Adds explicitly accepted ammo. |
UseAmmoGroup |
group name, repeatable | none | Adds all bullet members of an ammo group. |
Primary / Secondary
|
weapon type | NONE |
Selects the primary and secondary weapon-bank types. |
FlashModel |
DefaultFlash |
none | Enables a default flash at each fired primary or secondary gun/shell barrel and passenger-gun muzzle. The client's muzzleFlashStyle selects the FMU or 1.12.2 built-in model; an authored mounted gun model takes precedence, using that same preference. |
DamageMultiplierPrimary / DamageModifierPrimary / DammageModifierPrimary
|
float | 1.0 |
Primary damage multiplier aliases, applied in the displayed order. |
DamageMultiplierSecondary / DamageModifierSecondary
|
float | 1.0 |
Secondary damage multiplier aliases. |
ShootDelayPrimarySeconds / ShootDelaySecondarySeconds
|
float seconds | unset | Highest-priority bank cadence, converted to ticks. |
RoundsPerMinPrimary / RoundsPerMinSecondary
|
float RPM |
60 when no cadence is supplied |
Second-priority fire-rate form. Fractional delays are kept, so rates above 1200 RPM fire more than once per tick. |
ShootDelayPrimary / ShellDelay / BombDelay
|
float ticks | derived | Primary cadence aliases, in priority order. |
ShootDelaySecondary / ShootDelay
|
float ticks | derived | Secondary cadence aliases, in priority order. |
ReadSecondaryWeaponFromGunType / ReadWeaponsFromGunTypes
|
bool | false |
Makes mounted AddGun/PilotGun gun types unconditionally supply cadence, reload time, speed, spread, and damage, so a bank key added later cannot shadow the gun category. The first name is a legacy alias; the setting applies to both banks. Without it, a bank that has such a mount still takes the gun's cadence and reload time by default, and the vehicle overrides them one key at a time. A bank of bare ShootPointPrimary / ShootPointSecondary lines firing straight out of the ammo bank has no gun type to read, so it uses the keys above and, with none authored, 60 RPM. |
ReloadTimePrimary / ReloadTimeSecondary
|
int ticks, at least 0
|
0 |
Bank reload time. For a bank firing the vehicle's own ordnance the reload actually used is the longest of this, ReloadTime, every cadence key above, and the resolved cadence — so a definition stating only ShellDelay 60 still reloads in three seconds. |
ReloadTime |
int ticks, at least 0
|
0 |
Shared reload time, counted into both banks like the per-bank keys. |
ReloadRoundsPrimary / ReloadRoundsSecondary
|
int rounds, at least 0
|
0 |
Rounds a bank fires between full reloads, when that is fewer than the loaded ammunition's RoundsPerItem. A Panzer II feeding ten-round magazines states ReloadRoundsPrimary 10. 0 leaves the ammunition item's own count in charge. |
ReloadRounds |
int rounds, at least 0
|
0 |
Shared fallback for both banks. |
PlaceTimePrimary / PlaceTimeSecondary
|
int ticks, at least 0
|
5 |
Placement timing for mines and similar. |
AlternatePrimary / AlternateSecondary
|
bool | false |
Alternates among shoot points. |
ModePrimary / ModeSecondary
|
fire mode | FULLAUTO |
Bank fire mode. |
BulletSpeed / BulletSpread
|
float |
3.0 / 0.0
|
Driveable projectile speed and spread. |
RangingGun |
bool | false |
Enables ranging-gun behavior. |
RecoilTime |
float ticks, at least 0
|
5.0 |
Driveable weapon recoil duration. |
FancyScreenShake |
bool | false |
Kicks the camera of every player within FancyScreenShakeRange when the driveable fires. Shells and missiles from either bank, and guns on the primary bank, use the primary settings. Guns on the secondary bank use the coax settings, and only when CoaxRecoil is set. Bombs and mines never kick. The kick pitches the view up, peaks early and fades out with a slight sideways tremor. A new kick replaces the running one only when it is at least as strong. Players can turn it off with the client setting vehicleScreenShake. Ported from the Labjac Edition. |
FancyScreenShakePrimaryIntensity / FancyScreenShakePrimaryDuration
|
float, at least 0 / float seconds, at least 0
|
1.0 / 0.18
|
Strength and length of the main-gun kick. At intensity 1.0 the view rises about a quarter of a degree at its peak, and the rise scales linearly with intensity. Durations are capped at two seconds. 0 disables the kick. |
FancyScreenShakeCoaxIntensity / FancyScreenShakeCoaxDuration
|
float, at least 0 / float seconds, at least 0
|
0.25 / 0.08
|
Strength and length of the coaxial-gun kick. |
FancyScreenShakeRange |
float blocks, at least 0
|
10.0 |
How far from the driveable players feel the kick. 0 disables it. |
CoaxRecoil |
bool | false |
Lets the secondary gun bank kick the camera with the coax settings when FancyScreenShake is set. |
ShootPointPrimary / ShootPointSecondary
|
<x> <y> <z> [part] [gun] [offsetVector], repeatable |
none | Authored firing points. Position comes first; part defaults to core, and naming a gun shortname mounts that gun here and adds it to the vehicle recipe, as AddGun does. The muzzle is position plus offset. Positions are divided by 16. |
ShootParticlesPrimary / ShootParticlesSecondary / ShootParticleSecondary
|
particle definition, repeatable | none | Particles emitted when a bank fires. |
ShootParticlesPassenger |
<seatId> <particle> <x> <y> <z>, repeatable |
none | Per-seat muzzle particles for passenger guns on vehicles and planes. Positive passenger seat IDs only. Each successful shot emits the configured set once at its fired barrel, using the projectile muzzle origin and current seat aim. Vectors are velocity in the legacy model basis (+x forward), transformed by the gun aim and driveable rotation. Independent of primary/secondary particles and flash-model opt-in; omitted seats retain their existing visuals. |
AddGun |
legacy gun mount, repeatable | none | Adds a mounted passenger or pilot gun. |
BombPosition / BarrelPosition
|
<x> <y> <z> [offsetVector], repeatable |
none | Legacy bomb and shell firing positions, added to the primary bank. BombPosition mounts on core and BarrelPosition on turret; neither takes a part. Declaring either also sets Primary to Bomb or Shell respectively. Positions are divided by 16. |
FixedPrimary / FixedSecondary
|
bool | false |
Fixes the firing direction to the configured angle. |
PrimaryAngle / SecondaryAngle
|
vector | 0 0 0 |
Fixed bank firing direction. |
SetPlayerInvisible / IT1
|
bool | false |
Hides riders or enables the legacy IT-1 animation behavior. |
| Key | Format | Default | Purpose |
|---|---|---|---|
MaxThrottle / MaxNegativeThrottle / ClutchBrake
|
float |
1.0 / 0.0 / 0.0
|
Forward throttle, reverse throttle, and clutch-brake values. |
MaxThrottleInWater |
float or bool | 0.5 |
Water throttle; booleans map to 1 and 0. |
MaxDepth / Drag
|
int / float |
3 / 1.0
|
Maximum depth and drag. Drag is clamped to at least 0. |
TurretOrigin / TurretOriginOffset
|
vector | 0 0 0 |
Turret rotation origin and offset, in model units. |
CollisionPoint / AddCollisionPoint / CollisoinPoint / ollisionPoint
|
<x> <y> <z> <part>, repeatable |
none | Collision points and supported legacy misspellings. |
CollisionDamageEnable / CollisionDamageThrottle / CollisionDamageTimes
|
bool / float / float |
false / 0.0 / 0.0
|
Legacy collision-damage controls. |
CanRoll / CanMountEntity
|
bool |
true / false
|
Rolling and entity-mounting behavior. |
Boat |
presence flag | absent | Makes the driveable water-placeable, floating, and not land-placeable before explicit placement keys are applied. |
PlaceableOnLand / PlaceableOnWater / PlaceableOnSponge
|
bool |
true / false / false
|
Placement surfaces. |
WorksUnderwater / WorksUnderWater
|
bool | false |
Allows underwater operation. |
FloatOnWater / Buoyancy / FloatOffset
|
bool / float / float |
false / 0.0165 / 0.0
|
Floating behavior, lift, and placement offset. Vehicles also subtract FloatOffset from wheel anchors when checking flotation; planes check their unshifted anchors and receive lift per submerged anchor. |
EpicShip / epicShip
|
bool | false |
Opt-in Labjac naval damage rules for vehicles and planes. Requires floating behavior (Boat or FloatOnWater true). buoyancy health reduces lift and throttle; destroyed defined bow, stern, left/port, right/starboard, or midsection parts cause sinking and directional listing. Missing parts are treated as healthy. Driver and passenger guns require three deep, widely spaced water samples; otherwise throttle is capped at ±0.3. See EpicShip naval damage. |
WheelRadius / WheelStepHeight
|
float | 1.0 |
Wheel step height aliases. |
WheelSpringStrength / SpringStrength
|
float | 0.5 |
Suspension strength aliases. |
TrackFrames / TrackLinkLength
|
int / float |
2 / 0.0
|
Track animation frame count and link length. |
LeftLinkPoint / RightLinkPoint
|
vector line, repeatable | none | Track-link path points. |
Harvester / CollectHarvest / DropHarvest
|
bool | false |
Enables harvesting and chooses collection/drop behavior. |
HarvestMaterial / HarvestToolType
|
text line, repeatable | none | Allowed harvested materials and tool categories. |
HarvestBox |
<sizeVector> <positionVector> |
none | Harvester volume, in model units. |
CargoSlots / BombSlots / MineSlots / MissileSlots / ShellSlots
|
int, at least 0
|
0 |
Inventory slot counts; mine and shell names are aliases. |
FuelTankSize / EngineStartTime
|
int, at least 0
|
100 / 0
|
Fuel capacity and engine start delay. A vehicle or plane starts automatically when its driver enters with fuel, or when fuel is added after entering with an empty tank; the engine key can then turn it off or on manually. |
FilterAmmunitionInput |
bool | false |
Restricts ammunition insertion. |
BulletDetection |
float | derived from hitboxes | Projectile-detection radius. |
YOffset / CameraDistance
|
float |
0.625 / 5.0
|
Entity vertical offset and third-person camera distance. |
OnRadar |
bool | false |
Shows the driveable on radar. |
| Key | Format | Default | Purpose |
|---|---|---|---|
CanLockAngle / CanLockOnAngle
|
int degrees | 10 |
Lock-on cone aliases. |
MaxRangeLockOn / LockOnSoundTime
|
int / int |
500 / 60
|
Lock range and lock sound interval. |
LockOnToDriveables |
bool | false |
Enables vehicles, planes, and mechas together unless individually overridden. |
LockOnToVehicles / LockOnToPlanes / LockOnToMechas / LockOnToPlayers / LockOnToLivings
|
bool | false |
Lock-on target categories. |
HasFlare / FlareDelay / TimeFlareUsing
|
bool / int / int |
false / 200 / 1
|
Flare availability, cooldown, and active time. |
IsExplosionWhenDestroyed |
bool | false |
Enables the destruction explosion. |
DeathFireRadius / DeathFire
|
float | 0.0 |
Destruction fire radius aliases. |
DeathExplosionRadius / DeathExplosion / DeathExplosionPower
|
float |
4.0 / 1.0
|
Destruction explosion radius aliases and power. |
DeathExplosionBreaksBlocks |
bool | false |
Allows the destruction explosion to break blocks. |
DeathExplosionDamageVsLiving / DeathExplosionDamageVsPlayer / DeathExplosionDamageVsPlane / DeathExplosionDamageVsVehicle
|
float | 1.0 |
Per-target destruction explosion damage. |
FallDamageFactor |
float | 1.0 |
Multiplier for fall/impact damage. |
VehicleGunModelScale / VehicleGunReloadTick
|
float / int |
1.0 / 15214541
|
Mounted-gun rendering scale and the legacy reload-sound sentinel/tick. |
StartEngineSound |
sound | none | One-shot engine-start sound. Vehicles use only this key for startup; planes fall back to StartSound. It is not replayed when a running engine changes drivers. |
IdleEngineSound / IdleSound / StartSound
|
sound | none |
IdleEngineSound and IdleSound are idle-loop aliases. Vehicles prefer that idle sound, then looping legacy StartSound, then EngineSound at its configured base pitch; planes never loop StartSound. |
EngineSound / ExitSound / BackSound
|
sound | none | Throttled engine, exit, and reverse sounds. Vehicles also loop EngineSound at base pitch while the engine is on and throttle is neutral when no IdleEngineSound, IdleSound, or StartSound is configured; planes use it at base pitch as their idle fallback too. The loop waits for startup playback to finish. Running engine loops follow the driveable for every nearby player, including passengers and observers. |
EngineSoundPitchBase |
float, at least 0
|
client default | Pitch multiplier at 0% throttle. Client defaults: 0.5 for vehicles and planes. |
EngineSoundPitchAt50 / EngineSoundPitchAt100
|
float, at least 0
|
client defaults | Pitch multipliers at 50% and 100% forward throttle. Vehicle defaults are 0.8 / 1.2; plane defaults are 1.0 / 1.5. The curve interpolates linearly between 0%, 50%, and 100%. |
EngineSoundPitchRange |
float, at least 0
|
none | Alternative linear curve from EngineSoundPitchBase to base + range at full forward throttle. An explicitly authored 50% or 100% point overrides its corresponding point on that curve. Reverse traverses the forward curve by the reverse-to-forward maximum speed ratio. |
StartEngineSoundLength |
int ticks | 20 |
Time before the continuous loop begins after StartEngineSound; measured sound metadata may replace it. Planes use StartSoundLength when StartSound supplies the startup instead. |
StartSoundLength / EngineSoundLength / BackSoundLength / SoundTime
|
int ticks | 0 |
Legacy sound timing. |
IdleEngineSoundLength / IdleSoundLength / ExitSoundLength
|
int ticks | 50 |
Idle and exit sound lengths. IdleEngineSoundLength is an alias of IdleSoundLength. |
StartSoundRange / EngineSoundRange / BackSoundRange
|
int | Mod config vehicleSoundRange (50 by default) |
Sound ranges; missing or nonpositive values use the mod config default. Ignored while overridePackSoundRanges is enabled. |
YawSound / PitchSound
|
sound | none | Driver traverse sounds. |
YawSoundLength / PitchSoundLength
|
int ticks | 0 |
Driver traverse sound lengths. |
ShootMainSound / ShootSoundPrimary
|
sound | none | Primary firing sound aliases. |
ShellSound / BombSound
|
sound | none | Legacy weapon-type fallbacks. Sound precedence for either bank is its explicit ShootSoundPrimary / ShootSoundSecondary, then the matching ShellSound / BombSound when typed shell / bomb, then generic ShootSound. Gun banks ignore both typed sounds. |
ShootSecondarySound / ShootSoundSecondary
|
sound | none | Secondary firing sound aliases. |
ShootReloadSound / PlaceSoundPrimary / PlaceSoundSecondary / ReloadSoundPrimary / ReloadSoundSecondary
|
sound | none | Weapon action sounds. ReloadSoundPrimary / ReloadSoundSecondary play on every reload of their bank. |
ReloadSound |
sound | none | Shared reload sound, used by a bank naming none of its own. A bank firing mounted guns never uses it: it plays the gun's own ReloadSound, else its bank-specific sound. ShootReloadSound is likewise skipped when the primary bank fires mounted guns. |
LockedOnSound / LockOnSound / LockingOnSound / FlareSound
|
sound | none | Lock-on and flare sounds. |
LockedOnSoundRange |
int | Mod config vehicleLockedOnSoundRange (5 by default) |
Locked-on warning range; missing or nonpositive values use the mod config default. Ignored while overridePackSoundRanges is enabled. |
For example, this definition line gives a linear engine pitch curve:
EngineSoundPitchRange 1.0
With no EngineSoundPitchBase line, the default client base is 0.5. The
pitch is 0.5 + throttle × 1.0: 0.5 at 0% forward throttle,
1.0 at 50%, and 1.5 at 100%. Here Range is the difference between
the 0% and 100% pitches, not the 100% pitch itself. If you also set
EngineSoundPitchAt50 0.8, only the 50% point changes; the 0% and 100%
points remain 0.5 and 1.5.
| Key | Format | Default | Purpose |
|---|---|---|---|
Engine |
Engine item shortname or ID | empty | Manually selects this driveable's default engine. A valid value has highest priority over common-config defaults and automatic selection. |
Engine accepts a shortname or item ID with or without a namespace, such as
advCPU, flansmod:advCPU, or otherpack:advCPU. Empty, missing, invalid, or
incompatible values use the normal default-engine rules. The selected engine must
still be eligible: an ENGINE part with CanBeDefaultEngine true, no RF power, and
a matching WorksWith entry.
| Key | Format | Default | Purpose |
|---|---|---|---|
EmittersRequireOccupant |
bool | true |
When enabled, configured emitters only produce particles while at least one entity is mounted in the driver seat, a passenger seat, or directly on the driveable. Set to false to allow unoccupied driveables to emit particles. |
AddParticle / AddEmitter
|
particle rate origin extents velocity minThrottle maxThrottle minHealth maxHealth part |
none | Adds a particle emitter. Vehicle and plane emitters require an active engine; the occupant and throttle/health filters are then applied normally. |
All keys are optional. Semantic armour uses nominal millimetres followed by an
optional virtual slope in degrees. An explicit 0 thickness means intentionally
unarmoured and remains distinct from an absent value. See Vehicle Armour and Damage
for angle conventions, precedence, penetration, damage, and explosion behavior.
| Key | Format | Default | Purpose |
|---|---|---|---|
ArmorFrontMm |
<thicknessMm> [slopeDeg] |
~ | Hull front armour. |
ArmorRearMm |
<thicknessMm> [slopeDeg] |
~ | Hull rear armour. |
ArmorSideMm |
<thicknessMm> [slopeDeg] |
~ | Applies to both hull sides. |
ArmorTopMm |
<thicknessMm> [slopeDeg] |
~ | Hull top armour. |
ArmorBottomMm |
<thicknessMm> [slopeDeg] |
~ | Hull bottom armour. |
TurretArmorFrontMm |
<thicknessMm> [slopeDeg] |
~ | Turret front armour in the rotating turret frame. |
TurretArmorRearMm |
<thicknessMm> [slopeDeg] |
~ | Turret rear armour in the rotating turret frame. |
TurretArmorSideMm |
<thicknessMm> [slopeDeg] |
~ | Applies to both turret sides. |
TurretArmorTopMm |
<thicknessMm> [slopeDeg] |
~ | Turret top armour. |
TurretArmorBottomMm |
<thicknessMm> [slopeDeg] |
~ | Turret bottom armour. |
PartArmorMm |
<part> <thicknessMm> |
none | Repeatable uniform per-part override. It outranks turret and hull semantic armour. |
ArmorFrontVsHeatMm, ArmorRearVsHeatMm, ArmorSideVsHeatMm, ArmorTopVsHeatMm, ArmorBottomVsHeatMm
|
<thicknessMm> |
the face's kinetic value | Protection of the same hull face against HEAT rounds. Requires the matching Armor...Mm line and shares its slope. |
TurretArmorFrontVsHeatMm, TurretArmorRearVsHeatMm, TurretArmorSideVsHeatMm, TurretArmorTopVsHeatMm, TurretArmorBottomVsHeatMm
|
<thicknessMm> |
the face's kinetic value | Protection of the same turret face against HEAT rounds. Requires the matching TurretArmor...Mm line and shares its slope. |
PartArmorVsHeatMm |
<part> <thicknessMm> |
the part's kinetic value | Repeatable. Protection of a part against HEAT rounds. Requires a PartArmorMm or naval armour line for the same part. |
ArmorBeltMm |
<thicknessMm> [slopeDeg] |
~ | Applies to belt, port/starboard, left/right, and side-armour parts. |
ArmorDeckMm |
<thicknessMm> [slopeDeg] |
~ | Applies to the deck part family. |
ArmorCitadelMm |
<thicknessMm> [slopeDeg] |
~ | Applies to the citadel part. |
ArmorBulkheadMm |
<thicknessMm> [slopeDeg] |
~ | Applies to bulkhead parts. |
ArmorConningTowerMm |
<thicknessMm> [slopeDeg] |
~ | Applies to conning-tower and bridge parts. |
ArmorTorpedoBulgeMm |
<thicknessMm> [slopeDeg] |
~ | Applies to torpedo-bulge and bulge parts. |
ArmorSuperstructureMm |
<thicknessMm> [slopeDeg] |
~ | Applies to the superstructure part. |
ArmorBowMm / ArmorSternMm
|
<thicknessMm> [slopeDeg] |
~ | Applies to the bow or stern part. |
ArmorMachineryMm |
<thicknessMm> [slopeDeg] |
~ | Applies to engine-room, boiler-room, and steering parts. |
ArmorFlightDeckMm |
<thicknessMm> [slopeDeg] |
~ | Applies to flight-deck and hangar part families. |
UseRealisticVehicleHealth |
bool | false |
When true and RealMassKg is valid, derives total HP as realisticVehicleHealthScale * massKg^(2/3) and uses positive authored hitbox HP as allocation weights. |
Naval semantic armour is resolved as a set of per-part overrides before explicit
PartArmorMm lines are applied, so an explicit per-part line always wins.
All keys below are optional. A key present without a value counts as not specified. Invalid values are reported as content-pack errors and ignored; they never abort loading and never activate a subsystem. See Realistic Vehicle Physics for activation rules, precedence, and the speed scales.
Every Real… key in the tables below also accepts the same name without Real (for example, MassKg for RealMassKg). The Real… spelling takes priority if both are declared, including when its value is blank or invalid. These aliases are separate from legacy keys such as Mass, MaxSpeed, and WingArea.
Common, read on every driveable:
| Key | Format | Default | Purpose |
|---|---|---|---|
RealMassKg / MassKg
|
float kilograms, greater than 0
|
~ | Real vehicle mass. Required by both propulsion profiles and independently used by UseRealisticVehicleHealth. Unrelated to the legacy projectile/vehicle Mass key, which keeps its own meaning. |
RealMaxSpeedKmh / MaxSpeedKmh
|
float km/h, greater than 0
|
~ | Real top speed. Authoritative terminal speed when a ground/aircraft profile is active, and independently the mecha chassis speed before engine/addon modifiers. Converts as kmh / 72 blocks per tick. Ground and aircraft profiles then apply their class speed scale. Unrelated to the legacy MaxSpeed key. |
RealEnginePowerKw / EnginePowerKw
|
float kilowatts, greater than 0
|
~ | Reference shaft power. Multiplied by the installed engine part's EngineSpeed at runtime. Unrelated to PartType.EnginePower. |
RealEnginePowerHp / EnginePowerHp
|
float mechanical horsepower, greater than 0
|
~ | Same field as RealEnginePowerKw, in horsepower. Converted to kilowatts on read (1 hp = 0.745699872 kW). |
RealEnginePowerPS / EnginePowerPS
|
float metric horsepower (Pferdestärke), greater than 0
|
~ | Same field as RealEnginePowerKw, in PS. Converted to kilowatts on read (1 PS = 0.73549875 kW). If more than one of RealEnginePowerKw/RealEnginePowerHp/RealEnginePowerPS is declared, priority follows that order, so RealEnginePowerPS wins over the other two. |
RealEngineThrustKn / EngineThrustKn
|
float kilonewtons, greater than 0
|
~ | Reference jet thrust, used instead of power for jets. Unrelated to the legacy MaxThrust key. |
Aircraft, read on PlaneType:
| Key | Format | Default | Purpose |
|---|---|---|---|
RealWingSpanM / WingSpanM
|
float metres, greater than 0
|
~ | Wing span. Required by the aircraft profile; feeds the roll inertia heuristic. |
RealWingAreaM2 / WingAreaM2
|
float square metres, greater than 0
|
~ | Wing area. Required by the aircraft profile; feeds wing loading and lift. Unrelated to the legacy WingArea key. |
RealClimbRateMs / ClimbRateMs
|
float metres per second, greater than 0
|
~ | Climb rate. Not required. Used only to constrain how much excess lift becomes a sustained climb; never assigned directly as vertical velocity. |
RealAirBrakeAreaM2 / AirBrakeAreaM2
|
float square metres, greater than 0
|
~ | Total frontal area presented by fully deployed air-brake panels. Used by both modern and legacy flight physics; when absent, the brake area is derived from RealWingAreaM2. |
RealRotorDiameterM / RotorDiameterM
|
float metres, greater than 0
|
~ | Main rotor diameter of a rotorcraft. Stands in for RealWingSpanM, and supplies RealWingAreaM2 as the swept rotor disc, so a helicopter can complete the aircraft profile without inventing a wing. An authored wing span or area always wins. |
RealRotorCount / RotorCount
|
whole number, at least 1
|
1 |
Number of main rotors. 2 for a tandem or coaxial layout, which sweeps two discs. Only affects the derived area; the derived span stays one rotor wide. |
Ground vehicles, read on VehicleType. Each listed key applies independently, without needing a complete propulsion profile:
| Key | Format | Default | Purpose |
|---|---|---|---|
DriveType |
RWD, FWD, AWD, TRACKED, or MARINE
|
inferred | Drive layout. When absent it is inferred from Tank and FourWheelDrive, and traction selection stays exactly as before. Also contributes to the hill-climbing response derived for a complete ground profile. Accepts 2WD, 4WD, Rear, Front, Track, Tracks, Tank, Ship, Boat, Naval, Screw, Propeller, Waterjet, Paddle, and the spelled-out forms. MARINE is never inferred, because the Boat and FloatOnWater keywords are shared with amphibious wheeled and tracked vehicles. |
RealMaxReverseSpeedKmh / MaxReverseSpeedKmh
|
float km/h, greater than 0
|
~ | Caps reverse terminal speed. Does not scale it, so MaxNegativeThrottle is never applied twice. Has no effect when MaxNegativeThrottle is 0, which still means the vehicle cannot reverse. |
Hill climbing has no separate configuration key. For complete ground profiles it
is derived from power-to-weight ratio and DriveType, with a gradual falloff and
a 20% crawl floor on extreme terrain. Legacy vehicles are unchanged.
Marine, read on VehicleType and applied only when the hull floats:
| Key | Format | Default | Purpose |
|---|---|---|---|
RealDraftM / DraftM
|
float metres, greater than 0
|
~ | Settles the lowest corner of the authored core box this far below the waterline, accounting for model scale and pose and replacing constant Buoyancy lift. Requires Boat or FloatOnWater True and a core box. Without either a draft or a core box, keeps wheel-based flotation. FloatOffset still controls placement and vehicle wheel flotation checks. |
Naval unit aliases, read on any driveable. These are not separate physical quantities: each converts into the common key it duplicates and overrides it when both are present, in the priority order shown. Author the unit your source states and never both spellings of one quantity.
| Key | Format | Converts into | Purpose |
|---|---|---|---|
RealDisplacementT / DisplacementT
|
float metric tonnes, greater than 0
|
RealMassKg (x 1000) |
Displacement as continental and modern sources state it. Overrides RealMassKg. |
RealDisplacementLongTons / DisplacementLongTons
|
float long tons, greater than 0
|
RealMassKg (x 1016.0469088) |
Displacement as British and American records before metrication state it. Overrides both keys above. |
RealMaxSpeedKn / MaxSpeedKn
|
float knots, greater than 0
|
RealMaxSpeedKmh (x 1.852) |
Maximum speed in knots. Overrides RealMaxSpeedKmh. |
RealMaxReverseSpeedKn / MaxReverseSpeedKn
|
float knots, greater than 0
|
RealMaxReverseSpeedKmh (x 1.852) |
Astern speed in knots. Overrides RealMaxReverseSpeedKmh. |
There are deliberately no keys for length, width, beam, wheelbase, or track width. Those are derived from the SetupPart core collision box and the declared WheelPosition lines.
Inherits every DriveableType, PaintableType, and InfoType key. Loaded from vehicles.
| Key | Format | Default | Purpose |
|---|---|---|---|
TurnLeftSpeed / TurnRightSpeed
|
float | 1.0 |
Legacy left and right steering multipliers. Bypassed by a valid RealTurnRateDegPerSec in normal physics. An empty TurnLeftSpeed line enables the optional-value flag behavior. |
RealTurnRateDegPerSec / TurnRateDegPerSec
|
float hull degrees/second, finite and greater than 0
|
unset (0) |
Sustained full-input hull turn rate, independent of installed-engine speed and legacy steering/throttle multipliers. Tracks use this rate with the engine running; rolling vehicles scale by signed speed relative to RealMaxSpeedKmh and require that speed to be valid. Does not apply to crew-pushed vehicles or forced legacy physics. The Real spelling takes priority. See Realistic Vehicle Physics. |
SquashMobs / FourWheelDrive / RotateWheels
|
bool | false |
Mob squashing, four-wheel drive, and wheel rendering behavior. |
Tank / TankMode
|
bool | false |
Enables tank/tracked steering; TankMode is the later alias. |
ThrottleDecay |
float, at least 0
|
0.0035 |
Throttle decay per tick. |
PushSpeedKmh |
float km/h, greater than 0
|
unset (0) |
Makes a crew-controlled vehicle movable at the stated walking speed without engine power or fuel. Takes precedence over realistic and legacy propulsion; reverse requires MaxNegativeThrottle above 0. |
Mass |
float, at least 1
|
1000 |
Legacy vehicle mass. This is separate from RealMassKg. |
UseRealisticAcceleration |
bool | false |
Enables the legacy realistic-acceleration hint when the modern real-world profile is not active. |
Gravity / MaxFallSpeed / BrakingModifier
|
float |
0.175 / 0.85 / 1.0
|
Falling and braking parameters; the last two are clamped to at least 0. |
HasDoor / ShootWithOpenDoor
|
bool | false |
HasDoor enables the door key. ShootWithOpenDoor makes the door arm the vehicle's weapons: they fire only while the door is open, and the HUD shows whether they are ready. Without it the door never affects firing. |
ShootDelay / ShellDelay
|
float ticks, rounded to int | 0 |
Vehicle-specific copies of the shared delays. The values that actually govern firing are the DriveableType ones in Weapons, which read the same key names; these copies are a legacy fallback that the shared resolution no longer reaches. |
ShootSound / ShellSound
|
sound | none | Vehicle-specific generic and shell fallback sounds. For a shell bank, an explicit bank sound wins, followed by ShellSound, then ShootSound. Gun banks ignore ShellSound. |
DoorPosition1 / DoorPosition2 / DoorRotation1 / DoorRotation2 / DoorRate / DoorRotRate
|
vector | 0 0 0 |
First door's closed/open transforms and animation rates. |
Door2Position1 / Door2Position2 / Door2Rotation1 / Door2Rotation2 / Door2Rate / Door2RotRate
|
vector | 0 0 0 |
Second door's transforms and rates. |
FixTrackLink / TrackLinkFix
|
int | 5 |
Track-link correction aliases. |
AddSmokePoint / AddSmokeDispenser
|
<positionVector> <directionVector> <detonationTicks> <part>, repeatable |
none | Adds a vehicle smoke dispenser. Position is divided by 16. |
StompSoundFrontRight / StompSoundFrontLeft / StompSoundBackRight / StompSoundBackLeft
|
sound | none | Per-corner wheel/footstep sounds. |
Inherits every DriveableType, PaintableType, and InfoType key. Loaded from planes.
| Key | Format | Default | Purpose |
|---|---|---|---|
Mode |
PLANE, HELI, VTOL, or SIXDOF
|
PLANE |
Aircraft control mode. |
NewFlightControl |
bool | false |
Enables the newer legacy flight-control model when no modern real-world profile is active. It keeps the 1.7.10 shoot-down sequence: once the airframe, tail, leftWing, or rightWing part is destroyed in plane mode, the aircraft sinks, pitches or rolls away (a lost airframe cuts the throttle and dives), wears its core down every tick, and burns and explodes until it is lost. It ends if every one of those parts is repaired. Planes flying on a real-world aircraft profile get the same sequence adapted to that model: the lost lift and control of a wing or tail are already simulated there, so the sequence only adds the core wear, fire and explosions; a lost airframe also removes all wing lift. On that profile the sequence pauses while the plane rests on the ground. On either legacy flight model a plane buffets with small random attitude kicks: above 2 blocks per tick normally, or between 1.9 and 2.05 blocks per tick with this key. There is no buffeting on the wheels. |
TurnLeftSpeed / TurnRightSpeed / LookUpSpeed / LookDownSpeed / RollLeftSpeed / RollRightSpeed
|
float | 1.0 |
Control-axis multipliers. |
RealTurnRateDegPerSec / TurnRateDegPerSec
|
float ground degrees/second, finite and greater than 0
|
unset (0) |
Full-input ground taxi yaw at 10 km/h, scaling with signed forward rolling speed and capped at the authored rate. Requires deployed gear, wheel definitions and ground support. Overrides ground yaw independently of engine parts and legacy rudder modifiers, including engine-off coasting. Has no effect airborne, afloat without wheel support, or with forced legacy plane physics. The Real spelling takes priority. |
Lift / TakeoffSpeed
|
float |
1.0 / 0.5
|
Legacy lift and takeoff threshold. |
MaxSpeed / MaximumSpeed
|
float | 2.0 |
Legacy top-speed aliases. Separate from RealMaxSpeedKmh. |
Supersonic |
bool | false |
Marks a supersonic aircraft. |
MaxThrust / Mass / WingArea / EmptyDrag
|
float |
50 / 1000 / 1 / 1
|
Legacy physics inputs. Mass is at least 1; wing area and empty drag are at least 0. |
HeliThrottlePull |
bool | true |
Accepted for legacy compatibility; helicopter throttle now stays at the selected setting, like plane throttle. |
ShootDelay / BombDelay
|
float ticks, rounded to int | 0 |
Plane-specific copies of the shared delays. The values that actually govern firing are the DriveableType ones in Weapons, which read the same key names; these copies are a legacy fallback that the shared resolution no longer reaches. |
Propeller / HeliPropeller / HeliTailPropeller
|
<id> <x> <y> <z> <part> <item>, repeatable |
none | Adds an engine propeller and its recipe item. Position uses model units. |
PropSound / ShootSound / BombSound
|
sound | none | Propeller, generic firing, and bomb fallback sounds. For a bomb bank, an explicit bank sound wins, followed by BombSound, then ShootSound; gun banks ignore BombSound. PropSound takes priority over inherited EngineSound; without an idle sound, it loops at the lowest engine pitch while the running plane is at zero throttle. |
PropSoundLength |
int ticks | 0 |
Propeller sound length. |
HasGear / HasLandingGear
|
bool | true |
Retractable landing-gear aliases. |
HasDoor |
bool | true |
Door-control hint. |
HasAirBrake / AirBrake
|
bool |
true for fixed-wing modes, false for HELI
|
Enables the air-brake toggle and its drag in both legacy and modern flight physics; the latter alias wins. |
HasWing / FoldWingForLand / FlyWithOpenDoor
|
bool | false |
Folding-wing and door flight behavior. |
AutoOpenDoorsNearGround / AutoDeployLandingGearNearGround
|
bool | true |
Automatic near-ground door and gear behavior. |
RestingPitch |
float | 0.0 |
Pitch used while resting on the ground. |
SpinWithoutTail |
bool | false |
Tail-loss spin behavior. |
Valkyrie |
bool | false |
Drives the 1.7.10 Valkyrie skeleton, a fixed 33-joint VF-1 hierarchy. The model's valkyrie[i] groups are the joints, modelled relative to their joint positions, and each joint carries its children. The wing toggle switches between fighter mode (wings folded) and GERWALK, which unfolds through four stages. Above 0.2 throttle the feet fire afterburner exhaust, and fighter mode raises the wheel anchors by 90/16 blocks. |
InflightInventory / InvInflight
|
bool | true |
Allows inventory access in flight; the latter alias wins. |
WingPosition1 / WingPosition2 / WingRotation1 / WingRotation2 / WingRate / WingRotRate
|
vector | 0 0 0 |
Folding-wing transforms and rates. |
WingWheelPosition1 / WingWheelPosition2 / WingWheelRotation1 / WingWheelRotation2 / WingWheelRate / WingWheelRotRate
|
vector | 0 0 0 |
Wing-wheel transforms and rates. |
BodyWheelPosition1 / BodyWheelPosition2 / BodyWheelRotation1 / BodyWheelRotation2 / BodyWheelRate / BodyWheelRotRate
|
vector | 0 0 0 |
Body-wheel transforms and rates. |
TailWheelPosition1 / TailWheelPosition2 / TailWheelRotation1 / TailWheelRotation2 / TailWheelRate / TailWheelRotRate
|
vector | 0 0 0 |
Tail-wheel transforms and rates. |
DoorPosition1 / DoorPosition2 / DoorRotation1 / DoorRotation2 / DoorRate / DoorRotRate
|
vector | 0 0 0 |
Door transforms and rates. |
Inherits every DriveableType, PaintableType, and InfoType key. Loaded from mechas.
| Key | Format | Default | Purpose |
|---|---|---|---|
TurnLeftSpeed / TurnRightSpeed
|
float | 1.0 |
Legacy turning multipliers. |
RealMaxSpeedKmh / MaxSpeedKmh
|
float km/h, greater than 0
|
unset | Preferred chassis speed, converted as kmh / 72 blocks per tick and then multiplied by installed-engine and addon speed modifiers. Takes precedence over MoveSpeed without activating ground/aircraft propulsion. |
MoveSpeed |
float, at least 0
|
1.0 |
Legacy movement multiplier used only when RealMaxSpeedKmh is absent or invalid. Its baseline is 4.3 * MoveSpeed blocks/second before engine/addon modifiers. |
SquashMobs |
bool | false |
Allows the mecha to squash mobs. |
StepHeight |
int blocks, at least 0
|
0 |
Maximum automatic step height, clamped to 0..8 blocks at runtime. |
JumpHeight |
float nominal blocks | unset (-99) |
Jump parameter converted to upward blocks/tick as sqrt(abs(9.81 * (JumpHeight + 0.2) / 200)); discrete movement means it is not a guaranteed measured apex. |
RotateSpeed |
float degrees/tick | 10.0 |
Maximum body-yaw change per game tick. |
StompSound / StompSoundLength
|
sound / int ticks | none / 0
|
Stomp sound and length. |
StompRangeLower / StompRangeUpper
|
float | 0.0 |
Stomp activation range. |
LeftArmOrigin / RightArmOrigin
|
vector | 0 0 0 |
Arm origins in model units. |
ArmLength / LegLength
|
float model units | 16 |
Limb lengths, divided by 16 internally. |
RearLegLength / FrontLegLength
|
float model units, at least 0
|
16 |
Separate 1.12.2 rear/front leg-group lengths, divided by 16. Used by the leftRearLegModel / leftFrontLegModel (and matching right, foot) parts of a ModelMecha. As in 1.12.2 they do not inherit LegLength. |
LegTrans / RearLegTrans / FrontLegTrans
|
float model units | 0 |
1.12.2 sideways (model X) offsets of the main, rear and front leg groups, divided by 16. Each group pivots at its own length and translation. |
HeldItemScale |
float, at least 0
|
1.0 |
Scale for held tools/items. |
Height / Width / ChassisHeight
|
float model units |
48 / 32 / 16
|
Body dimensions, divided by 16; height and width have a 0.1-block floor. |
Reach |
dimensionless float, at least 0
|
10.0 |
Multiplies the equipped tool's reach in blocks; effective reach is clamped to 1..32 blocks. |
TakeFallDamage / DamageBlocksFromFalling
|
bool | true |
Enables self and block fall damage. |
FallDamageMultiplier / BlockDamageFromFalling
|
float, at least 0
|
1.0 |
Fall-damage multipliers. |
LegSwingLimit / LegSwingTime
|
float |
2.0 / 5.0
|
Leg swing range and animation time. Time has a 0.01 floor. |
LimitHeadTurn |
<bool> <degrees> |
disabled, 90
|
Enables and sets the head-turn limit. |
UpperArmLimit / LowerArmLimit
|
float degrees | 90 |
Arm rotation limits. |
LeftHandModifier / RightHandModifier
|
vector | 0 0 0 |
Hand offsets in model units. |
LegNode |
<rotation> <lower> <upper> <speed> <legPart>, repeatable |
none | Adds a leg animation node. |
LegAnimSpeed |
float | 0.0 |
Leg animation speed. |
RestrictInventoryInput |
bool | false |
Restricts item insertion into the mecha inventory. |
AllowMechaToolsInRestrictedInv |
bool | true |
Still permits mecha tools when inventory input is restricted. |