You are on page 1of 66

;--------------------------------------------

Author: DeeZire
Website: http://www.deezire.net/index.php?

Updated By Chris for C&C Generals ZeroHour


Module List For Generals and ZeroHour.
This is created for use as reference only.

Note: Some of the parameters here where changed and\or added is for ZeroHour Only.
Some parameters of Classic Generals might not work anymore.

NOTE: USE'EM MODULES PROPERLY OR YOU WILL KNOW THE TERRIBLE TRUTH..

;--------------------------------------------
;UPDATE : 10/14/07
added special power ini's enum type list

;--------------------------------------------
;UPDATE : 06/16/08
Added more descriptions to the modules.
Added a few more missing entries.
Corrected a few parameter descriptions.
;--------------------------------------------
;UPDATE: 08/04/08
Added more discovered parameters by me.
Added a few more discovered parameters by beng.
Corrected a few parameters.
;--------------------------------------------
;UPDATE: 12/09/08
Added a few more descriptions to the modules.
Fixed a few double entries.
Corrected a few typographical errors.
Organized the modules a little bit.
;--------------------------------------------
;UPDATE: 01/22/09
Corrcted a few module parameters with help from beng.
Fixed a few typing errors again.
Added abit more description to the module/parameters.

Modules:
ActiveBody
[this is a Body module not a Behavior module, The Subdual part of the module allows
the use of JAMMED Model Condition State]
MaxHealth = [integer]
InitialHealth = [integer]

[Subdual damage "Subdues" you (reaction defined by BodyModule) when it passes


your max health.
The cap limits how extra-subdued you can be, and the other numbers detemine
how fast it drains away on its own.
A Projectile or Missile doesn't get "subdued", Instead they loose stability
and scatters.]
SubdualDamageCap = [integer]
SubdualDamageHealRate = [integer]
SubdualDamageHealAmount = [integer]
End

AnimationSteeringUpdate
MinTransitionTime = [real number]
End

ActiveShroudUpgrade
[Once activated, It will create a black shroud around the object that triggered
this
You cannot see it your self but it can be seen by your enemy]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
NewShroudRange = [real number]
End

AIUpdateInterface
AutoAcquireEnemiesWhenIdle = [Yes/No]
[NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds. default is 2000]
ForbidPlayerCommands = [Yes/No]
TurretsLinked =[Yes/No]
[this part of the module allows the use of TurretMoveStart and TurretMoveLoop
within UnitSpecificSounds section of the object]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer, default 0 = horizontal]
NaturalTurretPitch = [integer, default 0 = horizontal]
FirePitch = [integer, default 0 = horizontal]
MinPhysicalPitch = [integer, default 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

AnimatedParticleSysBoneClientUpdate
[no parameters - this module is a ClientUpdate not a Behavior and allows the object
to have particle system effects dynamically attached to animated sub objects or
bones]
End

ArmorUpgrade
[triggers use of PLAYER_UPGRADE ArmorSet on this object]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry(s) from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

AssaultTransportAIUpdate
[This AI, If armed with a weapon using the DEPLOY Damaged type, Will order the
passengers
To hop out of the vehicle and attack the selected target. The passengers will auto
return
If ordered to stop or the target is dead]
AutoAcquireEnemiesWhenIdle = [Yes/No]
[NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds. default is 2000]
ForbidPlayerCommands = [Yes/No]
MembersGetHealedAtLifeRatio = [real number]
ClearRangeRequiredToContinueAttackMove = [interger]
End

AssistedTargetingUpdate
[Allows weapons (or defense) to relay with a similar weapon (or defense) within
it's range.]
AssistingClipSize = [integer] [How many shots to make when asked
by someone of my kind who has a RequestAssistRange weapon]
AssistingWeaponSlot = [Weapon slot list] [And the weapon to use. Should have
huge range and no natural clip]
LaserFromAssisted = [object name] [Stream to draw from the requestor
to me]
LaserToTarget = [object name] [Stream to draw from me to the
target]
End

AutoDepositUpdate
ActualMoney = [Yes/No] [If set to No, This will not give you any money
bonus. Instead, the "$" that appears above is used for props only]
DepositTiming = [milliseconds] [Give me money (the player) every XXX
milliseconds]
DepositAmount = [integer] [How much to give the player?]
InitialCaptureBonus = [integer] [How much to give the player when you first
capture the object]
UpgradedBoost = [UpgradeType:[Entry From Upgrade.ini] Boost:[interger]]
End

AutoFindHealingUpdate
[This update will have the unit search for a healing station if injured]
[Extra note: This should be put below the AI Module and this works for AI units
only]
ScanRate = [milliseconds] ; how much we search for a healing station?
ScanRange =[interger] ; and how far we have to look for a healing station?
NeverHeal = [0.1 to 1.0] ; don't heal if we are > 85% healthy.
AlwaysHeal = [0.1 to 1.0] ; if we get below 25%, find healing right away.
End

AutoHealBehavior
TriggeredBy = [entry from Upgrade.INI, requires StartsActive = No]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
HealingAmount = [integer]
HealingDelay = [integer, milliseconds]
StartHealingDelay = [integer, milliseconds]
Radius = [real number]
StartsActive = [Yes/No]
SingleBurst = [Yes/No]
AffectsWholePlayer = [Yes/No]
KindOf = [KindOf list]
ForbiddenKindOf = [KindOf list]
RadiusParticleSystemName = [entry from ParticleSystem.INI]
UnitHealPulseParticleSystemName = [entry from ParticleSystem.INI]
SkipSelfForHealing = [Yes/No]
End

BattleBusSlowDeathBehavior
[Requires the object to have the UndeadBody Module and allows the use of the
SECOND_LIFE Model and Armour Conditionstate.]
DeathTypes = [DeathType listing]
SinkRate = [real number]
ExemptStatus = [status name]
RequiredStatus = [status name]
ProbabilityModifier = [integer]
ModifierBonusPerOverkillPercent = [percent]
SinkDelay = [integer, milliseconds]
SinkDelayVariance = [integer]
DestructionDelay = [integer, milliseconds]
DestructionDelayVariance = [integer]
DestructionAltitude = [integer]
FlingForce = [integer]
FlingForceVariance = [integer]
FlingPitch = [integer]
FlingPitchVariance = [integer]
FXStartUndeath = [Entry from Fxlist.ini]
OCLStartUndeath = [Entry from ObjectCreationList.ini]
FXHitGround = [Entry from Fxlist.ini]
OCLHitGround = [Entry from ObjectCreationList.ini]
DelayFromGroundToFinalDeath = [integer]
ThrowForce = [integer]
PercentDamageToPassengers = [percent]
EmptyHulkDestructionDelay = [integer]
FX = [INITIAL/MIDPOINT/FINAL Entry from FXList.INI, multiple statements can
be used for multiple FX's]
OCL = [INITIAL/MIDPOINT/FINAL Entry from ObjectCreationList.INI, multiple
statements can be used for multiple OCL's]
Weapon = [INITIAL/MIDPOINT/FINAL Entry from Weapon.INI, multiple statements
can be used for multiple "death" weapons.]
End

BunkerBusterBehavior
UpgradeRequired = [Entry from Upgrade.ini] [Do we require an
upgrade first?]
DetonationFX = [Entry from FXList.ini] [The big detonation
kaboom at the bottom]
CrashThroughBunkerFX = [Entry from FXList.ini] [FX Used when going
thru the targeted bunker]
CrashThroughBunkerFXFrequency = [interger, milliseconds] [How often to play
the crash bang crunch FX on the way through the bunker ceiling?]
SeismicEffectRadius = [integer]
SeismicEffectMagnitude = [integer]
ShockwaveWeaponTemplate = [Entry from weapon.ini] [What weapon should
we use when we detonate on the ground?]
OccupantDamageWeaponTemplate = [Entry from weapon.ini] [What weapon should
we use when we clear a bunker?]
End

BaikonurLaunchPower
SpecialPowerTemplate = [entry from SpecialPower.INI]
DetonationObject = [object name]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

BaseRegenerateUpdate
[no parameters - forces object to auto-repair itself over time, parameters defined
in GameData.INI through BaseRegenHealthPerSecond and BaseRegenDelay]
End

BattlePlanUpdate
SpecialPowerTemplate = [entry from SpecialPower.INI]

;Transition Timings
BombardmentPlanAnimationTime = [integer, milliseconds]
HoldTheLinePlanAnimationTime = [integer, milliseconds]
SearchAndDestroyPlanAnimationTime = [integer, milliseconds]
TransitionIdleTime = [integer, milliseconds]

;Audio hooks
BombardmentAnnouncementName = [entry from SoundEffects.INI]
BombardmentPlanUnpackSoundName = [entry from SoundEffects.INI]
BombardmentPlanPackSoundName = [entry from SoundEffects.INI]

SearchAndDestroyPlanUnpackSoundName = [entry from SoundEffects.INI]


SearchAndDestroyPlanIdleLoopSoundName = [entry from SoundEffects.INI]
SearchAndDestroyPlanPackSoundName = [entry from SoundEffects.INI]
SearchAndDestroyAnnouncementName = [entry from SoundEffects.INI]

HoldTheLinePlanUnpackSoundName = [entry from SoundEffects.INI]


HoldTheLinePlanPackSoundName = [entry from SoundEffects.INI]
HoldTheLineAnnouncementName = [entry from SoundEffects.INI]

;battle plan labels


HoldTheLineMessageLabel = [entry from string file]
BombardmentMessageLabel = [entry from string file]
SearchAndDestroyMessageLabel = [entry from string file]

;Army bonuses granted by different battle plans


ValidMemberKindOf = [KindOf list]
InvalidMemberKindOf = [KindOf list]
BattlePlanChangeParalyzeTime = [integer, milliseconds]
HoldTheLinePlanArmorDamageScalar = [real number]
SearchAndDestroyPlanSightRangeScalar = [real number]

;***NOTE*** WEAPON bonuses for army are specified in GameData.ini file!


;Building bonuses granted based on battle plan mode.
StrategyCenterSearchAndDestroySightRangeScalar = [real number]
StrategyCenterSearchAndDestroyDetectsStealth = [Yes/No]
StrategyCenterHoldTheLineMaxHealthScalar = [real number]
StrategyCenterHoldTheLineMaxHealthChangeType = [Change Type List]

VisionObjectName = [object name]


End
BeaconClientUpdate
[this module is a ClientUpdate not a Behavior and is hardcoded to produce the
BeaconSmokeFFFFFF particle system definition by default but will call the
BeaconSmoke###### particle system definition relative to the players color]
RadarPulseFrequency = [integer, milliseconds]
RadarPulseDuration = [integer, milliseconds]
End

BoneFXDamage
[no parameters - enables use of BoneFXUpdate module on this object where an
additional dynamic FX logic can be used]
End

BoneFXUpdate
[N takes numbers from 1-8]
PristineParticleSystemN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} PSys:
{entry from ParticleSystem.INI}]
PristineOCLN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} OCL:{entry from
ObjectCreationList.INI}]
PristineFXListN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} FXList:{entry
from FXList.INI}]

DamageParticleTypes = [DamageTypes listing]


DamagedParticleSystemN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} PSys:
{entry from ParticleSystem.INI}]
DamageOCLTypes = [DamageTypes listing]
DamagedOCLN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} OCL:{entry from
ObjectCreationList.INI}]
DamageFXTypes = [DamageTypes listing]
DamagedFXListN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} FXList:{entry
from FXList.INI}]

ReallyDamagedFXListN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} FXList:


{entry from FXList.INI}]
ReallyDamagedOCLN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} OCL:{entry
from ObjectCreationList.INI}]
ReallyDamagedParticleSystemN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max}
PSys:{entry from ParticleSystem.INI}]

RubbleParticleSystemN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} PSys:


{entry from ParticleSystem.INI}]
RubbleOCLN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} OCL:{entry from
ObjectCreationList.INI}]
RubbleFXListN = [bone:{name} OnlyOnce:{Yes/No} {Min} {Max} FXList:{entry from
FXList.INI}]
End

;///////////////////////////////////////////////////////////////////
;NOTE!NOTE!NOTE!NOTE!NOTE!
;This Three modules doesn't properly work ingame but needed if you want your object
to be a bridge (optional: define bridge in Road.ini)
;But The "BridgeScaffoldBehavior" and "BridgeTowerBehavior" Doesn't work as it
should be. (EG: show corner towers for repairing the damaged bridge.)
;///////////////////////////////////////////////////////////////////
BridgeBehavior
[special case logic allows for ParentObject to be specified as a bone name to allow
other objects to appear on the bridge]
LateralScaffoldSpeed = [integer]
VerticalScaffoldSpeed = [integer]
BridgeDieFX = [FX:{entry from FXList.INI} Delay:{milliseconds} Bone:{bone name},
multiple entries can be used for multiple fx]
BridgeDieOCL = [OCL:{entry from ObjectCreationList.INI} Delay:{milliseconds}
Bone:{bone name}, multiple entries can be used for multiple fx]
End

BridgeScaffoldBehavior
[no parameters - this module allows the object to surround the parent object like a
scaffold]
End

BridgeTowerBehavior
[no parameters - this module transfers damage done to itself to its parent bridge
too]
End
;///////////////////////////////////////////////////////////////////
;///////////////////////////////////////////////////////////////////
CashBountyPower
SpecialPowerTemplate = [entry from SpecialPower.INI]
Bounty = [integer]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

CashHackSpecialPower
[Allows you to steal money from an enemy supply center. this module needs to use
the "SPECIAL_CASH_HACK" special power enum type]
SpecialPowerTemplate = [entry from SpecialPower.INI]
MoneyAmount = [integer]
UpgradeMoneyAmount = [entry from Science.INI integer cash amount to steal,
multiple entries can be used for multiple upgrades]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

CaveContain
[objects will be connected to the same cave system (eachother) if they share the
CaveIndex]
CaveIndex = [integer, can be adjusted in WorldBuilder, required]
AllowInsideKindOf = [KindOfs]
ForbidInsideKindOf = [KindOfs]
End

CountermeasuresBehavior
TriggeredBy = [Entry From Upgrade.ini]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
FlareTemplateName = [Object Entry] ; IF theres no defined Object, Then
no Flares for you!
FlareBoneBaseName = [bone name] ; Bone names of where to spawn the
flares.
VolleySize = [Interger] ; Number of flares launched per
volley (requires bones)
VolleyArcAngle = [Interger] ; Max angle of flare relative to
forward direction (with VolleySize of 1, flare will always goes straight back).
VolleyVelocityFactor = [Interger] ; Shoots out flares at a stronger
velocity with a higher value.
DelayBetweenVolleys = [Interger, milliseconds] ; Time between flare
volleys
NumberOfVolleys = [Interger] ; Number of times the
volleys will fire before reloading
ReloadTime = [Interger, milliseconds] ; After all volleys
launched, then reloading must occur. If 0, then reloading occurs at airstrip only.
EvasionRate = [Percent] ; With active flares,
the specified percentage will be diverted.
ReactionLaunchLatency = [Interger, milliseconds] ; Reaction between
getting shot at and the firing of the first volley of countermeasures.
MissileDecoyDelay = [Interger, milliseconds] ; A reported missile that
has been determined to hit a decoy will wait this long before acquiring
countermeasures.
MustReloadAtAirfield = [Yes/No] ; Reload Countermeasures
at the airfield? If No, It will auto reload while in mid air.
End

CheckpointUpdate
[no parameters - allows object to open and close like a gate when a friendly object
approaches it - requires DOOR_1_OPENING and DOOR_1_CLOSING ConditionStates]
End

ChinookAIUpdate
[logic requires bones for either end of the rope to be defined as RopeEnd and
RopeStart]

[If you want your infantry (or tank :P) to Rappel down a rope, Just add the
CAN_RAPPEL to the objects KindOf field, after doing that,
[You can now use the "RAPPELLING" ModelConditonState for rappelling out of the
object that has the rappel code
[Of this module.

[This part of the module will allow your tank or infantry to use the rappel feature
if CAN_RAPPEL is defined in the kindof field of the certain unit, and allows the
use of the CombatDropKillFX within UnitSpecificFX section of the object and module
allows the use of VoiceCombatDrop and VoiceSupply and VoiceClearBuilding
within UnitSpecificSounds section of the object]

RappelSpeed = [integer]
RopeDropSpeed = [integer]
RopeName = [object name, defaults to 'GenericRope' object definition in
system.ini]
RopeFinalHeight = [integer]
RopeWidth = [real number]
RopeWobbleLen = [integer]
RopeWobbleAmplitude = [real number]
RopeWobbleRate = [integer]
RopeColor = [r: g: b:]
RotorWashParticleSystem = [Entry From ParticleSystem.ini]
NumRopes = [integer]
PerRopeDelayMin = [integer]
PerRopeDelayMax = [integer]
MinDropHeight = [integer]
WaitForRopesToDrop = [Yes/No]

[This part requires the object to have KindOf = HARVESTER]


MaxBoxes = [integer]
SupplyCenterActionDelay = [integer]
SupplyWarehouseActionDelay = [integer]
SupplyWarehouseScanDistance = [integer]
SuppliesDepletedVoice = [Entry from Voice.INI]
UpgradedSupplyBoost = [integer]
[Just a normal AIUpdateInterface field]
AutoAcquireEnemiesWhenIdle = [Yes/No]
[NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds. default is 2000]
ForbidPlayerCommands = [Yes/No]
TurretsLinked =[Yes/No]

[this part of the module allows the use of TurretMoveStart and TurretMoveLoop
within UnitSpecificSounds section of the object]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer, default 0 = horizontal]
NaturalTurretPitch = [integer, default 0 = horizontal]
FirePitch = [integer, default 0 = horizontal]
MinPhysicalPitch = [integer, default 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

CleanupAreaPower
SpecialPowerTemplate = [entry from SpecialPower.INI]
MaxMoveDistanceFromLocation = [real number]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
InitiateSound = [Entry from Voice.ini]
End

CleanupHazardUpdate
WeaponSlot = [Weapon Slot List]
ScanRate = [integer, milliseconds]
ScanRange = [real number]
End

CommandButtonHuntUpdate
[no parameters - this module allows this object to hunt using a particular ability
or command via scripts -AI Only]
End

CommandSetUpgrade
[Gives the object the ability to change commandsets back and forth when this module
two times]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
RemovesUpgrades [entry(s) from Upgrade.INI, multiple "upgrade" entrys can be
put here]
CommandSet = [entry from CommandSet.INI]
CommandSetAlt = [entry from CommandSet.INI]
TriggerAlt = [entry(s) from Upgrade.INI]
End

ConvertToCarBombCrateCollide
[Triggers the use of CARBOMB WeaponSet Condition of the hijacked object and turns
it to a suicide unit unless given with a different weapon]
RequiredKindOf = [KindOf]
ForbiddenKindOf = [KindOf]
FXList = [entry from FXList.INI]
End

ConvertToHijackedVehicleCrateCollide
[module is hardcoded to play the HijackDriver sound definition when triggered and
converts the unit to your side]
RequiredKindOf = [KindOf]
ForbiddenKindOf = [KindOf]
FXList = [entry from FXList.INI]
End

CostModifierUpgrade
TriggeredBy = [entry from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
EffectKindOf = [KindOf]
Percentage = [percentage]
End

CreateCrateDie
[independant CrateData listings will each produce a maximum of one crate]
DeathTypes = [DeathTypes listing]
RequiredStatus = [StatusBits type]
ExemptStatus = [StatusBits type]
CrateData = [entry from Crate.INI]
End

CreateObjectDie
DeathTypes = [DeathTypes listing]
ExemptStatus = [status name]
CreationList = [entry from ObjectCreationList.INI]
TransferPreviousHealth = [Yes/No]
End

CrushDie
[this module allows for the use of the FRONTCRUSHED and BACKCRUSHED ConditionStates
with this object]
DeathTypes = [DeathType listing]
TotalCrushSound = [entry from SoundEffects.INI]
BackEndCrushSound = [entry from SoundEffects.INI]
FrontEndCrushSound = [entry from SoundEffects.INI]
TotalCrushSoundPercent = [percent]
BackEndCrushSoundPercent = [percent]
FrontEndCrushSoundPercent = [percent]
End
DamDie
[no parameters, allows object to continue existing as an obstacle but allowing
water terrain to move through - the module must be applied after any other death
modules]
End

DefectorSpecialPower
[When used in junction with the "SPECIAL_DEFECTOR" special power, The unit will
defect to your side]
SpecialPowerTemplate = [entry from SpecialPower.INI]
FatCursorRadius = [real number]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

DefaultProductionExitUpdate
[logic requires NaturalRallyPoint x: co-ordinate to match the object
GeometryMajorRadius]
UnitCreatePoint = [x: y: z:]
NaturalRallyPoint = [x: y: z:]
UseSpawnRallyPoint = [Yes/No]
End

DelayedUpgrade
[this module triggers use of the DelayedWeaponSetUpgradeUpdate module on this
object]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
DelayTime = [integer, milliseconds]
End

DelayedWeaponSetUpgradeUpdate
[no parameters, this module delays the effect of a WeaponSet player upgrade -
requires DelayedUpgrade module]
End

DeletionUpdate
[Deletes the object when the lifetime expires]
MinLifetime = [integer, milliseconds]
MaxLifetime = [integer, milliseconds]
End

DeliverPayloadAIUpdate
[this module allows the use of StartDive within UnitSpecificSounds section of the
object]
DoorDelay = [integer]
DeliveryDistance = [integer]
MaxAttempts = [integer]
DropDelay = [integer]
DropOffset = [x: y: z:]
DropVariance = [x: y: z:]
PutInContainer = [object name]
End

DemoTrapUpdate
[Requires object to have "DEMOTRAP" Kind of defined in the KindOf Field]
DefaultProximityMode = [Yes/No]
DetonationWeaponSlot = [Weapon Slot List]
ProximityModeWeaponSlot = [Weapon Slot List]
ManualModeWeaponSlot = [Weapon Slot List]
TriggerDetonationRange = [real number]
IgnoreTargetTypes = [KindOfs]
AutoDetonationWithFriendsInvolved = [Yes/No]
DetonateWhenKilled = [Yes/No]
DetonationWeapon = [Entry from Weapon.ini]
End

DeployStyleAIUpdate
[this module allows use of PACKING and UNPACKING ConditionState(s)and allows the
use of Deploy and Undeploy within UnitSpecificSounds section of the object]
PackTime = [integer]
UnpackTime = [integer]
TurretsFunctionOnlyWhenDeployed = [Yes/No]
TurretsMustCenterBeforePacking = [Yes/No]
ManualDeployAnimations = [Yes/No]
ResetTurretBeforePacking = [Yes/No]
AutoAcquireEnemiesWhenIdle = [Yes/No]
[NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds, default 2000]
ForbidPlayerCommands = [Yes/No]
TurretsLinked =[Yes/No]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer]
NaturalTurretPitch = [integer]
FirePitch = [integer]
MinPhysicalPitch = [integer, defalt 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

DestroyDie
DeathTypes = [DeathTypes listing]
RequiredStatus = [StatusBits type]
ExemptStatus = [StatusBits type]
End

DozerAIUpdate
[this module allows the use of VoiceRepair and VoiceBuildResponse and
VoiceNoBuild and VoiceTaskComplete within UnitSpecificSounds section of the object
-Requires Kindof = DOZER]
RepairHealthPercentPerSecond = [percent]
BoredTime = [integer, milliseconds]
BoredRange = [integer]
AutoAcquireEnemiesWhenIdle = [Yes/No]
MoodAttackCheckRate = [integer, milliseconds]
ForbidPlayerCommands = [Yes/No]
TurretsLinked =[Yes/No]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer]
NaturalTurretPitch = [integer]
FirePitch = [integer]
MinPhysicalPitch = [integer, defalt 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

DumbProjectileBehavior
MaxLifespan = [integer, milliseconds]
TumbleRandomly = [Yes/No]
DetonateCallsKill = [Yes/No]
OrientToFlightPath = [Yes/No]
FirstHeight = [integer]
FirstPercentIndent = [percent]
SecondHeight = [integer]
SecondPercentIndent = [percent]
GarrisonHitKillRequiredKindOf = [KindOf]
GarrisonHitKillForbiddenKindOf = [KindOf]
GarrisonHitKillCount= [integer]
GarrisonHitKillFX = [entry from FXList.INI]
FlightPathAdjustDistPerSecond = [real number]
End

DynamicGeometryInfoUpdate
InitialDelay = [integer, milliseconds]
InitialHeight = [real number]
InitialMajorRadius = [real number]
InitialMinorRadius = [real number]
FinalHeight = [real number]
FinalMajorRadius = [real number]
FinalMinorRadius = [real number]
TransitionTime = [integer, milliseconds]
ReverseAtTransitionTime = [Yes/No]
End
DynamicShroudClearingRangeUpdate
ChangeInterval = [integer, milliseconds]
GrowInterval = [integer, milliseconds]
ShrinkDelay = [integer, milliseconds]
ShrinkTime = [integer, milliseconds]
GrowDelay = [integer, milliseconds]
GrowTime = [integer, milliseconds]
FinalVision = [real number]
GridDecalTemplate
Texture = [texture name without file extension]
Style = [texture application style type]
OpacityMin = [percent]
OpacityMax = [percent]
OpacityThrobTime = [integer, milliseconds]
OnlyVisibleToOwningPlayer = [Yes/No]
Color = [r: g: b: a:]
End
End

EjectPilotDie
[this module allows use of SoundEject and VoiceEject within UnitSpecificSounds
section of the object]
DeathTypes = [DeathTypes listing]
GroundCreationList = [entry from ObjectCreationList.INI]
AirCreationList = [entry from ObjectCreationList.INI]
ExemptStatus = [status name]
VeterancyLevels = [veterancy levels listing]
End

EMPUpdate
DisabledDuration = [integer, milliseconds]
Lifetime = [integer, milliseconds]
StartColor = [r: g: b:]
StartFadeTime = [integer, milliseconds]
StartScale = [real number]
EndColor = [r: g: b:]
TargetScaleMin = [real number]
TargetScaleMax = [real number]
DisableFXParticleSystem = [entry from ParticleSystem.INI]
SparksPerCubicFoot = [integer]
DoesNotAffectMyOwnBuildings = [Yes/No]
DoesNotAffect = [Either from : ALLIES/ENEMIES/NEUTRALS/SELF]
EffectRadius = [Interger]
VictimForbiddenKindOf = [kindof listing]
VictimRequiredKindOf = [kindof listing]
End

EnemyNearUpdate
[no parameters - this module allows the the use of VoiceMeetEnemy and
also allows the object to use the ENEMYNEAR ConditionState
which will be triggered when an enemy object is within this objects VisionRange]
End

ExperienceScalarUpgrade
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
AdXPScalar = [real number]
End

FireSpreadUpdate
OCLEmbers = [entry from ObjectCreationList.INI] [ Should we spawn a "fire
ember" in order to spread fire?]
MinSpreadDelay = [integer, milliseconds] [ Minimum Time we try
spreading fire]
MaxSpreadDelay = [integer, milliseconds] [ Maximum Time we try
spreading fire]
SpreadTryRange = [real number] [ A non-zero entry means
fires will be set explicitly without relying on embers
[ The closest flammable thing
will be set on fire automatically.
End

FirestormDynamicGeometryInfoUpdate
InitialDelay = [integer, milliseconds]
InitialHeight = [real number]
InitialMajorRadius = [real number]
InitialMinorRadius = [real number]
FinalHeight = [real number]
FinalMajorRadius = [real number]
FinalMinorRadius = [real number]
TransitionTime = [integer, milliseconds]
ReverseAtTransitionTime = [Yes/No]
ScorchSize = [real number]
ParticleOffsetZ = [real number]
ParticleSystemN = [N = 1-16, entry from ParticleSystem.INI]
FXList = [entry from FXList.INI]
DelayBetweenDamageFrames = [integer, milliseconds]
MaxHeightForDamage = [integer]
DamageAmount = [integer]
End

FireOCLAfterWeaponCooldownUpdate
WeaponSlot = [Weapon Slot List]
TriggeredBy = [entry(s) from Upgrade.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
OCL = [entry from ObjectCreationList.INI]
MinShotsToCreateOCL = [integer]
OCLLifetimePerSecond = [integer]
OCLLifetimeMaxCap = [integer]
End

FireWeaponCollide
CollideWeapon = [entry from Weapon.INI]
ForbiddenStatus = [status name]
RequiredStatus = [status name]
End

FireWeaponWhenDamagedBehavior
StartsActive = [Yes/No]
ReactionWeaponPristine = [entry from Weapon.INI]
ReactionWeaponDamaged = [entry from Weapon.INI]
ReactionWeaponReallyDamaged = [entry from Weapon.INI]
ReactionWeaponRubble = [entry from Weapon.INI]
ContinuousWeaponPristine = [entry from Weapon.INI]
ContinuousWeaponDamaged = [entry from Weapon.INI]
ContinuousWeaponReallyDamaged = [entry from Weapon.INI]
ContinuousWeaponRubble = [entry from Weapon.INI]
DamageTypes = [DamageTypes listing]
DamageAmount = [integer]
End

FireWeaponWhenDeadBehavior
DeathWeapon = [entry from Weapon.INI]
DeathTypes = [DeathTypes listing]
TriggeredBy = [entry(s) from Upgrade.INI]
RequiredStatus = [StatusBit type]
ExemptStatus = [StatusBit type]
StartsActive = [Yes/No]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

FireWeaponUpdate
Weapon = [entry from Weapon.INI] [What weapon should we use?]
ExclusiveWeaponDelay = [Interger] [If we fire a real weapon, we
turn this module off for this long]
InitialDelay = [interger/milliseconds] [amount of delay before we use
the weapon in this module]
End

FireWeaponPower
SpecialPowerTemplate = [Entry(s) from SpecialPower.ini]
MaxShotsToFire = [real number]
End

FlightDeckBehavior
[requires AIRCRAFT_CARRIER and FS_AIRFIELD Kindof]
NumRunways = [real number]
NumSpacesPerRunway = [real number]

[N takes numbers from 1-2]


RunwayNSpaces = [Names of Bones of the Model]
RunwayNTakeoff = [Names of Bones of the Model]
RunwayNLanding = [Names of Bones of the Model]
RunwayNTaxi = [Names of Bones of the Model]
RunwayNCreation = [Names of Bones of the Model]
RunwayNCatapultSystem = [Entry From Particlesystem.ini]

HealAmountPerSecond = [integer] [How much health do we give the landed


aircraft on our deck?]
ApproachHeight = [integer] [What should the minimum height of
aircrafts be in order to land?]
LandingDeckHeightOffset = [integer] [How high is the landing deck?]
ParkingCleanupPeriod = [integer] [How often the carrier checks to move
planes forward in the queue to fill empty spaces]
HumanFollowPeriod = [integer] [Human factor for delay like a traffic
jam.. takes time to react when the guy in front moves]

[Template of payload, and how quickly destroyed ones get replaced.]


PayloadTemplate = [Object Name] [If theres no defined unit then...no
jets for you!]
ReplacementDelay = [integer, milliseconds]
DockAnimationDelay = [integer, milliseconds]
[How quickly a wave of fighters can be launched]
LaunchWaveDelay = [integer, milliseconds]
LaunchRampDelay = [integer, milliseconds]
LowerRampDelay = [integer, milliseconds]
CatapultFireDelay = [integer, milliseconds]
End

FlammableUpdate
[this module allows the use of the AFLAME and SMOLDERING and BURNED
ConditionState(s) with this object]
AflameDuration = [integer, milliseconds] [If I catch fire, I'll
burn for this long in millisecond]
AflameDamageAmount = [integer] [Taking this much
damage]
AflameDamageDelay = [integer, milliseconds] [This often]
BurnedDelay = [integer, milliseconds] [How long do we burn
before we smolder]
BurningSoundName = [entry from SoundEffects.INI] [What sound to use when
we're on fire]
FlameDamageLimit = [integer] [How much flame damage
to recieve before catching fire]
FlameDamageExpiration = [integer, milliseconds] [in a span of this
long, in millisecond]
End

FloatUpdate
[forces object to remain relative to sea level and allows for use of SEA_LEVEL
locomotion rules. Enabled = Yes means 'float on water and stay relative to water
level' while Enabled = No means 'float on water and bob about']
Enabled = [Yes/No]
End

FXListDie
DeathTypes = [DeathTypes listing]
DeathFX = [entry from FXList.INI]
OrientToObject = [Yes/No]
RequiredStatus = [StatusBits type]
ExemptStatus = [StatusBits type]
StartsActive = [Yes/No]
TriggeredBy = [entry(s) from Upgrade.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

GarrisonContain
[Module is hardcoded to use the GarrisonGun object definition for the weapons
pointing from the object when occupants are firing and these are drawn at bones
named FIREPOINT. Also, It Allows you to use the GARRISONED Model ConditionState]

[NOTE: THE FIREBASE LOGIC IS ONLY FOR ZEROHOUR]


[If The Model has STATIONx (X can range from 1 to a bajillion =P) and the Draw
module (AKA W3DModelDraw) has a "ExtraPublicBone = STATIONx <mulitple statements
can be made> defined and the garrison module has the "IsEnclosingContainer = No" ]
[The Garrisoned guys will appear at the location of the "STATION" bones...this will
work like the Firebase -Requires the HiveStructureBody]

ContainMax = [integer]
EnterSound = [entry from SoundEffects.INI]
ExitSound = [entry from SoundEffects.INI]
DamagePercentToUnits = [percent]
MobileGarrison = [Yes/No]
InitialRoster = [object name integer]
ImmuneToClearBuildingAttacks = [Yes/No]
IsEnclosingContainer = [Yes/No]
HealObjects = [Yes/No]
TimeForFullHeal = [integer, milliseconds]
PassengersAllowedToFire = [Yes/No]
AllowInsideKindOf = [KindOF list]
ForbidInsideKindOf = [KindOf listing]
AllowAlliesInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
End

GrantStealthBehavior
StartRadius = [integer]
FinalRadius = [integer]
RadiusGrowRate = [integer]
RadiusParticleSystemName = [Entry(s) from ParticleSystem.ini]
KindOf = [KindOF list]
ForbiddenKindOf = [KindOF list]
End

GenerateMinefieldBehavior
MineName = [object name]
GenerationFX = [entry from FXList.INI]
DistanceAroundObject = [integer]
MinesPerSquareFoot = [integer]
GenerateOnlyOnDeath = [Yes/No]
BorderOnly = [Yes/No]
SmartBorder = [Yes/No]
SmartBorderSkipInterior = [Yes/No]
AlwaysCircular = [Yes/No]
RandomJitter = [integer]
SkipIfThisMuchUnderStructure = [integer]
Upgradable = [Yes/No]
UpgradedMineName = [object name]
UpgradedTriggeredBy = [entry from Upgrade.INI]
End

GrantUpgradeCreate
UpgradeToGrant = [entry from Upgrade.INI]
ExemptStatus = [Status Bits type]
End

GrantScienceUpgrade ModuleTag_Science
GrantScience = [Entry from Science.ini]
TriggeredBy = [entry from Upgrade.INI]
End

InternetHackContain
[Contain module that triggers the HackInternetAIUpdate command to passengers -see
TransportContain module for required parameters of this module]
End

HackInternetAIUpdate
[this module allows the use of UnitPack and UnitUnpack and UnitCashPing within
UnitSpecificSounds section of the object allows use of PACKING and UNPACKING
ConditionState(s)]
UnpackTime = [integer, milliseconds]
PackTime = [integer, milliseconds]
PackUnpackVariationFactor = [real number]
CashUpdateDelay = [integer, milliseconds]
CashUpdateDelayFast = [integer, milliseconds]
RegularCashAmount = [integer]
VeteranCashAmount = [integer]
EliteCashAmount = [integer]
HeroicCashAmount = [integer]
XpPerCashUpdate = [integer]
End

HealCrateCollide
[no parameters - this module heals all objects belonging to the same owner as the
object that collides with this object]
End

HealContain
[This module will automatically heal and restore the health of units that enters or
exits the transport]
ContainMax = [integer]
TimeForFullHeal = [integer, milliseconds]
EnterSound = [entry from SoundEffects.INI]
ExitSound = [entry from SoundEffects.INI]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
AllowAlliesInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
End

HeightDieUpdate
TargetHeight = [real number]
TargetHeightIncludesStructures = [Yes/No]
OnlyWhenMovingDown = [Yes/No]
InitialDelay = [integer, milliseconds]
SnapToGroundOnDeath = [Yes/No]
DestroyAttachedParticlesAtHeight = [real number]
End

HelicopterSlowDeathBehavior
[this module requires LocomotorWorksWhenDead = Yes on the objects Locomotor to
function correctly]
DestructionDelay = [integer, milliseconds]
DestructionDelayVariance = [integer]
DestructionAltitude = [integer]
SpiralOrbitTurnRate = [real number]
SpiralOrbitForwardSpeed = [real number]
SpiralOrbitForwardSpeedDamping = [real number]
MinSelfSpin = [integer]
MaxSelfSpin = [integer]
SelfSpinUpdateDelay = [integer, milliseconds]
SelfSpinUpdateAmount = [integer, degrees]
FallHowFast = [percent]
MinBladeFlyOffDelay = [integer, milliseconds]
MaxBladeFlyOffDelay = [integer, milliseconds]
AttachParticle = [entry from ParticleSystem.INI]
AttachParticleBone = [bone name]
AttachParticleLoc = [x: y: z:]
BladeObjectName = [object name]
BladeBoneName = [bone name]
OCLEjectPilot = [entry from ObjectCreationList.INI]
FXBlade = [entry from FXList.INI]
OCLBlade = [entry from ObjectCreationList.INI]
FXHitGround = [entry from FXList.INI]
OCLHitGround = [entry from ObjectCreationList.INI]
FXFinalBlowUp = [entry from FXList.INI]
OCLFinalBlowUp = [entry from ObjectCreationList.INI]
DelayFromGroundToFinalDeath = [integer]
FinalRubbleObject = [object name]
MaxBraking = [integer]
SoundDeathLoop = [entry from SoundEffects.INI]
End

HighlanderBody
[this is a Body module not a Behavior module and allows the object to take damage
but not die - the object will only die from irresistable damage]
MaxHealth = [integer]
InitialHealth = [integer
End

HijackerUpdate
ParachuteName = [object name]
AttachToTargetBone = [sub object/bone name]
OffsetZ = [integer]
End

HiveStructureBody
[this is a Body module not a Behavior module and requires the SpawnBehavior module
to work properly]
MaxHealth = [integer]
InitialHealth = [integer
SubdualDamageCap = [integer]
SubdualDamageHealRate = [integer]
SubdualDamageHealAmount = [integer]
PropagateDamageTypesToSlavesWhenExisting = [DamageTypes listing]
SwallowDamageTypesIfSlavesNotExisting = [DamageTypes listing]
End

HordeUpdate
[module is hardcoded to apply the following textures to objects that are affected
by this module: EXHorde, EXHorde_UP, EXHordeB, EXHordeB_UP]
UpdateRate = [integer, milliseconds][ how often to recheck horde status ]
RubOffRadius = [integer] [ if I am this close to a real
hordesman, I will get to be an honorary hordesman ]
AlliesOnly = [Yes/No] [ do we only count allies towards horde
status? ]
ExactMatch = [Yes/No] [ do we only count units of our exact
same type towards horde status? (overrides kindof)]
Action = [WeaponBonus name] [ when horde-ing, grant us the HORDE
bonus ]
Radius = [integer] [ how close other units must be to us
to count towards our horde-ness (~30 feet or so) ]
KindOf = [KindOfs] [ what KindOf's must match to count
towards horde-ness ]
Count = [integer] [ how many units must be within Radius
to grant us horde-ness ]
AllowedNationalism = [Yes/No]
FlagSubObjectNames = [sub object name]
End

HelixContain
[Like Transport, but when full, passes transport queries along to first passenger
(redirects like tunnel). Basically works like the Overlord Contain.]
Slots = [integer]
DamagePercentToUnits = [percentage]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
AllowAlliesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
ExitDelay = [integer, milliseconds]
NumberOfExitPaths = [integer, should corrospond to N]
GoAggressiveOnExit = [Yes/No]
ScatterNearbyOnExit = [Yes/No]
OrientLikeContainerOnExit = [Yes/No]
KeepContainerVelocityOnExit = [Yes/No]
BurnedDeathToUnits = [Yes/No]
ExitPitchRate = [integer]
ExitBone = [bone name]
DoorOpenTime = [integer, milliseconds]
HealthRegen%PerSec = [percentage]
DestroyRidersWhoAreNotFreeToExit = [Yes/No]
ResetMoodCheckTimeOnExit = [Yes/No]
InitialPayload = [object name integer, multiple statements can be used]
ArmedRidersUpgradeMyWeaponSet = [Yes/No]
DelayExitInAir = [Yes/No]
EnterSound = [entry from SoundEffects.INI] ;SoundEnter Override
ExitSound = [entry from SoundEffects.INI] ;SoundExit Override
PassengersAllowedToFire = [Yes/No]
PassengersInTurret = [Yes/No]
WeaponBonusPassedToPassengers = [Yes/No]
PayloadTemplateName = [object name]
ShouldDrawPips = [Yes/No]
End

ImmortalBody
[this is a Body module not a Behavior module and prevents the object from dying or
taking damage]
MaxHealth = [integer]
InitialHealth = [integer
SubdualDamageCap = [integer]
SubdualDamageHealRate = [integer]
SubdualDamageHealAmount = [integer]
End

InactiveBody
[no parameters - this is a Body module not a Behavior module and prevents normal
interaction with other objects]
End

InstantDeathBehavior
DeathTypes = [DeathTypes listing]
FX = [entry from FXList.INI]
OCL = [entry from ObjectCreationList.INI]
Weapon = [Entry from Weapon.ini]
RequiredStatus = [status name]
ExemptStatus = [status name]
End

JetAIUpdate
[this module allows the use of VoiceLowFuel and Afterburner within
UnitSpecificSounds section of the object -Requires Kindof = AIRCRAFT]
[And Allows the use of JETEXHAUST JETAFTERBURNER Model conditionstates, this is
triggered when its taking off from the runway]
OutOfAmmoDamagePerSecond = [percent] ; Amount of damage to take per SEC
(not per frame) when out of ammo
NeedsRunway = [Yes/No] ; Does the aircraft need a runway
when it takes off?
KeepsParkingSpaceWhenAirborne = [Yes/No] ; Does the aircraft that took off
from that "hanger" keeps it or not?
TakeoffDistForMaxLift = [percent] ; Larger numbers give more lift
sooner when taking off
TakeoffPause = [millisecond] ; How long does the aircraft
pause for a moment before taking off?
MinHeight = [integer] ; How low can the aircraft go?
offsets using the Z axis
ParkingOffset = [-X.0 offsets the plane to the rear, X.0
offsets it foward, X can be any number] ; scooch it a little forward so the tail
doesn't hit the doors
SneakyOffsetWhenAttacking = [integer] ; This is how far behind us
people aim when we are in attack mode
AttackLocomotorType = [LocomotorSetType] ; what locomotor set are
we going to use if we're in attack mode?
AttackLocomotorPersistTime = [real number] ;how long the "attack"
locomotor persist after we finished attacking?
AttackersMissPersistTime = [real number] ;how long do we remain
unattackable when the attackmode is done?
ReturnToBaseIdleTime = [integer, milliseconds] ; if idle for this long,
return to base, even if not out of ammo
ReturnForAmmoLocomotorType = [LocomotorSetType] ; what locomotor set are
we going to use if we're going back to re-arm?
LockonTime = [integer, milliseconds] ; how long does the
lockon tick sound last?
LockonCursor = [object name] ;what should the "lockon"
cursor look like? (use LockonCursor defined in system.ini)
LockonInitialDist = [integer] ; how far does the enemy anti-
air required to trigger this
LockonFreq = [real number] ; smaller==longer pulse delay,
larger==shorter pulse delay
LockonAngleSpin = [real number] ;how fast to spin the lockon
blinker
LockonBlinky = [Yes/No] ; does it blinker?
AutoAcquireEnemiesWhenIdle = [Yes/No
NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds, default is 2000]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer]
NaturalTurretPitch = [integer]
FirePitch = [integer]
MinPhysicalPitch = [integer, defalt 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

JetSlowDeathBehavior
[this module requires LocomotorWorksWhenDead = Yes on the objects Locomotor to
function correctly]
FXOnGroundDeath = [entry from FXList.INI]
OCLOnGroundDeath = [entry from ObjectCreationList.INI]
FXInitialDeath = [entry from FXList.INI]
OCLInitialDeath = [entry from ObjectCreationList.INI]
DelaySecondaryFromInitialDeath = [integer, milliseconds]
FXSecondary = [entry from FXList.INI]
OCLSecondary = [entry from ObjectCreationList.INI]
DelayFinalBlowUpFromHitGround = [integer, milliseconds]
DeathLoopSound = [entry from SoundEffects.INI]
DestructionDelay = [integer, milliseconds]
DestructionDelayVariance = [integer]
DestructionAltitude = [integer]
RollRate = [real number]
RollRateDelta = [percent]
PitchRate = [real number]
FallHowFast = [percent]
FXHitGround = [entry from FXList.INI]
OCLHitGround = [entry from ObjectCreationList.INI]
FXFinalBlowUp = [entry from FXList.INI]
OCLFinalBlowUp = [entry from ObjectCreationList.INI]
RequiredStatus = [status name]
ExemptStatus = [status name]
DeathTypes = [DeathType listing]
End

KeepObjectDie
[no parameters - this module ensures the object remains in the game world when it
is destroyed although it will no longer interact]
End

LaserUpdate
[this module is a ClientUpdate not a Behavior]
MuzzleParticleSystem = [entry from ParticleSystem.INI]
TargetParticleSystem = [entry from ParticleSystem.INI]
PunchThroughScalar = [Real Number] ; If our target dies, we get this much
bigger so it looks like we punched through
End

LifetimeUpdate
MinLifetime = [integer, milliseconds]
MaxLifetime = [integer, milliseconds, should be greater than or equal to
MinLifetime]
End

LockWeaponCreate
[Prevents indeterminate state plus two unpickable weapons equaling no attack.]
SlotToLock = [Weapon Slot List]
End

LocomotorSetUpgrade
[triggers use of SET_NORMAL_UPGRADED locomotor on this object and allows the use of
VoiceMoveUpgrade within UnitSpecificSounds section of the object]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

LeafletDropBehavior
[This module temporarily Disables Units within it's radius in a period of time.
this should be use in conjunction with the "SPECIAL_LEAFLET_DROP" Special Power
Enum]
DisabledDuration = [Interger]
Delay = [Interger]
AffectRadius = [Interger]
LeafletFXParticleSystem = [entry from ParticleSystem.INI]
End

MaxHealthUpgrade
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
AddMaxHealth = [real number]
ChangeType = [Change Type List]
End

MinefieldBehavior
[NOTE: This is a misleading Module name, since it's really single-Mine Behavior not
a Minefield...]
DetonationWeapon = [entry from Weapon.INI]
DetonatedBy = [ENEMIES, ALLIES, NEUTRAL]
Regenerates = [Yes/No]
StopsRegenAfterCreatorDies = [Yes/No]
WorkersDetonate = [Yes/No]
CreatorDeathCheckRate = [integer, milliseconds]
ScootFromStartingPointTime = [integer, milliseconds]
NumVirtualMines = [integer]
RepeatDetonateMoveThresh = [real number]
DegenPercentPerSecondAfterCreatorDies = [percent]
CreationList = [Entry from ObjectCreationList.INI]
End

MissileAIUpdate
DetonateOnNoFuel = [Yes/No]
DetonateCallsKill = [Yes/No]
UseWeaponSpeed = [Yes/No] [Weapon speed is defined on the weapon itself]
IgnitionFX = [entry from FXList.INI]
InitialVelocity = [integer]
IgnitionDelay = [integer, milliseconds]
FuelLifetime = [integer, milliseconds]
TryToFollowTarget = [Yes/No]
KillSelfDelay = [interger in msec]
DistanceScatterWhenJammed = [interger, This part of the module allows the
use of JAMMED Model Condition State]
GarrisonHitKillRequiredKindOf = [KindOf]
GarrisonHitKillForbiddenKindOf = [KindOf]
GarrisonHitKillCount = [integer]
GarrisonHitKillFX = [entry from FXList.INI]
DistanceToTargetForLock = [integer]
DistanceToTargetBeforeDiving = [integer]
DistanceToTravelBeforeTurning = [integer]
End

MissileLauncherBuildingUpdate
[Allows the use of the DOOR_1_WAITING_OPEN, DOOR_1_CLOSING, DOOR_1_OPENING Model
condition states]
SpecialPowerTemplate = [entry from SpecialPower.INI]
DoorOpenTime = [integer, milliseconds]
DoorWaitOpenTime = [integer, milliseconds]
DoorCloseTime = [integer, milliseconds]
DoorOpeningFX = [entry from FXList.INI]
DoorOpenFX = [entry from FXList.INI]
DoorWaitingToCloseFX = [entry from FXList.INI]
DoorClosingFX = [entry from FXList.INI]
DoorClosedFX = [entry from FXList.INI]
DoorOpenIdleAudio = [entry from SoundEffects.INI]
End

MobMemberSlavedUpdate
MustCatchUpRadius = [integer]
NoNeedToCatchUpRadius = [integer]
Squirrelliness = [real number]
CatchUpCrisisBailTime = [integer]
End

MobNexusContain
Slots = [integer]
InitialPayload = [object name integer, multiple statements can be used]
DamagePercentToUnits = [percent]
HealthRegen%PerSec = [percentage]
End

MoneyCrateCollide
MoneyProvided = [integer]
ForbiddenKindOf = [KindOf]
HumanOnly = [Yes/No]
BuildingPickup = [Yes/No]
UpgradedBoost = [UpgradeType:{Entry from Upgrade.ini} Boost:{Interger}]
PickupScience = [Entry from Science.INI]
ForbidOwnerPlayer = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

ModelConditionUpgrade
[Allows you to switch to a model conditionstate via upgrades]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
ConditionFlag = [Condition State list]
End

NeutronMissileSlowDeathBehavior
DeathTypes = [DeathType listing]
DestructionDelay = [integer, milliseconds]
DestructionDelayVariance = [integer]
DestructionAltitude = [integer]

FX = [INITIAL/MIDPOINT/FINAL entry from FXList.INI, multiple statements can


be used]
OCL = [INITIAL/MIDPOINT/FINAL entry from ObjectCreationList.INI, multiple
statements can be used]
Weapon = [INITIAL/MIDPOINT/FINAL entry from Weapon.INI, multiple statements
can be used]

ScorchMarkSize = [integer]
FXList = [enty from FXList.INI]
[N takes numbers from 1-9]
BlastNEnabled = [Yes/No]
BlastNDelay = [integer, milliseconds]
BlastNScorchDelay [integer, milliseconds]
BlastNInnerRadius = [real number]
BlastNOuterRadius = [real number]
BlastNMaxDamage = [real number]
BlastNMinDamage = [real number]
BlastNToppleSpeed = [real number]
BlastNPushForce = [real number]
End

NeutronBlastBehavior
[Kills the Pilot of the vehicles when shot by a projectile that has this module]
BlastRadius = [interger]
AffectAirborne = [Yes/No]
AffectAllies = [Yes/No]
End

NeutronMissileUpdate
LaunchFX = [entry from FXList.INI]
TargetFromDirectlyAbove = [integer]
RelativeSpeed = [real number]
MaxTurnRate = [integer]
ForwardDamping = [real number]
SpecialSpeedTime = [integer, milliseconds]
SpecialSpeedHeight = [integer]
SpecialAccelFactor = [integer]
SpecialJitterDistance = [real number]
IgnitionFX = [entry from FXList.INI]
DistanceToTargetBeforeDiving = [integer]
DistanceToTravelBeforeTurning = [integer]
IgnitionDelay = [integer]
DeliveryDecalRadius = [integer]
DeliveryDecal
Texture = [texture name without file extension]
Style = [shadow style type]
OpacityMin = [percent]
OpacityMax = [percent]
OpacityThrobTime = [integer, milliseconds]
Color = [r: g: b: a:]
OnlyVisibleToOwningPlayer = [Yes/No]
End
End

ObjectCreationUpgrade
[Allows an Object create/spawn a new object via upgrades]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
UpgradeObject = [entry from ObjectCreationList.INI]
End

OCLSpecialPower
SpecialPowerTemplate = [entry from SpecialPower.INI]
OCL = [entry from ObjectCreationList.INI]
UpgradeOCL = [entry from Science.INI, entry from ObjectCreationList.INI,
multiple entries for multiple upgrades]
CreateLocation = [creation point(s)]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
ReferenceObject [object name]
OCLAdjustPositionToPassable = [Yes/No]
ScriptedSpecialPowerOnly = [Yes/No]
End

OCLUpdate
[A Context window is a reaction to this, no CommandSet]
FactionTriggered = [Yes/No]
FactionOCL = [Faction: [faction] ] [entry from ObjectCreationList.INI, multiple
statements can be made]
MinDelay = [integer, milliseconds]
MaxDelay = [integer, milliseconds]
CreateAtEdge = [Yes/No]
OCL = [entry from ObjectCreationList.INI]
End

OpenContain
ContainMax = [integer]
EnterSound = [entry from SoundEffects.INI]
ExitSound = [entry from SoundEffects.INI]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
PassengersAllowedToFire = [Yes/No]
PassengersInTurret = [Yes/No]
NumberOfExitPaths = [integer]
AllowAlliesInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
DamagePercentToUnits = [percent]
End

OverchargeBehavior
[module will display GUI:OverchargeExhausted when objects health is below specified
percentage
Allows the use of the "EnergyBonus" Object parameterand
Allows this object to turn on or off the POWER_PLANT_UPGRADING and
POWER_PLANT_UPGRADED Model ConditionState(s)]
HealthPercentToDrainPerSecond = [percent] [% of max health to drain per
second when in overcharge mode]
NotAllowedWhenHealthBelowPercent = [percent] [When the object's current
health is below this, turn off overcharge bonus automatically]
End

OverlordContain
[Like Transport, but when full, passes transport queries along to first passenger
(redirects like tunnel)]
Slots = [integer]
DamagePercentToUnits = [percentage]
AllowInsideKindOf = [KindOf]
PassengersAllowedToFire = [Yes/No]
PassengersInTurret = [Yes/No]
ExperienceSinkForRider = [Yes/No]
WeaponBonusPassedToPassengers = [Yes/No]
PayloadTemplateName = [object name]
InitialPayload = [object name integer, multiple statements can be used]
End

ParkingPlaceBehavior
[this module is used by FS_AIRFIELD KindOfs and if HasRunways is set then the model
requires RunwayStartN, RunwayEndN, RunwayNPrepN, RunwayNParkingN and
RunwayNParkNHan bones where N corrosponds to rows and columns. Module will only use
the HeliPark01 bone for helicopters]
HealAmountPerSecond = [integer]
NumRows = [integer]
NumCols = [integer]
HasRunways = [Yes/No]
ApproachHeight = [integer]
ParkInHangars = [Yes/No]
LandingDeckHeightOffset = [integer]
End

PassengersFireUpgrade
[Contain Modules should have the "PassengersAllowedToFire" parameter to "No" in
order for this module to work]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

ParachuteContain
[module hardcoded to utilize PARA_MAN, PARA_ATTACH and PARA_COG bones on contained
object]
PitchRateMax = [integer]
RollRateMax = [integer]
LowAltitudeDamping = [real number]
ParachuteOpenDist = [real number]
KillWhenLandingInWaterSlop = [Yes/No]
FreeFallDamagePercent = [percent]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
ParachuteOpenSound = [entry from SoundEffects.INI]
End

ParticleUplinkCannonUpdate
SpecialPowerTemplate = [entry from SpecialPower.INI]

BeginChargeTime = [integer, milliseconds]


RaiseAntennaTime = [integer, milliseconds]

ReadyDelayTime = [integer, milliseconds]


WidthGrowTime = [integer, milliseconds]
BeamTravelTime = [integer, milliseconds]
TotalFiringTime = [integer, milliseconds]

RevealRange = [integer]

OuterEffectBoneName = [bone name]


OuterEffectNumBones = [integer]
OuterNodesLightFlareParticleSystem = [entry from ParticleSystem.INI]
OuterNodesMediumFlareParticleSystem = [entry from ParticleSystem.INI]
OuterNodesIntenseFlareParticleSystem = [entry from ParticleSystem.INI]

ConnectorBoneName = [bone name]


ConnectorMediumLaserName = [entry from ParticleSystem.INI]
ConnectorIntenseLaserName = [entry from ParticleSystem.INI]
ConnectorMediumFlare = [entry from ParticleSystem.INI]
ConnectorIntenseFlare = [entry from ParticleSystem.INI]

FireBoneName = [bone name]

LaserBaseLightFlareParticleSystemName = [entry from ParticleSystem.INI]


LaserBaseMediumFlareParticleSystemName = [entry from ParticleSystem.INI]
LaserBaseIntenseFlareParticleSystemName = [entry from ParticleSystem.INI]

ParticleBeamLaserName = [entry from ParticleSystem.INI]


SwathOfDeathDistance = [real number]
SwathOfDeathAmplitude = [real number]
TotalScorchMarks = [integer]
ScorchMarkScalar = [real number]
BeamLaunchFX = [entry from FXList.INI]
DelayBetweenLaunchFX = [entry from FXList.INI]
GroundHitFX = [entry from FXList.INI]
DamagePerSecond = [integer]
TotalDamagePulses = [integer]
DamageType = [DamageType]
DamageRadiusScalar = [real number]

PoweringUpSoundLoop = [entry from SoundEffects.INI]


UnpackToIdleSoundLoop = [entry from SoundEffects.INI]
FiringToPackSoundLoop = [entry from SoundEffects.INI]
GroundAnnihilationSoundLoop = [entry from SoundEffects.INI]
DamagePulseRemnantObjectName = [object name]
ManualDrivingSpeed = [integer]
ManualFastDrivingSpeed = [integer]
DoubleClickToFastDriveDelay = [integer, milliseconds]
End

PhysicsBehavior
[Allows the object to interact, tilt or define how heavy it is in the game world]
VehicleCrashesIntoNonBuildingWeaponTemplate = [Entry from Weapon.ini]
VehicleCrashesIntoBuildingWeaponTemplate = [Entry from Weapon.ini]
Mass = [integer] [NOTE: negative values (eg: -0.5) will
cause the game to crash but you can do something like this: 0.00002, Default is 50]
ForwardFriction = [integer] [This is now friction-per-sec]
ZFriction = [integer] [This countrols how many friction to
apply when falling]
LateralFriction = [integer] [This is now friction-per-sec]
AerodynamicFriction = [integer] [Everything is perfectly aerodynamic
by default (0), 1 means not, so this will slow down while in the air (>1 means
REALLY not)]
CenterOfMassOffset = [integer] [Default of 0 means nothing tips as it
falls. Positive tips forward, negative tips back]
AllowBouncing = [Yes/No] [Is the Object Allowed to Bounce? when
hitting the ground or something? IF Yes, Allow bouncing, If no, No Bouncing]
AllowCollideForce = [Yes/No] [Allow Collide force when colliding to
some thingy?]
KillWhenRestingOnGround = [Yes/No] [If Yes, Kill the object while on the
ground, If No, Allows object to live when resting on the ground]
MinFallHeightForDamage = [integer]
FallHeightDamageFactor = [real number]
PitchRollYawFactor = [real number]

[This Part allows the use of the STUNNED and STUNNED_FLAILING Model
ConditionState(s)]
ShockMaxRoll = [real number]
ShockMaxPitch = [real number]
ShockMaxYaw = [real number]
ShockResistance = [Enter from 0.1 to 1.0, 0.10 would be 10% while 1.0 is
100%]
[NOTE: negative values to the "ShockResistance" field (eg: -0.5) will cause
the game to crash but you can something like this: 0.00002]
End

PilotFindVehicleUpdate
[This update will have the pilot go find a "Friendly" vehicle To Enter -AI Only]
ScanRate = [integer, millisecond. Limit 2000]
ScanRange = [integer, milliseconds]
MinHealth = [Enter from 0.1 to 1.0, 0.10 would be 10% while 1.0 is 100%]
[If the vehicle is 0.5 or 50% healthy, The AI pilot will not entire
the said vehicle he spotted]
End

PointDefenseLaserUpdate
WeaponTemplate = [entry from Weapon.INI]
PrimaryTargetTypes = [KindOf]
SecondaryTargetTypes = [KindOf]
ScanRate = [integer, millisecond. Limit 2000]
ScanRange = [integer]
PredictTargetVelocityFactor = [real number]
End

PoisonedBehavior
PoisonDamageInterval = [integer] ; Every this many msec, I will retake the
poison damage dealt me...
PoisonDuration = [integer] ; ... for this long after last hit by poison
damage
End

PowerPlantUpdate
[allows this object to act as an (upgradeable) power supply and Allows this object
to use the POWER_PLANT_UPGRADING and POWER_PLANT_UPGRADED Model ConditionState(s)]
RodsExtendTime = [integer, milliseconds]
End

PowerPlantUpgrade
[triggers use of EnergyBonus = setting on this object to provide extra power to the
faction]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

PreorderCreate
[no parameters - this module allows the use of the PREORDER ConditionState with
this object which in turn is only triggered by presence of registry key 'Preorder'
set to '1' in HKLM\Software\ElectronicArts\EAGames\Generals]
End

ProductionUpdate
[module is required on an object that uses PublicTimer code for any SpecialPower
and/or required for units/structures with object upgrades]

QuantityModifier = [object name,integer] [Redguards uses this


so they can comeout of the barracks in pairs]
DisabledTypesToProcess = [disabled types list]

[Allows the use of the DOOR_x_WAITING_OPEN, DOOR_x_CLOSING, DOOR_x_OPENING Model


condition state]
[X is from 1 to 4 since there's a hardcoded limit of four only]
NumDoorAnimations = [integer, maximum is 4] [How many doors to use
when unit training is complete?]
DoorOpeningTime = [integer, milliseconds] [in mSeconds, how long
you want doors to be in open state]
DoorWaitOpenTime = [integer, milliseconds] [in mSeconds, time the
door stays open, so units can exit]
DoorCloseTime = [integer, milliseconds] [in mSeconds, how long
you want doors to be in open state]

MaxQueueEntries = [integer] [If Set to 1, you can't build multiple


upgrades at the same time]
ConstructionCompleteDuration = [integer, milliseconds] [in mSeconds, wait time
so if you have multiple units they don't run over each other]
End

ProjectileStreamUpdate
[no parameters - this module allows the object to behave as a stream like water or
other liquid ordinance]
End

ProneUpdate
[this module allows the use of the PRONE ConditionState with this object]
DamageToFramesRatio = [real number]
End

PropagandaTowerBehavior
Radius = [real number] [How far can we
affect units?]
DelayBetweenUpdates = [integer, milliseconds] [How often to
recheck the propaganda status (msec)
HealPercentEachSecond = [percent] [Give this unit % of
max health every second]
PulseFX = [entry from FXList.INI] [Plays as often as
DelayBetweenUpdates]
AffectsSelf = [yes/no] [Does the bonus
affects the owner?]
UpgradeRequired = [entry from Upgrade.INI] [What kind of
upgrade do we need in order to increase our health bonus?]
UpgradedHealPercentEachSecond = [percent] [Give this unit % of
max health every second when upgraded]
UpgradedPulseFX = [entry from FXList.INI] [Plays as often as
DelayBetweenUpdates]
End

QueueProductionExitUpdate
UnitCreatePoint = [x: y: z:]
NaturalRallyPoint = [x: y: z:]
ExitDelay = [integer, milliseconds]
InitialBurst = [integer]
End

RadarUpdate
[Allows the use of the RADAR_EXTENDING and RADAR_UPGRADED model conditionstate and
enables the Radar in the Commandbar]
RadarExtendTime = [integer, milliseconds]
End

RadarUpgrade
[triggers use of RadarUpdate module on this object if present and enables the Radar
in the Commandbar]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
DisableProof = [Yes/No]
End

RadiusDecalUpdate
[no parameters - this module allows use of a radius decal cursor from Mouse.INI on
the objects weapon when not explicitly fired]
End

RailedTransportAIUpdate
[Used on TRANSPORT KindOfs that follow a specific pre-defined waypoint path in a
scripted manner]
[The Evacuate buton should use the "EXECUTE_RAILED_TRANSPORT" Command Enum in order
to evacuate properly]
PathPrefixName = [waypoint prefix name]
End

RailedTransportContain
[Used on TRANSPORT KindOfs that follow a specific pre-defined waypoint path in a
scripted manner]
[The Evacuate buton should use the "EXECUTE_RAILED_TRANSPORT" Command Enum in order
to evacuate properly]
Slots = [integer]
DamagePercentToUnits = [percentage]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
DoorOpenTime = [integer, milliseconds]
ScatterNearbyOnExit = [Yes/No]
DestroyRidersWhoAreNotFreeToExit = [Yes/No]
ResetMoodCheckTimeOnExit = [Yes/No]
OrientLikeContainerOnExit = [Yes/No]
KeepContainerVelocityOnExit = [Yes/No]
End

RailedTransportDockUpdate
[defaults to docking with DOCKWAITING07 bone on destination object]
NumberApproachPositions = [integer]
PullInsideDuration = [integer, milliseconds]
PushOutsideDuration = [integer, milliseconds]
ToleranceDistance = [integer]
End

RailroadBehavior
[requires object to follow waypoint path named as Tunnel, Disembark or Station with
'Start' and 'End' convention]
IsLocomotive = [Yes/No]
CrashFXTemplateName = [object name]
PathPrefixName = [waypoint path prefix name if different from default]
CarriageTemplateName = [object name, one entry required for each carriage,
requires IsLocomotive = Yes]
BigMetalBounceSound = [entry from SoundEffects.INI]
SmallMetalBounceSound = [entry from SoundEffects.INI]
MeatyBounceSound = [entry from SoundEffects.INI]
RunningGarrisonSpeedMax = [integer]
KillSpeedMin = [integer]
SpeedMax = [integer, requires IsLocomotive = Yes]
WaitAtStationTime = [integer, milliseconds, requires IsLocomotive = Yes]
RunningSound = [entry from SoundEffects.INI, requires IsLocomotive = Yes]
ClicketyClackSound = [entry from SoundEffects.INI]
WhistleSound = [entry from SoundEffects.INI]
Friction = [real number]
End

ReplaceObjectUpgrade
TriggeredBy = [Entry(S) from upgrade.ini]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
ReplaceObject = [Object name]
End

RebuildHoleBehavior
[Requires the "REBUILD_HOLE" Kind of on the object that will use this to work
properly]
WorkerObjectName = [object name]
WorkerRespawnDelay = [integer, milliseconds]
HoleHealthRegen%PerSecond = [percentage]
End

RebuildHoleExposeDie
[requires the "object" stated on the HoleName Parameter to have the REBUILD_HOLE
KindOF and RebuildHoleBehavior Module in order to work]
HoleName = [object name]
HoleMaxHealth = [real number]
TransferAttackers = [Yes/No]
DeathTypes = [DeathTypes listing]
End

RepairDockUpdate
[module is hardcoded to require DockWaitingN, DockEndN, DockActionN and DockStartN
bones, where N should correspond to NumberApproachPositions]
TimeForFullHeal = [integer, milliseconds]
AllowsPassthrough = [Yes\No]
NumberApproachPositions = [integer]
End

RiderChangeContain
[module requires ExitStartN and ExitEndN bones defined unless over-ridden by
ExitBone definition and allows the use of SoundEnter And SoundExit ]

[Description]
[A list of each valid rider that is allowed to ride this object. Each rider is
assigned a modelcondition state, a weaponset flag, an object status bit, and
a commandset override. The actual object is hidden inside the container so the
visible rider is fluff. Also riders are deleted (not killed) when the bike is
destroyed, so all deaths must be OCLs on the bike]

[N Takes number from 1 to 8]


RiderN = [Object] [Model CondtionState] [WeaponSetCondition]
[StatusBitType] [Entry From CommandSet.ini] [LocomotorSetType]
ScuttleDelay = [interger, milliseconds]
ScuttleStatus = [StatusBit Type]
Slots = [integer}
DamagePercentToUnits = [percentage]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
ExitDelay = [integer, milliseconds]
NumberOfExitPaths = [integer, should corrospond to N]
GoAggressiveOnExit = [Yes/No]
ScatterNearbyOnExit = [Yes/No]
OrientLikeContainerOnExit = [Yes/No]
KeepContainerVelocityOnExit = [Yes/No]
BurnedDeathToUnits = [Yes/No]
ExitPitchRate = [integer]
ExitBone = [bone name]
DoorOpenTime = [integer, milliseconds]
HealthRegen%PerSec = [percentage]
DestroyRidersWhoAreNotFreeToExit = [Yes/No]
ResetMoodCheckTimeOnExit = [Yes/No]
InitialPayload = [object name integer, multiple statements can be used]
ArmedRidersUpgradeMyWeaponSet = [Yes/No]
DelayExitInAir = [Yes/No]
EnterSound = [entry from SoundEffects.INI] ;SoundEnter Override
ExitSound = [entry from SoundEffects.INI] ;SoundExit Override
End

SalvageCrateCollide
[module is hardcoded to apply the EXJunkCrate texture to this object]
MoneyChance = [percent]
MinMoney = [integer]
MaxMoney = [integer]
LevelChance = [percent]
WeaponChance = [percent]
ForbiddenKindOf = [KindOf]
HumanOnly = [Yes/No]
PickupScience = [entry from Science.INI]
ForbidOwnerPlayer = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotagePowerPlantCrateCollide
[module is hardcoded to play the SabotageBuildingPower sound definition when
triggered]
BuildingPickup = [Yes/No]
SabotagePowerDuration = [real number]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageSupplyDropzoneCrateCollide
BuildingPickup = [Yes/No]
StealCashAmount = [real number]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageSuperweaponCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageCommandCenterCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageSupplyCenterCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
StealCashAmount = [real number]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageMilitaryFactoryCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
SabotageDuration = [real number]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageFakeBuildingCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

SabotageInternetCenterCrateCollide
[module is hardcoded to play the SabotageBuilding sound definition when triggered]
BuildingPickup = [Yes/No]
SabotageDuration = [real number]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

ShroudCrateCollide
[no parameters - this module shrouds the entire map for the owner of the object
that collides with this object]
HumanOnly = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End
SlavedUpdate
GuardMaxRange = [integer]
GuardWanderRange = [integer]
AttackRange = [integer]
AttackWanderRange = [integer]
ScoutRange = [integer]
ScoutWanderRange = [integer]
StayOnSameLayerAsMaster = [Yes/No]
DistToTargetToGrantRangeBonus = [integer]
RepairRange = [integer]
RepairMinAltitude = [real number]
RepairMaxAltitude = [real number]
RepairRatePerSecond = [integer]
RepairWhenBelowHealth% = [percent]
RepairMinReadyTime = [integer, milliseconds]
RepairMaxReadyTime = [integer, milliseconds]
RepairMinWeldTime = [integer, milliseconds]
RepairMaxWeldTime = [integer, milliseconds]
RepairWeldingSys = [entry from ParticleSystem.INI]
RepairWeldingFXBone = [bone name]
End

SlowDeathBehavior
DeathTypes = [DeathType listing]
SinkRate = [real number]
ExemptStatus = [status name]
RequiredStatus = [status name]
ProbabilityModifier = [integer]
ModifierBonusPerOverkillPercent = [percent]
SinkDelay = [integer, milliseconds]
SinkDelayVariance = [integer]
DestructionDelay = [integer, milliseconds]
DestructionDelayVariance = [integer]
DestructionAltitude = [integer]
FlingForce = [integer]
FlingForceVariance = [integer]
FlingPitch = [integer]
FlingPitchVariance = [integer]
FX = [INITIAL/MIDPOINT/FINAL entry from FXList.INI, multiple statements can
be used]
OCL = [INITIAL/MIDPOINT/FINAL entry from ObjectCreationList.INI, multiple
statements can be used]
Weapon = [INITIAL/MIDPOINT/FINAL entry from Weapon.INI, multiple statements
can be used]
End

SpawnBehavior
SpawnNumber = [integer]
SpawnReplaceDelay = [integer, milliseconds multiple statements can be used
for multiple spawn.]
OneShot = [Yes/No]
CanReclaimOrphans = [Yes/No]
AggregateHealth = [Yes/No]
ExitByBudding = [Yes/No]
SpawnTemplateName = [object name, multiple entries can be used for multiple
objects]
SpawnedRequireSpawner = [Yes/No]
InitialBurst = [integer]
SlavesHaveFreeWill = [Yes/No]
End

SpawnPointProductionExitUpdate
SpawnPointBoneName = [bone name]
End

SpecialAbility
SpecialPowerTemplate = [entry from SpecialPower.INI]
UpdateModuleStartsAttack = [Yes/No]
InitiateSound = [entry from SoundEffects.INI]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

SpecialAbilityUpdate
[this module allows the use of PACKING and UNPACKING ConditionState(s)]
SpecialPowerTemplate = [entry from SpecialPower.INI]
StartAbilityRange = [real number]
AbilityAbortRange = [real number]
PreparationTime = [integer, milliseconds]]
PreTriggerUnstealthTime = [integer, milliseconds]
SkipPackingWithNoTarget = [Yes/No]
SpecialObject = [object name]
SpecialObjectAttachToBone = [bone name]
MaxSpecialObjects = [integer]
SpecialObjectsPersistent = [Yes/No]
EffectDuration = [integer, milliseconds]
EffectValue = [integer]
UniqueSpecialObjectTargets = [Yes/No]
SpecialObjectsPersistWhenOwnerDies = [Yes/No]
AlwaysValidateSpecialObjects = [Yes/No]
FlipOwnerAfterPacking = [Yes/No]
FlipOwnerAfterUnpacking = [Yes/No]
FleeRangeAfterCompletion = [real number]
DisableFXParticleSystem = [entry from ParticleSystem.INI]
DoCaptureFX = [Yes/No]
PackSound = [entry from SoundEffects.INI]
UnpackSound = [entry from SoundEffects.INI]
PrepSoundLoop = [entry from SoundEffects.INI]
TriggerSound = [entry from SoundEffects.INI]
LoseStealthOnTrigger = [Yes/No]
AwardXPForTriggering = [integer]
SkillPointsForTriggering = [integer]
ApproachRequiresLOS = [Yes/No]
NeedToFaceTarget = [Yes/No]
UnpackTime = [integer, milliseconds]
PackTime = [integer, milliseconds]
PersistentPrepTime = [integer]
PersistenceRequiresRecharge = [Yes/No]
End

SpecialPowerCreate
[no parameters - this module forces the objects SpecialPower to start charging upon
creation of the object - required by special powers that have PublicTimer = Yes]
End

SpecialPowerCompletionDie
SpecialPowerTemplate = [entry from SpecialPower.INI]
End
SpectreGunshipUpdate
GattlingStrafeFXParticleSystem = [entry from ParticleSystem.INI]
SpecialPowerTemplate = [entry from Weapon.INI]
HowitzerWeaponTemplate = [entry from Weapon.INI]
GattlingTemplateName = [entry from Weapon.INI]
RandomOffsetForHowitzer = [real number]
TargetingReticleRadius = [real number]
OrbitInsertionSlope = [real number] ; steepness of orbit entry
GunshipOrbitRadius = [real number]
HowitzerFiringRate = [milliseconds] ; how long between each attempted
shot of howitzer
HowitzerFollowLag = [interger] ; how long after gattling acquires
target can howitzer shoot same
StrafingIncrement = [real number] ; how far apart is each shot of
the gattling as it strafes
AttackAreaRadius = [real number]
OrbitTime = [milliseconds]
AttackAreaDecal
Texture = [texture name without file extension]
Style = [shadow style type]
OpacityMin = [percent]
OpacityMax = [percent]
OpacityThrobTime = [integer, milliseconds]
Color = [r: g: b: a:]
OnlyVisibleToOwningPlayer = [Yes/No]
End
TargetingReticleDecal
Texture = [texture name without file extension]
Style = [shadow style type]
OpacityMin = [percent]
OpacityMax = [percent]
OpacityThrobTime = [integer, milliseconds]
Color = [r: g: b: a:]
OnlyVisibleToOwningPlayer = [Yes/No]
End
End

SpectreGunshipDeploymentUpdate
SpecialPowerTemplate = [entry(s) from SpecialPower.ini
RequiredScience = [Entry From Science.ini]
GunshipTemplateName = [Object Entry]
AttackAreaRadius = [interger
CreateLocation = [OCL CreationPointType List ]
End

SpyVisionUpdate
NeedsUpgrade = [Yes/No]
SelfPowered = [Yes/No]
SelfPoweredDuration = [Interger, Millisecond]
SelfPoweredInterval = [Interger, Millisecond]
TriggeredBy = [Entry from upgrade.ini]
FXListUpgrade =[entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
SpyOnKindof = [KindOf list] [DEFAULTS Too all defined kindof]
End

SpyVisionSpecialPower
SpecialPowerTemplate = [entry from SpecialPower.INI]
BaseDuration = [integer, milliseconds]
BonusDurationPerCaptured = [integer, milliseconds]
MaxDuration = [integer, milliseconds]
StartsPaused = [Yes/No, yes requires UnpauseSpecialPowerUpgrade module]
End

SquishCollide
[no parameters - this module allows the object to use the SPLATTED death type and
SPLATTED ConditionState - infantry only]
End

StatusBitsUpgrade
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RemovesUpgrades [entry(s) from Upgrade.INI, multiple "upgrade" entrys can be
put here]
RequiresAllTriggers = [Yes/No]
StatusToSet = [status name]
StatusToClear = [status name]
End

SmartBombTargetHomingUpdate
[this module dynamically adjust the "bomb" so it will drop to its designated target
instead of missing it]
CourseCorrectionScalar = [real number] [ 1=no homing, 0=snapto; 0.99=smooth,
0.95=too-fast]
End

StealthDetectorUpdate
[module is hardcoded to display MESSAGE:StealthDiscovered when triggered]
DetectionRate = [integer, milliseconds] [how often to rescan for
stealthed things in my sight (msec)] [how far can we scan for stealthed things?]
DetectionRange = [integer. if not specified, Defaults to Object's
VisionRange]
CanDetectWhileGarrisoned = [Yes/No] [Can i detect or scan for stealthed
things when i'm garrisoned?]
CanDetectWhileContained = [Yes/No] [Or loaded in a vehicle?]
ExtraRequiredKindOf = [KindOf] [If the unit have a particular kind of
defined here, Detect and reveal it] [For an example on how this works, check the
Dozers]
ExtraForbiddenKindOf = [KindOf] [If the unit have a particular kind of
defined here, Don't Detect and reveal it]
PingSound = [entry from SoundEffects.INI] [If scanning for
stealthed items, play this]
LoudPingSound = [entry from SoundEffects.INI] [If we found
stealthed items, play this]
IRParticleSysName = [entry from ParticleSystem.INI] [Use this particle
while we're scanning while doing nothing]
IRBrightParticleSysName = [entry from ParticleSystem.INI] [Use this particle
if we found stealthed things]
IRGridParticleSysName = [entry from ParticleSystem.INI] [Use this particle
to put a grid on the stealthed things we found]
IRBeaconParticleSysName = [entry from ParticleSystem.INI] [Use this particle
if we found stealthed things]
IRParticleSysBone = [bone name] [Where to spawn
the particle fx's]
InitiallyDisabled = [Yes/No] [Used by strategy
centers]
End

StealthUpdate
[This module allows the use of SoundStealthOn and SoundStealthOff parameters on the
object and is hardcoded to display MESSAGE:StealthNeutralized when the object has
been discovered]
UseRiderStealth = [Yes/No]
StealthDelay = [integer, milliseconds]
MoveThresholdSpeed = [integer]
StealthForbiddenConditions = [Status Bit types]
HintDetectableConditions = [Status Bit types]
FriendlyOpacityMin = [percentage]
FriendlyOpacityMax = [percentage]
PulseFrequency = [integer, milliseconds]
RevealDistanceFromTarget = [real number]
ForbiddenStatus = [Status Bit types]
RequiredStatus = [Status Bit types]
OrderIdleEnemiesToAttackMeUponReveal = [Yes/No]
InnateStealth = [Yes/No]
EnemyDetectionEvaEvent = [Entry from Eva.ini]
OwnDetectionEvaEvent = [Entry from Eva.ini]
GrantedBySpecialPower = [Yes/No]
BlackMarketCheckDelay = [integer, milliseconds]

[Note: This part needs the DISGUISER KindOf defined on the object and
[allows the use of DisguiseStarted and DisguiseRevealedSuccess
[and DisguiseRevealedFailure within UnitSpecificSounds section of the object]
DisguisesAsTeam = [Yes/No]
DisguiseFX = [entry from FXList.INI]
DisguiseRevealFX = [entry from FXList.INI]
DisguiseTransitionTime = [integer, milliseconds]
DisguiseRevealTransitionTime = [integer, milliseconds]
End

StealthUpgrade
[enables use of StealthUpdate module on this object, requires InnateStealth = No
defined in the StealthUpdate module]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

StickyBombUpdate
[this module keeps this object attached properly to the intended target if the
targetted object moves
and allows the use of UnitBombPing and StickyBombCreated within UnitSpecificSounds
section of the object]
GeometryBasedDamageWeapon = [Entry from Weapon.ini][We add our bounding
circle to the radius of this weapon, and damage people ourselves]
GeometryBasedDamageFX = [Entry from FXList.INI][And we modify our detonation
fx here]
End

StructureBody
[This is a Body module not a Behavior module. Used by objects with STRUCTURE and
IMMOBILE KindOf's defined.]
MaxHealth = [integer]
InitialHealth = [integer
SubdualDamageCap = [integer]
SubdualDamageHealRate = [integer]
SubdualDamageHealAmount = [integer]
End

StructureCollapseUpdate
ExemptStatus = [StatusBits type]
MinCollapseDelay = [integer, milliseconds]
MaxCollapseDelay = [integer, milliseconds]
CollapseDamping = real number]
MaxShudder = [real number]
MinBurstDelay = [integer, milliseconds]
MaxBurstDelay = [integer, milliseconds]
BigBurstFrequency = [integer]
OCL = [INITIAL/FINAL/DELAY/BURST entry from
ObjectCreationList.INI,Multiple Statements can me made]
FXList = [INITIAL/FINAL/DELAY/BURST entry from FXList.INI,Multiple Statements
can me made]
End

StructureToppleUpdate
MinToppleDelay = [integer, milliseconds]
MaxToppleDelay = [integer, milliseconds]
MinToppleBurstDelay = [integer, milliseconds]
MaxToppleBurstDelay = [integer, milliseconds]
StructuralIntegrity = [real number]
StructuralDecay = [real number]
TopplingFX = [entry from FXList.INI]
ToppleDelayFX = [entry from FXList.INI]
ToppleStartFX = [entry from FXList.INI]
ToppleDoneFX = [entry from FXList.INI]
CrushingFX = [entry from FXList.INI]
CrushingWeaponName = [entry from Weapon.INI]
DamageFXTypes = [DamageTypes listing]
AngleFX = [real number entry from FXList.INI]
End

SubObjectsUpgrade
[shows/hides sub-objects on this objects model via upgrading]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
ShowSubObjects = [sub object name(s)]
HideSubObjects = [sub object name(s)]
End

SupplyCenterCreate
[This modules requires the "SUPPLY_SOURCE" KindOf defined in order to properly
work]
[no parameters - this module ensures the object acts as a destination for
collection of supplies]
End

SupplyCenterDockUpdate
[This modules requires the "SUPPLY_SOURCE" KindOf defined in order to properly
work]
NumberApproachPositions = [integer]
AllowsPassthrough = [Yes/No]
GrantTemporaryStealth = [interger]
End

SupplyCenterProductionExitUpdate
[This modules requires the "SUPPLY_SOURCE" KindOf defined in order to properly
work]
[logic requires NaturalRallyPoint x: co-ordinate to match the object
GeometryMajorRadius!]
UnitCreatePoint = [x: y: z:]
NaturalRallyPoint = [x: y: z:]
GrantTemporaryStealth = [interger/millisec] [Give temporary stealth to the
harvester whenever created. Loses it when player order given.]
End

SupplyTruckAIUpdate
[This requires the object to have KindOf = HARVESTER]
MaxBoxes = [integer]
SupplyCenterActionDelay = [integer]
SupplyWarehouseActionDelay = [integer]
SupplyWarehouseScanDistance = [integer]
SuppliesDepletedVoice = [sound name from Voice.INI]
AutoAcquireEnemiesWhenIdle = [Yes/No]
[NOTWHILEATTACKING/ATTACK_BUILDINGS/STEALTHED]
MoodAttackCheckRate = [integer, milliseconds, default is 2000]
ForbidPlayerCommands = [Yes/No]
TurretsLinked =[Yes/No]
Turret
TurretTurnRate = [integer]
TurretPitchRate = [integer]
NaturalTurretAngle = [integer]
NaturalTurretPitch = [integer]
FirePitch = [integer]
MinPhysicalPitch = [integer, defalt 0 = horizontal]
GroundUnitPitch = [integer, default 0 = horizontal]
TurretFireAngleSweep = [weaponslot][integer]
TurretSweepSpeedModifier = [weaponslot real number]
ControlledWeaponSlots = [weaponslots]
AllowsPitch = [Yes/No]
MinIdleScanAngle = [real number]
MaxIdleScanAngle = [real number]
MinIdleScanInterval = [integer, milliseconds]
MaxIdleScanInterval = [integer, milliseconds]
RecenterTime = [integer,milliseconds]
FiresWhileTurning = [Yes/No]
InitiallyDisabled = [Yes/No]
End
AltTurret
[as above]
End
End

SupplyWarehouseCreate
[no parameters - this module ensures the object acts as a source for collection of
supplies]
End

SupplyWarehouseCripplingBehavior
[This modules requires the "SUPPLY_SOURCE" KindOf defined in order to properly
work, Forces object to dynamically restore itself - module is triggered when object
is REALLYDAMAGED or at 30% of MaxHealth]
SelfHealingSupression = [integer, milliseconds] [Time since last damage until
I can start to heal]
SelfHealDelay = [integer, milliseconds] [Once I am okay to heal, how
often to do so]
SelfHealAmount = [integer] [And how much to restore my
health points]
End

SupplyWarehouseDockUpdate
[This modules requires the "SUPPLY_SOURCE" KindOf defined in order to properly
work]
NumberApproachPositions = [integer] [If set, Use DockWaitingN, DockEndN,
DockActionN and DockStartN bones, where N should correspond to
NumberApproachPositions]
[If -1 is set, anyone
can approch this without using any docking bones]
AllowPassthrough = [Yes/No] [Should we allow harvesters to go thru?]
StartingBoxes = [integer] [Even if you use a script to set the
cash value, this will determine graphically what "full" is]
DeleteWhenEmpty = [Yes/No] [Delete Supply Resource if depleted]
End

SwayClientUpdate
[no parameters, this module is a ClientUpdate not a Behavior and allows object to
sway if enabled in GameData.INI or allowed by LOD/map specific settings]
End

TechBuildingBehavior
[Objects with TECH_BUILDING Kindof requires this module]
PulseFX = [entry from FXList.INI]
PulseFXRate = [integer, milliseconds]
End

TensileFormationUpdate
[allows object to share dynamic formation - if not enabled then damage to this
object will affect all nearby objects that have this module, otherwise damage only
affects this object]
Enabled = [Yes/No]
CrackSound = [entry from SoundEffects.INI]
End

ToppleUpdate
ToppleFX = [entry from FXList.INI]
BounceFX = [entry from FXList.INI]
StumpName = [object name]
KillWhenStartToppling = [Yes/No]
KillWhenFinishedToppling = [yes/no]
KillStumpWhenToppled = [Yes/No]
ToppleLeftOrRightOnly = [Yes/No]
ReorientToppledRubble = [Yes/No]
InitialVelocityPercent = [percent, default is 1%]
InitialAccelPercent = [percent,default is 1%]
BounceVelocityPercent = [percent, default is 30%]
End

TransitionDamageFX
[N takes numbers from 1-12]
DamagedFXListN = [Loc:{x: y: z:} FXList:{entry from FXList.INI}]
DamagedParticleSystemN = [bone:{name} RandomBone:{Yes/No} PSys:{entry from
ParticleSystem.INI}]
DamagedOCLN = [Loc:{x: y: z:} OCL:{entry from ObjectCreationList.INI}]

ReallyDamagedFXListN = [Loc:{x: y: z:} FXList:{entry from FXList.INI}]


ReallyDamagedOCLN = [Loc:{x: y: z:} OCL:{entry from ObjectCreationList.INI}]
ReallyDamagedParticleSystemN = [bone:{name} RandomBone:{Yes/No} PSys:{entry
from ParticleSystem.INI}]

RubbleFXListN = [Loc:{x: y: z:} FXList:{entry from FXList.INI}]


RubbleOCLN = [Loc:{x: y: z:} OCL:{entry from ObjectCreationList.INI}]
RubbleParticleSystemN = [bone:{name} RandomBone:{Yes/No} PSys:{entry from
ParticleSystem.INI}]
End

TransportAIUpdate
[used on TRANSPORT KindOfs that contain other objects - see AIUpdateInterface
Module for all associated parameters]
End

TransportContain
[module requires ExitStartN and ExitEndN bones defined unless over-ridden by
ExitBone definition and allows the use of SoundEnter And SoundExit
UnitSpecificSounds ]
Slots = [integer]
DamagePercentToUnits = [percentage]
AllowInsideKindOf = [KindOf listing]
ForbidInsideKindOf = [KindOf listing]
AllowAlliesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
ExitDelay = [integer, milliseconds]
NumberOfExitPaths = [integer, should corrospond to N]
GoAggressiveOnExit = [Yes/No]
ScatterNearbyOnExit = [Yes/No]
OrientLikeContainerOnExit = [Yes/No]
KeepContainerVelocityOnExit = [Yes/No]
BurnedDeathToUnits = [Yes/No]
ExitPitchRate = [integer]
ExitBone = [bone name]
DoorOpenTime = [integer, milliseconds]
HealthRegen%PerSec = [percentage]
DestroyRidersWhoAreNotFreeToExit = [Yes/No]
ResetMoodCheckTimeOnExit = [Yes/No]
InitialPayload = [object name integer, multiple statements can be used]
ArmedRidersUpgradeMyWeaponSet = [Yes/No]
DelayExitInAir = [Yes/No]
EnterSound = [entry from SoundEffects.INI] ;SoundEnter Override
ExitSound = [entry from SoundEffects.INI] ;SoundExit Override
WeaponBonusPassedToPassengers = [Yes/No]
ShouldDrawPips = [Yes/No]
End

TunnelContain
[tunnel contain limit is special case global logic defined by MaxTunnelCapacity in
GameData.INI and allows the use of SoundEnter And SoundExit]
TimeForFullHeal = [integer, milliseconds]
AllowAlliesInside = [Yes/No]
AllowNeutralInside = [Yes/No]
AllowEnemiesInside = [Yes/No]
End

UndeadBody
[Body module that treats the first death as a state change, Triggers the Use of
SECOND_LIFE ConditionState/ArmorSet and allows the use of the
BattleBusSlowDeathBehavior module]
MaxHealth = [integer]
InitialHealth = [integer]
SecondLifeMaxHealth =[integer]
SubdualDamageCap = [integer]
SubdualDamageHealRate = [integer]
SubdualDamageHealAmount = [integer]
End

UnitCrateCollide
UnitCount = [integer]
UnitName = [object name]
ForbiddenKindOf = [KindOf]
HumanOnly = [Yes/No]
BuildingPickup = [Yes/No]
PickupScience = [entry from Science.INI]
ForbidOwnerPlayer = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

UnpauseSpecialPowerUpgrade
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
SpecialPowerTemplate = [entry from SpecialPower.INI]
End

UpgradeDie
[This frees the object based upgrade for the producer object]
[NOTE: the Module tag name and Upgrade Name you will define in the
"UpgradeToRemove" tag should be the exact upgrade name or your game will crash]
DeathTypes = [DeathTypes listing]
UpgradeToRemove = [entry from Upgrade.INI moduletag name,
RequiredStatus = [StatusBits type]
ExemptStatus = [StatusBits type]
End

VeterancyGainCreate
StartingLevel = [Veterancy Level List]
ScienceRequired = [entry from Science.INI]
End

VeterancyCrateCollide
EffectRange = [real number, 0 range affects only the object that collides
with this]
RequiredKindOf = [KindOf]
ForbiddenKindOf = [KindOf]
AddsOwnerVeterancy = [Yes/No]
IsPilot = [Yes/No]
HumanOnly = [Yes/No]
BuildingPickup = [Yes/No]
PickupScience = [entry from Science.INI]
ForbidOwnerPlayer = [Yes/No]
ExecuteFX = [entry from FXList.INI]
ExecuteAnimation = [entry from Animation2D.INI]
ExecuteAnimationTime = [real number, seconds]
ExecuteAnimationZRise = [integer, units per second to rise]
ExecuteAnimationFades = [Yes/No]
End

WanderAIUpdate
[no parameters - this module allows this object to move randomly about its point of
origin using a SET_WANDER locomotor]
End

WaveGuideUpdate
[module is hardcoded to use the following particle system definitions: WaveSpray03,
WaveSpray02, WaveSpray01, WaveSplashRight01, WaveSplashLeft01, WaveHit01,
WaveSplash01 and also uses the WaterWaveBridge object definition as a template when
it collides with a bridge- Requires a WAVEGUIDE KindOf]
WaveDelay = [integer, milliseconds]
YSize = [real number]
LinearWaveSpacing = [real number]
WaveBendMagnitude = [real number]
WaterVelocity = [real number]
PreferredHeight = [real number]
ShorelineEffectDistance = [real number]
DamageRadius = [real number]
DamageAmount = [integer]
ToppleForce = [real number]
RandomSplashSound = [entry from SoundEffects.INI]
RandomSplashSoundFrequency = [integer]
BridgeParticle = [entry from ParticleSystem.INI]
BridgeParticleAngleFudge = [floating point number]
LoopingSound = [entry from SoundEffects.INI]
End

WeaponBonusUpgrade
[Triggers use of WeaponBonus = parameter on this objects weapons]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

WeaponBonusUpdate
[Temporarily Triggers use of a certain WeaponBonus found in Gamedata.ini]
RequiredAffectKindOf = [Kindof] ; what kindof we allow so it will
get affected by the "temp" weapon bonus?
ForbiddenAffectKindOf = [Kindof] ; what kindof we forbid so it will
not get affected by the "temp" weapon bonus?
BonusDuration = [milliseconds] ; How long effect lasts,ms
BonusDelay = [integer] ; How often to pulse (short lifetime
will trump, of course)
BonusRange = [integer] ; Keep in line with radius cursor
size in special power template
BonusConditionType = [Weapon Bonus List] ; And which bonus to give
End

WeaponSetUpgrade
[Triggers use of PLAYER_UPGRADE WeaponSet on this object and Allows the use of
WeaponUpgradeSound within UnitSpecificSounds section of the object and Allows the
use of the WEAPONSET_PLAYER_UPGRADE ConditionState]
TriggeredBy = [entry(s) from Upgrade.INI]
FXListUpgrade = [entry from FXList.INI]
ConflictsWith = [entry(s) from Upgrade.INI]
RequiresAllTriggers = [Yes/No]
End

WorkerAIUpdate
[this module allows the use of VoiceRepair and VoiceBuildResponse and VoiceSupply
and VoiceNoBuild and VoiceTaskComplete within UnitSpecificSounds section of the
object -Requires Kindof = DOZER HARVESTER]
RepairHealthPercentPerSecond = [percent]
BoredTime = [integer, milliseconds]
BoredRange = [integer]
MaxBoxes = [integer]
AutoAcquireEnemiesWhenIdle = [Yes/No]
UpgradedSupplyBoost = [integer]
SupplyCenterActionDelay = [integer]
SupplyWarehouseActionDelay = [integer]
SupplyWarehouseScanDistance = [integer]
SuppliesDepletedVoice = [sound name from Voice.INI]
End

W3D Draw Modules:


NOTE: Draw modules should ALWAYS Be on the beginning of the object code in order to
appear properly in Worldbuilder and/or ingame]

W3DDebrisDraw
[no parameters - special case draw module used by ObjectCreationList.INI when using
the CreateDebris code which defaults to calling the GenericDebris object definition
as a template for each debris object generated]
End

W3DDefaultDraw
[no parameters - all world objects should use a draw module, this module is
employed where an object should never actually be drawn due either to the nature or
type of the object or because its drawing is handled by other logic, e.g. bridges]
End

W3DDependencyModelDraw
[special case draw module which is interdependent with the W3DOverlordTankDraw and
the W3DOverlordAirCraftDraw and the W3DOverlordTruckDraw module(s)]
[see W3DModelDraw module for associated parameters]
AttachToBoneInContainer = [bone name from object in W3DOverlordTankDraw
module]
End

W3DModelDraw
DefaultConditionState [OR, ConditionState = NONE]
Model = [W3D model filename]

[Weapon Bone Settings]


WeaponRecoilBone = [Weapon Slot list,bone name, multiple statements
can be used]
WeaponFireFXBone = [Weapon Slot list, bone name, multiple statements
can be used]
WeaponMuzzleFlash = [Weapon Slot list, bone name, multiple statements
can be used]
WeaponLaunchBone = [Weapon Slot list, bone name, multiple statements
can be used]
WeaponHideShowBone = [Weapon Slot list, bone name]

[Model Animation Settings]


Animation = [model animation name, interger, interger , multiple
statements can be used]
AnimationMode = [Animation Mode Types]
AnimationSpeedFactorRange = [interger, interger]
IdleAnimation = [model animation name, interger, interger] [multiple
statements can be used]
TransitionKey = [TransitionKey name]
Flags = [AnimationFlag types list]
WaitForStateToFinishIfPossible = [transition state]

[Turret Settings]
Turret = [sub object name]
TurretArtAngle = [integer]
TurretPitch = [integer]
TurretArtPitch = [integer]
AltTurret = [sub object name]
AltTurretArtAngle = [integer]
AltTurretArtPitch = [integer]
AltTurretPitch = [integer]

[Misc Settings]
ShowSubObject = [sub object name(s)]
HideSubObject = [sub object name(s)]
ParticleSysBone = [Bone name Entry from ParticleSystem.INI, multiple
statements can be used]

End
ConditionState = [ConditionState name, multiple statements can be made]
[as above]
End
AliasConditionState = [ConditionState, multiple statements can be made]

TransitionState = [FromTransitionKey name ToTransitionKeyName, viceversa]


[as above]
End

[Misc Settings]
AnimationsRequirePower = [Yes/No] [Does our animation needs power in
order to work?]
MinLODRequired = [LOD listing] [Whats the minimum Level of Detail
required before we show up ingame]
OkToChangeModelColor = [Yes/no] [Set to yes in order for housecolour's
to work]
ReceivesDynamicLights = [Yes/no] [If Yes, Give the model some extra
lighting]
ParticlesAttachedToAnimatedBones = [Yes/No] [works like
"AnimatedParticleSysBoneClientUpdate" module]
IgnoreConditionStates = [Condition State Names][What model
condition states should we ignore. Multiple ConditionState names can be defined]
ExtraPublicBone = [bone name] [ multiple entries
can be used for additional bones to expose to logic]
ProjectileBoneFeedbackEnabledSlots = [Weapon Slot list]
TrackMarks = [texture filename with file extension]
AttachToBoneInAnotherModule = [bone name]

[Controls how fast and deep the barrel recoils]


InitialRecoilSpeed = [integer]
MaxRecoilDistance = [integer]
RecoilDamping = [integer]
RecoilSettleSpeed = [integer]
End

W3DOverlordTankDraw
[special case draw module which is interdependent with the W3DDependencyModelDraw
module - allows other objects to be attached to this object through use of
AttachToBoneInContainer logic]
[see W3DModelDraw module for associated parameters]

[Controls how fast the treads will move or stop]


TreadDriveSpeedFraction = [real number]
TreadPivotSpeedFraction = [real number]
TreadAnimationRate = [real number]
TreadDebrisLeft = [Entry From ParticleSystem.ini]
TreadDebrisRight = [Entry From ParticleSystem.ini]

[Controls how fast and deep the barrel recoils]


InitialRecoilSpeed = [integer]
MaxRecoilDistance = [integer]
RecoilDamping = [integer]
RecoilSettleSpeed = [integer]
End

W3DOverlordAircraftDraw
[special case draw module which is interdependent with the W3DDependencyModelDraw
module - allows other objects to be attached to this object through use of
AttachToBoneInContainer logic]
[see W3DModelDraw module for associated parameters]
End

W3DOverlordTruckDraw
[special case draw module which is interdependent with the W3DDependencyModelDraw
module - allows other objects to be attached to this object through use of
AttachToBoneInContainer logic]
[see W3DModelDraw and W3DTruckDraw module for associated parameters]
End

W3DLaserDraw
[this module is interdependent with the LaserUpdate module and requires the object
to have KindOf = INERT IMMOBILE]
Texture = [texture filename with file extension, defaults to
EXLaser.tga]
NumBeams = [integer] [Number of overlapping cylinders that
make the beam. 1 beam will just use inner data]
InnerBeamWidth = [real number][The total width of the inner beam]
OuterBeamWidth = [real number][The total width of the outer beam]
InnerColor = [r: g: b: a:][The inside color of the laser (hot)]
OuterColor = [r: g: b: a:][The outside color of the laser (cool)]
MaxIntensityLifetime = [milliseconds] [Laser stays at max intensity for
specified time in ms]
FadeLifetime = [milliseconds] [How long will the Laser last before it
fades out and delete itself]
Tile = [Yes/No] [The height of the texture will determine
how many times to tile the texture to fit without scaling]
Segments = [integer] [Number of segments -- more segments give
smoother curve (but more joints) Current max: 20]
SegmentOverlapRatio = [real number][This value overlaps(+) or separates(-)
the segments by ratio]
ArcHeight = [real number][The height of the arc]
TilingScalar = [real number][Stretches tiling if value > 1.0,
otherwise shrinks it (1.0 is natural)]
End

W3DPoliceCarDraw
[This module allows for the use of the FRONTCRUSHED and BACKCRUSHED ConditionStates
with this object]
[And this modules allows the object to cast a ambient light around itself]
[see W3DModelDraw module for associated parameters]
End

W3DTreeDraw
[The W3DTreeDraw handles normal drawing and sway, and knock over behavior.
Normally this happens in the W3DTreeBuffer, and there is no corresponding
drawable or
object. Required to have KindOf OPTIMIZED_TREE]

[Note:
Objects with this Module will not properly appear in WorldBuilder if your Texture
is not in Art/Terrain folder and your model in Art/W3D Folder
The texture should be in targa (.tga) format in order for it to work.]

ModelName = [Model Name]


TextureName = [Models texture name with file extension]
MinimumToppleSpeed = [percent, default is 1%]
DarkeningFactor = [milliseconds]
MoveInwardTime = [milliseconds]
MoveOutwardTime = [milliseconds]
MoveOutwardDistanceFactor = [real number]
DoTopple = [yes/no]
DoShadow = [yes/no]
ToppleFX = [Entry From FXList.ini]
BounceFX = [Entry From FXList.ini]
KillWhenFinishedToppling = [yes/no]
SinkDistance = [real number]
SinkTime = [milliseconds]
End

W3DPropDraw
[When used, it will not interact to the game world and will just act as a none
interacting prop with no shadow. can be cleared by building ontop.
Requires PROP KindOf]
[Note: Objects with this Module will not properly appear in WorldBuilder since
there's a bug EA apparently left]
ModelName = [Model Name]
End

W3DProjectileStreamDraw
[requires object to have KindOf = INERT]
Texture = [texture filename with file extension]
Width = [real number]
TileFactor = [integer]
ScrollRate = [real number]
MaxSegments = [integer]
End

W3DRopeDraw
[no parameters - this module requires the object to be KindOf = DRAWABLE_ONLY]
End

W3DScienceModelDraw
[special case draw module that allows object to be seen only by players who have
the RequiredScience]
[see W3DModelDraw module for associated parameters]
RequiredScience = [entry from Science.INI]
End

W3DSupplyDraw
[this module is interdependant with the SupplyWarehouseDockUpdate module and
together the two modules will automatically show and hide a percentage of the bones
on the object that have the SupplyBonePrefix]
[see W3DModelDraw module for associated parameters]
SupplyBonePrefix = [bone name]
End

W3DTankDraw
[Default Draw used by Tanks. The module is hardcoded to call for the
TrackDebrisDirtRight and TrackDebrisDirtLeft particle system definitions]
see W3DModelDraw module for associated parameters]

[Controls how fast the treads will move or stop]


TreadDriveSpeedFraction = [real number]
TreadPivotSpeedFraction = [real number]
TreadAnimationRate = [real number]

[NOTE: This doesnt properly work with the "W3DTankTruckDraw" Draw module]
TreadDebrisLeft = [Entry From ParticleSystem.ini]
TreadDebrisRight = [Entry From ParticleSystem.ini]

[Controls how fast and deep the barrel recoils]


InitialRecoilSpeed = [integer]
MaxRecoilDistance = [integer]
RecoilDamping = [integer]
RecoilSettleSpeed = [integer]
End
W3DTankTruckDraw
[special case module that allows parameters from W3DTankDraw and W3DTruckDraw to be
used - effectively this is a module that combines the other two]
[This can be useful for half track type units]
[see W3DModelDraw module for associated parameters]

[Controls how fast the treads will move or stop]


TreadDriveSpeedFraction = [real number]
TreadPivotSpeedFraction = [real number]
TreadAnimationRate = [real number]

[Controls how fast and deep the barrel recoils]


InitialRecoilSpeed = [integer]
MaxRecoilDistance = [integer]
RecoilDamping = [integer]
RecoilSettleSpeed = [integer]

[Controls the attached "cab" model on the vehicle]


RotationDamping = [real number]
TrailerRotationMultiplier = [real number]]
TrailerBone = [bone name]
CabRotationMultiplier = [real number]
CabBone = [bone name]

[Wheels setup]
PowerslideRotationAddition = [real number]
TireRotationMultiplier = [real number]
MidRightMidTireBone = [bone name]
MidLeftMidTireBone = [bone name]
MidRightRearTireBone = [bone name]
MidLeftRearTireBone = [bone name]
MidRightFrontTireBone = [bone name]
MidLeftFrontTireBone = [bone name]
RightRearTireBone = [bone name]
LeftRearTireBone = [bone name]
RightFrontTireBone = [bone name]
LeftFrontTireBone = [bone name]

[Dust Spray setup]


PowerslideSpray = [entry from ParticleSystem.INI]
DirtSpray = [entry from ParticleSystem.INI]
Dust = [entry from ParticleSystem.INI]
End

W3DTracerDraw
[no parameters - this module requires object to be KindOf = DRAWABLE_ONLY]
End

W3DTruckDraw
[module is hardcoded to call for the TreadDebrisRight and TreadDebrisLeft (unless
overriden) particle system definitions
and allows use of TruckPowerslideSound and TruckLandingSound within the
UnitSpecificSounds section of the object
- this module also includes automatic logic for showing and hiding of HEADLIGHT
bones in and out of the NIGHT ConditionState]
[see W3DModelDraw module for associated parameters]
[Controls the attached "cab" model on the vehicle]
RotationDamping = [real number]
TrailerRotationMultiplier = [real number]]
TrailerBone = [bone name]
CabRotationMultiplier = [real number]
CabBone = [bone name]

[Wheels setup]
PowerslideRotationAddition = [real number]
TireRotationMultiplier = [real number]
MidRightMidTireBone = [bone name]
MidLeftMidTireBone = [bone name]
MidRightRearTireBone = [bone name]
MidLeftRearTireBone = [bone name]
MidRightFrontTireBone = [bone name]
MidLeftFrontTireBone = [bone name]
RightRearTireBone = [bone name]
LeftRearTireBone = [bone name]
RightFrontTireBone = [bone name]
LeftFrontTireBone = [bone name]

[Dust Spray setup]


PowerslideSpray = [entry from ParticleSystem.INI]
DirtSpray = [entry from ParticleSystem.INI]
Dust = [entry from ParticleSystem.INI]
End

Appendices:

Change Type List:


PRESERVE_RATIO
ADD_CURRENT_HEALTH_TOO
SAME_CURRENTHEALTH

LOD listing:
LOW
MEDIUM
HIGH

Veterancy Level List:


REGULAR
VETERAN
ELITE
HEROIC

Weapon Slot List:


PRIMARY
SECONDARY
TERTIARY

ObjectConditionTypes:
RIDERS_ATTACKING
TAKING_DAMAGE
NO_BLACK_MARKET
FIRING_TERTIARY
FIRING_SECONDARY
FIRING_PRIMARY
MOVING
ATTACKING

WeaponSetCondition Types:
PLAYER_UPGRADE
MINE_CLEARING_DETAIL
CARBOMB
VEHICLE_HIJACK
CRATEUPGRADE_ONE
CRATEUPGRADE_TWO
WEAPON_RIDER1
WEAPON_RIDER2
WEAPON_RIDER3
WEAPON_RIDER4
WEAPON_RIDER5
WEAPON_RIDER6
WEAPON_RIDER7
WEAPON_RIDER8

VETERAN [This can trigger the WEAPONSET_VETERAN model state]


ELITE [this can trigger the WEAPONSET_ELITE mode state]
HERO [this can trigger the WEAPONSET_HERO mode state]

AutoChooseSources Types:
FROM_DOZER
FROM_AI
FROM_SCRIPT
FROM_PLAYER
DEFAULT_SWITCH_WEAPON

ArmorSetCondition Types:
PLAYER_UPGRADE
CRATEUPGRADE_ONE
CRATEUPGRADE_TWO
SECOND_LIFE ;requires the undeadbody module.
VETERAN
ELITE
HERO

Disabled Types:
DISABLED_SCRIPT_UNDERPOWERED
DISABLED_SCRIPT_DISABLED
DISABLED_FREEFALL
DISABLED_UNDERPOWERED
DISABLED_UNMANNED
DISABLED_PARALYZED
DISABLED_HELD
DISABLED_EMP
DISABLED_HACKED
DISABLED_BRAINWASHED
DISABLED_SUBDUED
DISABLED_AWESTRUCK
DISABLED_HELD
DEFAULT

StatusBitTypes:
KILLING_SELF
DISGUISED
BOOBY_TRAPPED
FAERIE_FIRE
STATUS_RIDER8
STATUS_RIDER7
STATUS_RIDER6
STATUS_RIDER5
STATUS_RIDER4
STATUS_RIDER3
STATUS_RIDER2
STATUS_RIDER1
DECK_HEIGHT_OFFSET
IGNORING_STEALTH
NO_ATTACK_FROM_AI
USING_ABILITY
MASKED
RECONSTRUCTING
UNDERGOING_REPAIR
SOLD
TOPPLED
CAN_STEALTH
DETECTED
STEALTHED
IS_AIMING_WEAPON
IS_BRAKING
IS_CARBOMB
IS_FIRING_WEAPON
WET
AFLAME
HIJACKED
REPULSOR
PARACHUTING
AIRBORNE_TARGET
NO_ATTACK
NO_COLLISIONS
UNSELECTABLE
UNDER_CONSTRUCTION
CAN_ATTACK
DESTROYED
REASSIGN_PARKING
DEPLOYED

LocomotorSetTypes:
SET_NORMAL
SET_SUPERSONIC
SET_SLUGGISH
SET_TAXIING
SET_PANIC
SET_WANDER
SET_FREEFALL
SET_NORMAL_UPGRADED

DamageTypes:
DEFAULT ;this sets the level for all nonspecified damage types in armor.
EXPLOSION
CRUSH
ARMOR_PIERCING
SMALL_ARMS
GATTLING
RADIATION
FLAME
LASER
SNIPER
POISON
HEALING
UNRESISTABLE
WATER
DEPLOY
SURRENDER
HACK
KILL_PILOT
PENALTY
KILL_GARRISONED
FALLING
MELEE
DISARM
HAZARD_CLEANUP
PARTICLE_BEAM
TOPPLING
INFANTRY_MISSILE
AURORA_BOMB
LAND_MINE
JET_MISSILES
STEALTHJET_MISSILES
MOLOTOV_COCKTAIL
COMANCHE_VULCAN
MICROWAVE
STATUS
SUBDUAL_BUILDING
SUBDUAL_VEHICLE
SUBDUAL_MISSILE
SUBDUAL_UNRESISTABLE

DeathTypes:
ALL
NORMAL
CRUSHED
BURNED
EXPLODED
POISONED
TOPPLED
FLOODED
SUICIDED
LASERED
DETONATED
SPLATTED
POISONED
POISONED_BETA
POISONED_GAMMA
EXTRA_2
EXTRA_3
EXTRA_4
EXTRA_5
EXTRA_6
EXTRA_7
EXTRA_8

ShadowStyleTypes:
SHADOW_DECAL
SHADOW_VOLUME
SHADOW_PROJECTION
SHADOW_DYNAMIC_PROJECTION
SHADOW_DIRECTIONAL_PROJECTION
SHADOW_ALPHA_DECAL
SHADOW_ADDITIVE_DECAL

OCLCreationPointTypes:
CREATE_AT_EDGE_FARTHEST_FROM_TARGET
CREATE_AT_EDGE_FARTHEST_FROM_SOURCE
CREATE_ABOVE_LOCATION
USE_OWNER_OBJECT
CREATE_AT_LOCATION
CREATE_AT_EDGE_NEAR_TARGET
CREATE_AT_EDGE_NEAR_SOURCE
CREATE_OBJECT

ConditionStateTypes:
USER_1
USER_2
WEAK_VERSUS_BASEDEFENSES
JAMMED
ATTACKING
ARMORSET_CRATEUPGRADE_TWO
ARMORSET_CRATEUPGRADE_ONE
PREORDER
USING_WEAPON_A
USING_WEAPON_B
USING_WEAPON_C
STUNNED
STUNNED_FLAILING
EXPLODED_BOUNCING
EXPLODED_FLAILING
CAPTURED
RAISING_FLAG
CONTINUOUS_FIRE_SLOW
CONTINUOUS_FIRE_FAST
CONTINUOUS_FIRE_MEAN
SPECIAL_CHEERING
ARMED
RAPELLING
PARACHUTING
CLIMBING
SPLATTED
BURNED
AFLAME
SMOLDERING
POWER_PLANT_UPGRADING
POWER_PLANT_UPGRADED
OVER_WATER
MOVING
DEPLOYED
UNPACKING
PACKING
JETEXHAUST
JETAFTERBURNER
LOADED
CARRYING
DOCKING_ENDING
DOCKING_ACTIVE
DOCKING_BEGINNING
DOCKING
PANICKING
RADAR_UPGRADED
RADAR_EXTENDED
CONSTRUCTION_COMPLETE
ACTIVELY_CONSTRUCTING
ACTIVELY_BEING_CONSTRUCTED
PARTIALLY_CONSTRUCTED
AWAITING_CONSTRUCTION
DYING
PRONE
FREEFALL
POST_COLLAPSE
TOPPLED
TURRET_ROTATE

RELOADING_A
BETWEEN_FIRING_SHOTS_A
FIRING_A
PREATTACK_A

RELOADING_B
BETWEEN_FIRING_SHOTS_B
FIRING_B
PREATTACK_B

RELOADING_C
BETWEEN_FIRING_SHOTS_C
FIRING_C
PREATTACK_C

DOOR_4_WAITING_TO_CLOSE
DOOR_4_WAITING_OPEN
DOOR_4_CLOSING
DOOR_4_OPENING

DOOR_3_WAITING_TO_CLOSE
DOOR_3_WAITING_OPEN
DOOR_3_CLOSING
DOOR_3_OPENING

DOOR_2_WAITING_TO_CLOSE
DOOR_2_WAITING_OPEN
DOOR_2_CLOSING
DOOR_2_OPENING

DOOR_1_WAITING_TO_CLOSE
DOOR_1_WAITING_OPEN
DOOR_1_CLOSING
DOOR_1_OPENING

WEAPONSET_PLAYER_UPGRADE
WEAPONSET_CRATEUPGRADE_ONE
WEAPONSET_CRATEUPGRADE_TWO
WEAPONSET_HERO
WEAPONSET_ELITE
WEAPONSET_VETERAN
ENEMYNEAR
REALLYDAMAGED
RUBBLE
DAMAGED
SNOW
SOLD
DISGUISED
NIGHT
SPECIAL_DAMAGED
BACKCRUSHED
FRONTCRUSHED
SECOND_LIFE
RIDER1
RIDER2
RIDER3
RIDER4
RIDER5
RIDER6
RIDER7
RIDER8
PRISTINE
RIGHT_TO_CENTER
CENTER_TO_RIGHT
LEFT_TO_CENTER
CENTER_TO_LEFT

AnimationFlagTypes:
RANDOMSTART
START_FRAME_FIRST
START_FRAME_LAST
ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT
PRISTINE_BONE_POS_IN_FINAL_FRAME
MAINTAIN_FRAME_ACROSS_STATES
MAINTAIN_FRAME_ACROSS_STATES2
MAINTAIN_FRAME_ACROSS_STATES3
MAINTAIN_FRAME_ACROSS_STATES4
RESTART_ANIM_WHEN_COMPLETE

Animation Mode Types:


MANUAL
ONCE
ONCE_BACKWARDS
LOOP_BACKWARDS
LOOP_PINGPONG
LOOP

KindOf list:
IGNORE_DOCKING_BONES
CONSERVATIVE_BUILDING
DEMOTRAP
EMP_HARDENED
TECH_BASE_DEFENSE
CANNOT_RETALIATE
REJECT_UNMANNED
NO_SELECT
AIRCRAFT_CARRIER
OPTIMIZED_TREE
PROP
BLAST_CRATER
BOOBY_TRAP
REVEALS_ENEMY_PATHS
MONEY_HACKER
CLIFF_JUMPER
DONT_AUTO_CRUSH_INFANTRY
IGNORES_SELECT_ALL
HERO
INERT
DISGUISER
REVEAL_TO_ALL
SUPPLY_SOURCE
CANNOT_BUILD_NEAR_SUPPLIES
SPAWNS_ARE_THE_WEAPONS
SHOW_PORTRAIT_WHEN_CONTROLLED
HULK
IMMUNE_TO_CAPTURE
BOAT
GARRISONABLE_UNTIL_DESTROYED
PARACHUTE
PARACHUTABLE
SUPPLY_SOURCE_ON_PREVIEW
CLICK_THROUGH
BALLISTIC_MISSILE
CAN_SEE_THROUGH_STRUCTURE
DRONE
PRODUCED_AT_HELIPAD
POWERED
TECH_BUILDING
AUTO_RALLYPOINT
FORCEATTACKABLE
LOW_OVERLAPPABLE
AIRCRAFT_PATH_AROUND
DEFENSIVE_WALL
WALK_ON_TOP_OF_WALL
ATTACK_NEEDS_LINE_OF_SIGHT
ALWAYS_SELECTABLE
PORTABLE_STRUCTURE
CLEANUP_HAZARD
MINE
UNATTACKABLE
ALWAYS_VISIBLE
SMALL_MISSILE
CLEARED_BY_BUILD
CAPTURABLE
CRATE
IGNORED_IN_GUI
MOB_NEXUS
CAN_BE_REPULSED
CAN_RAPPEL
NO_HEAL_ICON
SCORE_DESTROY
SCORE_CREATE
SCORE
REBUILD_HOLE
MP_COUNT_FOR_VICTORY
DRAWABLE_ONLY
CASH_GENERATOR
STEALTH_GARRISON
HEAL_PAD
REPAIR_PAD
NO_COLLIDE
WAVE_EFFECT
WAVEGUIDE
NO_GARRISON
PRELOAD
PROJECTILE
BRIDGE_TOWER
LANDMARK_BRIDGE
BRIDGE
TRANSPORT
WEAPON_SALVAGER
ARMOR_SALVAGER
SALVAGER
LINEBUILD
COMMANDCENTER
HARVESTER
DOZER
HUGE_VEHICLE
AIRCRAFT
VEHICLE
INFANTRY
STRUCTURE
SHRUBBERY
CAN_CAST_REFLECTIONS
STICK_TO_TERRAIN_SLOPE
CAN_ATTACK
IMMOBILE
SELECTABLE
OBSTACLE
FS_STRATEGY_CENTER
FS_SUPPLY_CENTER
FS_BLACK_MARKET
FS_SUPERWEAPON
FS_SUPPLY_DROPZONE
FS_AIRFIELD
FS_WARFACTORY
FS_BARRACKS
FS_ADVANCED_TECH
FS_TECHNOLOGY
FS_BASE_DEFENSE
FS_FACTORY
FS_POWER
FS_INTERNET_CENTER
FS_FAKE

MISC SECTION:

CommandButton Command list:


SELECT_ALL_UNITS_OF_TYPE
SPECIAL_POWER_CONSTRUCT_FROM_SHORTCUT
SPECIAL_POWER_CONSTRUCT
SPECIAL_POWER_FROM_SHORTCUT
PLACE_BEACON
SABOTAGE_BUILDING
CONVERT_TO_CARBOMB
HIJACK_VEHICLE
SWITCH_WEAPON
COMBATDROP
TOGGLE_OVERCHARGE
HACK_INTERNET
PURCHASE_SCIENCE
SPECIAL_POWER
FIRE_WEAPON
SELL
SET_RALLY_POINT
BEACON_DELETE
EXECUTE_RAILED_TRANSPORT
EVACUATE
EXIT_CONTAINER
WAYPOINTS
STOP
GUARD_FLYING_UNITS_ONLY
GUARD_WITHOUT_PURSUIT
GUARD
ATTACK_MOVE
CANCEL_UPGRADE
OBJECT_UPGRADE
PLAYER_UPGRADE
CANCEL_UNIT_BUILD
UNIT_BUILD
DOZER_CONSTRUCT_CANCEL
DOZER_CONSTRUCT

CommandButton Options list:


MUST_BE_STOPPED
CAN_USE_WAYPOINTS
USES_MINE_CLEARING_WEAPONSET
IGNORES_UNDERPOWERED
SCRIPT_ONLY
---DO-NOT-USE---
SINGLE_USE_COMMAND
NOT_QUEUEABLE
OPTION_THREE
OPTION_TWO
OPTION_ONE
ATTACK_OBJECTS_POSITION
ALLOW_MINE_TARGET
CHECK_LIKE
CONTEXTMODE_COMMAND
OK_FOR_MULTI_SELECT
NEED_SPECIAL_POWER_SCIENCE
NEED_UPGRADE
NEED_TARGET_POS
ALLOW_SHRUBBERY_TARGET
unused-reserved
NEED_TARGET_ALLY_OBJECT
NEED_TARGET_NEUTRAL_OBJECT
NEED_TARGET_ENEMY_OBJECT

Command Button WeaponSlot list:


PRIMARY
SECONDARY
TERTIARY

Command Button Bordertypes:


SYSTEM
ACTION
UPGRADE
BUILD

Command Button RadiusCursorType list:


"this are tied to the IngameUI.ini"
AMBULANCE
CLEARMINES
FRENZY
SPYDRONE
RADAR
AMBUSH
ANTHRAXBOMB
SCUDSTORM
CLUSTERMINES
NAPALMSTRIKE
ARTILLERYBARRAGE
EMPPULSE
NUCLEARMISSILE
HELIX_NAPALM_BOMB
SPECTREGUNSHIP
SPYSATELLITE
PARADROP
DAISYCUTTER
CARPETBOMB
A10STRIKE
PARTICLECANNON
SUPERWEAPON_SCATTER_AREA
OFFENSIVE_SPECIALPOWER
FRIENDLY_SPECIALPOWER
EMERGENCY_REPAIR
GUARD_AREA
ATTACK_CONTINUE_AREA
ATTACK_SCATTER_AREA
ATTACK_DAMAGE_AREA

Weapon Bonuses:
[NOTE: See Gamedata.ini to see what it does]
[This are located in Gamedata.ini, Note that the weapon bonus types are:]
GARRISONED
HORDE
CONTINUOUS_FIRE_MEAN
CONTINUOUS_FIRE_FAST
NATIONALISM
PLAYER_UPGRADE
DRONE_SPOTTING
ENTHUSIASTIC
VETERAN
ELITE
HERO
BATTLEPLAN_BOMBARDMENT
BATTLEPLAN_HOLDTHELINE
BATTLEPLAN_SEARCHANDDESTROY
SUBLIMINAL
SOLO_HUMAN_EASY
SOLO_HUMAN_NORMAL
SOLO_HUMAN_HARD
SOLO_AI_EASY
SOLO_AI_NORMAL
SOLO_AI_HARD
FRENZY_ONE
FRENZY_TWO
FRENZY_THREE
FANATICISM
DEMORALIZED_OBSOLETE
TARGET_FAERIE_FIRE

[...And the weapon bonus 'fields' are:


DAMAGE
RADIUS
RANGE
RATE_OF_FIRE
PRE_ATTACK

SpecialPower.ini Enum types:


SPECIAL_BATTLESHIP_BOMBARDMENT
SUPW_SPECIAL_NEUTRON_MISSILE
LAZR_SPECIAL_PARTICLE_UPLINK_CANNON
SUPR_SPECIAL_CRUISE_MISSILE
AIRF_SPECIAL_CARPET_BOMB
SLTH_SPECIAL_GPS_SCRAMBLER
INFA_SPECIAL_PARADROP_AMERICA
AIRF_SPECIAL_SPECTRE_GUNSHIP
AIRF_SPECIAL_A10_THUNDERBOLT_STRIKE
NUKE_SPECIAL_NEUTRON_MISSILE
NUKE_SPECIAL_CLUSTER_MINES
AIRF_SPECIAL_DAISY_CUTTER
SUPW_SPECIAL_PARTICLE_UPLINK_CANNON
SPECIAL_TANK_PARADROP
EARLY_SPECIAL_REPAIR_VEHICLES
SPECIAL_COMMUNICATIONS_DOWNLOAD
EARLY_SPECIAL_FRENZY
EARLY_SPECIAL_LEAFLET_DROP
SPECIAL_LEAFLET_DROP
EARLY_SPECIAL_CHINA_CARPET_BOMB
SPECIAL_CHINA_CARPET_BOMB
SPECIAL_SNEAK_ATTACK
SPECIAL_FRENZY
SPECIAL_GPS_SCRAMBLER
SPECIAL_SPECTRE_GUNSHIP
SPECIAL_LAUNCH_BAIKONUR_ROCKET
SPECIAL_CLEANUP_AREA
SPECIAL_CIA_INTELLIGENCE
SPECIAL_CHANGE_BATTLE_PLANS
SPECIAL_CASH_BOUNTY
SPECIAL_PARTICLE_UPLINK_CANNON
SPECIAL_REPAIR_VEHICLES
SPECIAL_BOOBY_TRAP
SPECIAL_DISGUISE_AS_VEHICLE
SPECIAL_SPY_DRONE
SPECIAL_RADAR_VAN_SCAN
SPECIAL_INFANTRY_CAPTURE_BUILDING
SPECIAL_BLACKLOTUS_STEAL_CASH_HACK
SPECIAL_BLACKLOTUS_DISABLE_VEHICLE_HACK
SPECIAL_BLACKLOTUS_CAPTURE_BUILDING
SPECIAL_TANKHUNTER_TNT_ATTACK
SPECIAL_HACKER_DISABLE_BUILDING
SPECIAL_HELIX_NAPALM_BOMB
SPECIAL_TIMED_CHARGES
SPECIAL_REMOTE_CHARGES
SPECIAL_MISSILE_DEFENDER_LASER_GUIDED_MISSILES
SPECIAL_ARTILLERY_BARRAGE
SPECIAL_DETONATE_DIRTY_NUKE
SPECIAL_A10_THUNDERBOLT_STRIKE
SPECIAL_CRATE_DROP
SPECIAL_DEMORALIZE_OBSOLETE
SPECIAL_SCUD_STORM
SPECIAL_ANTHRAX_BOMB
SPECIAL_BLACK_MARKET_NUKE
SPECIAL_AMBUSH
SPECIAL_TERROR_CELL
SPECIAL_DEFECTOR
SPECIAL_SPY_SATELLITE
SPECIAL_NEUTRON_MISSILE
SPECIAL_CASH_HACK
SPECIAL_NAPALM_STRIKE
SPECIAL_EMP_PULSE
SPECIAL_CLUSTER_MINES
SPECIAL_CARPET_BOMB
SPECIAL_PARADROP_AMERICA
SPECIAL_DAISY_CUTTER
SPECIAL_INVALID

You might also like