Skip to content

Data Dictionary

Gianluca edited this page Oct 14, 2022 · 3 revisions

Division Rules

Describes how every division is built up. For every unit in DivisionRules.ndf we have the following values.

ref UnitDescriptor

Reference to UniteDescriptor.ndf

bol AvailableWithoutTransport

arr AvailableTransportList

Array containing all available transports.

int MaxPackNumber

How many cards of this unit type can be taken (varies per division)

int NumberOfUnitInPack

How many units each card holds (does not vary per division)

arr NumberOfUnitInPackXPMultiplier

Multiply with NumberOfUnitInPack to get the amount of units per card at given veterancy level.

Unit Descriptor

All useful values to be found in UniteDescriptor.ndf

General Information

str Nationalite (Alliance)

Can either be ENationalite/Allied (NATO) or ENationalite/Axis (PACT)

str MotherCountry (Nation)

Can either be SOV, US, UK, DDR, RFA (West-Germany) or BEL

arr RoleList (Quality)

Can either be tank_A (A | Excellent), tank_B (B | Good), tank_C (C | Mediocre) or tank_D (D | Poor)

str Factory (Category)

Can either be Logistic (LOG), Infantry (INF), Support (ART), Tanks (TNK), Recons (REC), AT (AA), Helis (HEL), Planes (AIR)

arr SpecialtiesList (Role)

Can either be hq (Command unit), supply, infantry (Infantry Squad), infantry_half (Infantry Group), engineer (Assault Squad), assault_half (Assault Group), mortar, howitzer, mlrs, ifv (Infantry Fightung Vehicle), armor (Main Battle Tank), reco, hel_recp (Helicopter Reconnaissance), appui (Support), AT (Anti-Tank), transport, AA (Air Defence) or sead

int ProductionYear
int ProductionTime

5 for every unit except -1 for planes. I think it's the time between placing units and them spawning in.

int Resource_CommandPoints
str UpgradeFromUnit

Predecessor

des TInfluenceScoutModuleDescriptor (Reveal Influenece)

Descriptor is empty for every unit, however, if its header is present it triggers Reveal Influenece to be set to yes in the in-game armory. Furthermore, it will show you the blue/red dividing lines when a zone is contested, helping you to guess the enemy command vehicle's (CVs) location.

flt DeploymentShift

If the descriptor is present it states how far the unit can be forward deployed.

Damage

ref StunDamagesRegen

ref MaxStunDamages

ref SuppressDamagesRegenRatio

Described in chapter Stress, Suppression, Cohesion and Morale

ref SuppressDamagesRegenRatioOutOfRange

Described in chapter Stress, Suppression, Cohesion and Morale

ref MaxSuppressionDamages

Described in chapter Stress, Suppression, Cohesion and Morale

flt MaxDamages (Strength)

The unit's health. In-game called strength for infantry units. Note that increasing strength does not automatically increase the squad's size. You would need to adjust NbSoldatInGroupeCombat and Depiction aswell.

ref WeaponManager

Reference to WeaponDescriptor.ndf

Armor

str ArmorDescriptorFront

Armor Front

str ArmorDescriptorSides

Armor Side

str ArmorDescriptorRear

Armor Rear

str ArmorDescriptorTop

Armor Top

Visibility & Targetability

int OpticalStrength

Optics for ground units. Presumably used to determine whether a unit can see enemy units in cover: can either be 40 (Bad), 60 (Mediocre), 80 (Normal), 120 (Good), 170 (Very Good) or 220 (Exceptional)

int OpticalStrengthAltitude

Optics for air targets. This value is not represented on the in-game UI and does not count towards OpticalStrength.

flt IdentifyBaseProbability

Guess: I think OpticalStrength defines how well units can be seen, IdentifyBaseProbability is the probability that these units can be uniquely identified.

flt TimeBetweenEachIdentifyRoll

Guess: Time in-between trying to uniquely identify units.

flt UnitConcealmentBonus (Stealth)

In-game called stealth. Can either be 1.0 (Bad), 1.5 (Mediocre), 2.0 (Good) or 2.5 (Exceptional)

flt HitRollECM

Multiplier for hit probability. 0 means no Electronic countermeasures (ECM)

int PorteeVision

Maximum range at which a unit can see an unidentified ground unit. This variable is set to 10000 except for SEAD planes it is higher.

flt PorteeVisionTBA

Set to 0 for every unit except 14000 for planes.

flt PorteeVisionFOW

Set to 0 for every unit except 1600 for helicopters.

flt DetectionTBA

Maximum range at which a unit can see an unidentified helicopter. Set to 14000 for every unit.

Strategic

int UnitAttackValue

Might be used for AI.

int UnitDefenseValue

Might be used for AI.

flt Dangerousness

Might be used by AI to determine which unit to engage first.

Orders

ref UnlockableOrders

Reference to OrderAvailability_Tactic.ndf. Contains a list of orders that can be given to this particular unit.

Label

bol IsTransporter

bol IsPlane

Fuel

int FuelCapacity

How many liters of fuel a unit can hold.

flt FuelMoveDuration

How many seconds a unit can move before running out of fuel. Described in chapter Calculate Autonomy

Special to Ground Units

int MaxSpeed

flt SpeedBonusOnRoad

flt MaxAcceleration

flt MaxDeceleration

flt TempsDemiTour

The amount of seconds it takes for a unit to make a half-turn.

str VehicleSubType

Special to Planes

int EvacuationTime

int TravelDuration

int Altitude

Preferred flying altitude

ref AltitudeMax

Reference to AirplaneConstantes.ndf; always set to 10000 * Metre

int AltitudeMin

Minimum flying altitude; will break off from certain attacks if they involve going deeper.

ref AltitudeMinForRoll

Reference to AirplaneConstantes.ndf; always set to 2000 * Metre

ref MinRollSpeedForRoll

Reference to AirplaneConstantes.ndf; always set to 65°/s

int AgilityRadius

I believe it to be the equivalent of TempsDemiTour for planes; states the turn radius. Certainly determines the agility of the plane in question.

int PitchAngle

ref PitchSpeed

int RollAngle

int RollSpeed

Special to Helicopters

int UpwardSpeed

Controls movement in some way, though in what way is uncertain.

int TorqueManoeuvrability

Controls movement in some way, though in what way is uncertain.

int CyclicManoeuvrability

Controls movement in some way, though in what way is uncertain.

int MaxInclination

Controls movement in some way, though in what way is uncertain.

flt GFactorLimit

Controls movement in some way, though in what way is uncertain.

int RotorArea

Controls movement in some way, though in what way is uncertain.

int Mass

Controls movement in some way, though in what way is uncertain.

Special to Infantry Units

int NbSoldatInGroupeCombat

The squad's size in number of soldiers.

Special to Supply Units

flt SupplyCapacity

How many supplies this unit is carrying.

Probably Not Important

flt HitRollSize

Size does no longer effect hit chance-to-hit.

int MoralLevel

Reason not included is described in chapter Stress, Suppression, Cohesion and Morale

bol IsParachutist

Currently set to False for every unit.

int Resource_Tickets

Could be used as prices for future campaigns.

int CommanderLevel

Only present on command units. However, it is set to 1 for every unit that has it.

bol UnitIsStealth

False for every unit. Stealth is defined by UnitConcealmentBonus.

tkn UnitName

Unfortunately we can't decode tokens yet.

int SupplyPriority

Used in WGRD to state how many other supply units this unit could itself draw supplies from. Set to -1 for every unit.

int UnitBonusXpPerLevelValue

Set to 1 for every unit except aircraft.

Weapon Descriptor

All useful values to be found in WeaponDescriptor.ndf. A weapon system (TWeaponManagerModuleDescriptor) consist of multiple turret descriptors (TTurretInfanterieDescriptor or TTurretTwoAxisDescriptor). These turrets have one or multiple weapons attached to it (TMountedWeaponDescriptor), each having its own ammunition defined in Ammunition.ndf.

arr Salves

Array holding multiple ammunition pools. An ammunition pool defines the total number of salvos a weapon (which pulls salvos from this pool) can fire before running out of ammunition.

int NbWeapons

The unit's quantity of this specific weapons. Primarily used on infantry units.

int SalvoStockIndex

Defines which ammunition pool (Savles) is being used by this specific weapon. E.g. tank cannons have separate weapon descriptors for HE and AP but will pull from the same ammunition pool.

bol HasMainSalvo

Only set to True for planes. It signifies that this plane has a ammunition pool (Salves) that, if empty, makes the plane evac winchester.

arr SalvoIsMainSalvo

Only has a True in it for planes. States which ammunition pool (Salves) makes the plane evac winchester when empty.

ref Ammunition

References an object in Ammunition.ndf.

flt AngleRotationMax

Maximal traverse of turret in radians. Calculation as follows: angle_degrees = angle_radians \* 180° / pi

flt AngleRotationMaxPitch

Maximum turret elevation in radians. Calculation as follows: angle_degrees = angle_radians \* 180° / pi

flt AngleRotationMinPitch

Minimum turret depression in radians. Calculation as follows: angle_degrees = angle_radians \* 180° / pi

flt VitesseRotation

Traverse speed of the turret, presumably in radians per second.

Ammunition Descriptor

All useful values to be found in Ammunition.ndf.

tkn Name

Ammunition name; unfortunately we can't decode tokens yet.

tkn TypeCategoryName

Weapon description like Heavy Machine Gun, Howitzer, etc. Unfortunately we can't decode tokens yet.

tkn Caliber

Caliber; unfortunately we can't decode tokens yet.

arr TraitsToken

Will be added soon!

int Level

Controls to which card slot this ammunition is assigned to

ref Arme

How much armor-piercing (AP) damage is dealt. Read through chapter Armor-Piercing (AP) Damage to get a detailed damage description and how to read this value correctly.

flt Puissance

How noisy the weapon is. This variable is a stealth-negating multiplier that controls how much easier this unit is to spot when it fires this weapon.

int ShotsBeforeMaxNoise

Either shot count until Puissance is in its full effect or there is a global maximum noise

int NbTirParSalves

Shot count per magazine (salvo)

flt TempsEntreDeuxTirs

Time in-between two shots until magazine (one salvo) is empty. For weapons that have a salvo size of one, e.g. tank cannons, this variable will be ignored. Presumably, this variable is NOT effected by decreasing morale (If it even exists in WARNO).

flt TempsEntreDeuxSalves

Time in-between two salvos, a.k.a reload time. Presumably, this variable is effected by decreasing morale (If it even exists in WARNO).

int PorteeMaximale

Maximal range against ground units.

int PorteeMinimale

Minimum range against ground units.

int PorteeMaximaleTBA

Maximal range against helicopters.

int PorteeMinimaleTBA

Minimum range against helicopters.

int PorteeMaximaleHA

Maximal range against planes.

int PorteeMinimaleHA

Minimum range against planes.

flt AltitudeAPorteeMaximale

Function unknown; exists for every ammunition type except missiles

flt AltitudeAPorteeMinimale

Function unknown; exists for every ammunition type except missiles

bol AffecteParNombre

Function unknown; exists for every ammunition type except missiles

flt AngleDispersion

How much the ammunition spreads on impact or near-miss.

int DispersionAtMaxRange

Dispersion at maximum range

int DispersionAtMinRange

Dispersion at minimum range

int RadiusSplashPhysicalDamages

Area of effect (AeE) of HE damage

flt PhysicalDamages

HE damage in case of direct hit

int RadiusSplashSuppressDamages

Area of effect (AeE) of suppress damage

flt SuppressDamages

Suppress damage in case of direct hit

int RayonPinned

Function unknown

bol AllowSuppressDamageWhenNoImpact

Allow suppress damage to be dealt in case of near-miss.

bol TirIndirect

False if this weapon is direct-fire.

bol TirReflexe

Seems to be False for mortars, howitzers and bombs. Good chance that this is set to True if a weapon is able to target projectiles, hence Reflexe.

bol InterdireTirReflexe

Prohibit TirReflexe. Good chance that is is the counter to whatever TirReflexe is.

flt NoiseDissimulationMalus

Function unknown

int BaseCriticModifier

Either set to 0 or 25. Modifies the probability of triggering critial effects.

int EBaseHitValueModifier/Idling (Accuracy)

Accuracy per shot while standing still. Accuracy in-game is displayed per salvo: real_accuracy = EBaseHitValueModifier/Idling \* NbTirParSalves

int EBaseHitValueModifier/Moving (Accuracy)

Accuracy per shot while moving. Accuracy in-game is displayed per salvo: real_accuracy = EBaseHitValueModifier/Idling \* NbTirParSalves

int MaxSuccessiveHitCount

Function unknown; Either set to 1 or 5

flt TempsDeVisee

Aim time; How long, effected by morale (if existent), the unit needs time from seeing the enemy to being ready to engage it.

flt SupplyCost

bol CanShootOnPosition

Used to define if button Fire Pos is available and therefore a unit is able to blindly fire without target at your request.

bol CanShootWhileMoving

int NbrProjectilesSimultanes

Number of projectiles fired simultaneously

ref MissileDescriptor

For missiles, this variable is a reference to MissileDescriptors.ndf, else it is set to nil

ref SmokeDescriptor

For smoke rounds, this variable is a reference to SmokeDescriptor.ndf, else it is set to nil

ref FireDescriptor

For incendiary rounds, this variable is a reference to FireDescriptor.ndf, else it is set to nil

bol CanHarmInfantry

bol CanHarmVehicles

bol CanHarmHelicopters

bol CanHarmAirplanes

bol CanHarmGuidedMissiles

bol IsHarmlessForAllies

bol PiercingWeapon

If ammunition is able to deal armor-piercing (AP) damage. Read through chapter Armor-Piercing (AP) Damage to get a detailed damage description.

ref DamageTypeEvolutionOverRangeDescriptor

If not nil, this variable references DamageStairTypeEvolutionOverRangeDescriptor.ndf, which handles armor-piercing (AP) damage decrease over distance. Moreover, this means that this ammunition is kinetic. Read through chapter Armor-Piercing (AP) Damage to get a detailed damage description.

flt FlightTimeForSpeed

Most likely used to calculate projectile speed together with DistanceForSpeed

flt DistanceForSpeed

Most likely used to calculate projectile speed together with FlightTimeForSpeed

Probably Not Important

flt IsAPCR

Probably used when Armour-piercing, composite rigid (APCR) (high-velocity armour-piercing (HVAP) in US nomenclature) are implemented into WARNO. Removed in game version 80721.