;-------------------------------------------- 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 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