Skip to content

Veterancy and promotion

How experience, promotion, abilities, and elite weapons work.

Features & systemsCombat & weaponsCombat & targeting

Changed in 0.2.0

Vehicles, infantry, aircraft, and buildings each have their own experience total. That total determines their rank:

RankExperience
Below rookieless than 0
Rookie0 up to but not including 1
Veteran1 up to but not including 2
Elite2 and above

Objects start at rookie with 0 experience unless another setting gives them a different rank. Veteran always starts at 1 and elite at 2. Rules can change how quickly experience is earned, but these thresholds are fixed.

VeteranLevel=0 gives an object -0.25 experience, placing it below rookie. A map’s placed-object records can also set experience directly. Below-rookie objects have no rank abilities, just like rookies. They differ in their insignia and in how crates and armories promote them, as described below.

The object that deals the fatal damage earns experience if its type has Trainable=yes. Each kill adds victim cost / (killer cost * VeteranRatio) to its experience. The costs come from Cost; Points does not affect experience.

Starting from rookie, an object must destroy enemies worth VeteranRatio times its own cost to reach veteran, and twice that to reach elite. A lower VeteranRatio means faster promotion. Cheaper types need fewer kills against the same enemies.

rules.ini
[General]
VeteranRatio=5
VeteranCap=2

This example allows promotion through combat up to elite rank. VeteranCap sets the experience limit. These are example values; the linked key pages give the defaults.

Buildings must explicitly set Trainable=yes to earn experience from kills. Trainable does not control rank benefits: an untrainable object still benefits from a rank given by an armory, a trigger, or another source that ignores this setting.

A building with a FreeUnit usually awards experience based on the building’s full price, even after the free unit has left. If that unit costs more than the building, its price is used instead. See structure costs for the calculation.

Keep VeteranRatio and the killer’s cost above 0: the formula divides by both. With a positive victim cost, a zero divisor sets experience to VeteranCap.

A kill gives no experience if the defeated owner considers the killer an ally. Score, loss counts, and destruction triggers still update.

Destroying a transport also awards experience for each passenger killed inside it. Crushing an object counts as a kill for the vehicle that crushed it.

Experience does not decrease over time, and changing owners does not reset it.

After each kill that earns experience, the total is limited to VeteranCap. Promotions from other sources ignore this limit.

The following sources can give an object a rank without kills. They ignore VeteranCap; only the veterancy crate requires Trainable=yes. A map’s placed-object records can also set experience directly.

SourceResult
Veterancy crateEvery Trainable=yes object on the ground within CrateRadius of the crate rises one rank, repeated as many times as the crate’s Data figure in [Powerups] says, which Crate powerups covers.
Armory=yes buildingThe infantry inside is promoted once the building’s servicing counter runs out.
Drop Pods superweaponEach delivered passenger is created elite.
TeamType VeteranLevelEvery member created for the team takes the rank the value selects.
InitialVeteran=yesThe units and infantry drawn from the random starting selection of a skirmish or multiplayer match are created elite.
Make Elite trigger actionEvery object the trigger is attached to is promoted to elite.

A crate promotes each affected object one step at a time: below rookie to rookie, rookie to veteran, then veteran to elite. Elite objects stay elite. The crate’s Data value in [Powerups] sets the number of steps. Fractions round up, so 2.5 gives three steps and 2 gives two. A value of 0 or less gives no promotion.

The other sources set the rank directly. The armory’s result depends on the infantry’s current rank.

The training time is set by IRepairRate, which also controls hospital treatment time.

Promotion bonuses depend on the type’s ability lists. A veteran with no abilities gains only a rank insignia. Elite objects can also use an elite weapon and cause other objects in their cell to scatter, as described below.

VeteranAbilities and EliteAbilities are comma-separated lists on each object type. Veterans use VeteranAbilities. Elites use both lists, keeping their veteran abilities after promotion. Rookie and below-rookie objects use neither list.

rules.ini
[MYINF] ; example InfantryType
VeteranAbilities=FIREPOWER,ROF
EliteAbilities=SELF_HEAL,FEARLESS

A veteran MYINF deals more damage and reloads faster. At elite rank it also heals itself and becomes immune to fear.

Ability names are case-insensitive. The table lists all eighteen abilities and their effects.

TokenEffect on a qualifying object
FASTERMovement speed is multiplied by VeteranSpeed plus one. Buildings have no speed to raise.
STRONGERIncoming damage is divided by VeteranArmor plus one.
FIREPOWERWeapon damage is multiplied by VeteranCombat plus one.
SCATTERThe object scatters from incoming fire even when the owner’s units would otherwise hold position.
ROFReload delay is divided by VeteranROF plus one.
SIGHTSight range is multiplied by VeteranSight plus one.
CLOAKThe object cloaks and recloaks without Cloakable=yes, and stays cloaked while immobilized.
TIBERIUM_PROOFInfantry take no damage from standing in Tiberium, as with TiberiumProof=yes.
VEIN_PROOFVeins do not damage the object, as with ImmuneToVeins=yes.
SELF_HEALThe object repairs itself while below its self-healing ceiling, as with SelfHealing=yes.
EXPLODESDeath produces the violent explosion of Explodes=yes.
RADAR_INVISIBLEThe object is kept off the local player’s radar unless a sensor contact picks it up.
SENSORSAn adjacent enemy cloaked object shimmers, as with Sensors=yes.
FEARLESSInfantry accumulate no fear, as with Fearless=yes.
C4Infantry attack buildings by sabotage, as with C4=yes.
TIBERIUM_HEALStanding in Tiberium repairs the object, as with TiberiumHeal=yes.
GUARD_AREAAn idle armed vehicle, and an idle human-owned infantry, takes the Guard Area mission instead of Guard. A member of a team is unaffected, and so is a computer-owned infantry, whose idle handling never reads the ability.
CRUSHERA vehicle crushes crushable objects and overlays, as with Crusher=yes.

Unknown or misspelled ability names are ignored without a warning.

Setting an ability list in a later rules file replaces the earlier list. Leaving the key out keeps the earlier list. An empty assignment is ignored, so it cannot clear an existing list.

Set the five bonuses below in rules.ini under [General]. Each applies only when the object has the matching ability:

SettingApplied as
VeteranCombatDamage is multiplied by the value plus one, after the house and object firepower biases.
VeteranSpeedSpeed is multiplied by the value plus one, after the house ground-speed bias.
VeteranSightSight range is multiplied by the value plus one.
VeteranArmorIncoming damage is divided by the value plus one.
VeteranROFReload delay is divided by the value plus one.

VeteranArmor=1 halves incoming damage, and VeteranROF=1 halves reload delay. For the other three settings, 1 doubles the affected statistic. A value of 0 gives no bonus. All five default to 1.

Sonic weapons and weapons using fire particles receive no firepower bonus. Sonic weapons also receive no reload bonus, as do weapons with an attached spark, fire, or railgun particle system. The reload bonus shortens the delay after a burst, not the gaps between its shots.

At elite rank, the weapon named by Elite replaces the primary weapon. Target selection, range, reload delay, and firing all use this weapon. The secondary weapon stays unchanged. If Elite is unset, the object keeps its primary weapon.

The elite weapon uses the primary weapon’s art settings: PrimaryFireFLH, PBarrelLength, and PBarrelThickness. It fires from the same muzzle offset.

Promotion bonuses apply the next time the object fires, takes damage, or moves. The game checks its current rank and abilities whenever it calculates those effects.

Extra sight reveals more terrain the next time the object reveals its surroundings. Promotion itself does not reveal the larger area.

A vehicle keeps its experience when it deploys into a building, and the building passes that experience back when it undeploys. Capturing an object also preserves its rank and any abilities or elite weapon that rank grants.

Passengers who survive a destroyed transport keep their ranks. Crew created when a vehicle or building is destroyed start at rookie.

Veteran and elite objects display different rank insignia beside them, even when unselected. Buildings display them too. The insignia sits farther from vehicles, aircraft, and buildings than from infantry.

Ranks are visible to allies, players spying on the owner, and observers with full map visibility. Shroud, fog, or an undetected cloak hides the insignia along with the object. The healer cross follows the same visibility rules.

The insignia uses PIPS.SHP. A below-rookie object uses the frame after the last defined pip; there is no dedicated insignia for that rank.

16 of 16

KeyDescriptionValueWhen omitted
ArmoryBuildingTypeAdmits one infantry at a time and promotes it when the servicing delay elapses.booleanno
CrateRadiusglobal rulesThe distance from an opened crate within which its sweeping results reach other objects, in cells.distance (cells)2.5
EliteAircraftType, BuildingType, InfantryType, UnitTypeThe WeaponType an elite object fires in place of its primary.classnone
EliteAbilitiesAircraftType, BuildingType, InfantryType, UnitTypeThe abilities an object of this type gains at elite rank, on top of its veteran abilities.abilities(empty)
IRepairRateglobal rulesThe interval between servicing steps inside a hospital, and an armory's promotion delay.floating point.016
InitialVeteranscenariosCreates the randomly chosen starting units of a skirmish or multiplayer match at elite rank.booleanno
TrainableAircraftType, BuildingType, InfantryType, UnitTypeAllows an object of this type to accumulate experience from kills and receive veterancy-crate promotions.booleanContext-dependent
VeteranAbilitiesAircraftType, BuildingType, InfantryType, UnitTypeThe abilities an object of this type gains at veteran rank and keeps at elite.abilities(empty)
VeteranArmorglobal rulesDamage taken by an object holding the STRONGER ability is divided by this value plus one.floating point1
VeteranCapglobal rulesThe highest experience total a credited kill may leave an object at.floating point1
VeteranCombatglobal rulesWeapon damage from an object holding the firepower ability is multiplied by this value plus one.floating point1
VeteranLevelTeamTypeThe rank at which a reinforcement trigger creates this team's members.integer1
VeteranROFglobal rulesReload delay of an object holding the rate of fire ability is divided by this value plus one.floating point1
VeteranRatioglobal rulesThe multiple of its own cost an object must destroy to earn one point of experience.floating point10
VeteranSightglobal rulesSight range of an object holding the sight ability is multiplied by one more than this value.floating point1
VeteranSpeedglobal rulesMovement speed of an object holding the faster ability is multiplied by one more than this value.floating point1

History

  1. Changed0.1.0

    Exclude allied kills from veterancy

  2. Changed0.1.0

    Honor Trainable for veterancy crates

  3. Changed0.2.0In development

    Show indicators on hover and rank without selection

  4. Changed0.2.0In development

    Watch a multiplayer match as an observer