AoE3DE Comprehensive Data Guide ProtoUnit and ProtoAction Data

注:原作者不明

ProtoUnits (protoy.xml)

Attributes

● Legacy

-       DBID: Sets the DBID for the ProtoUnit. Used for Post-Game and MP stat collection. It’s a good practice to assign a unique DBID for every new protoUnit, even though it’s not required for proper game functionality.

-       Icon: WPF path for unit icon, relative to Data\wpfg.

-       PortraitIcon: WPF path for unit portrait, relative to Data\wpfg.

-       MinimapIcon: Path to minimap icon texture, relative to the Art folder.

-       MinimapColor: ProtoUnit minimap colour. Takes RGB colour parameters, which expect floating point values in the [0.0, 1.0] interval.

<MinimapColor red='1.0000' blue='1.0000' green='1.0000'></MinimapColor>

-       MinimapShape: If set to 1, the minimap indicator becomes smaller if protoUnit is under the fog of war. Unused, but still functional. Original intended purpose unknown.

-       MinimapSize: Size of minimap indicator. Defaults to 2.0, if not set.

-       AnimFile: Path to protoUnit animfile, relative to the Art folder.

-       PlacementFile: Path to protoUnit placementRules file, relative to Data\placement rules.

-       DisplayNameID: String ID for protoUnit displayed name.

-       EditorNameID: String ID for protoUnit displayed name in Scenario Editor listing.

-       RolloverTextID: String ID for protoUnit long rollover.

-       ShortRolloverTextID: String ID for protoUnit short rollover.

-       WorldTooltipStringID: String ID to be used for the persistently displayed world tooltip. Appears to be intended to be somehow used in the Grand Conquest game mode or in some sort of tutorial mode, different from the one in the retail release. Unused, but still functional. Requires WorldToolTip protoUnitFlag to be set for proper functionality.

-       ClassNameID: AoM Leftover. String ID for protoUnit class to be displayed in long rollover. Unused, but still functional.

-       GoodAgainstStringID: AoM Leftover. String ID for protoUnit “Good Against” text to be displayed in long rollover. Unused, but still functional.

-       BadAgainstStringID: AoM Leftover. String ID for protoUnit “Bad Against” text to be displayed in long rollover. Unused, but still functional. -              MaxHitpoints: ProtoUnit maximum amount of hitpoints -              InitialHitpoints: ProtoUnit initial amount of hitpoints.

-       LOS: ProtoUnit Line of Sight.

-       MaxVelocity: ProtoUnit base speed value.

-       MaxRunVelocity: Appears to be protoUnit maximum speed for running,either when triggered through trigger effects or through extra speed gained through performing attack actions with the SpeedBoost flag set. Used in calculations that define when Jog and Run anims should be used by the unit.

-       MovementType: Defines which terrains the unit can move through.

-       TurnRate: ProtoUnit turning/rotation rate.

-       BatchTrainNumber: Unused and deprecated. Original purpose unknown.

-       UnitAIType: ProtoUnit UnitAI type. Used for auto-attack behaviour, target selection, and other features related to overall unitAI handling.

-       InitialUnitAIStance: AoM leftover. Defines the initial stance for the UnitAI (Aggressive, Defensive, Passive or StandGround). Likely overridden by SquadMode data.

-       PopulationCount: ProtoUnit population count.

-       SubCiv: Restricts the training of this protoUnit to being allied to a particular minor civilization, or to a Native Settlement belonging to the specified minor civilization. Binds the unit build limit to a multiple of the alliance level towards the defined minor civilization and the number of Trading Posts built over Native Settlements belonging to it.

-       TrainPoints: Total amount of time in seconds required to train protoUnit.

-       Cost: ProtoUnit cost. Takes one parameter, resourcetype, which sets the resource type for each entry.

-       CostEscalation: Multiplicative factor to be applied over protoUnit’s cost for every instance of the same protoUnit queued or in the map. Unused, but functional.

-       ScoreValue: ProtoUnit contribution to player score when trained or built. If set, overrides default value calculated from the cost.

-       InitialResource: Initial amount of resources carried by the unit. Takes one parameter, resourcetype, which sets the resource type

<InitialResource resourcetype='Food'>50.0000</InitialResource>

-       InitialXP: Unused and deprecated.

-       CarryCapacity: Maximum amount of resources that can be carried by the unit. Takes one parameter, resourcetype, which sets the resource type. For units that don’t carry resources, sets the resource types it’s allowed to gather from when performing a Hunting action.

<CarryCapacity resourcetype='Food'>500.0000</CarryCapacity>

-       GathererLimit: Maximum number of units that can gather from this unit at a given time.

-       BuilderLimit: Maximum number of units that can build this unit when at foundation state at a given time.

-       ContainedSpeedBonus: Unused in AoE3 Legacy. In AoE3DE, defines how much each garrisoned unit contributes to its speed. Applied linearly.

-       ObstructionRadiusX: ProtoUnit obstruction radius in the X axis.

-       ObstructionRadiusZ: ProtoUnit obstruction radius in the Z axis.

-       ObstructionRadius: ProtoUnit obstruction radius in both X and Z axes. Unused, but functional.

-       FlattenTerrainExpand: Appears to define the additional radius by which the protoUnit causes the terrain to be flattened, when placed as a building.

-       AllowedHeightVariance: Maximum elevation height variance allowed over the area where the protoUnit is to be placed.

-       WanderDistance: Wandering distance value used by huntable herds.

-       BuildPoints: Total amount of time in seconds required to build protoUnit, when working at a 1.0 Work Rate over the Foundation.

-       BuildingWorkRate: Work rate value used by training, researching and maintaining (auto-spawn) actions.

-       IdleTimeout: AoM Leftover. Unused and deprecated.

-       BoredTimeout: AoM Leftover. Unused and deprecated.

-       RechargeTime: Recharge time used by Charged Actions/Abilities.

-       CorpseDecalTime: Unused and deprecated. Original purpose unknown.

-       CorpseDecayDelay: Delay time in seconds before decay ‘sinking’ happens after unit death.

-       Lifespan: ProtoUnit lifespan.

-       Decay: Defines the delay time and the duration of decaying fadeout. Takes two parameters, decay and duration.

<Decay delay='0.0000' duration='2.0000'></Decay>

-       PopulationCapAddition: Amount of population capacity to be added to player’s population once protoUnit is fully built.

-       DeadReplacement: ProtoUnit to be placed upon destruction.

-       BuildReplacement: ProtoUnit that replaces originally placed unit once it’s fully built.

-       Footprint: Unused and deprecated.

-       BuildLimit: ProtoUnit build limit.

-       MaxContained: Maximum number of garrisoned units allowed.

-       ProjectileProtoUnit: Projectile unit to be used for ranged attack actions that do not explicitly define a projectile unit. Unused by common ranged units, but functional.

-       ResourceDecay: Resource decay rate for dead herdables and huntables.

-       SocketUnitType: Unit type where the protoUnit can be placed over, serving as a socket for the unit.

-       SocketOffsetX: Offset for socket placement in the X axis.

-       SocketOffsetZ: Offset for socket placement in the Z axis.

-       AutoAttackRange: ProtoUnit auto-attack range.

-       ResourceSubType: ProtoUnit resource subtype. Used for defining the gather cursor and by resource tasking code.

-       CreationFadeTime: Unused and deprecated. Original purpose unknown.

-       ProjectileSpinPeriod: Spinning period for projectile protoUnits. Causes projectiles to spin at the set period when shot. Unused, but functional.

-       HeightBob: AoM leftover. Causes the altitude of flying units to slightly oscillate by periods of time while idle. Takes two parameters, period and magnitude. Unused, but likely functional

<HeightBob period="6.0000" magnitude="2.0000"></HeightBob>

-       PartisanType: Partisan protounit to be spawned upon building’s destruction, if partisans are enabled in the current civilization. Unused, but functional.

-       PartisanCount: Amount of partisan units to be spawned, if PartisanType is properly set and partisans are enabled in the current civilization. Unused, but functional.

-       Bounty: Amount of XP to be granted to enemy players upon the unit’s destruction. From Knights of The Mediterranean AoE3DE DLC onwards, it can take a resourcetype attribute, allowing the assignment of rewards of different resources, besides XP.

-       BuildBounty: Amount of XP to be granted upon unit training or building full construction. From The African Royals AoE3DE DLC onwards, it can take a resourcetype attribute, allowing the assignment of build rewards of different resources, besides XP.

<BuildBounty>7.0000</BuildBounty>

<BuildBounty resourcetype='Wood'>7.0000</BuildBounty>

-       SoundVariant: AoM leftover. Unused, liikely deprecated or rendered obsolete.

-       BallisticSplashProto: AoM leftover. ProtoUnit for SFX to be rendered upon projectile colliding on water. Unused, and, most likely, rendered obsolete by impact effect data.

-       BallisticBounceProto: Unused and deprecated.

-       BallisticImpactProto: AoM leftover. ProtoUnit for SFX to be rendered upon projectile colliding against structures. Unused, and, most likely, rendered obsolete by impact effect data.

-       GrantsPower: Unused and deprecated. Original purpose unknown.

-       GrantsPowerDuration: Unused and deprecated. Original purpose unknown.

-       ImpactType: ProtoUnit impact type. Used for impact effects rendering.

-       PhysicsInfo: Path to protoUnit physics info files, relative to Data\physics.

-       SelectionPriority: ProtoUnit selection priority value.

-       AllowedAge: Minimum age required to build or train the unit.

-       Armor: ProtoUnit Armor. Takes two parameters, type and value. From The African Royals AoE3DE onwards, protoUnits can have multiple functional Armor entries pointing to different damage types.

<Armor type='Ranged' value='0.7500'></Armor>

-       SlotCount: Attribute intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       AutoGatherType: Resource type for auto resource tasking. Unused, but likely functional.

-       PlacementBuffer: Additional avoidance radius to be used at building placement. Unused, but likely functional.

-       AnimStateMachine: Path to protoUnit animation state machine file, relative to Data\animstatemachine

-       ButtonPos: AoM leftover. Unused and deprecated.

-       Train: Adds a unit to the protoUnit’s command panel. Takes three parameters: row, page, column. Despite being always set and processed by the game, the row parameter is effectively unused.

<Train row='0' page='0' column='3'>Skirmisher</Train>

From the original AoE3DE onwards, it can take a trShow attribute which, when set on a Train entry on the Trading Post, will force the unit to be shown in Trading Posts placed on Trade Routes.

<Train row='0' page='0' column='3' trshow='1'>deChasqui</Train>

-       Tech: Adds a tech to the protoUnit’s command panel. Takes three parameters: row, page, column. Despite being always set and processed by the game, the row parameter is effectively unused.

<Tech row='0' page='2' column='1'>NatBowyery</Tech>

From the original AoE3DE onwards, it can take a natShow attribute which, when set on a

Tech entry on the Trading Post, will force the technology to be shown in Trading Posts placed on Native Settlements, regardless of the civilization.

<Tech row='0' page='1' column='3' natshow='1'>deMightyTambos</Tech>

-       Command: Adds a ProtoUnitCommand to the protoUnit’s command panel. Takes two parameters: page, column.

<Command page='10' column='2'>SetGatherPointEconomy</Command>

-       Contain: Allows the set unitType to be garrisoned within the unit. Can take the following parameters:

       external: If set to 1, contained units will be rendered outside containing building or unit.

       popException: If set to 1, contained units of the given type won’t have their population accounted for, while they are garrisoned. Available from original AoE3DE release onwards.

       popDiscount: Deducts set value from the population of garrisoned units of the given type. Available from original AoE3DE release onwards.

       inDelay: Delay time in seconds for garrisoning units of the given unit type. Available from Knights of the Mediterranean AoE3DE DLC onwards.

       outDelay: Delay time in seconds for ejecting units of the given unit type. Requires MeteredGarrison protoUnit flag to be set in container for proper functionality. Available from Knights of the Mediterranean AoE3DE DLC onwards.

 - Tactics: Path to protoUnit tactics file, relative to Data\tactics.

● Definitive Edition

-       SocketedMinimapIcon: Path to minimap icon texture to be used by building if it’s placed over a socket, relative to the Art folder.

-       CivFlagOverride: Path to civilization flag texture, relative to the Art folder, to be used instead of the flag of the current civilization.

-       LegacyHotkeyContext: Hotkey context to be used for Legacy hotkey keybinding. Should be set to a valid hotkey context.

-       UnitHelpOverride: ProtoUnit of the help/history/compendium entry to be used, instead of the one of the current protoUnit.

-       KnockoutTextID: String ID to be used for the knockout message.

-       KnockoutRescueHitpointRatio: Minimum hitpoint ratio in which rescuing a

knocked-out unit by bringing friendly units to its vicinity is allowed. If it’s not set, default hardcoded values will be used, according to the civType.

-       HoverTextOverride: String ID to be used when hovering over a foundation of this particular protoUnit. Uses default hardcoded formatted string, if not set.

-       BuildTextOverride: String ID to be used for the notification text once the building is fully built. Uses default hardcoded formatted string, if not set.

-       ContainedHitPointBonus: Defines how much each garrisoned unit contributes to its hit points. Applied linearly.

-       PlacementObstructionRadiusX: Obstruction radius to be used while placing foundations in the X axis. Used by buildings with crops, whose placement is restricted by ObstructionAtLeastFromType conditions.

-       PlacementObstructionRadiusZ: Obstruction radius to be used while placing foundations in the Z axis. Used by buildings with crops, whose placement is restricted by ObstructionAtLeastFromType conditions.

-       FarmingRadiusX: Radius of the walkable area of a farm building in the X axis. Requires the UseFarmingAnims protoUnit flag to be set for proper functionality.

-       FarmingRadiusZ: Radius of the walkable area of a farm building in the Z axis. Requires the UseFarmingAnims protoUnit flag to be set for proper functionality.

-       FarmingNumStops: Number of different positions an unit can move to after finishing a gathering cycle in a farming building, including its current position. Can’t be set to a value lower than two. Requires the UseFarmingAnims protoUnit flag to be set for proper functionality. If it’s not set, it will default to the hardcoded value of 8.

-       FarmingObstructionRadiusX: Obstruction radius in the X axis to be used by farming code. Doesn’t affect farm placement or building.

-       FarmingObstructionRadiusZ: Obstruction radius in the Z axis to be used by farming code. Doesn’t affect farm placement or building.

-       ChargeUsageTime: Amount of time in seconds in which the main Charged Action is usable, after it’s first triggered.

-       AuxRechargeTime: Recharge time used by Secondary Charged Actions/Abilities.

-       AuxChargeUsageTime: Amount of time in seconds in which the secondary Charged

Action is usable, after it’s first triggered.

-       DodgeChance: Chance of dodging an attack. Defaults to a hardcoded value if not set. Requires protoUnit flag CanDodgeAttacks to be set for proper functionality.

 


-

-

DodgeMessageID: String ID of the floating text message to be used when successfully dodging an attack. Defaults to a hardcoded value if not set. Requires protoUnit flag CanDodgeAttacks to be set for proper functionality.

DodgeSoundSet: Soundset to be played when successfully dodging an attack. Defaults to a hardcoded value if not set. Requires protoUnit flag CanDodgeAttacks to be set for proper functionality.

-       SharedBuildLimitUnit: ProtoUnit whose build limit value should be used for shared build limit. Requires protoUnit flag UseSharedBuildLimit to be set for proper functionality.

-       SharedBuildLimitUnitTypes: Lists unit types or protoUnits which should be accounted for the shared build limit. Requires protoUnit flag UseSharedBuildLimit to be set for proper functionality.

<SharedBuildLimitUnitTypes>

<UnitType>Outpost</UnitType>

<UnitType>OutpostWagon</UnitType>

<UnitType>deUSOutpostWagon</UnitType>

<UnitType>deStateCapitolTrainOutpostWagon</UnitType>

</SharedBuildLimitUnitTypes>

-       CommunityPlazaWeight: Defines how many workers this unit should count as when gathering at a Community Plaza or a building which uses gathering place logic.

-       CommunityPlazaLimit: Defines how many instances of this particular unit can gather at the same time at a Community Plaza or a building which uses gathering place logic.

-       ConversionResistance: Multiplies the conversion time for this unit by the given value.

-       DisplayedRange: Overrides the displayed range value by the given value. Requires protoUnit flag DisplayRange to be set for proper functionality.

-       ScalingAuraScale: Factor by which aura attachments will be scaled for this unit.

-       AgeUpCostAbsoluteMultiplier: Multiplier to the value by which kill bounties obtained by this unit contribute to the age-up discount.

-       ResourceReturn: Amount of resources to be given to the player in case the unit or building is destroyed. Resources aren’t given if the unit or building was deleted, unless if the ApplyResourceReturnIfDeleted protoUnit flag is set. Takes one parameter, resourcetype, which sets the resource type

<ResourceReturn resourcetype='Gold'>100.0000</ResourceReturn>

-       ResourceReturnRate: Amount of resources to be given to the player, as a rate of the current cost of the unit, in case the unit or building is destroyed. Resources aren’t given if the unit or building was deleted, unless if the ApplyResourceReturnIfDeleted protoUnit flag is set. If the protoUnit flag ResourceReturnRateTotalCost is set, it will account for the total cost of the unit in resources.

<ResourceReturnRate resourcetype='Gold'>0.5000</ResourceReturnRate>

-       GatherRateMultiplier: Rate by which the gather rate of an unit gathering from an instance of this protoUnit will be multiplied.

-       SharedSelectionUnitTypes: List of unitTypes which will share double-selection with this unit.

<SharedSelectionUnitTypes>

<UnitType>deEmir2</UnitType>

</SharedSelectionUnitTypes>

-       NotContain: Forbids the set unitType from being garrisoned within the unit.

-       StealthDiscoveryRadius: Defines the minimum distance in which an enemy unit without the AbstractCanSeeStealth flag can cause this unit to be discovered when in Stealth mode.

-       InitialTactic: Default tactic to be used by instances of the protoUnit upon creation.

-       DeadTransform: ProtoUnit to which the current unit will be transformed to upon reaching zero hitpoints.

-       TrainBatchSize: Defines the size of each unit training batch, overriding the default value of 5 units.

-       UnitSellCommand: Defines the protoUnitCommand through which this unit can be sold, through the uiSellUnit console syscall.

-       UnitSellRate: Defines the rate in which the unit cost will be exchanged upon the usage of the unit selling command for this unit. Set to 1.0 by default.

-       BuildLimitIncrement: Additional build limit for protoUnit, which, for Native Settlement units, isn’t scaled with the Alliance Level or the number of Trading Posts for the protoUnit’s subCiv.

-       SkinIcon: WPF path for unit icon for a given skin, relative to Data\wpfg. Takes one parameter, id, which denotes the ID of the skin for which the given icon will be used.

Only applies for Hero units which support custom skins.

-       SkinPortrait: WPF path for unit portrait for a given skin, relative to Data\wpfg. Takes one parameter, id, which denotes the ID of the skin for which the given portrait will be used. Only applies for Hero units which support custom skins.

-       FakeCard: Adds a non-HomeCity shipment to the protoUnit’s command panel. Takes three parameters: row, page, column. Despite being always set and processed by the game, the row parameter is effectively unused.

<FakeCard row='0' page='2' column='1'>DEBasilicaShipSpy1</FakeCard>

-       PanelNameID: String ID for protoUnit displayed name in socket panel, if supported by the unit.

-       PanelRolloverID: String ID for protoUnit displayed rollover text in socket panel, if supported by the unit.

-       AIStanceBaseDistance: Base distance to be used for unit auto-attack reaction when its AI Stance is set to Defensive. Set to 30, by default.

ContainedRegenRate: Percentage-based regeneration rate for garrisoned units within the protoUnit. Only applies for buildings; overrides DefaultContainedRegenRate in base civilization data.

FreeBuildPoints: Total amount of time in seconds required to build protoUnit for free through a unit belonging to the AbstractFreeBuilder unit type (e.g. Italian Architect) when working at a 1.0 Work Rate over the Foundation.

-       SocketBuildProtoUnit: ProtoUnit to be built as a socketed building over the current unit when a socketBuild command is applied.

-       SocketBuildRate: Rate in which a socketBuild command will build the building referred through the SocketBuildProtoUnit attribute.

-       Recharge: Recharge value used by the Primary Charged Actions/Abilities, which, unlike the RechargeTime attribute, can be tied to variables other than elapsed time. Takes two parameters, type and init, which are described as follows:

       type: Defines the variable to be taken in account for charging. Can be set to Time

(elapsed time, same behaviour as RechargeTime), Kills (number of kills), Damage (total amount of damage inflicted) or Attacks (number of hits inflicted by the unit.

       init: Should be set to 1 if Charged Ability is supposed to start charged and ready to use as soon as the unit is created, or 0, otherwise. Set to 1 by default.

-       AuxRecharge: Recharge value used by the Secondary Charged Actions/Abilities, which, unlike the AuxRechargeTime attribute, can be tied to variables other than elapsed time. Takes the same parameters as Recharge.

-       DeploymentCommand: ProtoUnit command used for deployment of units currently garrisoned and that effectively replaces the default Ungarrisson command. Requires DeploymentUngarrison protoUnit flag to be set for proper functionality.

-       DetonationProtoAction: ProtoAction to be triggered for detonation upon death.

Requires DetonationDeath protoUnit flag to be set for proper functionality.

-       DetonationCommand: ProtoUnit command which is supposed to initiate detonation process and effectively replaces the default deletion command. Requires DetonationDeath protoUnit flag to be set for proper functionality.

-       DetonationHitpointThreshold: Hit point ratio which, when reached, causes protoUnitCommand set through the DetonationCommand attribute to be triggered, effectively initiating the detonation process.

-       DetonationHitpointDecay: Rate in which unit hitpoints will decay after detonation hitpoint threshold is reached.

-       RoundelTierCount: Number of rows of cannons to be taken in account for Roundel Attack actions.

-       DisabledDuringNoRush: When set to 1, building won’t be constructible while Treaty period is active.

-       VeterancyBonus: Defines bonuses to be applied to the unit upon reaching specific veterancy ranks. Bonuses for each rank are defined through VeterancyModify children notes, which take a modifyType attribute that should be set to a valid modify type. Requires ExperienceUnit protoUnit flag to be set for proper functionality.

<VeterancyBonus>

<Rank id='0'>

 


-

-

-

-

<VeterancyModify modifyType='MaxHP'>1.15</VeterancyModify>

<VeterancyModify modifyType='ROF'>0.85</VeterancyModify>

</Rank>

<Rank id='1'>

<VeterancyModify modifyType='MaxHP'>1.30</VeterancyModify>

<VeterancyModify modifyType='ROF'>0.70</VeterancyModify>

</Rank>

<Rank id='2'>

<VeterancyModify modifyType='MaxHP'>1.45</VeterancyModify>

<VeterancyModify modifyType='ROF'>0.55</VeterancyModify>

</Rank>

</VeterancyBonus>

Flags

    Legacy

-       NoUnitAI: Self-explanatory.

-       NotPlayerPlaceable: Causes the unit to not be directly placeable through the Editor

-       StartEnabled: Unit starts enabled, without the necessity of being explicitly enabled by any technology.

-       NotAlive: Self-explanatory.

-       TieToWaterSurface: Self-explanatory.

-       FlyingUnit: Self-explanatory.

-       NoTieToGround: Self-explanatory.

-       Collideable: Self-explanatory. Set by default.

-       NonCollideable: Self-explanatory.

-       Immoveable: Self-explanatory.

-       NoHPBar: Self-explanatory.

-       DieAtZeroHitpoints: Self-explanatory. Set by default.

-       DoNotDieAtZeroHitpoints: Self-explanatory.

-       DieAtZeroResources: Self-explanatory.

-       DoNotDieAtZeroResources: Self-explanatory.

-       ValidateResourceInventory: Forces the game to verify current unit resource inventory against the carry capacity for each resource, and adjust it accordingly. Set by default.

-       DoNotValidateResourceInventory: Causes unit resource inventory to not be checked against the carry capacity for each resource.

-       NoBloodOnDeath: Self-explanatory.

-       BloodOnDeath: Self-explanatory. Set by default.

-       DoesNotHaveGatherPoint: Self-explanatory. Set by default.

-       HasGatherPoint: Self-explanatory.

-       PlayerPlaceable: Set by default.

-       NonSolid: Causes unit or building obstruction to not block units from passing through.

-       Selectable: Self-explanatory. Set by default.

-       NotSelectable: Self-explanatory.

FlattenGround: Self-explanatory.

FadeInOnCreation: Causes units to have a fade-in effect after being created. Unused, but seemingly functional.

ObscuresUnits: Self-explanatory.

ObscuredByUnits: Self-explanatory.

NotObscuredByUnitsAsFoundation: Self-explanatory.

-       DoNotShowOnMinimap: Self-explanatory.

-       NonAutoFormedUnit: Causes units to not adopt formations automatically.

-       DontRotateObstruction: Causes actual obstruction to be rotated accordingly to be building orientation.

-       DoNotCreateUnitGroupAutomatically: Causes unit to not automatically be added to a Squad once it’s instantiated.

-       VisibleUnderFog: Self-explanatory.

-       VisibleUnderFogIfGaia: Self-explanatory.

-       AlphaFadeLifespan: If Lifespan is set for the protoUnit, causes the fade-out to begin as the lifespan time starts to be counted.

-       Wanders: Causes units to wander. Used for herdables and huntables. Seems to only affect GAIA-owned units.

-       CollidesWithProjectiles: Self-explanatory.

-       Projectile: Self-explanatory.

-       FadeInOnBuild: Causes buildings to have a fade-in effect after being fully built.

-       NotSearchable: Causes the unit to not be accounted for internal visible unit lookups.

-       UnlimitedSupply: Used for resource storages with unlimited supply of resources.

-       FaceOutwards: Causes unit to be placed facing the lowest terrain point. Unused, but likely functional.

-       SnapPlacement: Allows socketed buildings to properly snap into sockets during placement.

-       SplitAtMaxInventory: Unused and deprecated.

-       FadeOutDuringDeathAnimation: Causes fade out to start as the death animation begins.

-       ForceToGaia: Self-explanatory.

-       DoNotYawDuringMovement: Intended to cause units to not rotate/turn while moving. Unused, but likely functional.

-       MarketAbility: Unused and deprecated.

-       GivesLOSToAll: Self-explanatory.

-       Doppled: Causes the unit to leave a doppelganger when under fog.

-       NotDeleteable: Self-explanatory.

-       GarrisonBonus: Unused and deprecated.

-       GarrisonSpeedBonus: Unused and deprecated.

-       DestroyProjectile: If set on a projectile protoUnit, causes it to be destroyed after reaching the target.

-       OnlyInEditor: Self-explanatory.

-       CannotAttackDisabledUnits: AoM Leftover. Unused and deprecated. - OrientUnitWithGround: Causes unit to orient itself with the ground.

AlwaysFullColorAsCursor: Determines whether or not we check obstructions and alter the color of this as a cursor item.

ConstrainOrientation: Enables orientation constraints for the code that orients a unit with the ground.

InitialGarrisonOnly: AoM leftover. Unused and deprecated.

-       WallBuild: Self-explanatory.

-       ShowGarrisonButton: Unused and deprecated.

-       NotCommandable: Causes unit to not be able to take commands.

-       KillOnAnimLoop: Causes unit to be killed on next animation loop.

-       AlwaysCheckCollisions: Unused and deprecated. Original purpose unknown.

-       AreaDamageConstant: Causes the area damage inflicted by the unit to not vary with distance from the original attack target position. Unused, but functional.

-       NoIdleActions: Causes internal idle action to not be processed for this unit.

-       NoProjectileDamage: Causes projectile unit to inflict no damage.

-       PlaceAnywhere: Disables placement checks entirely.

-       ProjectileTerrainOnly: Forbids projectile unit from colliding against units. Unused, but likely functional.

-       PlayerOwnsObstruction: Used for Gate functionality.

-       PlaceSocketWhenPlacing: Causes Socket protoUnit to be placed once the building is placed. Unused, but likely functional. Requires SocketUnitType to be set to a protoUnit, instead of an UnitType.

-       AlwaysShowAsSocket: Causes socket unit to remain visible after it’s occupied.

-       StartOnAnimationUpdate: Causes unit to be initialized with persistent updates (i.e. for unit AI or persistent actions) disabled, except for animation updating.

-       StartOnNoUpdate: Causes unit to be initialized with persistent updates (i.e. for unit AI or persistent actions) disabled.

-       DeadReplacementWhenDestroyed: When set, causes the dead replacement to be only placed when the unit is actually destroyed, and not right after death/killing is triggered.

-       AnnounceConversion: AoM leftover. Causes a notification to be sent to all players when building is upgraded/transformed. Should be deemed deprecated, unless if upgrading/transforming, as used in AoM Settlements, can be performed over AoE3’s iteration of the BANG engine.

-       SelectWithObstruction: If set, selection will also account for unit obstruction.

-       ConvertOnStartBuild: AoM leftover. Causes building to be converted to player as soon as upgrading/transforming process starts.

-       PlaceAsFoundation: Forces building to be not fully built on scenario load or when placed in the editor.

-       ConvertToGaiaAtZeroHitpoints: AoM leftover. Returns object to Gaia control at zero hitpoints. Unused, but likely functional.

-       MakeUnbuiltAtZeroHitpoints: Resets all construction progress when the unit hits zero hitpoints. Unused, but likely functional.

-       ExcludeFromPlaytest: AoM leftover. Unused and deprecated.

SolidFoundation: Causes foundations to be solid and collideable at placement.

 


-

HideGarrisonFlag: Causes Garrison Flag to not show up over unit/building if it has garrisoned units. Unused, but functional.

DoppleOnlyWhenDead: If set, unit will only leave a doppelganger under fog when dead. Used for trees.

DirectProjectile: If set, launched projectiles fly direct in a straight line to their target. Unused, but likely functional.

-       ForceBuildingData: If set, causes internal Building Data, containing attributes like Building Work Rate, to be initialized for the unit, even if it’s not a building.

-       DecalStickToWaterSurface: If set, the decal will be computed using water vertices when over water.

-       AllowAutoGarrison: Allows auto-garrisoning by right-clicking for garrisonable units.

-       OverrideInitialGarrison: AoM leftover. Unused and deprecated.

-       TownBellButton: Unused and deprecated.

-       MeteredGarrison: Causes ungarrisoning/ejection to be done unit per unit, internally. Unused, but functional.

-       RevealFoundation: AoM leftover. When set, causes this building's location to be revealed to all when first worked upon. Unused, but functional.

-       ColorTransformNonGaia: When set, causes the minimap icon to use the player color when unit is converted from gaia

-       ApplyHandicapTraining: Unused and deprecated.

-       Tracked: Causes the unit to be accounted for by KB lookups.

-       VisibleOwnerOnly: Makes the unit become only visible to owner and allies.

-       HideFromHelp: AoM leftover. Unused and deprecated.

-       HideResourceInventory: AoM leftover. Unused and deprecated.

-       NotRotateable: Forbids object or building from being rotateable at placement.

-       DestroyUnderBuilding: Causes the object to be deleted once a building foundation is placed over it.

-       NotScalable: Unused and deprecated. Possibly a leftover of scaling feature.

-       GodPowerExclusion: AoM leftover. Intended to prevent special powers/abilities from being targeted under the vicinity of the unit/building, akin to Isis monuments and Theia Hesperides Trees in AoM. Unused, but likely functional.

-       Invulnerable: Self-explanatory.

-       DeadReplaceOnlyOnTimeout: Limits dead replacement only to deaths due to lifespan expiring. Unused, but functional.

-       SingleGatherer: AoM Leftover. Unused and deprecated.

-       InvulnerableIfGaia: Self-explanatory.

-       CorpseDecays: Determines if unit is supposed to get corpse decals when the it dies.

-       HideHitpointsIfGaia: AoM Leftover. Unused and deprecated.

-       FlareOnFullyBuilt: AoM leftover. Unused and deprecated.

-       AnnounceFoundationStarted: AoM leftover. Unused and deprecated.

-       VictoryBuilding: AoM leftover. Unused and deprecated.

-       PaintTextureWhenPlacing: If set, forces the editor to paint down a suitable texture underneath if required.

-       Burnable: AoM leftover. Unused and deprecated.

MutateDopples: AoM leftover. Causes fog of war doppelgangers to be updated, in case base unit got mutated to another unitType.

InvalidTownBellLocation: Prevents building from receiving units for garrison from Town Bell activation.

UseObstructionOnMinimap: AoM leftover. Unused and deprecated.

-       UseAlignedObstructionOnMinimap: AoM leftover. Unused and deprecated.

-       RenderAfterWater: Unused and deprecated.

-       DontSortAlphaPolys: Unused and deprecated.

-       DontMarkExtraFog: Causes unit to not mark additional fog (unveil nearby fogged units)

-       VisibleUnderFogOnlyAfterSeen: If set, unit will become visible under the fog, if it had seen before by the player.

-       RMCanRotate: Allows unit to be rotated by RM placement.

-       KnockoutDeath: Enables hero death for unit.

-       VariationLocked: Causes unit graphical variation to be set into unit data upon scenario save.

-       ExperienceUnit: Causes kills of military units performed by this unit to be internally tracked by the unit’s dynamic data. Has no practical effect over the game or the UI for Legacy, but for Definitive edition, as of Knights of the Mediterranean DLC onwards, is required for the usage of the Veterancy system on units.

-       FadeOutDecalOnDeath: Causes unit decal to fade out upon death.

-       AnnounceDestruction: AoM leftover. Causes a notification to be sent to all players when destroyed. Unused, but likely functional.

-       BattleMusicTrigger: AoM Leftover. Unused and deprecated.

-       RotateInPlace: If set, allows units to rotate even if they are immovable

-       AdjustPositionOnTerrainCollision: If set, this unit will stop moving at the point of impact, and move to the point of intersection.

-       HeroName1: Causes unit to use randomly generated names, out of patterns defined in randomnames.xml. As of AoE3 original release onwards, HeroName1 and HeroName2 have the exact same functionality.

-       HeroName2: Causes unit to use randomly generated names, out of patterns defined in randomnames.xml. As of AoE3 original release onwards, HeroName1 and HeroName2 have the exact same functionality.

-       HideCostFromDetailHelp: AoM Leftover. Unused and deprecated.

-       PreventsWallBuilding: Should be set true for buildings/objects that won't allow a wall nearby. Unused, but functional.

-       ColonyBuilding: Unused and deprecated. Likely a leftover of the old Colony system.

-       StartingColonyBuilding: Causes building to trigger starting units spawning upon first placement.

-       ColonyPlacementCenter: Unused and deprecated. Likely a leftover of the old Colony system.

-       ColonyPlacementL: Unused and deprecated. Likely a leftover of the old Colony system.

-       CreateUniqueInstance: Causes every instance of this unit to use its own instance of protoUnit data. Used for Trading Post functionality.

TileAlignPlacement: If set, item snaps to tile aligned locations when placing.

Nugget: Self-explanatory.

-       WorldToolTip: Causes persistent world tooltip to be displayed for the unit, while it’s alive. Persistent world tooltip will use WorldTooltipStringID for its text.

-       OrientWithRiver: Causes unit to orient itself with river flow.

-       TCBuildLimit: Causes unit to use shared TownCenter-Covered Wagon Build Limit.

-       PerimeterGenerator: ProtoUnit flag intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       Airfield: ProtoUnit flag intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       Blocker: ProtoUnit flag intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       LockedSquad: Groups trained units within the same squad when block training. Unused, and likely only partially functional, since actual squad-locking isn’t supported by the game engine anymore.

-       SelectOnTrain: Causes unit to be selected once it’s trained. Unused, but likely functional.

-       PlaceAnywhereRules: Forces building to abide by placement rules, even if PlaceAnywhere protoUnit flag is set.

-       ForcePopulationImpactWhenPlaced: Enforces population impact right when building foundation is placed

-       CanAutoHeal: Specifies units that can auto-heal other units.

-       ExcludeFromMoveAllMilitary: Self-explanatory.

-       DoNotShowAutoGatherRate: If set, causes AutoGather action information to not be shown in the UI.

-       CanTargetButTakesNoDamage: Self-explanatory.

-       YPUsesExtraWorkerSlot: Causes units to take two worker/gatherer slots when working/gathering.

-       YPForceTrainAtBaseTrainPoints: Forces units trained or maintained at this unit/building to use their base train points.

-       AllowOverPopCap: Allows unit to be trained, if there’s at least one free population slot, regardless if player will go over population capacity afterwards.

-       ShowTactics: Causes building tactics defined through protoUnitCommands to be displayed in the UI.

-       EnterHotkeyContext: Allows building to have a proper hotkey context and, thus, accept hotkeys, even if it doesn’t train units.

-       CivSpecificText: Allows this unit to properly use civilization-specific text in its tooltip, based on civ keys.

-       AlwaysAllowOverPopCap: Forces unit to be trained, even if there are no free population slots.

-       NeverCountDeathAsLoss: Causes unit’s death to not be counted as loss for stat tracking.

    Definitive Edition

 


-

CantBeSlowed: Forbids unit from being affected by snaring/TargetSpeedBoost.

-       BuildingShowTactics: Causes building tactics defined through protoUnitCommands to be displayed in the UI.

-       AllowTrainingOnWater: Allows unit to be trained from a non-land unit.

-       GatherFromTrees: Allows non-AbstractVillager units to gather from trees properly.

-       DrawnToCrates: Forces unit to auto-gather from nearby crates.

-       DisplayRange: Causes unit range to be displayed as a decal upon selection. Rendered obsolete with recently implemented game options, which allow displaying range for all units/buildings.

-       InvulnerableToAreaDamage: If set, this unit cannot receive any kind of damage from area attacks.

-       DoNotDragSelectWithUnits: If set, this unit won't be selected with other UnitClass units when drag-selecting.

-       TownDefenseUnit: Intended to denote short-duration levied units. Obsolete.

-       DontTrainInBatches: Prevents batch training and forces train limit per action to 1.

-       KillIfConverted: If set, unit is automatically killed after being successfully converted/captured.

-       ShowUnitResourceActionRates: If set, current resource rates for UnitResource actions (i.e. Torp) are displayed in the UI.

-       SettlerBuildLimit: If set, unit will share build limit with all units with the

LogicalTypeSettlerBuildLimit unittype set, and will use the build limit of that civilization’s Settler/Villager unit.

-       UseSharedBuildLimit: If set, unit will use the generic shared build limit.

-       InflictsNoDamage: If set, unit should not inflict any damage when attacking, regardless of protoAction attributes. Attacks performed by this unit will still raise warnings for enemies.

-       DisplayDecoyInfo: If set, displays fake unit info (portrait and rollovers) to enemies.

-       CanDodgeAttacks: Enables dodging behaviour for non-Japanese Monk units.

-       NextResearchIsFree: Forces the immediate next research to be added to the queue in a building to be free.

-       DisableBigButtonUI: If set, no UI slots will be reserved for big button, if building belongs to a native civ (civType 1).

-       UnitTransformFree: If set, transforming to this unit won't cost any resources.

-       UseFarmingAnims: If set, units will move around the gather site while gathering from it, akin to Mills and Farms.

-       BuiltWithSeedingAnim: If set, forces units to use farming animations when constructing the building.

-       RangeDisplayedAsSquare: If set, range is displayed as a square decal.

-       AllowSocketPlacement: Indicates units that behave like sockets, while not being of AbstractSocket type.

-       OptionalSocketPlacement: If set, a socket-able building will still be buildable outside a socket.

-       ForceInfluenceRate: If set, resources won't be gathered if no valid influence rate is set. AllowPlacementOnIce: If set, allows a building to be placed over Ice terrain.

GatherableWhenSocketed: Intended for buildings which become gatherable when placed over a socket.

-       DoNotQueue: If set, unit won't obey building queue when trained.

-       MagnetDoesNotLockUnits: If set, magnet building won't make herdables/huntables unattackable.

-       UseTacticArmorOverride: If set, unit will check for armor overrides in tactic data.

-       ResourceReturnRateTotalCost: If set, return resource rate will be calcualated over the total cost, instead of per resource.

-       ForceBatchTrain: If set, MultipleBlockTrain units/Banner Armies will be forced to use batch training

-       UISkipActiveTechs: If set, command panel won't 'reserve' slots for active techs.

-       ApplyResourceReturnIfDeleted: If set, resource return will be applied even if the unit was deleted by the player.

-       AlliesIgnoreInfluenceRate: If set, allied players gathering from this unit will ignore any checks for Influence Rate.

-       GatherableByAllies: If set, allows non-standard resource buildings to be gathered by allies.

-       ShowAutoGatherAbsoluteInfo: If set, unit UI will display the units/buildings which are improving its autogather rate, using the AutoGatherAbsolute modifyType.

-       DoTacticToSameUnitType: If set, changing tactic for this unit will cause the change to be propagated to all instances of the same unit, akin to Japanese Shrine behaviour.

-       DoNotDeleteDeadHuntOnPlacement: If set, building will be forced to not remove dead hunt within its area when placed.

-       CannotSnare: If set, unit won’t be able to cause enemy units to become slower temporarily (that is, ‘snaring’ them) through attack actions with the TargetSpeedBoost protoAction flag set.

-       BaseSpeedRunAnim: If set, the base protoUnit speed will be used as a reference for the jog/run animation switch handling, allowing technology and protoPower GeneralEffect upgrades affecting the unit speed to cause it to use jog/run animations when moving, depending on the resulting unit speed value.

-       HCEconomicGatherPointOnly: If set, unit won't be able to be selected as the Home City arrival point for military shipments.

-       DeadTransformBuildLimit: If set, when a unit transform is triggered upon unit death, through the DeadTransform protoUnit attribute, build limit will be checked for the target unit.

-       ForceGatherSiteResource: If set, the game will always use the gather site inventory resource ID for gathering, set through ModifyGather unit actions, without checking the protoUnit main resource or the unit inventory itself.

-       UseStaticFarmingAnims: If set, units will gather from this gather site at predefined spots, defined as bones within the building model. This behaviour is the same as the one used in the Native Farm and in the Asian Rice Paddy, in legacy AoE3, and in the Mexican Hacienda, in the AoE3DE Mexican Civilization release.

UseDanceActions: If set, allows the unit to use DanceBonus protoActions, include rate escalation behaviour with gatherers, even if it's not of Community Plaza type (AbstractCommunityPlaza).

-       GatherGarrisonToggle: If set, allows building to toggle between gathering and garrisonning mode.

-       HerdablesIgnoreGatherPoint: If set, herdables created/spawned from the unit will ignore gather point data.

-       FreeRepair: If set, repairing this unit costs no resources.

-       CountHerdableAsGatherer: If set, herdables gathering at this unit will be count as gatherers by the game KB.

-       GatherersContributeToResourceRate: If set, the total resource rate of gatherers with be added into the displayed auto-gather rate at the building for a protoAction with the flag AddGathererContribution.

-       AllowGatheringWhenFull: If set, full invetory checks will be disabled when gathering from this unit, allowing herdables to gather from this unit, even if their current resource inventory is full.

-       ShowAreaHealRate: If set, healing aura rate will be displayed on the UI, just as targeted healing rate is.

-       ForceFullTechUpdate: If set, the updating of all player tech nodes and tech prerequisite states will be enforced once the unit is initialized, to update technology prerequisites dependent on unit count.

-       UseAnimalsLabel: If set, the label for the gatherers listing in the stat panel will use the 'Animals' string.

-       DanceActionNoWorkers: If set, allows DanceBonus protoActions to function properly for the given protoUnit at base rates, without accounting for or requiring workers at the building. Resulting behavior will be similar to Dojos, Confuncian Academies and similar buildings from AoE3:TAD.

-       ChargeMoveAnim: If set, unit will be allowed to use custom animations when moving to perform a charged action.

-       SocketFreeBuilding: If set, issuing a valid SocketBuild command over this unit won't deduct building cost from the player's stockpile.

-       CannotAttackIfGaia: If set, unit won't be able to attack when belonging to GAIA.

-       ApplyFlagOverrideIfGaia: If set, civilization flag override, if available, will only be applied if unit belongs to GAIA.

-       ForceFullTechUpdateTeam: If set, the updating of all player tech nodes for the entire team will be enforced once the unit is initialized, to update unit count dependant tech prereqs.

-       InvestmentBuilding: If set, resource investment data will be displayed in the building's UI.

-       FakeConversion: If set, placing or converting the unit to a player won’t change actual ownership of the unit, but will still set the given player as the owner for resource production through AutoGather protoActions.

AllowRebuildInGrouping: If set, when placed in a RM grouping instance, unit position and orientation will be saved, allowing it to be re-built through the usage of the proper trigger effects.

-       ForceUpdateVisualWhenCnverted: If set, full unit visual update will be enforced upon conversion.

-       DisplaySocketPanel: If set, socket panel will be displayed when unit is owned by GAIA.

-       TeamKillBounty: If set, kill bounties granted by destroying this unit will benefit the entire team.

-       MinimapDisplayOnTop: If set, this unit's minimap icon will always be forced to be displayed on top of all other units within its vicinity.

-       NotRepairable: Prevents this building from being repaired when set.

-       KillSocketWhenDestroyed: If set, unit socket will be removed upon destruction.

-       TeamBuildLimit: If set, build limit logic will account for unit count throughout all team players.

-       IgnoreDefaultEjectTimeout: If set, unit ejection action won't check, internally, for the default unitAI eject delay, if MeteredGarrison protoUnit flag is set.

-       DoNotQueueEjectActions: If set, alongside with the MeteredGarrison protoUnit flag, allows multiple units to be ejected at the same time, even if they have ejection delays set.

-       SharedGarrison: If set, garrisoned units will be shared throughout all other instances of the current protoUnit, and of other protoUnits which have this flag set.

-       DisplayMinimumRange: If set, range decal will be based on the minimum attack range of the unit, rather than the maximum range.

-       DoNotAllowAllowAlliedGarrison: If set, allies won’t be able to garrison within this unit.

-       DetonationDeath: If set, unit will trigger a predefined protoAction upon death, damaging all units around it.

-       BuildingExtendedDeathAnim: If set, building will use the same handling for death animations used by units.

-       EnforceBigButtonUI: If set, sots will be reserved for a Native-style BigButton, regardless of the current civ type.

-       DeploymentUngarrison: If set, units won't be able to be ungarrisoned manually, but only through a previously-set deployment ability/command.

-       ForceDisplaySquadModes: If set, squadmodes/tactics will be displayed for this unit, even if it's not of Military type.

-       HideIfSocketedFoundationUntouched: If set, socket will be hidden, if building placed upon it is currently an untouched foundation.

-       DisplayMaxRangeOnSelection: Defaults to false. If set, in case unit is set to display minimum range on hovering, maximum range will be displayed upon selection.

-       DisplayRangeToEnemies: Defaults to false. If set, range decal will be rendered for this unit, according to game settings, regardless of unit ownership.

-       ChargeIdleAnim: If set, once either the primary or secondary charged abilities of the unit are ready to be used, unit idle and bored animations will be replaced by the ones set within the protoAction of the charged ability, if valid. When set alongside with

 


 

ChargeMoveAnim, walking and running anims will also be replaced, regardless of the current target of the unit.

-       DoNotDamageTrees: When set, TruckAttack protoActions assigned to the unit will not damage trees.

-       TacticArmorUseBaseIfNotSet: If set, alongside with UseTacticArmorOverride, unit will use base armor values, if tactic armor overrides for the current tactic are set to 0.

-       TransformPropagateChargeState: If set, propagates charged action state when transforming unit through DelayedTransform protoActions or TransformUnit tech effects.

-       HerdableForceOriginalResource: If set, the original resource carried by a herdable unit will never be cleared out when gathering from any resource object.

ProtoActions (Tactics)

Attributes

● Legacy

-       DBAction: Loads protoAction data from DB data set on the protoUnit. Despite being used, specifically for the BoatManager protoActions in ships, it’s obsolete, and has no effect, unless if such data is explicitly defined.

-       Name: ProtoAction internal name. Takes one parameter, StringID, which sets the displayed string ID for that protoAction. String IDs set in this way will be displayed for every instance of this protoAction name, regardless of the protoUnit.

-       Type: Action type for this protoAction.

-       MaxRange: ProtoAction maximum range.

-       MinRange: ProtoAction minimum range.

-       OptimalRange: ProtoAction optimal range. Unused and seemingly overridden, internally, by maximum range.

-       TypedMaxRange: Maximum range specific to a particular unitType.

<TypedMaxRange type="Huntable">10</TypedMaxRange>

-       TypedMinRange: Minimum range specific to a particular unitType. Unused, but likely functional. Takes the same arguments as TypedMaxRange.

-       TypedOptimalRange: Optimal range specific to a particular unitType. Unused, and seemingly overridden by maximum range internally. Takes the same arguments as TypedMaxRange.

-       ROF: ProtoAction rate of fire. From The African Royals AoE3DE DLC onwards, it can take two arguments, type and target, which causes the rate of fire value to dynamically vary according to a particular variable. The behaviour of the rate of fire variation for every possible type value is described as follows:

       HitpointRatio: Rate of fire linearly decreases as the unit’s hitpoint ratio decreases, converging to the target value, as the hitpoint ratio is closer to 0:

<ROF type='HitpointRatio' target='1.5'>3.000000</ROF>

       MinRange: Rate of fire linearly decreases as the unit distance to the target unit decreases, converging to the target value, as the distance approaches the minimum range:

<ROF type='MinRange' target='2.0'>3.000000</ROF>

- Rate: ProtoAction work rate for a particular unitType. For action types that aren’t work rate-based, work rate values define which unitTypes are valid attack targets (for attacking actions) or unitTypes that are processed by this particular action (for Spawn and Maintain action types).

For AutoGather actions, defines which resource types are gathered. For Gather actions, it can also take a resource attributes, to restrict the work rate to gathering a particular resource, for targets which support multiple resources (i.e. Rice Paddies and African Fields)

<Rate type='Mill'>0.670000</Rate>

<Rate type='ypRicePaddy' resource='Food'>0.500000</Rate>

From the original AoE3DE release onwards, it can receive the yield attribute, which allows setting a resource yield value, controlling how much the resource lasts.

<Rate type='Tree' yield='1.200000'>0.500000</Rate>

From the United States civilization AoE3DE release onwards, it can receive a overrideResource attribute which, for Gather actions, causes the deposited resource to be overridden by the set resource.

<Rate type='AbstractFish' overrideResource='Gold'>0.500000</Rate>

From The African Royals AoE3DE DLC onwards, it can be used for inverted auras (LikeBonus with ModifyRateByType flag set), it can be used to set the contribution rate to the stat bonus  for every unitType that affects the target unit.

<Rate type='LogicalTypeLandMilitary'>0.02</Rate>

From the Mexican Civilization AoE3DE release onwards,it can receive a inventoryRate attribute, which defines in which resources will be deposited into the unit’s own resource inventory, while performing a gather action towards the player’s stockpile.

<Rate type='deHacienda' inventoryRate='1.0'>1.000000</Rate>

-       Anim: ProtoAction main animation.

-       ReloadAnim: ProtoAction reload animation, for attacking actions. - IdleAnim: ProtoAction idling animation.

-       AnimationRate: ProtoAction animation rate. Set, by default, to 1.0. For Spawn actions without the SingleUse protoAction flag set, it can be used to set the average spawning delay.

-       Damage: ProtoAction damage.

-       DamageType: ProtoAction damage type.

-       DamageArea: ProtoAction damage area radius. Despite it always being set as a floating point value, in legacy AoE3, it’s internally stored as an unsigned short integer. From The African Royals AoE3DE DLC onwards, it’s properly stored as a floating point value.

-       OuterDamageAreaDistance: Defines the minimum distance from a target unit to the impact point of an area damage from which the OuterDamageAreaFactor will be fully applied and, thus, the area damage factor applied over the unit will be greater than or equal to that attribute’s value,

-       OuterDamageAreaFactor: Attribute used as a base for the calculation of the area damage factor. In case the distance between the target unit to the impact point of the area damage is smaller than or equal to the OuterDamageAreaDistance value, the calculation of the damageAreaFactor will be done according to the following formula:

 𝑎𝑟𝑒𝑎𝐷𝑎𝑚𝑎𝑔𝑒𝐹𝑎𝑐𝑡𝑜𝑟 = 1 − ( 𝑜𝑢𝑡𝑒𝑟𝐷𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒𝑢𝑛𝑖𝑡𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒              )(1 − 𝑜𝑢𝑡𝑒𝑟𝐷𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝐹𝑎𝑐𝑡𝑜𝑟)

Otherwise, the formula to be used will be as follows:

𝑎𝑟𝑒𝑎𝐷𝑎𝑚𝑎𝑔𝑒𝐹𝑎𝑐𝑡𝑜𝑟 = ⎣1 ( 𝑑𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝑅𝑎𝑑𝑖𝑢𝑠𝑢𝑛𝑖𝑡𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒 − 𝑜𝑢𝑡𝑒𝑟𝐷𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒 − 𝑜𝑢𝑡𝑒𝑟𝐷𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒 )⎦𝑜𝑢𝑡𝑒𝑟𝐷𝑎𝑚𝑎𝑔𝑒𝐴𝑟𝑒𝑎𝐹𝑎𝑐𝑡𝑜𝑟

-       DamageCap: Maximum amount of total damage that can be inflicted by an area attack. For a protoAction that has critical damage type set to KillingBlow, sets the maximum amount of HP an unit can have to be a valid target of the critical attack.

-       DamageFlags: Defines which players are affected by area attack through a combination of the following flags: GAIA, Self, Ally and Enemy.

-       DamageBonus: Defines a damage bonus for an attack action.

-       RangedAttackMode: Unused and deprecated.

-       Projectile: ProtoAction projectile protoUnit.

-       MaxHeight: Maximum height for projectile.

-       HeightBonusMultiplier: Unused and deprecated.

-       NumberBounces: Appears to define the maximum number of targets a single projectile can hit.

-       ImpactEffect: ProtoAction impact effects file, relative to the Art folder.

-       Turret: Attribute intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       Yield: ProtoAction resource yield. Applied to all work rates over a Gather action. In Legacy, for Indian Villagers, it’s hardcoded to be only applied for wood gathering.

Rendered deprecated from the AoE3DE original release onwards. - Accuracy: ProtoAction accuracy.

 


-

HitPercent: Defines the chance of the critical attack defined by HitPercentType being triggered.

-       DamageMultiplier: Damage multiplier to be applied upon critical attack activation.

-       HitPercentType: Defines the type of critical attack to be used. Multiple flags can be set by using multiple entries. Changing this value through techs cause flags to be added, instead of replaced. The possible values for this attribute are listed as follows:

       CriticalAttack: Multiplies total attack by DamageMultiplier when triggered.

       KillingBlow: Causes unit to be killed, if triggered when unit is below the

DamageCap value. As for AoE3DE original release onwards, it cannot affect Artillery or War Ships.

       Sweep: Causes sweep attack to be performed upon triggered.

       Disciple: Causes dead enemy to be converted into ypMonkDisciple when triggered.

       CriticalDisciple: Enables both sweep and Disciple conversion behaviours, using separate RNGs. Sweep won’t be triggered, if unit doesn’t have sweep attack defined.

-       DamageFactorCap: Damage multiplier limit for garrison bonus damage.

-       TrackRating: Rate in which a moving target is tracked. The higher the value, the better the accuracy is against moving targets.

-       Timer: Unused and deprecated.

-       AreaSortMode: Defines how units in a target area of effect are sorted for a protoAction.

-       ImpactForceMin: Minimum force multiplier for ragdoll effect upon attack.

-       ImpactForceMax: Maximum force multiplier for ragdoll effect upon attack.

-       ImpactLaunchAngle: Launch angle for ragdoll effect upon attack.

-       ModifyType: Modify type for AutoRangedModify, LikeBonus and DanceBonus with UnitModification dance type.

-       ModifyProtoPower: ProtoPower/Ability name of the power/ability to be affected by the AbilityROF modifyType. Unused, but likely functional. Does not affect protoPowers/abilities with global cooldown.

-       ModifyMultiplier: For AutoRangedModify actions, defines the multiplier to be used for the bonus to be applied by the aura. For DanceBonus and LikeBonus actions, defines the multiplier value used in the bonus factor calculation. For inverted aura actions (LikeBonus with ModifyRateByType flag set), available from The African Royals AoE3DE DLC onwards, this attribute is unused.

-       ModifyExponent: For DanceBonus and LikeBonus actions, defines the exponent value used in the bonus factor calculation. For inverted aura actions, available from The African Royals AoE3DE DLC onwards, this attribute is unused.

The calculation of the modifier factor for LikeBonus and DanceBonus is done using the following formula, if ModifyExponent is set to a positive value:

𝑓𝑎𝑐𝑡𝑜𝑟 = (𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑒𝑟)(𝑛𝑢𝑚𝑈𝑛𝑖𝑡𝑠) + 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑛𝑢𝑚𝑈𝑛𝑖𝑡𝑠 − 1 + 𝑏𝑎𝑠𝑒

Otherwise

𝑓𝑎𝑐𝑡𝑜𝑟 = (𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑒𝑟)(𝑛𝑢𝑚𝑈𝑛𝑖𝑡𝑠) + 𝑛𝑢𝑚𝑈𝑛𝑖𝑡𝑠(−1)(𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡) − 1 + 𝑏𝑎𝑠𝑒

-       ModifyBase: For DanceBonus and LikeBonus actions, defines the base value used in the bonus factor calculation. For inverted aura actions, available from The African Royals AoE3DE DLC onwards, this attribute is unused.

-       ModifyAbstractType: Defines the unitType to be affected by the aura, for

AutoRangedModify actions; or by the Community Plaza/Fire Pit bonus, for DanceBonus actions.

-       ModifyProtoID: Defines the protoUnit to be affected by the aura, for AutoRangedModify actions; or by the Community Plaza/Fire Pit bonus, for DanceBonus actions.

-       DanceBonusType: Bonus type for DanceBonus actions. The valid types are Training, XPTrickle, UnitModification, UnitSpawn, Regeneration, PopCap, WarChiefRansom and Gathering. As of AoE3DE original release, the AutoGathering type is also available.

-       ModelAttachment: Attachment to be used by aura/AutoRangedModify actions, relative to the Art folder.

-       ModelAttachmentBone: Bone where ModelAttachment is supposed to be attached to. Should be either a valid bone name, omitting the bone_ prefix, or bonethatdoesntexist.

● Definitive Edition

-       ScaleByContainedUnitType: Defines separate rates by which every unit type contributes to garrison bonus.

<ScaleByVontainedUnitType>

<Rate type='Military'>0.101</Rate>

</ScaleByVontainedUnitType>

-       ForbidAbstractType: Defines unitTypes that cannot be affected by an AutoRangedModify action.

-       ForbidUnitType: Defines unitTypes that cannot be affected by an AutoRangedModify action.

-       AttachProtoUnit: ProtoUnit to be attached to target upon attack.

-       ModifyResource: Resource to be produced by DanceBonus action with DanceType set to AutoGathering.

-       ConversionDelay: Delay time in seconds for conversion of target unit through a Convert action. Affected by ConversionResistance protoUnit attribute and action work rate.

-       ModifyAmount: Modification value used by modify types which perform changes linearly.

-       ModifyTargetLimit: Maximum number of units that can be affected by an aura, for AutoRangedModify actions, or to be accounted for the total bonus calculation, for default LikeBonus actions.

-       DisplayedNumberProjectiles: Displayed number of projectiles in the UI for this protoAction.

-       CastPower: Defines a protoPower to be cast once action is performed. Restricted to non-Broadside charged attack actions.

CastPowerTargetType: Defines the target type for the protoPower to be casted. The possible values for this attribute are listed as follows:

       self: Casts the power over the attacker unit.

       unit: Casts the power over the target unit

       area: Casts the power over the vicinity of the target unit, taking its position as a reference point.

-       DisplayNameID: String ID for protoAction displayed name. Overrides default name and doesn’t affect other instances of this protoAction.

-       CivType: Restricts action functionality to a specific civType.

-       FullCapacityMultiplier: Work rate multiplier to be applied for an AutoGather action when unit is at its full resource capacity.

-       ModifyDuration: Duration/lifespan time in milliseconds for AutoRangedModify action.

-       GatheringMultiplier: Work rate multiplier to be applied for an AutoGather action when unit is performing a gathering action.

-       MaintainWorkRateMultiplier: Work rate multiplier to be applied to a Maintain action.

-       ModifyRateCap: Bonus factor limit for inverted aura actions (LikeBonus with ModifyRateByType flag set).

-       EmpowerData: Data to be used for Empower actions targeted to units belonging to the player. For every unitType entry, the following attributes can be set:

       Active: Defines whether or not a particular EmpowerData entry is active. Set by default.

       ForbidUnitType: Defines unitTypes that are forbidden from being affected by empowerment.

       Anim: Animation to be used for empowering.

       EmpowerArea: Area of effect for empowerment.

       EmpowerRate: Defines the empowerment rate for a particular modifyType.

       ModelAttachment: Similar functionality as of ProtoAction attribute.

       ModelAttachmentBone: Similar functionality as of ProtoAction attribute.

<EmpowerData>

<Building>

<ForbidUnitType>MinedResource</ForbidUnitType>

<EmpowerRate modifyType="BuildRate">1.75</EmpowerRate>

<EmpowerRate modifyType="BuildingWorkRate">1.5</EmpowerRate> </Building>

</EmpowerData>

-       EnemyEmpowerData: Data to be used for Empower actions targeted to units belonging to an enemy. Accepts the same attributes as EmpowerData.

<EnemyEmpowerData> <Military>

<Anim>EmpowerEnemy</Anim>

<EmpowerArea>1.0</EmpowerArea>

<EmpowerRate modifyType="ROF">2.0</EmpowerRate>

<EmpowerRate modifyType="HealRate">-2.0</EmpowerRate> <ModelAttachment>units\attachments\stun_stars.xml</ModelAttachment>

<ModelAttachmentBone>bonethatdoesntexist</ModelAttachmentBone> </Military>

</EnemyEmpowerData>

-       GAIAEmpowerData: Data to be used for Empower actions targeted to units belonging to Gaia. Accepts the same attributes as EmpowerData.

<GAIAEmpowerData>

<AbstractMine>

<Anim>DanceActive</Anim>

<EmpowerRate modifyType="ResourceGatherRate">1.1</EmpowerRate>

<EmpowerRate modifyType="ResourceYield">1.25</EmpowerRate>

<ModelAttachment>effects\ypack_auras\torpgatherpower.xml</ModelAttachment>

<ModelAttachmentBone>bonethatdoesntexist</ModelAttachmentBone> </AbstractMine>

</GAIAEmpowerData>

-       DoNotAutoGatherUnlessGatheringTypes: Restricts the activation of a particular AutoGather action to unit gathering from a resource type belonging to any of the listed types.

<DoNotAutoGatherUnlessGatheringTypes>

<UnitType>AbstractField</UnitType>

<UnitType>Mill</UnitType>

<UnitType>ypRicePaddy</UnitType>

<UnitType>Farm</UnitType>

</DoNotAutoGatherUnlessGatheringTypes>

-       CannonLimit: Number of cannons to be used by a BroadsideAttack action. Defaults to using the predefined number of cannons within the unit’s model, up to a limit of 6.

-       MaintainTrainPoints: Unit train points to be used for Maintain action, instead of the default amount of train points set in the protoUnit data. As of the Mexican Civilization release of AoE3DE, this attribute can be also applied to DanceBonus protoActions of UnitSpawn type.

-       StunDuration: Stun duration for non-standard StunAttack protoActions.

-       StunSoundSet: Soundset for non-standard StunAttack protoActions.

-       AutoStealthDelay: Minimum delay in which auto-stealth can be re-activated, after unit is discovered.

-       AutoStealthLifespan: Lifespan for auto-stealth action.

-       FlagOverrideUnit: ProtoUnit that holds the flag to be applied for unit modification of PeaceFlag type.

-       SelfDamageMultiplier: Percentage of damage to be reflected back to attacker when a critical attack of CriticalAttack type is triggered.

-       HitPercentSoundSet: Soundset to be used when a critical attack of CriticalAttack type is triggered.

-       WalkAnim: ProtoAction-specific movement animation.

JogAnim: ProtoAction-specific jog animation - RunAnim: ProtoAction-specific running animation.

-       BoredAnim: ProtoAction-specific bored animation.

-       FreeBuildRate: Defines work rate for free building through AbstractFreeBuilder units for a particular unit type. Takes the same basic attributes of WorkRate, except for the ones specific to gathering actions.

-       InvestmentResource: For AutoGather actions, defines which resource from the investment pool will be deducted while the resource trickle is active.

-       SubCiv: Restricts the current action to only be active in case the unit is linked to the set subCiv.

-       DirectionalDamageRefAngle: Reference angle in radians for directional damage target selection.

-       MinTimeBetweenMultiAttacks: For Roundel Attack actions, defines the minimum interval between two consecutive attacks done to separate targets.

Flags

    Legacy

-       AttackAction: Sets protoAction as a valid attack action.

-       Active: Sets protoAction as active.

-       ActiveIfContainsUnits:

-       ScaleByContainedUnits: Scales attack according to the amount of garrisoned units.

Shouldn’t be set if protoAction is supposed to use ScaleByContainedUnitType.

-       HandLogic: Defines protoAction as a hand attack action.

-       RangedLogic: Defines protoAction as a ranged attack action.

-       SpeedBoost: Causes unit speed to be boosted by a predefined factor upon attacking.

-       TargetSpeedBoost: Causes target unit speed to be hindered by a predefined factor upon attacking.

-       Persistent: Causes protoAction to be persistently processed.

-       UseBuckets: Unused and Deprecated. Likely not intended for AoE3.

-       AddResourcesToInventory: If set, AutoGather action will deposit resources within unit’s inventory, instead of the player’s stockpile.

-       AddResourcesFasterWhenOwned:

-       SingleUse: Causes protoAction to be useable only once. Only valid for AutoGather, Build, Maintain, Spawn and Attaching.

-       SingleUsePlayer: For BroadsideAttack, causes attack to only use one single cannon. For Spawn, causes protoAction to be effectively deactivated, preventing other instances of this unit from using it. As of the Mexican Civilization AoE3DE release onwards, such behaviour persists to saved and recorded games.

-       YearBased: Causes the number of spawned units by a Spawn action to vary by a factor of the current game Year. Unused, but functional.

-       Throw: Causes units to be ‘thrown’ upon dying by an attack performed by this protoAction.

-       InitialROF: Requires unit to reload before performing the first attack. Unused, but likely functional.

 


-

Linear: For Maintain actions, causes the number of produced units to be incremented by one at each iteration. The maximum number of units that can be produced in a iteration is capped by the work rate value.

-       NoCost: Causes manually set AutoRepair protoActions to not cost resources. Unused, but likely functional.

-       BaseDamageCap: Causes area attack actions to not account for damage bonuses for damage cap checking.

-       DropsiteGathering: Enables dropsite gathering for gathering actions.

-       TargetGround: Causes ranged actions to use the ground position of the unit as a reference for targeting.

-       InstantBallistics: Causes projectiles to travel instantly, instead of at their movement speed.

-       SelfDestruct: Causes unit to self-destruct upon attacking.

-       PerimeterWallCheck: Attribute intended to be used by the AirCraft system. Unused and not functional in AoE3.

-       PerfectAccuracy: Causes ranged attack to be fully accurate on non-moving targets.

-       PhysicsOnSelfDestruct: Use physics to throw unit if it protoAction has self destruct flag set.

-       ChargeAction: Sets this protoAction as a charged attack action.

-       ShowQueueWhileWaiting: If set, Maintain actions will be shown in both the unit queue and the global game queue, if they are on waiting state. Set to 1 by default.

-       DoNotAutoGatherUnlessGathering: If set, it will cause the AutoGather action to not generate resources if unit isn’t performing a gathering action.

-       TargetEnemy: Causes an AutoRangedModify action to affect only enemy units.

-       ModifyExclusive: Causes other AutoRangedModify actions sharing the same modifyType to not be processed.

    Definitive Edition

-       ExcludeFromRangeIndicator: Excludes action from being processed for range decal displaying.

-       CastWhenAnimationFinished: Deprecated.

-       UnrandomizeCannonROF: Forces Cannon shots to use the ROF set in the protoAction, without random variations.

-       TargetGaia: Causes an AutoRangedModify action to affect only Gaia units.

-       DoNotIgnoreDead: Causes an AutoRangedModify action to also affect dead units.

-       DeadExclusive: Restrict an AutoRangedModify action to only affect dead units.

-       SingleUnit: Causes an AutoRangedModify action to only affect a single target.

-       IncludeGaia: Causes an AutoRangedModify action to affect Gaia units, besides of player units.

-       HideFromStats: Hides protoAction from unit stats.

-       ForceUpdateMode: Forces units affected by an AutoRangedModify action set to not persistently update (i.e. with the StartOnNoUpdate protoUnit flag set) to full update state, allowing them to be properly affected by auras.

-       ModifySelf: Causes AutoRangedModify and LikeBonus actions to affect the source unit.

AuxChargeAction: Sets this protoAction as a secondary charged attack action.

-       CannotBeConvertedByAllies: Prevents an AutoConvert action from causing a friendly player from capturing the unit.

-       TargetUnbuilt: Restricts an AutoRangedModify action to only affect targets which aren’t fully built (i.e. building foundations and buildings under construction).

-       RestrictToNativeSettlements: Restricts an AutoGather action to be only functional when the building is socketed over a Native Settlement.

-       TargetEnemyIncludeGaia: Causes an AutoRangedModify action to affect only enemy or gaia units.

-       NoStack: Prevents more than one instance of an AutoRangedModify action of the same source unit from affecting the same target unit, while still allowing it to be affected by other AutoRangedModify actions set to the same modifyType.

-       SquareAura: Causes the area of effect of an AutoRangedModify action to be a square, instead of circular.

-       GatherLinkedResource: Causes a ResourceProxy action to account only for socketed resources, if any.

-       DontKillWhenExpired: Prevents a ResourceProxy action from triggering unit death upon resource depletion.

-       RestrictToGatherers: Restricts an AutoRangedModify action to only affect units gathering from the source unit.

-       HealNonIdle: Allows a Heal action to heal non-idle units.

-       UseHCGatherPoint: Causes units produced by a Maintain action to be delivered at the HC drop-off point.

-       IncludeAlly: Causes an AutoRangedModify action to affect allied units, besides of player units.

-       ModifyRateByType: Causes a LikeBonus protoAction to have inverted aura behaviour, making nearby units within the area defined by MaxRange of the unitType defined in ModifyAbstractType to contribute to the bonus applied to the source unit by rates defined through the WorkRate entries.

-       RestrictToKnockout: Causes a Maintain action to only be active when an unit is in knocked out state. As of the Mexican Civilization AoE3DE release onwards, it can also be used in Spawn actions, which causes, if used alongside with the SingleUse flag, the unit spawning to be triggered every time the unit enters knockout state.

-       ModifySingleActionByType: Causes AutoRangedModifyAction to not target an unit if it’s already affected by another action set to the same ModifyType.

-       NoStackIgnorePUID: When set alongside with NoStack, also prevents instances of the protoAction from other protoUnits from affecting the same target unit.

-       AutoGatherScaleByGatherRate: Causes AutoGather rate to be affected by the current gather rate of the unit.

-       SpawnIgnoreBuildLimit: Causes a Spawn action to spawn units, regardless of build limit.

-       DoNotAutoGatherIfSocketed: Prevents an AutoGather action from generating resources if building is placed over a socket.

HandAttackDisplayRange: Forces the range to be displayed for a hand attack protoAction.

AttachForceDieWithUnit: When in an Attaching action, causes an unit without lifespan set attached to an enemy unit to be forcibly removed once the unit dies.

-       AutoGatherInventoryIfNotSocketed: Causes an AutoGather action with the

GatherLinkedResource flag set to gather from the unit’s own inventory, if it’s not currently socketed.

-       DisableAutoAttack: For protoActions of AutoStealth type, disables auto-attacking while the action is active.

-       RestrictToIdleUnits: Restricts an AutoRangedModify action to only affect units that are currently idle.

-       RestrictToValidRepairTargets: Restricts an AutoRangedModify action to only affect units that are valid targets for the Repair command.

-       KeepAlive: Forces a single-use Maintain or Spawn action to be kept alive, internally, preventing it from being re-triggered, in case persistent actions are reloaded through tactic switching.

-       ModifyRangeUseLOS: Causes an AutoRangedModify action to use the current unit’s LOS as its effective range.

-       AttachValidTargetOnly: Causes AttachProtoUnits to only be spawned when the attack action has properly targeted a living valid target.

-       AddGathererContribution: Causes the displayed gathering rate for an AutoGather action to also account for the total gathering rate of all units gathering from the current unit, if the GatherersContributeToResourceRate protoUnit flag is set.

-       DepositToGatherSiteOwner: Causes a Gather action to deposit resources to the gather site owner, instead of the current owner of the gatherer unit.

-       RestrictToFullCapacityGatherers: Restricts an AutoRangedModify action to only affect units gathering from the source unit that have a full resource inventory.

-       SpawnOnAnimationLoop: For Spawn protoActions,causes spawning to be performed once the current unit animation ends.

-       DestroyUnitAfterUse: For Spawn protoActions, causes source unit to be killed after spawning action is performed when used alongside with the SpawnOnAnimationLoop protoAction flag.

-       ModifySelfOnly: Restricts an AutoRangedModify protoAction to only affect the current unit.

-       FirstTC: Restricts an AutoRangedModify protoAction to only be active if the current unit is the first TC for the current player.

-       ActiveIfGaia: Causes the current action to be only active if unit belongs to Gaia.

-       ActiveIfNotGaia: Causes the current action to be only active if unit belongs to an actual non-Gaia player.

-       AutoGatherTeam: For AutoGather actions, causes the resource trickle to benefit all players within the team, instead of just the owner of the unit.

-       CannotBeConvertedByEnemies: Prevents an AutoConvert action from causing an enemy player to capture the unit.

ForceSpawn: Forces a UnitSpawn action to be processed, and executed if/when applicable, by the game, in case it’s assigned to a starting unit or building.

-       ConvertToGaiaIfForbidden: For AutoConvert actions, causes unit to be converted to Gaia, in case it’s captured by a player who has been is forbidden from capturing the current unit through scenario or RM triggers.

-       NotActiveOnTreaty: Sets the current action as inactive while the game is under a Treaty period.

-       IncludeEnemy: For inverted aura actions (LikeBonus with ModifyRateByType flag set), causes valid Enemy units to be accounted for modifier calculation.

-       DirectionalDamage: Sets an Attack action with area of damage attack to inflict directional damage, instead of traditional area damage.

-       TargetLock: For Attack actions, causes the unit to maintain its current target while it’s under its LOS, even if it’s outside the set maximum rage for the current action.

-       BuildLimitSuspend: For Maintain actions, causes the action to suspend and save progress, in case build limit has been reached, instead of resetting it.

-       DoesMultiAttack: For Roundel Attack actions, allows the action to attack multiple targets at the same time when set.

Modify Types ● Legacy

-       Speed: Unit maximum speed.

-       MaxHP: Unit maximum hit points.

-       Damage: Unit damage.

-       MovingDamage: Unused and deprecated.

-       SiegeDamage: Unit siege damage. Affects, specifically, the damage inflicted against buildings and ships, and not necessarily all protoActions with the damageType set to Siege.

-       Bounty: Kill bounty obtained by affected units.

-       UnitDamage: Damage inflicted against units (as in non-buildings and non-ships). - LOS: Line of Sight. Functional, but causes unit LOS to glitch after being applied.

-       Armor: SquadMode armor bonus. Not functional for units which aren’t using a tactic/squadMode that enforces armor bonuses.

-       GatherRate: Gather rate for all resources.

-       AbilityROF: ProtoPower cooldown time for power set in ModifyProtoPower. Does not affect protoPowers with global cooldown.

-       ROF: Unit rate of fire.

-       AutoGatherRate: AutoGather rate for all actions.

● Definitive Edition

-       UnitResource: Consumes resource inventory for natural resources at a linear rate, based on the ModifyAmount attribute value.

-       BaseHP: Unit hit points, applied over base protoUnit hitpoints, instead of the current value.

-       BuildingWorkRate: Building Work Rate.

BuildRate: Affects Building construction rate when affecting builders. Affects auto-building rate when affecting foundations placed by wagons.

Chaos: Enables Chaos behaviour on affected units.

-       FarmingGatherRate: Gather rate for farm objects (AbstractFarm unitType).

-       InfluenceRate: Rate in which resources gathered by affected units will be converted into Influence.

-       HealRate: Linear heal rate, or progressive damage, if set as a negative value. For buildings, hit points addition/subtraction will be percentage-based.

-       AutoGatherAbsolute: AutoGather rate for all actions with a rate greater than zero. Adds to the AutoGather rate linearly, instead of multiplying.

-       RepairCost: Building repair cost.

-       TrainingRate: Building unit training rate.

-       EconomicTrainingRate: Building economic unit training rate.

-       MilitaryTrainingRate: Building military unit training rate.

-       ResearchRate: Building technology researching rate.

-       ResourceGatherRate: Resource gathering rate multiplier for gatherers gathering from the affected unit.

-       ResourceYield: Resource yield rate multiplier for gatherers gathering from the affected unit.

-       NaturalFoodGatherRate: Gather rate for natural food sources (targets with Food as their main resource and either Nature or NatureClass types set).

-       TreeGatherRate: Gather rate for trees.

-       MineGatherRate: Gather rate for mines (MinedResource unitType).

-       AutoBuildRate: Auto-building rate for foundations placed by wagons.

-       PeaceFlag: Causes affected units to be perceived as friendly units by enemies, preventing them from being attacked by enemy units and vice-versa. If the affected units support civilization flag displaying, the flag will be replaced by the flag set in the CivFlagOverride attribute of the protoUnit defined through the FlagOverrideUnit protoAction attribute, if it’s set to a valid value.

-       BaseDamage: Unit damage, applied over base protoUnit damage, instead of the current value.

-       BuildBounty: Building build bounty. Does not affect resources other than XP.

-       RechargeTime: Charged action recharge time. Affects both main and auxiliary recharge times.

-       Range: Maximum range.

-       RangeAbsolute: Maximum range. Adds linearly, instead of multiplying.

-       Shield: Redirects damage received by targeted units by the rate defined in

ModifyMultiplier. For units affected by multiple Shield auras,

-       BaseSpeed: Unit maximum speed, applied over base protoUnit value.

-       UnitRegenRate: Unit regeneration rate defined through protoUnit or civilization data.

 


-

-

Tactic Data

● Legacy

-       Active: Defines whether the tactic is active or not. Set to 1 (Active) by default.

-       Action: Adds a valid action for this tactic. Takes one attribute, priority, which defines choice priority for attack actions.

-       CheckIfCanStealth: Forces Stealth check to be performed before switching to this tactic. Takes one attribute, range, which defines the range in which it checks for enemy units within the vicinity of the unit that can forbid switching to a Stealth tactic.

-       SpeedModifier: Modifier to be applied to unit movement speed after switching to the current tactic.

-       MaxHPModifier: Modifier to be applied to unit hitpoints after switching to the current tactic.

-       DamageModifier: Modifier to be applied to unit damage after switching to the current tactic.

-       MovingDamageModifier: Modifier intended to be applied to unit moving damage after switching to the current tactic. Deprecated, as it depends on non-functional modify type MovingDamage.

-       SiegeDamageModifier: Modifier to be applied to unit siege damage after switching to the current tactic.

-       UnitDamageModifier: Modifier to be applied to unit damage against living targets (as in non-buildings and non-ships) after switching to the current tactic.

-       UnitType: Intended to restrict the current tactic to a particular unit type. Superseded by SquadMode restriction to specific unit types.

-       TooltipStringID: String ID for world tooltip to be rendered over unit when switching to this tactic. Likely intended for internal Ensemble testing or an unknown tutorial mode.

-       AttackType: Unit type that defines valid attack targets.

-       AutoAttackType: Unit type that defines valid auto-attack targets. If not set, auto-attack will be disabled for the current tactic.

-       AttackResponseType: Unit type that defines valid retaliation targets.

-       RunAway: If set, enables running away behaviour.

-       AutoRetarget: If set, units will look for other targets automatically, if current attack target becomes invalid

-       Exclusive: Deprecated. Original purpose unknown. Possibly intended to allow certain tactics to be simultaneously activated, when unset?

-       MoveAttack: Deprecated. Apparently intended to allow Tactic to support simultaneous moving and attacking actions.

-       ModelAttachment: Model Attachment animfile to be applied over unit when switching to this tactic. Only applied if ModelAttachmentBone is set to a valid bone.

-       ModelAttachmentBone: Bone where ModelAttachment is supposed to be attached to. Must be a valid bone name, omitting the bone_ prefix.

-       AgeRequirement: Minimum age required for this tactic to be available. Set as an integer value.

-       FireType: Fire particle type to be rendered over unit when switching to this tactic

(Economic, Military)

ProtoUnitCommand: ProtoUnitCommand linked to this tactic. Used for fetching HUD tactic icon and rollover for buildings that display tactics on the game HUD.

Transition: Defines transition data between the current tactic and a target tactic. For units, can be used to define a limber animation. For buildings, it’s required in order to allow proper tactic switching. Takes the following parameters, which should be defined as XML children elements:

       Tactic: Target Tactic.

       Action: Deprecated.

       Anim: Transition animation.

       Length: Transition length.

       Enter: Deprecated. Likely leftover of a primitive limbering system with separate entering and exiting modes.

       Exit: Should be set to 1 for this to be a valid transition.

       Automatic: If set, unit will transition automatically to tactic if it’s required to perform an action that’s only available in the target tactic.

       CommandAutomatic: Allows automatic tactic transition, if required by a Game Command, in case Automatic is not set.

       LandOnly: If set, tactic transition will be forbidden if unit is on water.

-       IdleAnim: Idle animation for current tactic.

-       BoredAnim: Bored animation for current tactic.

-       DeathAnim: Death animation for current tactic.

-       WalkAnim: Movement animation for current tactic.

-       MoveAnim: Movement animation for current tactic.

-       JogAnim: Jog animation for current tactic.

-       RunAnim: Running animation for current tactic.

● Definitive Edition

-       FakePortraitIcon: Decoy portrait icon to be displayed to enemies when tactic is set.

Requires DisplayDecoyInfo protoUnit flag to be set for proper functionality.

-       FakeDisplayNameID: Decoy unit name string to be displayed to enemies when tactic is set. Requires DisplayDecoyInfo protoUnit flag to be set for proper functionality.

-       FakeRolloverTextID: Decoy unit long rollover string to be displayed to enemies when tactic is set. Requires DisplayDecoyInfo protoUnit flag to be set for proper functionality.

-       FakeShortRolloverTextID: Decoy unit short rollover string to be displayed to enemies when tactic is set. Requires DisplayDecoyInfo protoUnit flag to be set for proper functionality.

-       ArmorOverride: Armor override value to be used when this tactic is set. Takes two attributes, type and value, which define, respectively, the armor type and armor value for the override. Requires UseTacticArmorOverride protoUnit flag to be set for proper functionality. When using this system, separate armor values will need to be defined for each tactic. As of Knights of the Mediterranean AoE3 DLC onwards, if protoUnit flag TacticArmorUseBaseIfNotSet, unit will fall back to default armor values from protoUnit data for each damage type not set in the tactic override.

RolloverStringID: String ID for tactic rollover. Overrides rollover for squadMode linked to tactic.

ActiveIcon: WPF path, relative to Data\wpfg, to the icon to be displayed when tactic is selected. Overrides icon set for squadMode linked to tactic.

-       AvailableIcon: WPF path, relative to Data\wpfg, to the icon to be displayed when tactic is available, but not selected. Overrides icon set for squadMode linked to tactic.

-       UnavailableIcon: WPF path, relative to Data\wpfg, to the icon to be displayed when tactic is currently unavailable, due to being forbidden by a protoPower currently active. Overrides icon set for squadMode linked to tactic.

ProtoUnitCommands (protounitcommands.xml)

    Legacy

-       Name: ProtoUnitCommand internal name.

-       Command: Console command to be executed.

-       CommandPassesUnitID: If present, first integer printf parameter on command will be replaced by the internal ID of the current unit.

-       Icon: ProtoUnitCommand icon path.

-       ActiveIcon: For ProtoUnitCommands linked to Building Tactics, defines the icon to be displayed when the tactic is currently active.

-       DisabledIcon: For ProtoUnitCommands linked to Building Tactics, defines the icon to be displayed when the tactic cannot be currently selected, either because the Building is currently switching to another tactic. Usually set to the same path as the default Icon.

-       AssociatedTech: Technology associated with the protoUnitCommand, defining command availability, cost and research time.

-       UseMultiple: If present in a protoUnitCommand associated with a particular technology, it will allow the protoUnitCommand to be executed multiple times.

-       PrereqCommand: Binds the availability of this command on the previous execution of the given protoUnitCommand.

-       RolloverTextID: String ID for default protoUnitCommand rollover.

-       ActiveRolloverTextID: For ProtoUnitCommands linked to Building Tactics, defines the rollover to be displayed when the tactic is currently active.

-       DisabledRolloverTextID: String ID for protoUnitCommand rollover to be displayed when command cannot be currently issued, despite it’s being currently shown.

-       ValueText: Value text to be displayed over protoUnitCommand icon.

-       HelpTopic: Deprecated.

-       CloseMenu: Deprecated.

    Definitive Edition

-       DBID: Explicitly set DBID for protoUnitCommand. Required for non-standard and custom protoUnitCommands. Has to match the next available protoUnitCommand DBID for proper functionality.

-       AssociatedPower: Associates the protoUnitCommand with the given protoPower, causing it to share cooldown with the protoPower.

ForbidTech: Technology to be temporarily forbidden while this protoUnitCommand is being researched, if it’s associated with a technology.

SpawnCommand: Causes protoUnitCommand to spawn units once executed. Requires the protoUnitCommand to be associated with a technology for proper functionality.

-       UnitType: ProtoUnit to be spawned, if SpawnCommand is set.

-       Amount: Amount of units to be spawned, if SpawnCommand is set.

-       CastPower: Causes protoUnitCommand to cast AssociatedPower.

-       SubCiv: Restricts the protoUnitCommand to be only displayed and usable if building is on a socket belonging to the given SubCiv.

-       BindToChargeAction: Binds the protoUnitCommand to the main Charged Action, causing it to be non-executable and to display the cooldown of the main Charged Action.

-       DoNotAllowOverPopLimit: Forbids the command from being executed if player is above the population limit.

-       DoNotAllowIfUnitDamaged: Forbids the command from being executed if current unit is damaged.

-       UseBigButton: If present, causes protoUnitCommand to use Native Big Button.

-       UseBigHugeButton: If present, causes protoUnitCommand to use Big Huge/Consulate option button.

-       UseMediumButton: If present, causes protoUnitCommand to use the first Big Ability/Medium Button slot.

-       UseMediumButton2: If present, causes protoUnitCommand to use the second Big Ability/Medium Button slot.

-       UseMediumButton3: If present, causes protoUnitCommand to use the third Big Ability/Medium Button slot.

-       SocketBuild: If present, indicates that the current protoUnitCommand triggers a SocketBuild command, and causes it to display the cost, if applicable.

-       DisplayAsPassive: If present, command will be displayed and handled as a passive action entry.

-       NotCancellable: If present, protoUnitCommand, if researchable, won’t be cancellable once queued.

-       Deploy: If present, denotes that this protoUnitCommand will perform a deployment action for a building which uses deployment ungarrisoning.

 


 

Civilization Data (civs.xml)

Attributes

● Legacy

-       Name: Internal Civilization name.

-       Main: Denotes whether the civilization is meant to be a playable civilization, when set to 1, or a SubCiv/Revolution civilization, otherwise.

-       GameID: Defines the Expansion Pack this civilization belongs to. Deprecated in AoE3DE, obsolete for the overwhelming majority of AoE3 mods.

-       StatsID: Unique identifier to be used by MP stats collector for this particular civilization.

-       Portrait: Deprecated.

-       CircleMenuBackground: Deprecated. Likely not meant to be used in AoE3.

-       Culture: Civilization culture, as defined in culture data in cultures.xml.

-       DisplayNameID: String ID for civilization displayed name.

-       RolloverNameID: String ID for civilization rollover.

-       AlliedID: Deprecated. Likely used for the original native system.

-       AlliedOtherID: Deprecated. Likely used for the original native system.

-       UnAlliedID: Deprecated. Likely used for the original native system.

-       AgeTech: Assigns a technology to be activated once the player reaches a given age, or, for native SubCivs, when a player allies with it. It can take the following parameters, which should be declared as XML children elements:

       Age: Age name/identifier. For Native SubCivs, only the Age0 entry needs to be defined.

       Tech: Technology to be activated.

-       BigAgeTech: Assigns technologies to be activated when allying to this SubCiv when it’s initialized as a ‘Big SubCiv’ (i.e. a subCiv initialized with the third parameter in the rmSetSubCiv RM syscall, usually omitted, is explicitly set to true). Due to how those technologies are processed internally, unlike normal AgeTech definition for Native SubCivs, BigAgeTech entries have to be defined for every age. Takes the same parameters as AgeTech.

-       AgeAdvanceTech: Deprecated. Likely meant to be the initial/primitive implementation for Politician data. Intended to take the same parameters as AgeTech.

-       PostIndustrialTech: Technology to be activated at a Post-Industrial start.

-       PostImperialTech: Technology to be activated at a Post-Imperial start.

-       DeathMatchTech: Technology to be activated when in DeathMatch game mode.

-       TeamTech: Technology to be activated for all team players at the beginning of the game, akin to AoE2 Team Bonuses. Multiple instances of the same civilization or the same technology don’t cause its effect to stack.

-       AgeNameID: Sets the displayed age name for the age set through the age attribute. Deprecated in AoE3DE.

-       ExclusiveSubCivs: Designed to prevent other players from allying with a particular

SubCiv, in case a player of the current civilization happens to be allied with it. Doesn’t

prevent Trading Post from being built, but it won’t have access to any of the units or technologies from the SubCiv.

SubCivAllianceModifier: Civilization-specific multiplier to be applied over SubCivAllianceCost.

-       HCShipmentModifier: Multiplier to be applied over the amount of XP required to obtain a shipment.

-       HCShipmentGrowthModifier: Factor applied linearly over ShipmentXPGrowth, as defined in VictoryPoints data for every shipment sent, impacting the amount of XP required for obtaining the next Shipment., until the amount of shipments surpasses the value defined in HCMaxShipmentMaxGrowthModifier.

-       HCMaxShipmentMaxGrowthModifier: Maximum amount of shipments in which HCShipmentGrowthModifier will be applied.

-       BountyModifier: Deprecated. Intended for scrapped Japanese Bushido XP system.

-       CampaignXPBonusHC: Bonus multiplier for post-game Home City XP when playing this civilization in a Campaign.

-       AdditionalWonderBuildRate: Builder work rate multiplier for Wonders according to the number of builders the Wonder foundation currently has. The order in which the tag is inserted within a civilization data determines the number of workers the given value is linked to (i.e. first tag will define work rate value for 1 worker; second, for two workers, etc.).

-       BuildingEfficiency: Work rate multiplier for additional builders on foundations.

-       Resource Name: Gold, Wood, Food, Fame, SkillPoints, XP, Ships, Trade, Influence -

Sets initial resource amount for the given resource in Legacy, which only affects the Scenario Editor in AoE3DE. Can take attributes, most of which are non-functional, and not meant to be used in AoE3 (nameID, hudIcon, textColor, countCommand), except for icon, which can be used to set the icon path for the resource icon to be displayed in cost strings, not affecting other usages of the resource icon.

-       TreatyCost: Defines the default cost for initiating a treaty with this civilization through the Create Treaty trigger effect. Likely intended for a greater gameplay feature which didn’t make it to the final game. The cost in each resource is set through parameters, defined as children XML elements, named after the resource names (Gold, Wood, Food, Fame, SkillPoints, XP, Ships, Trade, Influence) and containing the intended resource cost for the respective resource.

-       StartingUnit: Defines a starting unit for this civilization.

-       TownStartingUnit: Defines a town starting unit, which is only placed after the first Town Center is built. From AoE3DE The African Royals DLC onwards, can take resourceAmount attribute to replace initial main resource value for placed unit.

-       RandomStartingUnits: If set, semi-random starting units will be spawned, according to one of starting items defined within colony data. If not set, only units explicitly defined within civilization data will be granted to the player upon game start.

-       AllyUnit: Unit to be spawned when successfully allying with this SubCiv by building a Trading Post over its socket. Just as StartingUnit and similar civilization attributes, one entry has to be declared for every unit to be spawned.

-       BigAllyUnit: Unit to be spawned when successfully allying with this SubCiv by building a

Trading Post over its socket, when this SubCiv is initialized as a Big SubCiv within a Random Map (i.e. a subCiv initialized with the third parameter in the rmSetSubCiv RM syscall, usually omitted, is explicitly set to true). Just as StartingUnit and similar civilization attributes, one entry has to be declared for every unit to be spawned.

-       Partisans: If set, enables the spawning of partisan units upon building destruction, if set in protoUnit data. Set this like <Partisans>1</Partisans>.

-       ReinforcementAuto: Deprecated.

-       ReinforcementPerimeterWallCheck: Deprecated.

-       ReinforcementCostFactor: Deprecated.

-       ReinforcementAttackDelay: Deprecated. -   ReinforcementTrainRate: Deprecated -              GatherPointSound: Deprecated.

-       Wall: Deprecated. Defines the protoUnit for the wall type set through the type attribute (Straight2, Straight3, Straight4, Straight5, Gate, Connector) Intended for Perimeter Wall feature.

-       HomeCityFilename: Base HomeCity data file path.

-       HomeCityFlagTexture: Civilization flag texture to be rendered on top of buildings.

-       HomeCityFlagButtonSet: Small button set for civilization flag, used for in-game UI. Deprecated in AoE3DE.

-       HomeCityFlagButtonSetLarge: Large button set for civilization flag, used for pre-game lobbies. Deprecated in AoE3DE.

-       PostgameFlagTexture: Texture for post-game flag. Deprecated in AoE3DE.

-       MatchmakingTextures: Defines civilization textures intended to be used in ESO UI. Mostly deprecated for AoE3DE. The supported parameters, which should be declared as children elements, are listed as follows:

       BannerTexture: Large civilization banner base texture for ESO.

       BannerTextureCoords: Texture coordinates for civilization banner. Defined as a pair of (x,y) proportional relative coordinates within the [0,1] range.

       PortraitTexture: Large civilization leader portrait base texture for ESO.

       PortraitTextureCoords: Texture coordinates for large civilization leader portrait

       SmallPortraitTexture: Small civilization leader portrait base texture for ESO. Used in the Diplomacy dialog, in case civilization has no personality file assigned to it. In AoE3DE, WPF texture path is obtained through this attribute, in case SmallPortraitTextureWPF isn’t set.

       SmallPortraitTextureCoords: Texture coordinates for small civilization leader portrait. Usually set to 0 0 1 1, as SmallPortraitTexture is always set to an individual texture file.

       SmallPortraitTextureWPF: WPF texture path for small civilization leader portrait. Solely used in the Diplomacy dialog, in case civilization has no personality file assigned to it.

-       UnitRegen: Defines unit regeneration for a particular unittype. The supported parameters, which should be declared as children elements, are listed as follows:

       UnitType: Target unitType.

 


 

       Rate: Percentage-based regeneration rate.

       IdleTimeout: Minimum amount of time in seconds a unit has to be idle before regeneration begins.

       DamageTimeout: Minimum amount of time in seconds since the last time the unit received any damage before regeneration begins.

       RateLimit: Minimum unit hitpoint ratio that can be reached through degeneration, when setting regeneration rate to a negative value. Available from AoE3DE American Civilization release onwards.

       Absolute: Linear/additive regeneration rate. Available from AoE3DE The African Royals DLC onwards.

-       UnitMultiple: Deprecated. Apparently intended to be used as data for an alternative training method for native units in early AoE3 versions. Takes Name, Count, MinCount, MaxCount, CountIncrement, CountPoints, TrainPoints, ActiveIcon, DisabledIcon as arguments, declared as XML child elements.

-       BlockTrain: Defines single-unit block training entries. The supported parameters, which should be declared as children elements, are listed as follows:

       Building: Building where this block training entry should be available.

       Unit: ProtoUnit to be trained

       Count: Amount of units in blocktrain entry.

-       MultipleBlockTrain: Defines multi-unit block  training entries. The supported parameters, which should be declared as children elements, are listed as follows:

       Building: Building where this block training entry should be available.

       MultipleBlockUnit: Placeholder unit which triggers block training upon being trained from the source building for the multiple block train entry.

       Units: Lists protoUnits to be trained as children Unit tags.

       UnitCounts: Lists unit counts, as children Count tags, for every protoUnit listed in Units, following the same order.

-       Key: Key to be used for fetching correct display string for units using rollovers with civilization-specific text.

-       Visible: If set, civilization will be selectable by players in both Single Player and Multiplayer lobbies, if a valid homeCity assigned to this civilization exists. Set to 1 by default.

-       VisibleInEditor: If set, civilization will be selectable for players in the Scenario Editor. Set to 1 by default.

● Definitive Edition

- CivType: Sets the civilization type, which can enable or assign special behaviour to the civilization. Set to 0 (European/Generic) by default. The possible values are listed as follows:

       0: European/Generic

       1: TWC Native

       2: TWC SPC Native

       3: Asian

       4: SPC Asian

       5: SPC European

       6: African

       7: American

-       PolCivName: String to be used to look up for the age up tech entries in politicianData for the current civilization, for the TWC Native and Asian aging-up systems.

-       SettlerProtoName: ProtoUnit name for default settler protoUnit, to be delivered through TEAM Villager/Settler cards and used for obtaining shared Villager build limit.

-       PoliticianBaseStringID: Base string ID to be used for Politician UI title. If not set, it will default to the value linked to the given civType (34448 for European/Generic, 111400 for

TWC Native, 111404 for Asian, or 111408 for American)

-       RevolutionHomeCityName: String ID for Revolution Home City name override.

-       RevolutionDeckSize: Displayed maximum deck size for Revolution Civilization. Doesn’t impact game behaviour.

-       UseExtendedDeckUI: If present, enables Extended Deck for the civilization.

-       HeroHCLabelID: String ID for Hero/Explorer name label in Home City Edit dialog. If not set, it will default to the value linked to the given civType (69202 for Asian, 110613 for American, 36439 for all others).

-       SecondHeroHCLabelID: String ID for second Hero/Explorer name label in Home City

Edit dialog, if applicable. If not set, it will default to the same string used for the first one.

-       UseTwoHeroNames: If present, two Hero/Explorer entries will be displayed for this civilization in the Home City Edit dialog.

-       InfluenceRate: Rate set for each of the core game resources (Food, Wood, Gold), used for calculating Influence cost for an unit through the calculateInfluenceCost data effect. Values for each of the core resources are set through XML children elements, named after the resource names, containing the rate values for each resource.

-       StartingResourcesMultiplier: Multipliers to be applied over the granted starting resources amount, defined for each resource. The multiplier for each resource is set through parameters, defined as children XML elements, named after the resource names (Gold, Wood, Food, Fame, SkillPoints, XP, Ships, Trade, Influence) and containing the intended value cost for the respective resource.

-       TreatyTech: Technology to be activated when in Treaty game mode.

-       TwoTownTech: Deprecated.

-       EmpireWarsTech: Technology to be activated when in Empire Wars game mode.

-       AdditionalFOAKTech: Additional non-standard technology which can trigger Trade Monopoly victory condition.

-       MaximumAgeUpResourceCost: Maximum total age up resource cost for each age. Used for determining whether a Community Plaza protoAction with a DanceBonusType set to a AgeUpCostAbsolute has produced a discount greater than the maximum age up cost for the current age for this civilization. The value for each age is set through parameters, defined as children XML elements, named after the internal age names for each Age, except for Exploration/Discovery.

-       TwoTownStartingUnit: Deprecated.

-       EmpireWarsStartingUnit: Defines a TownStartingUnit exclusive for the Empire Wars game mode. All default TownStartingUnit entries are ignored for Empire Wars mode, regardless of whether or not there are any EmpireWarsStartingUnit entries set. Accepts the same attributes as TownStartingUnit.

-       DeathMatchStartingUnit: Defines an additional TownStartingUnit exclusive for the Death Match game mode. Accepts the same attributes as TownStartingUnit.

-       EmpireWarsResources: Defines additional starting resources for Empire Wars game mode The value for each resource is set through parameters, defined as children XML elements, named after the resource names (Gold, Wood, Food, Fame, SkillPoints, XP, Ships, Trade, Influence).

-       EmpireWarsShipmentModifier: Multiplier to be applied over the amount of XP required to obtain a shipment for Empire Wars mode. Stacks with default factor defined through HCShipmentModifier.

-       EmpireWarsShipmentGrowthModifier: Multiplier applied over ShipmentXPGrowth, as defined in VictoryPoints data for every shipment sent, impacting the amount of XP required for obtaining the next Shipment in Empire Wars Mode. Unlike HCShipmentGrowthModifier, this is a static invariable value.

-       EmpireWarsShipmentXPMaximumModifier: Multiplier applied over

ShipmentXPMaximum, as defined in VictoryPoints data, altering the maximum value that the amount of XP required for a single shipment can reach.

-       EmpireWarsShipmentRates: Defines shipment rates for each valid HC card age value for Empire Wars mode. The value for each age is set through parameters, defined as children XML elements, named after the internal age names for each Age, except for Imperial.

-       EmpireWarsAgeUpRates: Defines age up rates for each age for Empire Wars mode. The value for each age is set through parameters, defined as children XML elements, named after the internal age names for each Age, except for Exploration/Discovery.

-       HomeCityFlagForceTeamColor: If set, player colour will be applied over the civilization flag texture to be rendered on top of buildings. Requires the texture to have a properly set alpha channel.

-       HomeCityFlagButtonWPF: Path for WPF texture to be used for in-game flag button.

-       HomeCityFlagIconWPF: Path for WPF texture to be used for pre-game flag button in SP/MP lobbies.

-       HomeCityPreviewWPF: Path for WPF texture to be used for civilization compendium entry.

-       PostgameFlagIconWPF: Path for WPF texture to be used for civilization post-game flag.

-       RevolutionFlagWPF: Path for WPF texture to be used for revolution banner to be displayed in Politician UI, if applicable.

-       DisplayRevolutionFlag: If set to 1, Revolution Banner set in RevolutionFlagWPF will be displayed in Politician UI;

-       CanPayFreeFoundations: If present, allows player to pay for the completion of a foundation placed by an AbstractFreeBuilder.

-       InvestmentAmount: Default resource investment amount value. - InvestmentCap: Maximum resource investment value.

-       FreeBuildingEfficiency: Work rate multiplier for additional builders on free foundations (i.e. foundations placed by an AbstractFreeBuilder).

Non-Civilization Attributes

    Legacy

-       SubCivAllianceCost: Cost to be deducted from player for allying with a SubCiv. Checked and deducted after building a TP over the SubCiv Socket. In case cost cannot be deducted, player won’t have access to SubCiv units or technologies from the Trading Post. The cost in each resource is set through parameters, defined as children XML elements, named after the resource names (Gold, Wood, Food, Fame, SkillPoints, XP, Ships, Trade, Influence).

-       SubCivAllianceCostFactor: Factor applied over the SubCivAllianceCost for every SubCiv the player is currently allied with.

    Definitive Edition

-       MaxDeckSize: Default maximum deck size.

-       DefaultPopLimit: Default base population limit.

-       DefaultPopExtraLimit: Default base value for maximum population limit increment, which can be added through tech effects or specific DanceBonus types.

TechTree (techtreey.xml)

Attributes

    Legacy

-       DBID: Sets the DBID for the Technology, used internally for checks related to homeCity saved data. It’s a good practice to assign a unique DBID for every new technology.

-       DisplayNameID: String ID for the technology displayed name.

-       Cost: Technology cost. Takes one parameter, resourcetype, which sets the resource type for each entry.

-       ResearchPoints: Total amount of time in seconds required to research the technology.

-       ResearchLimit: Number of times in which the technology can be researched. Set to 1 by default.

-       Status: Initial availability status of the technology. Can be set to UNOBTAINABLE, OBTAINABLE or ACTIVE.

-       Icon: WPF path for technology icon, relative to Data\wpfg.

-       RolloverTextID: String ID for the technology long rollover.

-       LongRolloverTextID: Unused and deprecated.

-       ButtonPos: AoM leftover. Unused and deprecated.

    Definitive Edition

-       RevolutionCiv: Defines the revolution civilization to be used for Revolution option technologies.

-       SequesterTech: For Consulate option technologies, defines the sequester/undo alliance technology to be re-enabled, once that particular consulate relation is chosen at the second time.

-       ValueText: Value text to be displayed over technologies, akin to the ones used in protoUnitCommands. Supports the same data fetchers as the ones supported by protoUnitCommands. Requires the technology flag DEUsesValueText to be set for proper functionality.

-       DynamicCostKBStat: KB Stat to be used as a reference for technology cost escalation.

-       KBStatFactorCap: Maximum factor for KB Stat based cost escalation.

-       UnlockID: For technologies used for displaying Alliance Unlocks in the Politician UI, defines the string ID for a list entry within the Alliance Unlock description. Should be nested within an Unlocks tag and requires the DEAllegianceUnlock technology flag to be set.

<Unlocks>

<UnlockID>103363</UnlockID>

<UnlockID>103364</UnlockID>

</Unlocks>

Flags

    Legacy

-       Volatile: AoM leftover. Denotes a technology that’s meant to be automatically activated once its prerequisites are met. Used for Persistent technologies in AoM.

-       AlwaysShowButton: Forces a technology to be always shown in the UI, even when it’s not available to be researched.

-       ExcludeFromPlaytest: Causes the technology to be disabled if the Playtest configuration is set in the game configuration file.

-       DynamicCost: Causes the technology cost to scale according to the number of enemy units present on the map.

-       AgeUpgrade: Self-explanatory.

-       HideFromDetailHelp: AoM Leftover. Unused and deprecated.

-       Shadow: Denotes technologies that aren’t supposed to be shown in the UI or to generate notifications upon research.

-       UniqueProtoUnitInstance: Denotes technologies that are applied individually for every instance of a particular protoUnit.

-       UpgradeTech: Denotes a unit upgrade technology. Used for internal KB Tech Tree processing.

-       ForceLastInLine: Forces a particular unit upgrade technology to be considered as the last in its upgrade chain.

-       HomeCity: Indicates that the technology will be used as a Home City card.

-       TeamTech: Causes the effect of the technology to be applied to the entire team of the player who researched it.

-       OrPrereqs: Causes the prerequisites of a technology to be processed using OR logic, allowing the technology to be made available as soon as at least one of the tech prerequisites are met.

-       UniqueTech: Meant to indicate a civilization-specific technology, but doesn’t impact technology behaviour.

-       CountsTowardEconomicScore: Causes the technology to count toward economic score once researched.

-       CountsTowardMilitaryScore: Causes the technology to count toward military score once researched.

-       DoNotQueue: Allows the technology to override and ignore the building queue to be researched.

-       NativeDance: Causes the technology to take the Native Big Button slot in the UI.

-       RevoltTech: Self-explanatory.

-       YPInfiniteTech: Self-explanatory.

-       CheckLandHCGatherPoint: Prevents the technology from being researched in case there’s no land Home City Gather Point available.

-       CheckWaterHCGatherPoint: Prevents the technology from being researched in case there’s no water Home City Gather Point available.

-       YPNeverLastInLine: Prevents the technology from being set as the last in its upgrade chain.

 


-

YPNauticalTPOnly: Causes the technology to be only displayed in Trading Posts linked to Trade Routes of the Nautical type. In The Asian Dynasties, Trading Routes in Asian maps are, internally, classified as ‘Nautical’ Trade Routes.

-       YPLandTPOnly: Causes the technology to be only displayed in Trading Posts linked to Trade Routes of the Land type.

-       YPCheckPopCap: Forces checking if the player has free population capacity before researching the technology.

-       YPUseBigButton2: Unused. Causes the technology to take the first Big Button slot in the command panel UI. Functional in Legacy AoE3, deprecated and non-functional in AoE3DE onwards.

-       YPUseBigButton3: Unused. Causes the technology to take the second Big Button slot in the command panel UI. Functional in Legacy AoE3, deprecated and non-functional in AoE3DE onwards.

-       YPAlwaysDisableButtonInGrid: Forces the technology to be always shown as disabled in the command panel UI.

-       YPUseBigHugeButton: Causes the technology to take the entirety of the command panel UI. Used for the Consulate Relations button.

-       YPConsulateTech: Denotes a Consulate relation option technology.

-       YPForceUnapply: Forces the technology to be reverted once it’s set to Unobtainable status.

-       YPNeverObtainableAfterUse: Forbids the technology from being set to Obtainable in case it is already active.

-       YPMonasteryTech: Denotes an Asian monastery technology. Doesn’t impact technology behaviour.

-       YPCapturableTradeRouteUpgradeTech: Denotes a technology to be made available in Capturable Trading Posts.

-       YPGridShiftRowRightOne: Causes all subsequent items of the row that this tech is in to be shifted one position to the right.

-       YPSequesterTech: Denotes an End Consulate Relations technology.

-       YPConsulateImprovement: Denotes a Consulate improvement. Doesn’t impact technology behaviour.

-       ypConsulateImprovementImperial: Denotes a Consulate improvement made available at the Imperial Age. Doesn’t impact technology behaviour.

-       YPNativeImprovement: Denotes a Native Settlement improvement. Doesn’t impact technology behaviour.

-       YPWondersColonial: Denotes an AgeUpgrade technology linked to a Colonial/Commerce Age Wonder. Doesn’t impact technology behaviour.

-       YPWondersFortress: Denotes an AgeUpgrade technology linked to a Fortress Age Wonder. Doesn’t impact technology behaviour.

-       YPWondersIndustrial: Denotes an AgeUpgrade technology linked to an Industrial Age Wonder. Doesn’t impact technology behaviour.

-       YPWondersImperial: Denotes an AgeUpgrade technology linked to an Imperial Age Wonder. Doesn’t impact technology behaviour.

YPBlockade: Denotes a technology meant to apply a Blockade. Prevents the technology from being researched if Blockades are disabled.

-       YPNoTextMessage: Causes the technology to not generate notifications upon research.

-       YPIgnorePopCostBuildLimitFreeHCUnitIfTechObtainable: Causes any

FreeHomeCityUnitIfTechObtainable or FreeHomeCityUnitByTechActiveCount (DE) tech effects to not block a Home City card from being sent in case they go over a unit’s Build Limit. In Legacy, those effects don’t cause extra units to be delivered. In Definitive Edition, they’ll send units, unless the DEForceLegacyIgnoreBehavior technology flag is set.

-       YPRecalcHCTrainQueuePointsWhenShipped: Forces the shipping time for currently queued Home City cards to be recalculated when the technology is researched.

    Definitive Edition

-       DEForceUniqueInstancePrereqUpdate: Forces prerequisites for technologies applied over individual instances of particular units (such as Trade Route Upgrades) to be properly updated, once this technology is researched.

-       DEDisplayAsAge0Prereq: Causes a technology to be recognized as a Discovery/Exploration Age requirement when used as a prerequisite for another technology, allowing the age prerequisite indicator to be shown.

-       DEDisplayAsAge1Prereq: Causes a technology to be recognized as an Colonial/Commerce Age requirement when used as a prerequisite for another technology, allowing the age prerequisite indicator to be shown, even in the absence of Colonialize among the technology prerequisites.

-       DEDisplayAsAge2Prereq: Causes a technology to be recognized as an Fortress Age requirement when used as a prerequisite for another technology, allowing the age prerequisite indicator to be shown, even in the absence of Fortressize among the technology prerequisites.

-       DEDisplayAsAge3Prereq: Causes a technology to be recognized as an Industrial Age requirement when used as a prerequisite for another technology, allowing the age prerequisite indicator to be shown, even in the absence of Industrialize among the technology prerequisites.

-       DEDisplayAsAge4Prereq: Causes a technology to be recognized as an Imperial Age requirement when used as a prerequisite for another technology, allowing the age prerequisite indicator to be shown, even in the absence of Imperialize among the technology prerequisites.

-       FakeAgeUpgrade: Denotes a fake technology that takes the place of the Age Button for cultures with non-standard aging up mechanisms (such as the Asian culture).

-       DEIgnorePopCostBuildLimitFreeHCUnitByCount: Causes any

FreeHomeCityUnitByShipmentCount, FreeHomeCityUnitByShipmentCountResource or FreeHomeCityUnitByUnitCount tech effects  to not block a Home City card from being sent in case they go over a unit’s Build Limit. They’ll send units, unless if the DEForceLegacyIgnoreBehavior technology flag is set.

-       DETradeRouteUpgrade: Denotes a Trade Route upgrade technology. Doesn’t impact technology behaviour.

DEHCCardDynamicCount: Causes a Home City card unit count to be dynamically updated according to the number of units it currently delivers, if it doesn’t have any DisplayUnitCount value set in the Home City file.

-       DEHCCardForcePopCheck: Forces the card to check for the current player free population capacity, even in cases where it’s impossible to determine which types of units will be sent, based on the expected amount of units (for example, when the FreeHomeCityUnitRandom tech effect is used).

-       DECostConvertToInfluence: Denotes a technology whose cost should be converted to Influence when made available to a civilization belonging to the African Culture, in the The African Royals AoE3DE DLC. Doesn’t inherently impact technology behaviour.

-       DENativeUnitUpgrade: Denotes an upgrade to a particular native unit. Doesn’t impact technology behaviour.

-       DEUsesValueText: Allows a technology to display value text.

-       DEAllegianceUnlock: Denotes an African Alliance Unlock entry to be displayed in the Politician UI.

-       DEUseMediumButton: Causes the technology to take the first Medium Button/Big

Ability (2x2) slot in the UI.

-       DECheckBuildLimit: Forbids the technology from being researched in case it delivers units that would cause the player to go over the build limit for a particular unit.

-       DEUseMediumButton2: Causes the technology to take the second Medium Button/Big

Ability (2x2) slot in the UI.

-       DEUseMediumButton3: Causes the technology to take the third Medium Button/Big

Ability (2x2) slot in the UI.

-       DENoTextMessageIfFree: Causes the technology to not generate notifications upon research, in case it costs no resources.

-       DEAccumulateUnitCount: Causes unit limit checks for this technology to account for all effects that deliver units, instead of the last checked one or the first one that failed.

-       DEDoNotCheckUnitCapWhenShipping: Forces dynamic unit shipping tech effects that check for unit build limit after the technology has been set to active to not perform this check.

-       DEDoNotAllowDuringNoRush: Forbids a technology from being researched while a

Treaty is active.

-       DERevertRevolution: Denotes a revolution reversion/return to home country technology.

-       DESubRevolution: Denotes a revolution that is only supposed to be made available after the player revolts.

-       DEAge1Revolution: Denotes a revolution that is enabled at the Colonial/Commerce Age.

-       DEAge2Revolution: Denotes a revolution that is enabled at the Fortress Age.

-       DENonStandardRevolution: Denotes a revolution option that does follow the standard design introduced in The War Chiefs.

-       DEHideAdvancedRollover: Causes advanced effect information to not be shown for the technology.

DETradeMonopolyCondition: Denotes a non-standard technology that can trigger Trade Monopoly victory condition. For proper full functionality, the AdditionalFOAKTech civ attribute needs to be set to the name of the technology for the civilization(s) that are supposed to have this technology available.

-       DEUpdatePopulationCount: Forces a technology linked to a Home City Card to update the player’s current and future population count once the Card is sent.

-       DEUnobtainableAfterActive: Causes the technology to be set back to Unobtainable status once it’s set to Active. It will automatically revert its effects if the technology is then set to Obtainable again. The process of setting it to Obtainable can be done automatically by adding the Volatile flag to the technology. So when

DEUnobtainableAfterActive is used alongside the Volatile flag, it can be used to create a self-reversible persistent technology. Tip: spawn units.

-       DEBuildLimitUnitCap: Causes unitCap in dynamic unit shipment effects to be limited by the build limit of the delivered units.

-       DEForceCostUpdate: Allows technology cost to be changed in all cases, even for resources with its base value set to zero.

-       DEMarketTechnology: Denotes a market technology. Doesn’t impact technology behaviour.

-       DEFarmingTechnology: Denotes a farming technology. Doesn’t impact technology behaviour.

-       DEFakeCard: Indicates that this technology will be used for a building-based shipment/fake card.

-       DEShipmentPlaySound: If set, unit creation sounds will be played for units delivered through the standard shipment effects (FreeHomeCityUnit and FreeHomeCityUnitIfTechObtainable).

-       DEPlayerTechCostAbsolute: Denotes that this technology will be affected by building build bounty-based progressive tech cost discount.

-       DEHospitalTechnology: Denotes a Maltese hospital technology. Doesn’t impact technology behaviour.

-       DESetObtainableIfFailed: If set, technology will become obtainable and re-researchable, in case its effects have failed to be applied.

-       DECheckForValidCards: If set, technology won’t be researchable if, for some reason, player doesn’t currently have any valid sendable cards from HomeCity.

-       DERiverTPOnly: Causes the technology to be only displayed in Trading Posts linked to Trade Routes of the River type.

-       DEColonialMercShipment: Denotes a Colonial/Commerce Age Mercenary or Native Support shipment. Doesn’t impact technology behaviour.

-       DEFortressMercShipment: Denotes a Fortress Age Mercenary or Native Support shipment. Doesn’t impact technology behaviour.

-       DEIndustrialMercShipment: Denotes an Industrial Age Mercenary or Native Support shipment. Doesn’t impact technology behaviour.

-       DEIndustrialRepeatMercShipment: Denotes an Industrial Age Infinite Mercenary or Native Support shipment. Doesn’t impact technology behaviour.

DECompanyMercShipment: Denotes an Italian Mercenary Company shipment. Doesn’t impact technology behaviour.

-       DEDoNotAllowIfRevolted: Prevents the given technology from being researched, if player has revolted or has a revolution queued.

-       DERequiresImperialAge: Prevents the given technology from being researched if current match settings do not support Imperial

 


 

Prerequisites

 

 

 

Legacy

 

Type

Description

 

Attributes

Syntax

TechStatus

Checks whether or not the status of a particular technology matches the given value.

status

The expected status of the given technology (active, obtainable, unobtainable)

<TechStatus status

='Active'>DEChurchMissionFervor</TechStatus>

HomeCityLevel

Checks whether or not the Home City level of the current player matches the expected condition.

operator

Operator to be used for condition checking (gt,

lt, e). Different operators can be combined. If not set, it will default to gte (greater than or equal)

<HomeCityLevel>20</HomeCityLevel>

SpecificAge

AoM leftover. Checks whether or not the age of the current player

matches the expected

condition. Still functional in AoE3.

operator

Operator to be used for condition checking.

<SpecificAge operator='e'>Age0</SpecificAge>

TypeCount

AoM leftover. Checks whether or not the total count of units of the given type in the given state(s) for the player matches the expected condition.

In Legacy AoE3, as prerequisite status updates are only triggered either when a technology is researched or the player total popcap is changed, TypeCount

unit

Unit Type to be checked.

<TypeCount unit='TownCenter' count='1' operator='gte' state='aliveState' />

count

Expected unit count

operator

Operator to be used for condition checking.

state

Expected unit KB state (aliveState, deadState, buildingState, anyState, noneState). States can be combined, when

 

 

prerequisites can only work properly over buildings or units that change the player’s total popcap.

In AoE3DE, from the Mexican Civilization release onwards, units and buildings can be assigned the

ForceFullTechUpdate protoUnitFlag, so they can trigger prereq updates once built/created and once destroyed/killed, and thus be properly accounted for this particular prerequisite type.

 

separated by space or comma. If not set,

defaults to anyState, in AoM and Legacy AoE3, or to noneState, in AoE3DE.

 

Culture

AoM leftover. Checks whether or not the civilization of the current player belongs to either of the listed cultures.

cultureName

Self-explanatory.

<Culture>

<cultureName>Mediterranean</cultureName>

</Culture>

Civilization

AoM leftover. Checks whether or not the current player belongs to either of the listed civilizations.

civName

Self-explanatory.

<Civilization>

<civName>Portuguese</civName>

<civName>Spanish</civName>

</Civilization>

Definitive Edition

KBStat

Checks whether or not the value of a given KB Stat matches the expected condition.

kbStat

KB Stat to be used for the prerequisite, selected from a subset of the available KB Stats used by the game. A list of the supported KB Stats for technologies can be found at the end of the

<KBStat kbStat='teamSubCivAllianceLevel' kbParam='SPCCityState' value='2' operator='gte' />

 

 

 

document.

 

kbParam

Optional: KB Stat parameter for supported KB Stats that can take a parameter. Read as SubCiv ID for teamSubCivAllianceLev el.

value

Expected value.

operator

Operator to be used for condition checking.

Effects

 

 

Legacy

 

Type

Description

Attributes

Syntax

SetName

Changes the displayed name of a protoUnit.

As of AoE3DE onwards, it can also affect technologies and change both short and long rollover strings.

proto

ProtoUnit name.

<Effect type ='SetName' proto ='ypMonastery' newName ='63263'></Effect>

<Effect type ='SetName' tech

='DEHCREVMilitaryFrontier' newName ='80921' newRollover ='80925'

reqTech='Age0Russian'></Effect>

tech

Technology name. (AoE3DE)

newName

String ID for new protoUnit or technology displayed name

newRollover

Optional: String ID for new protoUnit or technology rollover. (AoE3DE)

newShortRollover

Optional: String ID for new protoUnit short rollover.

(AoE3DE)

reqTech

Optional: Required technology for change to be applied.

 

 

 

newEditorName

Optional: String ID for new protoUnit editor name. (AoE3DE)

 

newClassName

Optional: String ID for new protoUnit ClassNameID (AoE3DE)

newGoodAgainst

Optional: String ID for new protoUnit GoodAgainstStringID (AoE3DE)

newBadAgainst

Optional: String ID for new protoUnit BadAgainstStringID (AoE3DE)

newWorldTooltipText

Optional: String ID for new

protoUnit WorldTooltipStringID (AoE3DE)

Sound

AoM leftover. Plays the given soundset for the current player.

 

 

<Effect type='Sound'>AgeAdvance</Effect>

TextOutput

Outputs the given string ID as a game notification.

all

Optional: When set to ‘true’, notification will be shown to all players.

<Effect type ='TextOutputAll'>91746</Effect>

TextOutputAll

Outputs the given string

ID as a game

notification for all players.

 

 

<Effect type ='TextOutput'>70320</Effect>

SetAge

Sets the age for the current player.

 

 

<Effect type ='SetAge'>Age2</Effect>

TechStatus

Changes the status of a given technology.

status

Desired tech status (active, obtainable or unobtainable)

<Effect type ='TechStatus' status

='active'>VeteranFinnishRiders</Effect>

Data

Applies a particular data change, taking up to 2 parameters,

amount

Floating point amount to be processed by data effect.

 

 

 

besides amount and relativity.

For more information, refer to the Data Effects table.

subType

Data effect subtype. Defines the actual effect to be applied through this Data Effect. Refer to subsequent tables for more information.

 

relativity

Defines how the attribute should be changed by the given amount. Not applicable to all data effect subtypes.

  Assign: Replaces value by amount.

  Absolute: Adds amount to attribute.

  Percent: Multiplies attribute value by amount.

  BasePercent: Adjusts attribute value by amount, using the original unaltered attribute value as base.

  Override: Replaces both

the current and the original (base) attribute value by amount, changing the behaviour of subsequent BasePercent relativity Data

effects. Only valid for Cost,

WorkRate and

CalculateInfluenceCost subtypes (AoE3DE).

  DefaultValue: Exclusive to BuildBountySpecific subtype. Sets the BuildBounty of a non-standard resource to the same value as the default XP BuildBounty.

SharedLOS

Grants the current player the LOS of other players.

all

Optional: If set to ‘true’, all players are revealed, regardless of team alignment.

<Effect all ='true' type ='SharedLOS'></Effect>

 

Blockade

Initiates a blockade over enemy home

cities, preventing them from receiving shipments

 

 

<Effect type ='Blockade'/>

ShowHCView

Switches the current player to the Home City view, if available, in case the player is not in Home City view or is viewing another player’s HC. Unused, but functional.

 

 

<Effect type ='ShowHCView'/>

ShowWorldView

Switches the current player to the game world view, if available, in case the player is currently at the Home City view. Unused, but functional.

 

 

<Effect type ='ShowWorldView'/>

ModifyProtoUnit

Modifies the displayed name and/or the hitpoints of a given protoUnit. Unused, but functional. Superseded by SetName and Data

effects. Likely originally intended for internal playtesting and experimenting by Ensemble.

proto

ProtoUnit to be modified.

 

newName

Optional: String ID for displayed name.

newHP

Optional: New HP value. Only affects maximum HP.

InitiateRevolution

Initiates a revolution process, changing the player’s deck and flag to the one of the revolution civilization the technology is linked to and transforming all player civilian units into

proto

Optional: Name of the protoUnit to which all land civilian units will be transformed. Defaults to xpColonialMilitia, if not set. If

set to ‘none’, civilian units are kept as-is (AoE3DE)

<Effect type ='InitiateRevolution' />

<Effect type ='InitiateRevolution' proto

='Musketeer' />

<Effect type ='InitiateRevolution' proto

='none' saveDeck ='True' extDeck='True'></Effect>

 

 

xpColonialMilitia.

The Revolution

Civilization is obtained from the technology name, by removing the 12-character prefix from the revolution technology. From AoE3DE onwards, it can also be set through the RevolutionCiv technology attribute.

Once executed, in Legacy, disables revolutions for all players in the opposite team. From AoE3DE onwards, this behaviour has been removed.

Cannot take any arguments in Legacy.

selfMsg

Optional: String ID for UI alert and notification to be displayed for the revolting player. Default TWC value is used, if not set. (AoE3DE)

 

playerMsg

Optional: String ID for UI alert and notification to be displayed to other players. Default TWC value is used, if not set.

(AoE3DE)

saveDeck

Optional: If set to ‘true’, saves the current deck of the player internally, allowing it to be restored upon Return to Home Country/RevertRevolution.

(AoE3DE: Mexican

Civilization)

extDeck

Optional: If set to ‘true’,

Extended Deck cards are kept upon revolting. (AoE3DE: Mexican Civilization)

TransformUnit

Transforms all instances of a particular protoUnit into a given target protoUnit.

fromProtoID

Source protoUnit.

<Effect type ='TransformUnit' toprotoid

='xpColonialMilitia' fromprotoid ='Settler' />

toProtoID

Destination protoUnit.

ResourceExchange

Exchanges the entirety of the stockpile of a given resource into another resource, while multiplying by the given factor.

fromResource

Source resource.

<Effect type ='ResourceExchange' multiplier

='1.25' toresource ='Wood' fromresource ='Gold'

/>

toResource

Destination resource.

multiplier

Multiplier.

SetOnBuildingDeathTech

Sets technologies to be triggered upon building destruction, according to the cost paid for a building’s construction, up to 1000 resources.

amount

Index of the technology to be assigned.

<Effect type ='SetOnBuildingDeathTech' amount

='0.00' amount2

='100.00'>ypSpawnIrregulars</Effect>

<Effect type ='SetOnBuildingDeathTech' amount

='1.00' amount2

amount2

Divider amount used to determine the combined amount of times the

 

 

 

 

technologies should be activated upon a building’s destruction, according to its cost.. Only read for the first tech to be assigned (i.e. index == 0).

E.g., for a building costing 600 resources, and a divider set to 100, one tech would be activated 6 times, while 2 techs, both would be activated 3 times each, etc.

='0.00'>ypSpawnPeasants</Effect>

Data2

Applies a particular data change, taking up to 4 parameters, besides amount and relativity.

For more information, refer to the Data2 Effects table.

Refer to basic attributes listed in ‘Data’ effect type.

 

Definitive Edition

CommandAdd

Adds a protoUnit, technology or protoUnitCommand to a protoUnit’s UI at a specific position.

proto

ProtoUnit to be added.

<Effect type ='CommandAdd' command

='deNatSomaliLighthouse' page ='0' column ='3'>

<Target type ='ProtoUnit'>TradingPost</Target>

</Effect>

tech

Technology to be added.

command

ProtoUnitCommand to be added

page

Page/Row in UI

column

Column in UI. If set to -1, it will add the entry to the first free slot in the given page/row.

natShow

Optional: If set to 1, and effect

is meant to assign a technology to the Trading

 

 

 

 

Post, it will be forcibly displayed on Native Settlement TPs.

 

trShow

Optional: If set to 1, and effect is meant to assign an unit to the Trading Post, it will be forcibly displayed on Trade Route TPs.

ConsoleCommand

Executes a console command.

 

 

<Effect type

='ConsoleCommand'>blackmap</Effect>

CommandRemove

Removes a protoUnit, technology or protoUnitCommand from a protoUnit’s UI.

proto

ProtoUnit to be removed.

<Effect type ='CommandRemove' proto

='Falconet'>

<Target type ='ProtoUnit'>dePalace</Target>

</Effect>

tech

Technology to be removed.

command

ProtoUnitCommand to be removed.

CreatePower

Applies the effect of a given protoPower.

protoPower

ProtoPower to be applied,

<Effect type ='CreatePower' protoPower='dePowerUSExpedition' />

AddHomeCityCard

Adds a Home City card to the extended deck.

Requires the

UseExtendedDeckUI

flag to be set in the civilization data for proper functionality.

tech

Technology to be added as a card. Expected to have HomeCity flag set.

<Effect type ='AddHomeCityCard' tech

='DEHCFedMXTzotzilUprising' maxCount ='1' agePrereq='1' unitCount='0' infiniteInLastAge='0' />

maxCount

Akin to the homonymous Home City Card attribute.

agePrereq

unitCount

infiniteInLast

Age

TextOutputTechName

Outputs the given string

ID as a game

notification, while inserting the technology name within the displayed text.

all

Optional: When set to ‘true’, notification will be shown to all players.

<Effect type

='TextOutputTechName'>110130</Effect>

 

 

This effect expects the string to be displayed to contain one printf-style parameter for string (‘%s’).

 

 

 

ResetHomeCityCardCount

Resets the amount of times a particular time has been sent, allowing it to be re-sent.

tech

Technology name of the Home City card to be reset.

<Effect type ='ResetHomeCityCardCount' tech

='HCShipFoodCrates2' />

RandomTech

Randomly selects a given amount of technologies from a list and changes their status.

select

Number of techs to be selected.

<Effect type='RandomTech'

select='3' status='active'>

<Tech>SaloonBlackRider</Tech>

<Tech>SaloonCorsair</Tech>

<Tech>SaloonElmeti</Tech>

<Tech>SaloonMameluke</Tech>

<Tech>SaloonManchu</Tech> </Effect>

status

New status to be assigned to selected techs.

TextEffectOutput

Displays an UI alert to all players.

reason

UI alert type to be displayed (revolution, tradeMonopoly, koth, revertRevolution, papal, treaty)

<Effect type ='TextEffectOutput' reason

='Revolution' selfMsg ='104580' playerMsg

='104581' />

selfMsg

String ID for UI alert and notification to be displayed for the current player.

playerMsg

String ID for UI alert and notification to be displayed to other players. Expected to receive player name.

SetOnShipmentSentTech

Adds or removes technologies to be activated once a shipment is received.

amount

Should be set to 1, if technology is meant to be added; 0, if excluded.

<Effect type ='SetOnShipmentSentTech' amount

='1.00'>DEREVShipPetard</Effect>

minAge

Optional: Minimum age prerequisite a card needs to have in order to trigger this technology when received.

 

 

 

maxAge

Optional: Maximum age prerequisite a card should have in order to trigger this technology when received.

 

allowInfinite

Optional: When set to ‘True’, Infinite cards will be affected.

Set to ‘True’ by default.

ResourceInventoryExchange

Exchanges the entirety of the total resource inventory of all instances of a particular protoUnit into another resource, depositing into the player’s stockpile, while multiplying by the given factor.

unitType

Target unit type or protoUnit.

<Effect type ='ResourceInventoryExchange' multiplier ='0.70' unittype='AbstractBovine' toresource ='Influence' fromresource ='Food' keepUnit='True' />

fromResource

Source resource.

toResource

Destination resource.

multiplier

Multiplier.

keepUnit

Optional: If set to ‘true’, units will be kept, once the effect is applied, but with no resource storage. Set to ‘false’ by default.

AddTrickleByResource

Grants to the player a variable trickle of a particular resource, that grows linearly according to the total stockpile of the given resource(s).

resource

Trickle resource.

<Effect type ='AddTrickleByResource' resource

='Gold' minValue ='0.001' maxValue ='4.0' minSrcValue ='1.00' maxSrcValue ='4000.00' srcResource1 ='Food' srcResource2 ='Wood' />

minValue

Minimum trickle value when total stockpiled amount of the reference resource(s) is at the minimum.

maxValue

Maximum trickle value when total stockpiled amount of the reference resource(s) is at the maximum.

srcResource1

Reference resource for trickle value.

srcResource2

Optional: Secondary reference resource for trickle value.

minSrcValue

Minimum combined stockpiled

 

 

 

 

value of the reference resource(s) for trickle generation.

If total value is lesser than or equal than this, trickle will default to the value set in minValue.

 

maxSrcValue

Maximum combined stockpiled of the reference resource(s) for trickle calculation.

If total value is greater or equal than this, trickle will default to the value set in maxValue.

ResourceExchange2

Exchanges the entirety of the stockpile of a given resource into two resources, while multiplying by the given factors.

fromResource

Source resource.

<Effect type ='ResourceExchange2' multiplier

='0.50' toresource ='Wood' multiplier2 ='0.50' toresource2 ='Gold' fromresource ='Food' />

toresource

First destination resource.

multiplier

Multiplier for first destination resource.

toresource2

Second destination resource.

multiplier2

Multiplier for second destination resource.

RevertRevolution

Undos the current revolution, returning the player to the source civilization.

selfMsg

String ID for UI alert and notification to be displayed for current player.

<Effect type ='RevertRevolution' selfMsg

='112858' playerMsg ='112859' />

playerMsg

String ID for UI alert and notification to be displayed to other players.

ReplaceUnit

Similar to

TransformUnit, except that it forces the instantiation of a new unit and the removal of the previous one,

fromProtoID

Source protoUnit.

<Effect type ='ReplaceUnit' toprotoid ='WarHut' fromprotoid ='Stable' />

toProtoID

Destination protoUnit.

 

 

instead of transforming directly.

 

 

 

ForbidTech

Adds or removes a given tech from the list of forbidden techs of the current player.

Can be used to re-enable technologies previously set explicitly as Unobtainable.

amount

If set to 1, technology will be added into forbidden techs list, if set to 0, it will be removed.

<Effect type ='ForbidTech' amount

='0.00'>Howitzer</Effect>

ResetResendableCards

Resets the card status of all Home City cards with InfiniteInLastAge set.

 

 

<Effect type ='ResetResendableCards' />

SetOnTechResearchedTech

Adds or removes technologies to be activated once a technology is researched..

amount

Should be set to 1, if technology is meant to be added; 0, if excluded.

<Effect type ='SetOnTechResearchedTech' amount

='1.00'>DEShipItalianVillager</Effect>

minAge

Unused for this effect.

maxAge

Unused for this effect.

UIAlert

Displays an UI Alert.

reason

UI alert type to be displayed (revolution, tradeMonopoly, koth, revertRevolution, papal, treaty)

<Effect type ='UIAlert' reason ='Papal' selfMsg

='-1' playerMsg ='123306' target ='Enemy' playerName ='False' duration ='1250' />

selfMsg

String ID for UI alert and notification to be displayed for the current player.

playerMsg

String ID for UI alert and notification to be displayed to other players. Expected to receive player name by default.

target

Defies to which players the

 

 

 

alert will be displayed through a combination of the following flags: Self, Ally, Enemy, All.

 

playerName

When set to ‘True’, player name will be displayed within UI alert string.

duration

UI alert duration in milliseconds. Set to 2500 (2.5s) by default.

Data Effect Subtypes

 

 

Legacy

 

Type

Description

Target

 

Attributes

Hitpoints

ProtoUnit Hitpoints.

ProtoUnit

 

 

Scale

 

ProtoUnit

 

 

LOS

ProtoUnit LOS.

ProtoUnit

 

 

WorkRate

ProtoAction Work Rate.

ProtoUnit

action

ProtoAction name.

unitType

Rate entry unitType.

Cost

ProtoUnit or

Technology Cost.

ProtoUnit Tech techWithFlag

resource

Resource name.

reqTech

Optional: Required technology for effect to be applied (AoE3DE: The

African Royals)

CarryCapacity

ProtoUnit Resource

ProtoUnit

resource

Resource name.

 

 

Carry Capacity.

 

 

 

RETIREDObstructionSize

 

ProtoUnit

 

 

MaximumVelocity

ProtoUnit movement speed.

ProtoUnit

 

 

MaximumRange

ProtoAction

Maximum Range.

ProtoUnit

action

ProtoAction name.

TrainPoints

ProtoUnit Train Points.

ProtoUnit

 

 

Resource

Player Resource Stockpile.

Only supports Absolute and Assign relativities properly.

Player

resource

Resource name.

InventoryAmount

ProtoUnit resource inventory  amount.

ProtoUnit

resource

Resource name.

Damage

ProtoAction Damage.

ProtoUnit

action

ProtoAction name.

allActions

If set to 1, modification will be applied to all actions within the protoUnit.

UnusedUsedToBeUnitLine

 

ProtoUnit

 

 

MaxResource

Player resource cap for a given resource.

Only supports Absolute relativity.

Sets resource cap to the current resource stockpile plus a delta defined in the

 

resource

Resource name.

 

 

amount.

 

 

 

PermanentCost

 

ProtoUnit

resource

Resource name.

Enable

Enable/Disable ProtoUnit.

ProtoUnit

 

 

InventoryCarried

 

ProtoUnit

resource

Resource name.

AnimationRate

ProtoAction

Animation Rate.

ProtoUnit

action

ProtoAction name.

HeroCost

 

Unknown

slot

Unknown.

PopulationCap

Player population Capacity.

Player

 

 

SetCivilization

Player Civilization.

Player

civ

Civilization name.

Market

Market attributes.

Player

component

Market system attribute to be modified (BuyFactor, SellFactor, BuyDelta, SellDelta, BuyFactorSpecific, SellFactorSpecific).

BuyFactorSpecific and SellFactorSpecific are only available from

AoE3DE: The African Royals onwards)

resource

Resource for BuyFactorSpecific and SellFactorSpecific modification

(AoE3DE: The African Royals)

MaximumContained

ProtoUnit garrison capacity,

ProtoUnit

 

 

MinimumRange

ProtoAction Minimum Range.

ProtoUnit

action

ProtoAction name.

UpgradeLevel

AoM Leftover.

Deprecated

ProtoUnit

stat

AoM unit stat. Deprecated.

ResourceTrickleRate

Player automatic

Player

resource

Resource name.

 

 

resource trickle rate.

 

 

 

MinimumResourceTrickleRate

Minimum automatic

Trickle Rate for a given resource.

Only supports Absolute and Assign relativities properly.

Player

resource

Resource name.

MaximumResourceTrickleRate

Maximum automatic

Trickle Rate for a given resource.

Only supports Absolute and Assign relativities properly.

Player

resource

Resource name.

DamageBonus

ProtoAction Damage Bonus.

ProtoUnit

action

ProtoAction name.

unitType

Damage Bonus unit type.

TributePenalty

Player Tribute Penalty.

Player

 

 

PopulationCount

ProtoUnit population count.

ProtoUnit

 

 

InventorySlot

 

ProtoUnit

 

 

PopulationCapAddition

ProtoUnit population cap support.

ProtoUnit

 

 

ActionEnable

Enable/Disable protoAction.

ProtoUnit

action

ProtoAction name.

Lifespan

ProtoUnit Lifespan.

ProtoUnit

 

 

 

RechargeTime

ProtoUnit recharge time for Charged Actions.

ProtoUnit

 

 

BuildLimit

ProtoUnit Build Limit.

ProtoUnit

 

 

TrackRating

ProtoAction Track Rating.

ProtoUnit

action

ProtoAction name.

BuildPoints

ProtoUnit Build Points.

ProtoUnit

 

 

HomeCityStartingUnit

 

Player

unitType

Unit Type. Unknown intended usage.

HomeCityTransportTime

 

Player

 

 

HomeCityTransportUnitLimit

 

Player

 

 

EnableMercs

 

Player

 

 

EnableCoffers

 

Player

 

 

EnablePlantations

 

Player

 

 

EnableTradeRouteCoin

 

Player

 

 

EnableTradeRouteLOS

 

Player

 

 

EnableTradeRouteTransport

 

Player

 

 

UpdateVisual

Forces visual updating of a given protoUnit for all  its instances.

Player

unitType

Affected unit type.

UpgradeSubCivAlliance

Deprecated in Legacy. In AoE3DE, allies with the given

Player

civ

SubCiv name.

 

 

SubCiv and defines/increases

Build Limit multiplier.

Only supports Absolute relativity properly.

 

 

 

GrantsPowerDuration

Deprecated in Legacy. In AoE3DE, as of Knights of the Mediterranean DLC

onwards, initiates cooldown for powers which start in cooldown.

Player

protoPower

ProtoPower name.

HomeCityBucketMinCount

 

Player

unitType

Unit Type. Unknown intended usage.

HomeCityBucketMaxCount

 

Player

unitType

Unit Type. Unknown intended usage.

HomeCityBucketCountIncrement

 

Player

unitType

Unit Type. Unknown intended usage.

FreeHomeCityUnit

Delivers the amount of the given protoUnit to the player at the HC gather point.

Player

unitType

ProtoUnit to be delivered

convertSettlers

If set to ‘true’, civilian units will be converted to the civilization’s main civilian unit (set through the SettlerProtoName civ attribute) before being delivered (AoE3DE).

CostBuildingTechs

Changes the cost of all tech entries within a given protoUnit.

ProtoUnit

resource

Resource name.

CostBuildingUnits

Changes the cost of all train entries within a given protoUnit.

ProtoUnit

resource

Resource name.

CostBuildingAll

Changes the cost of

ProtoUnit

resource

Resource name.

 

 

all train and  tech entries within a given protoUnit.

 

 

 

TacticEnable

Enables/Disables a Tactic.

ProtoUnit

tactic

Tactic name.

UnitRegenRate

Alters unit regeneration rate for an existing entry.

Player

unitType

Regen entry unit type.

NativeBucketMinCount

 

Player

unitType

Unit Type. Unknown intended usage.

civ

SubCiv name. Unknown intended usage.

NativeBucketMaxCount

 

Player

unitType

Unit Type. Unknown intended usage.

civ

SubCiv name. Unknown intended usage.

NativeBucketCountIncrement

 

Player

unitType

Unit Type. Unknown intended usage.

civ

SubCiv name. Unknown intended usage.

EnableMercs2

 

Player

 

 

EnableMercs3

 

Player

 

 

EnableMercs4

 

Player

 

 

EnableMercs5

 

Player

 

 

HomeCityBucketCountPoints

 

Player

unitType

Unit Type. Unknown intended usage.

BlockTrainCount

Alters or adds single-block training data (i.e. the one used by Russians) for a given ProtoUnit.

Player

unitType

Block train unit.

unitType2

Block train source building.

 

AllowedAge

ProtoUnit allowed age.

ProtoUnit

 

 

DamageArea

ProtoAction damage area.

ProtoUnit

action

ProtoAction name.

XPTrickleRate

Deprecated.

Superseded by non-resource specific effect.

Player

 

 

MinimumXPTrickleRate

Deprecated.

Superseded by non-resource specific effect.

Player

 

 

MaximumXPTrickleRate

Deprecated.

Superseded by non-resource specific effect.

Player

 

 

SetAge

Sets Player current age to amount value.

Player

 

 

UpgradeTradeRoute

Upgrades Trade

Route to the given level.

Player

 

 

GathererLimit

ProtoUnit Gatherer Limit.

ProtoUnit

 

 

SlotCount

Attribute intended to be used by the AirCraft system. Unused and not functional in AoE3.

ProtoUnit

 

 

FreeHomeCityMerc

Delivers a random

Player

unitType

Unit Type to be used for determining the protoUnit to be delivered.

 

 

amount in the range of [amount/2, amount] of units of a single randomly picked protoUnit belonging to the given unitType.

Cannot be properly used with a generic UnitType, unless if

DEHCCardForcePop Check technology

flag is set

 

 

 

AddTrain

Adds Train Entry to ProtoUnit at first free slot in row/page 0.

ProtoUnit

unitType

ProtoUnit to be assigned.

HitPercent

ProtoAction Hit Percent.

ProtoUnit

action

ProtoAction name.

DamageMultiplier

ProtoAction Damage

Multiplier.

ProtoUnit

action

ProtoAction name.

HitPercentType

ProtoAction Critical hit type. Always adds flags, regardless of arguments.

ProtoUnit

action

ProtoAction name.

hitPercentType

Critical hit type flag (CriticalAttack, KillingBlow, Sweep, Disciple,

CriticalDisciple)

ResearchPoints

Technology Research Points.

Tech techWithFlag

 

 

BuildBounty

ProtoUnit Build Bounty.

ProtoUnit

 

 

PopulationCapBonus

Additional population capacity for player.

Limited to 250.

Player

 

 

 

PopulationCapExtra

Additional population limit for player.

Limited to 50.

Player

 

 

RevealLOS