Age of Empires II: Definitive Edition

Age of Empires II: Definitive Edition

69 ratings
SpoOky's Guide To Triggers and More! (DE Version)
By SpoOkyMagician
An updated version of my old guide to the new game. It will explain the following:

1: Differences/New Stuff between versions.
2: What are Triggers.
3: Where are Triggers.
4: How Triggers work.
5: Example Triggers.

(Old Guide can be found Here)
https://steamcommunity.com/sharedfiles/filedetails/?id=871413976
3
2
9
   
Award
Favorite
Favorited
Unfavorite
- - - - - - - - - - - - - - - - - - - - - - - - -
Separator (Ignore this section)
Section Guide Character Limit
8,000 characters. (tags seem to extend it but, let's assume this for now.)

Note: New Lines uses +2 characters.

(this is just a reference for me so I know the character limit.)
Guide Update Note
While it's safe to assume most of the information in this guide is/was factual at some point in time, it does not guarantee that the information is entirely accurate now. (Primarily due to game updates/changes.) If you find information that is incorrect/changed, please let me know so I can fix/update the sections in question. (assuming I am available.)

Whenever the game is updated, I try to update this guide if/when there are any notable changes. If any developers wish to take this guide over, feel free to ask me and I can give you permission to edit this guide.

Update: While the Original Guides Intent was to help out Beginners, I have been slowly adding more and more useful information... So, I adjusted the Guides Name slightly with "and More!". Probably too much but, whatever... I love info dumps and to help people out whenever I can.
- - - - - - - - - - - - - - - - - - - - - - - - -
Separator (Ignore this section)
What's New? (Guide Part 1)
If you are coming from Age of Empires 2 TC, HD, or my Old Guide, you should know that there has been a few changes since then. I will list some general changes to Triggers/Editor below.

  • Copy Function

    • Allows you to Copy/Paste a new Trigger from an existing Trigger. (Similar to Trigger Studios function.)

  • New Trigger Settings

    • A few new Options for Triggers. (Nothing major though.)

  • Comparison

    • Let's you check Conditions with Comparable Values. Examples: Equal To, Less Than, More Than, Less Than Equal To, and More Than Equal To.

  • Operation

    • Let's you use Operations to/for the Values. Examples: Set, Add, Subtract, Multiply, and Divide. Just don't divide by 0 or the game will crash. :P

  • Variables

    • Let's you define your own variables that you can use/edit as needed.

  • Condition Separator (Or)

    • Let's you use the 'or' condition.

  • .XS

    • Let's you code your own functions for scenario triggers.

  • And many more new Conditions/Effects

    • There is so many more Effects and a few new Conditions. I will go over them in a later section. Although, I will say that there is a ton more you can edit than before.
What are they? (Guide Part 2)
Triggers are scripted events within the scenario to be activated in specific conditions. There are many possible options to choose from. (Which will later be discussed in a different section.) Here are a few examples.

  • Spawn Objects on the map.

  • Task Objects on the map.

  • Modify Objects on the map.

  • Show Objectives/Text in the Scenario.

  • Modify In-Game Things. (Such as Resources, Diplomacy, Etc.)

  • And many more.
Where are they? (Guide Part 3)
  • First, start the game up and click: "Single Player" (Highlighted in Blue.)
  • Next, click the button that says: "Editors" (Highlighted in Blue.)
  • Now, click the button that says: "Create Scenario" (Highlighted in Blue.)
  • Note: You could also click: "Load Scenario" but, I will assume you have none for now.
  • Finally, click the button that says: "Triggers" (Highlighted in Blue.)

This is where the Triggers are located in game. Interested? Keep reading to find out more.
Triggers (Guide Part 4)
Now let's take a look at the Triggers Menu. (I have highlighted sections in color to explain the different sections.)


  • Orange Area: (First Section/Top Middle-Left)

    • This is the Trigger List. All of the Scenarios created Triggers are here.

  • Yellow Area: (Second Section/Middle-Left)

    • This is the List of Conditions/Effects for that specific Trigger. Clicking on a Trigger in the First Section will show all Conditions/Effects within that Trigger.

  • Green Area: (Third Section/Bottom)

    • This is the Editing Area for Triggers/Conditions/Effects. Clicking on any Conditions/Effects will show all available Options/Settings for it in this Area. Clicking on any Trigger will show all available Options/Settings for it in this Area as well.

  • Blue Areas: (Fourth Sections/Inside First/Second Sections)

    • The First Set of Buttons allows you to Create, Delete, Copy, or View Triggers. (Copy is a new Function.) When Deleting, Copying, or Viewing, you need to have a Trigger selected in the list for it to work properly. (Just left click on it. I will discuss this section in a bit.)

    • The Second Set of Buttons allows you to Add, Copy, or Delete Conditions/Effects. (Copy is a new Function.) When Copying or Deleting, you need to have the Condition/Effect selected in the list for it to work properly. (Just left click on it. I will discuss this section in a bit.)

If you are confused on the Structure, here is some Example Trees.

Example 1:
  • + List of Triggers
    • - Specific Trigger
      • - Conditions/Effects within Specific Trigger

Example 2:
  • Trigger 0
    • Effect 0
  • Trigger 1
    • Condition 0
    • Effect 0
  • Trigger 2
    • Condition 0
    • Condition 1
    • Condition 2
    • Effect 0
    • Effect 1
    • Effect 2

There is a new condition for 'or'. Here is an example:

Example 3:
  • Condition 0
  • Condition 1
  • Condition 2 (OR)
  • Condition 3
  • Condition 4
  • Condition 5
  • Effect 0
  • Effect 1
  • Effect 2

This comes out to be:

Condition 0 and 1 or Condition 3, 4, and 5 than Effects.
if(Condition 0 and 1) or (Condition 3, 4, and 5) than (Effects)
Triggers (Guide Part 5)
Now that you know the general layout, let's move on to the second part. The Trigger.


Clicking on a Trigger (Highlighted in Yellow.) will show the Trigger Settings/Options. (Highlighted in Blue.) You can set all the options/settings as needed. Here is what all the things do.

  • Trigger Name (String)

    • Name the Trigger to whatever you want so you remember what it is/does.

  • Trigger Starting State (Boolean)

    • If On, it will trigger as soon as all Conditions are met. (If any. Otherwise, it will trigger at the start of the Game or when activated.) If Off, it will never trigger unless activated first. (Note: See Effects Activate/Deactivate Trigger.)

  • Trigger Looping (Boolean)

    • If On, this Trigger will trigger every 1 second In-Game Time as soon as all Conditions are met. If Off, it will only run one time once all conditions are met.

  • Trigger Description (String)

    • This is to be used as either an actual description or an objective. Explain what it does for You/Others or what You need to do in the Scenario. If you want it to be shown in Objectives, you need to enable it in Display as Objective.
      Max: 4095 Characters.

  • Display as Objective (Boolean)

    • If Yes, it will be shown in objectives until all conditions have been met. (Then it will be crossed out.) If No, it will not be shown at all.

  • String Table ID [1] (Integer)

    • Set the String ID Number for Trigger Description. (This has to do with Translations per Language.) I might come back to this. For now, I will leave it as is.

  • Short Description (String)

    • Similar to Trigger Description but, it will be shown on Screen instead on the right side. This is intended more for Objectives during Gameplay. If you want it to be shown, you need to enable it in Display on Screen.
      Max: 240 Characters. (18 lines/objectives.)

  • Display on Screen (Boolean)

    • If Yes, it will be shown in a Checklist on the right of the Screen until all Conditions have been met. (Then it will be Checked Off.). If No, it will not be shown at all.

  • String Table ID [2] (Integer)

    • Set the String ID Number for Short Description. (This has to do with Translations per Language.) I might come back to this. For now, I will leave it as is.

  • Make Header (Boolean)

    • If Enabled, makes the Objective a Header Only. (It will not be scratched out even when complete.)

  • Description Order (Integer)

    • Sets the Objective in Order by a number. The higher the number, the higher priority the Objective will be placed in Objectives.

  • Mute Objectives (Boolean)

    • If Enabled, no sound will play once the Conditions are met for the Objective. If Disabled, it will play as normal.
Triggers (Guide Part 6)
Important Update: With the July PUP Patch coming up, there is a new On/Off Option to run Triggers in sort order. You can turn it on/off for legacy control but, I just want to mention this. So, if you have it on, it runs in sort order. If off, it runs in creation order. (I will leave this section here since it's still technically relevant.)

Something I forgot to mention that T-West reminded me of on forums... There is a... semi-hidden ID on triggers that you need to know about. (It's important.) Whenever you 'create' or 'copy' a trigger, an ID is applied/used to this trigger. It starts at 0 and goes up by 1 each time. You will noticed this when you create the trigger for the first time. It will be named: "Trigger <#>" That will be the ID of the trigger. Why is this important? Let me explain...

Depending on the creation ID of the trigger, will depend on the 'order' the triggers is/are ran/checked.

For example: 'Trigger 0', 'Trigger 1', and Trigger 2'.

Q: Which Trigger runs first?
A: 0 does.

You might be thinking, wait...

Q: What if I move the Trigger up before that other Trigger? (Reorder them.) Won't that work?
A: No.

or...

Q: What if I rename it to 'Trigger <#>'?
A: No.

It will not run in the order of the trigger list. It relies directly on the ID's. No matter how you move the triggers around in the list or try to rename the triggers, the ID's will always dictate the order of operations.

Q: Why is this important?
A: Well, if multiple triggers rely on each other, and one happens 'before' or 'after' the intended order, it will likely break your/the scenario. Please remember this is you ever reorder your triggers.

Note: There is technically a way to do this but, that would require trigger studios... Which is not currently compatible with DE... Perhaps, later it will be?

Note: This also applies to Conditions/Effects too.
Conditions (Guide Part 7)
Now we come to the longest sections. Conditions/Effects. Take your time with these section as needed. Let's begin.


Once you select a Trigger, you have access to that Triggers Conditions/Effects. (Highlighted in Yellow.) If you made/make a new Condition/Effect, you can change the Conditions/Effects List. (Depending on which you choose. Both will be a Dropdown Box. Highlighted in Green.) Once you select a Condition/Effect, all available options/settings will be available for you to alter/edit as needed. (Highlighted in Blue.) Many different options/settings can be changed/set depending on the Condition/Effect. However, a lot of them are common with each other. Such as Player, Area, Object, and Value.

Here is the format I intend to use:

Name
Description
Arguments/Options/Settings *
Notes/Updates/Etc. (As needed.)

* I will explain these as well after Conditions/Effects.

Conditions

None
The Default Condition. It does nothing.
None

Accumulate Attribute
Checks for a specific Attribute, from a Player, with a specific Value.
Source Player, Inverse Condition, Quantity, Tribute List

AI Signal
Checks if an AI triggers a Signal Event from a specific Value.
AI Signal Value, Inverse Condition

Bring Object to Area
Checks if you bring a specific Object to a specific Area on the Map.
Set Object, Reset, Go to Object, Set Area, Reset, Go to Area, Inverse Condition

Bring Object to Object
Checks if you bring a specific Object to another specific Object on the Map.
Set Object, Reset, Go to Object, Next Object, Reset, Go to Next Object, Inverse Condition

Building Is Trading
Checks if a Building is being Traded with.
Set Object, Reset, Go to Object, Inverse Condition

Capture Object
Checks if a specific Player Captures a specific Object on the Map. (Gaia Objects. Player Objects might be possible too. I never tried before via triggers.)
Source Player, Set Object, Reset, Go to Object, Inverse Condition

Chance
Rolls a Di/Random Number with a specific Size/Max Value *Until* the Size/Max Value Number is rolled.
Quantity
Note: I say 'Until' because this condition is sort of special... It does not just roll once as you might expect it to. It keeps trying 'until' that number gets rolled and 'then' stops. (I honestly do not know why they did it this way... I wish they would change it though...)

Compare Variables
Checks if a variable (A) compares to another variable (B).
Variable (A), Comparison, Inverse Condition, Variable (B)

Condition Joiner
Allows "and" to be used with conditions.
None

Condition Separator
Allows "or" to be used with conditions.
None

Decision Triggered
Checks if a specific option is picked for a decision.
Decision ID, Decision Option, Inverse Condition

Destroy Object
Checks if a Object is Destroyed on the Map.
Set Object, Reset, Go to Object, Inverse Condition

Difficulty Level
Checks if the Difficulty is a specific Difficulty or Lower. (Less Than or Equal To)
Difficulty Level, Inverse Condition

Diplomacy State
Checks if a specific Players Diplomacy is set with another Player.
Source Player, Diplomacy State, Inverse Condition, Target Player

Display Timer Triggered
Checks if a Special Timer ID is triggered.
Timer ID, Inverse Condition

Hero Power Cast
Checks if a Heroes Power was used/casted.
Source Player

Local Tech Researched [NEW]
Apparently, this changes the Town Center in 3 different ways.
Local Technologies, Source Player, Set Object, Reset, Go to Object, Set Area, Reset, Go to Area, Inverse Condition, Quantity

Multiplayer AI Signal
Checks if an AI triggers a multiplayer Signal Event from a specific Value.
AI Signal Value, Inverse Condition

Object Attacked
Checks if an Object is attacked.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Object, Reset, Go to Object, Inverse Condition, Quantity

Object Has Action
Checks if a specific Object has a specific Action.
Object List Type, Object List, Object Group, Object Type, Set Object, Reset, Go to Object, Next Object, Reset, Go to Next Object, Inverse Condition, Unit AI Action

Object Has Target
Checks if a specific Object is Targeting another specific Object.
Object List Type, Object List, Object Group, Object Type, Set Object, Reset, Go to Object, Next Object, Reset, Go to Next Object, Inverse Condition

Object HP
Checks if a specific Object has a specific amount of Hitpoints.
Comparison, Set Object, Reset, Go to Object, Inverse Condition, Quantity

Object Not Visible
Checks if a specific Object is Not Visible within the Game View.
Set Object, Reset, Go to Object

Object Selected
Checks if a specific Object is Selected within the Game View.
Set Object, Reset, Go to Object, Inverse Condition

Object Selected (Multiplayer)
Checks if a specific Object is Selected within the Multiplayer Game View.
Source Player, Set Object, Reset, Go to Object, Inverse Condition

Object Visible
Checks if a specific Object is Visible within the Game View.
Set Object, Reset, Go to Object

Object Visible (Multiplayer)
Checks if a specific Object is Visible within the Multiplayer Game View.
Source Player, Set Object, Reset, Go to Object, Inverse Condition

Objects in Area
Checks if there is/are a specific Number of Objects, from a specific Player, within a Area on the map.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Area, Reset, Go to Area, Inverse Condition, Object State, Quantity, Include Changeable Weapon Objects

Own Fewer Objects
Checks if there are Less Than a Number of Objects, from a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Area, Reset, Go to Area, Quantity, Include Changeable Weapon Objects

Own Objects
Checks if there is/are a specific Number of Objects owned by a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Quantity, Include Changeable Weapon Objects

Player Defeated
Checks if a specific Player is Defeated.
Source Player, Inverse Condition

Research Technology
Checks if a specific Technology is Researched by a specific Player.
Technologies, Source Player, Inverse Condition

Researching Tech
Checks if a specific Technology is currently being Researched by a specific Player.
Technologies, Source Player, Inverse Condition

Script Call
Checks if a specific Script is called. (I think?)
Message
Max: 256 Characters.

Technology State
Checks if a specific Technology, is in a specific State, by a specific Player.
Technologies, Technology State, Source Player, Inverse Condition

Timer
Checks if a specific amount of Time has passed in Seconds. (From Trigger Activation/Current Game Time.)
Timer, Inverse Condition
Note: Interesting... I noticed that if you use this with activate trigger, the next timer trigger (The Activated Trigger.) will be off by 1 second. (1 Second Earlier.) Otherwise, it will activate as normal.

Trigger Active
Check if a trigger is currently enabled/active.
Trigger List, Inverse Condition

Units Garrisoned
Checks if there are a number of Objects garrisoned inside a specific Object.
Set Object, Reset, Go to Object, Inverse Condition, Quantity

Variable Value
Checks if a variable is a specific value.
Variable, Comparison, Inverse Condition, Quantity

Victory Timer
Checks if a victory timer is a specific value.
Victory Timer Type, Comparison, Source Player, Inverse Condition, Quantity
Effects A (Guide Part 8)
Effects

None
The Default Effect. It does nothing.
None

Acknowledge AI Signal
Send a Signal of a specific Number to the AI File.
AI Signal Value

Acknowledge Multiplayer AI Signal
Send a Multiplayer Signal of a specific Number to the AI File.
AI Signal Value
Update: Renamed for some reason.

Activate Trigger
(Re)Activates a specific Trigger in the Scenario.
Trigger List, Go To Trigger
Note: Interesting... I noticed that if you use this with Timer, the next Timer Trigger (The Activated Trigger.) will be off by 1 second. (1 Second Earlier.) Otherwise, it will activate as normal.

Add Train Location [NEW]
(I can't get it to work sadly. Bugged?)
Object List Type, Object List, Source Player, Object List Type, Object List, Button Location, Train Time, Hotkey

AI Script Goal
Send a Goal to a specific Number to the AI File.
AI Trigger Number

Attack Move
Moves Units to a specific Location on the Map and targeting nearby Enemies.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location

Change Civilization Name
Changes a specific Players Civilization Name.
Source Player, String Table ID, Name
Max: 256 Characters.

Change Color Mood
Changes the scenarios Color Mood.
Color Mood, Quantity

Change Diplomacy
Changes the Diplomacy from a Player to another Player.
Source Player, Diplomacy State, Target Player

Change Object Armor
Changes the Armor of Objects to a specific amount for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity, Armor/Attack Type
Note: Max is 32767 but the quantity only allows 255.
Update: They fixed the 255 limit. Sort of... It's a bit glitchy but, I would stick with 32767.

Change Object Attack
Changes the Attack of Objects to a specific amount for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity, Armor/Attack Type
Note: Max is 32767 but the quantity only allows 255.
Update: They fixed the 255 limit. Sort of... It's a bit glitchy but, I would stick with 32767.

Change Object Caption
Changes the Objects Caption.
Object List Type, Object List, Source Player, String Table ID, Name, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Change Object Civilization Name
Changes the Objects Civilization Name to a specific Name.
Source Player, String Table ID, Name, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area
Max: 256 Characters.

Change Object Cost
Changes the Object Cost to a specific amount for that Player.
Object List Type, Object List, Source Player, Resource 1, Resource 1 Quantity, Resource 2, Resource 2 Quantity, Resource 3, Resource 3 Quantity
Max: 32767
Ignore Cost: -1
Free: 0

Change Object Description
Changes the Description of Objects for that Player.
Object List Type, Object List, Source Player, String Table ID, Message
Max: 256 Characters.

Change Object HP
Changes the Hitpoints of Objects to a specific amount for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity
Note: Max is 2147483647 but the game only allows 32767.

Change Object Icon
Changes the Icon of Objects for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Object List Type, Object List, Object Icon

Change Object Name
Changes the Name of Objects for that Player.
Object List Type, Object List, Source Player, String Table ID, Name, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area
Max: 256 Characters.

Change Object Player Color
Changes a Object's Color for a specific player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Color

Change Object Player Name
Changes the Player Name of Objects for that Player.
Object List Type, Object List, Source Player, String Table ID, Name, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area
Max: 256 Characters.

Change Object Range
Changes the Range of Objects to a specific amount for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity
Note: Max is 2147483647 but the game only allows 21.

Change Object Speed
Changes the Speed of Objects to a specific amount for that Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Quantity
Note: Max is 2147483647 but the game only allows 21.

Change Object Stance
Changes a specific Units Stance from a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Attack Stance

Change Object Visibility [NEW]



Change Ownership
Changes a specific Objects Ownership to Another Player with an Optional Flashing Effect.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Flash Objects, Target Player

Change Player Color
Changes the Players Color.
Source Player, Color

Change Player Name
Changes the Name for that Player.
Source Player, String Table ID, Name
Max: 256 Characters.

Change Technology Cost
Changes a specific Technology's Cost for that player.
Technologies, Source Player, Resource 1, Resource 1 Quantity, Resource 2, Resource 2 Quantity, Resource 3, Resource 3 Quantity
Max: 32767
Ignore Cost: -1
Free: 0

Change Technology Description
Changes a specific Technology's Description for that player.
Technologies, Source Player, String Table ID, Message
Max: 256 Characters.

Change Technology Hotkey
Changes a specific Technology's Hotkey.
Technologies, Source Player, Quantity

Change Technology Icon
Changes a specific Technology's Icon.
Technologies, Source Player, Quantity, Object Icon

Change Technology Location
Changes the Research Location of Technologies for that Player.
Technologies, Source Player, Object List Type, Object List, Button Location

Change Technology Name
Changes a specific Technology's Name for that player.
Technologies, Source Player, String Table ID, Message
Max: 256 Characters.

Change Technology Research Time
Changes a specific Technology's Research Time for that player.
Technologies, Source Player, Quantity

Change Train Location
Changes the Training Location of Units for that Player.
Object List Type, Object List, Source Player, Object List Type, Object List, Button Location

Change Variable
Changes a Variable to a specific Value.
Variable, Name, Operation, Quantity
Max: 256 Characters.
Note: This 'may' be getting updated according to PUP soon. (Store Key Value and Delete Key. Although, I don't think it's ready yet. Crashes game.)
Update: No longer crashes the game.

Change View
Changes the In-Game View for a specific Player.
Source Player, Scroll, Set Location, Reset, Go to Location, Quantity

Clear Instructions
Clears the Instructions on the Screen.
Panel Location

Clear Timer
Clears the Special Timer on the Screen.
Timer ID

Count Units Into Variable [NEW]
Sets a variable to the specific Object count/total.
Object List Type, Object List, Source Player, Object Group, Set Area, Reset, Go to Area, Variable

Create Decision [NEW]
Shows a dialog with two options.
Decision ID, String Table ID (A), Message (A), String Table ID (B), Message (B), String Table ID (C), Message (C)
Effects B (Guide Part 9)
Create Garrisoned Object
Creates a Garrisoned Object inside another Object for a specific Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Object List Type, Object List, Disable Sound

Create Object
Creates a Object at a specific Locations for a specific Player.
Object List Type, Object List, Source Player, Facet, Item ID, Set Location, Reset, Go to Location, Disable Sound

Create Object Armor
Creates a Object at a specific Locations for a specific Player with specific Armor.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity, Armor/Attack Type.

Create Object Attack
Creates a Object at a specific Locations for a specific Player with specific Attack.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Operation, Quantity, Armor/Attack Type.

Damage Object
Damages a Object of a specific Player by a specific amount.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Quantity

Deactivate Trigger
Deactivates a specific Trigger in the Scenario.
Trigger List, Go To Trigger

Declare Victory
Declares a specific player Victory/Defeat.
Victory, Source Player

Delete Key
Deletes a Key Value?
Name
Note: No longer crashes game.

Disable Object Deletion
Disables Object Deletion for a specific Object for that player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Disable Object Selection
Disables Object Selection for a specific Object for that Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Disable Technology Stacking
Disables a specific Technology from Stacking for that Player.
Technologies, Source Player

Disable Unit Attackable [NEW]
Disables Unit Attackable? (repeat or something else? look into.)
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Disable Unit Targeting
Disables Unit Targeting for a specific Unit for that Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Display Instructions
Displays Instructions on the Screen for a set amount of Time.
Object List Type, Object List, Source Player, Panel Location, Timer, String Table ID, Message, Sound (Event) Name, Play Sound, Object Icon
Max: 256 Characters.
Note: 49 width by 5 height in characters per Panel Location.
Note: 42 width with Icon.

Display Timer
Displays a Special Timer with a specific Message on the screen. Use %d in Message to display the Timer. Note that this is only visual. You will have to use the timer condition for it to trigger something.
Timer Unit, Timer ID, Timer, String Table ID, Message, Reset This Timer ID
Max: 256 Characters.

Enable Object Deletion
Enables Object Deletion for a specific Object for that player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Enable Object Selection
Enables Object Selection for a specific Object for that Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Enable Technology Stacking
Enables a specific Technology from Stacking for that Player.
Technologies, Source Player, Quantity

Enable Unit Attackable [NEW]
Enable Unit Attackable? (repeat or something else? look into.)
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Enable Unit Targeting
Enables Unit Targeting for a specific Unit for that Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Enable/Disable Object
Enable/Disable specific Objects during Gameplay. (See Disable List in Editor.)
Object List Type, Object List, Source Player, Enabled, Item ID

Enable/Disable Technology
Enable/Disable specific Technologies during Gameplay. (See Disable List in Editor.)
Technologies, Source Player, Enabled, Item ID

Freeze Object
Stops/Sets Units with the No Attack Stance for a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Heal Object
Heals a specific Object a specific amount from a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Quantity

Initiate Research
Clicks the specific Technology Button, at the specific Building, IF you have enough Resources.
Technologies, Source Player, Set Objects, Reset, Go to Objects

Kill Object
Kills a specific Object of a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Load Key Value
Loads a Key Value between campaign scenarios.
Variable, Name, Quantity
Note: No longer crashes game.
Note: Use -1 Quantity to load previous value.
Note: Crashes Game if used in Objectives.

Lock Gate
Locks a specific Gate.
Set Gate, Reset, Go to Gate

Modify Attribute
Modifies a specific Attribute by a specific amount for a specific Player.
Object List Type, Object List, Source Player, Object Attributes, Item ID, Name, Operation, Quantity
Important Note: If you are using this on units, make sure the unit does not exist on the map. If it does exist before the effects, the effects will not get applied. However, if the unit is created after, the unit will get the changes. (Replace Unit will work if needed.)
Note: I wanted to clarify something. This is 'temporarily permanent effect' for the rest of this game. New Objects will have these changes 'until' the game is over. (They will be reset back to the default values.)
Max: 256 Characters.

Modify Attribute By Variable
Modifies a specific Attribute of a Player by a Variables amount.
Object List Type, Object List, Source Player, Object Attributes, Item ID, Name, Operation, Variable

Modify Attribute for Class [NEW]


Modify Object Attribute [NEW]


Modify Object Attribute by Variable [NEW]



Modify Resource
Modifies a specific Resource of a Player by a specific amount.
Source Player, Item ID, Operation, Quantity, Tribute List

Modify Resource By Variable
Modifies a specific Resource of a Player by a Variables amount.
Source Player, Item ID, Variable, Operation, Tribute List

Modify Variable By Attribute
Modifies a Variable by a Objects Attribute.
Object List Type, Object List, Source Player, Object Attributes, Item ID, Name, Operation, Variable

Modify Variable By Resource
Modifies a Variable by a Players Resource.
Source Player, Item ID, Variable, Operation, Tribute List

Modify Variable by Variable [NEW]
Modifies a Variable by another Variable.
Destination Variable, Operation, Modifier Variable

Patrol
Patrols a specific Unit of a specific Player to a specific Location.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location

Place Foundation
Places a Building Foundation of a specific Player to a specific Location.
Object List Type, Object List, Source Player, Set Location, Reset, Go to Location

Play Sound
Plays a specific 2D/3D Sound for a specific Player at a specific Location.
Source Player, Set Location, Reset, Go to Location, Sound (Event) Name
Note: See Scenario Editor - Miscellaneous (Part 7) for another guide/information.
Max: 240 Characters.
Effects C (Guide Part 10)
Remove Object
Removes a specific Object from a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Object State

Replace Object
Replaces an Object with another Object of a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Target Player, Object List Type, Object List

Research Local Technology [NEW]



Research Technology
Researches a Technology for a specific Player.
Technologies, Source Player, Force

Script Call
Calls/Runs a Script.
String Table ID, Message
Note: See: https://www.forgottenempires.net/age-of-empires-ii-definitive-edition/xs-scripting-in-age-of-empires-ii-definitive-edition
Max: 256 Characters. Update: It is now 500000.

Send Chat
Sends a specific Chat Message to a specific Player with an Optional Sound.
Source Player, String Table ID, Message, Sound (Event) Name
Max: 64 Characters.

Set Building Gather Point
Sets a Buildings Gathering Point for a specific Player.
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location

Set Object Cost
Sets an Objects Cost by a Value.
Object List Type, Object List, Source Player, Item ID, Quantity, Tribute List

Set Player Visibility
Sets a Players Visibility State of another Player.
Source Player, Visibility State, Target Player

Stop Object
Stops a specific Unit of a specific Player.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area

Store Key Value
Stores a Key Value in a Campaign Scenario.
Variable, Name
Note: No longer crashes game.
Note: Crashes Game if you use in Objectives.

Task Object
Tasks a specific Unit of a specific Player to another specific Location.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location, Action Type

Teleport Object
Teleports a specific Object of a Player to a specific Location.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location
Note: Make sure the object has at least a 3x3 open area when teleporting. It does not work well in small areas.
Update: This has been fixed.

Train Unit
Trains a Specified Unit at a Building. (Only if available.)
Object List Type, Object List, Source Player, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location, Quantity
Note: Can break Villagers Foundations if looping is on.

Tribute
Tributes a specific Resource of a specific amount to a specific Player.
Source Player, Target Player, Quantity, Tribute List

Unload
Unloads specific Units from specific Players from Ships.
Object List Type, Object List, Source Player, Object Group, Object Type, Set Objects, Reset, Go to Objects, Set Area, Reset, Go to Area, Set Location, Reset, Go to Location

Unlock Gate
Unlocks a specific Gate.
Set Gate, Reset, Go to Gate

Use Advanced Buttons
Enables Advanced Buttons/Commands/Actions?
None
Common Settings (Guide Part 11)
  • Arguments/Options/Settings

    • AI Signal Value
      A Signal Number from 0 to 255 to be sent to the AI File. (Controlled via AI File.)
      Constant Byte

    • AI Trigger Number
      An AI Goal Number from 1 to 256 to be sent to the AI File. (Controlled via AI File.)
      Constant Byte

    • String Table ID
      The Integer ID from the Language Files you intend to Translate a String from.
      Signed Constant Integer

    • Item ID
      The Object ID You wish to modify the Projectile from.
      Integer? (Auto Detects)

    • Name
      An Object, Player, Etc that can be renamed to something else.
      String

    • Sound (Event) Name
      The filename of the sound you want to play.
      String

    • Message
      An Object, Objective, Etc Message that can be set.
      String

    • Button Location
      Sets the Button ID Number to use with the User Interface.
      Update: So, it turns out they scattered the Numbers into 'sections'. 1 to 15 (Page 1) and 21 to 35 (Page 2).
      Signed Constant Integer

    • Source Player
      A Player ID from 1 to 8. (Also Gaia.)
      Constant Byte/Integer?

    • Target Player
      A Player ID from 1 to 8. (Also Gaia.)
      Constant Byte/Integer?

    • Flash Objects
      Enable/Disable a temporary Flashing Effect on Objects.
      Boolean

    • Scroll
      Whether to Scroll to the location or not.
      Boolean

    • Panel Location
      An ID to determine which Panel to use for Instructions. (0, 1, or 2. Top, Middle, or Bottom.)
      Constant Byte/Integer?

    • Facet
      The Units Facing Direction. (16 Directions?)
      Signed Integer

    • Victory
      Set Player to Win/Lose.
      Boolean

    • Enabled
      On/Off, Yes/No, Enabled/Disabled, True/False, 0/1.
      Boolean

    • Play Sound
      Whether or not to Play Sound.
      Boolean

    • Force
      Force Technology to be researched. (Even though, they don't have access to it.)
      Boolean

    • Object List Type
      The Primary Group ID to determine what the Object Type is in. (Units, Buildings, Heroes, and Others.)
      Constant Byte/Integer?

    • Object List
      The ID for all Objects in the Game.
      Constant Byte/Integer?

    • Object Group
      The Trinary Group ID to determine what the Object Type is in.
      Constant Byte/Integer?

    • Object Type
      The Secondary Group ID to determine what the Object Type is in. (Buildings, Civilian, Military, and Other.)
      Constant Byte/Integer?

    • Object Icon
      (Not actually a value. Uses Object List Type and Object List.)
      None

    • Object Attributes
      A ID Group of all possible Object Attributes.
      Constant Byte/Integer?

    • Technologies
      A ID Group of all possible technologies.
      Constant Byte/Integer?

    • Technology State
      A ID Group of all possible Technology Status.
      Constant Byte/Integer?

    • Inverse Condition
      Returns the Opposite Result for your Condition. (Not.)
      Boolean

    • Timer
      Sets a Timer in Seconds.
      Signed Integer

    • Timer ID
      A ID Group for Special Timers. (0 to 9.)
      Constant Byte/Integer?

    • Timer Unit
      A ID Group for Special Timers. (Years, Minutes, or Seconds.)
      Constant Byte/Integer?

    • Variable
      A ID Group for Variables. (0 to 255.)
      Constant Byte?

    • Comparison
      A ID Group for Comparing Variables. ( ==, <, >, <=, or >= )
      Constant Byte/Integer?

    • Operation
      A ID Group for Mathematical Operations for Numbers. (Set, Add, Subtract, Multiply, Divide.)
      Constant Byte/Integer?

    • Trigger List
      The List of Triggers the Scenario Currently has.
      Integer?

    • Armor/Attack Type
      The Type of Armor/Attack to use?
      Byte/Integer?
      Note: Use 3 or 4 here for base damage/attack.

    • Resource 1/2/3
      Modifies the Cost Value Type.
      Signed Integer
      Update: Replaced the Resource Names.

    • Resource 1/2/3 Quantity
      Modifies the Cost Value.
      Signed Integer
      Update: Replaced the Resource Names.

    • Tribute List
      A ID Group of all possible Game Stats/Resources.
      Constant Byte/Integer?

    • Set Attack Stance
      A ID Group for all possible Unit Stances. (Aggressive, Defensive, Stand Ground, or No Attack.)
      Constant Byte/Integer?

    • Quantity
      A number to set for the Value/Quantity.
      Signed Integer *

      * Note that sometimes this datatype is different. It can be an unsigned byte. For example: Change Object Armor/Attack. Not sure if this is a bug or what.

      Edit: I found negative attack does not work. Therefore, this confirms it's unsigned in this case.

    • Set Object
      Sets the Target Object for the Condition.
      Integer?

    • Set Objects
      I honestly think this is a typo. You are only allowed to set one object at a time. I think this is Set Object.
      Integer?

    • Set Area
      Sets the X/Y Area on the map for the Condition.
      Array/Integer?

    • Set Location
      Sets the X/Y Area on the map for the Condition.
      Array/Integer?

    • Set Gate
      Sets the Object (Gate) to be used for Locking/Unlocking.
      Integer?

    • Reset
      Resets the Object(s), Area, Location, or Gate.
      Integer?

    • Go to Object
      Goes to the In-Game View of the Object.
      Array/Integer?

    • Go to Objects
      Goes to the In-Game View of the Objects.
      Integer?

    • Go to Area
      Goes to the In-Game View of the Area.
      Array/Integer?

    • Go to Location
      Goes to the In-Game View of the Location.
      Array/Integer?

    • Go to Gate
      Goes to the In-Game View of the Gate.
      Integer?

    • Next Object
      Sets the Second Target Objects for the Condition.
      Integer?

    • Go to Next Object
      Goes to the In-Game View of the Next Object.
      Integer?

    • Difficulty Level
      A ID Group for the Difficulty.
      Constant Byte/Integer?

    • Diplomacy State
      A ID Group for the Diplomacy Towards Other Players. (Ally, Neutral, or Enemy.)
      Constant Byte/Integer?

    • Visibility State
      A ID Group for the Visibility States of Other Players. (Visible, Explored, or Invisible.)
      Constant Byte/Integer?

    • Color
      A ID Group for Player Colors. (Blue, Red, Green, Etc.)
      Constant Byte/Integer?

    • Object State
      A ID Group for Object State. (Alive, Dying, Dead, Etc.)
      Constant Byte/Integer?

    • Color Mood
      A ID Group for Color Mood. (Default, Autumn, Winter, Etc.)
      Constant Byte/Integer?

    • Go to Trigger
      Goes to the selected trigger.
      Integer?

    • Reset This Timer ID
      Let's you reset a timer by ID.
      Boolean

    • Action Type
      A ID Group for action type.
      Constant Byte/Integer?

    • Victory Timer Type (NEW)
      A ID Group for victory timer type.
      Constant Byte/Integer?

    • Include Changeable Weapon Objects (NEW)
      Include Objects that have modifications/changes? I am unsure honestly...

    • Unit AI Action (NEW)
      A ID Group for unit actions.
Miscellaneous A (Guide Part 12)
Anything worth mentioning will go here that did not apply to the other sections. (Although, are still important to know.)

  • Valid/Invalid Trigger/Conditions/Effects

    • You may have noticed a few of the Triggers/Conditions/Effects Font Colors are either Red or Green. Red means you have forgot to set some options/settings/values and may not work properly. Green means you have the minimal options/settings/values for it to work properly. (Sometimes not all options/settings/values are required. It varies per Condition/Effect.) Make sure there are little/no Red Triggers/Conditions/Effects as possible. (Technically, Invalids are allowed. However, it's best to avoid them when possible.)

  • Conditions are Always "AND"

    • Conditions are always assumed to be 'AND'. There is no 'OR' sadly. The only way to use 'OR' is to have separate triggers with those specific conditions as well. Once all Conditions are True, the Effects will be be executed/ran. Here are some examples.

    • Condition 0
    • Condition 1
    • Condition 2
    • Effect 0

    • Condition 0 AND Condition 1 AND Condition 2 THEN Effect 0

    UPDATE: There is a new condition for 'and'. (You don't have to use this but, it may help beginners.)

    • Condition 0
    • Condition 1 (AND)
    • Condition 2
    • Effect 0

    • Condition 0 AND Condition 2 THEN Effect 0
    • if(Condition 0 and 2) than (Effects)

    UPDATE: There is a new condition for 'or'. Here is an example:

    Example 3:
    • Condition 0
    • Condition 1
    • Condition 2 (OR)
    • Condition 3
    • Condition 4
    • Condition 5
    • Effect 0
    • Effect 1
    • Effect 2

    This comes out to be:

    Condition 0 and 1 or Condition 3, 4, and 5 than Effects.
    if(Condition 0 and 1) or (Condition 3, 4, and 5) than (Effects)

  • Inverse Condition

    • This is equivalent to 'NOT'. Basically, the Opposite Result you expect for your Condition. Here are some examples.

    • Condition 0
    • Condition 1 (NOT)
    • Condition 2
    • Effect 0

    • Condition 0 AND NOT Condition 1 AND Condition 2 THEN Effect 0

  • 2D/3D Sounds


  • Editor Unit Limit

    • Important Note: I found out that the maximum units is 32768. (4096 per player. Not including gaia?) Any more and the game will crash. Be careful not to go over this limit.

  • Timer Disable/Enable Issue

      Important Note: So it turns out if you disable/enable a trigger with a timer, the timer value will remain where it left off. IT DOES NOT RESET. This will make display timers out of sync with the timer. Be careful using these for now.

  • .xs


  • Modify Attribute Issue

      If you are using this, make sure the object does not exist on the map. If it does exist, the effects will not get applied. However, if the object is created after, the unit will get the changes. ("Replace Unit" will work if needed.)

    Update: I needed to reword this part. I messed it up and it's a very confusing concept to understand. Also, do not mix these with "Change Object <Stat/Name>". This will make a new object completely from scratch.

  • Armor Type ID's

    • 0 - Unused
    • 1 - Infantry
    • 2 - Turtle Ships
    • 3 - Base Pierce (I Recommend Using This)
    • 4 - Base Melee (I Recommend Using This)
    • 5 - War Elephants
    • 6 - Unused
    • 7 - Unused
    • 8 - Cavalry
    • 9 - Unused
    • 10 - Unused
    • 11 - All Buildings (Except Ports)
    • 12 - Unused
    • 13 - Stone Defense
    • 14 - FE Predator Animals
    • 15 - Archers
    • 16 - Ships/Camels/Saboteurs
    • 17 - Rams
    • 18 - Trees
    • 19 - Unique Units (Except Turtle Ships)
    • 20 - Siege Weapons
    • 21 - Standard Buildings
    • 22 - Walls/Gates
    • 23 - FE Gunpowder Units
    • 24 - Boars
    • 25 - Monks
    • 26 - Castles
    • 27 - Spearman
    • 28 - Cavalry Archers
    • 29 - Eagle Warriors
    • 30 - HD Camels
    • 31 - Leitis Attack
    • 32 - Condottiero
    • 33 - Unused
    • 34 - Fishing Ship
    • 35 - Mamelukes
    • 36 - Heroes

  • Terrain Defense Bonus

    • -1 - None
    • 0 - All
    • 1 - Land + Shallows
    • 2 - Beach
    • 3 - Water
    • 4 - Land
    • 5 - Nothing
    • 6 - Water
    • 7 - All - Water
    • 8 - Land - Farm
    • 9 - Nothing
    • 10 - Land + Beach
    • 11 - Land - Farm
    • 12 - All - Water Bridge
    • 13 - Water
    • 14 - All - Water Bridge
    • 15 - Water
    • 16 - Grass + Beach
    • 17 - Water (+ Bridge) - Beach
    • 18 - All - Water Bridge
    • 19 - Only Water + Ice
    • 20 - All - Water
    • 21 - Shallow Water
    • 22 - All - Bridge, Dart Decay
    • 23 - All - Bridge, Arrow Decay
    • 24 - All - Bridge, Ground Decay
    • 25 - All - Bridge, Spear Decay
    • 26 - All - Bridge, Dart Decay
    • 27 - All - Bridge, Laser Decay
    • 28 - All - Water, Cavalry Dust
    • 29 - All - Water, Wheel Track
    • 30 - Water Medium Wave
    • 31 - All - Water, Wheel Track

  • Blast Levels

    • 0 - Damages Resources Also.
    • 1 - Damages Trees Also.
    • 2 - Damages Nearby Units.
    • 3 - Damages Only Targeted Unit.
    • 4 - Damages Nearby Units. (Friendly Fire off.)
    • 4 - Logistica style (5 damage to surrounding units).
    • 8 - War Elephant style (50% of the unit’s attack).
    • 16 - Battle Elephant style (25% of the unit’s attack).
    • 32 - Lechitic Legacy style (33% of the unit’s attack).
    • 64 - Reduces the blast damage with distance (works only for melee units).
    • 128 - Limits the blast attack area of the unit to the direction it is facing when attacking.

      Update: 4, 8, 16, and 32 was replaced to Blast Damage.
      Update: 4 is now 2 but with friendly fire off.

  • Resource Types

    • See: Resource Types in the advanced section.

  • Object Cost (Limit 3)

    • So, there is a hard coded limit on the cost types of 3. (All 4 resources is not possible sadly. Just thought I'd mention this.)
    • On a related note, if you try to modify a cost that did not exist on the unit, there is a chance that it just wont work at all. (Costs is kinda buggy as is anyway so be careful using this.)
Miscellaneous B (Guide Part 13)
This section relates to the maximum string of characters.

Note: While I know some of these max values are "technically incorrect", these are the "in-game" editor max values. Their actual max values differ a lot. (Experience from Learning the Scenario Format. For now, just assume these are correct for now. Unless, they change them in an update.)

  • [MAP]

    • Script Filename: 21 Characters.

  • [PLAYERS]

    • Tribe Name: 28 Characters.

  • [MESSAGES]

    • Instructions: 4096 Characters.
    • Hints: 4096 Characters.
    • Victory: 4096 Characters.
    • Loss: 4096 Characters.
    • History: 4096 Characters.
    • Scout: 4096 Characters.

  • [TRIGGERS]

    • Trigger Description: 4095 Characters.
    • Trigger Short Description: 240 Characters. (18 lines/objectives.)
    • Condition Script Call: 256 Characters.
    • Effect Change Civilization Name: 256 Characters.
    • Effect Change Object Civilization Name: 256 Characters.
    • Effect Change Object Description: 256 Characters.
    • Effect Change Object Name: 256 Characters.
    • Effect Change Object Player Name: 256 Characters.
    • Effect Change Player Name: 256 Characters.
    • Effect Change Technology Description: 256 Characters.
    • Effect Change Technology Name: 256 Characters.
    • Effect Change Variable: 256 Characters.
    • Effect Display Instructions: 256 Characters.
    • Effect Display Timer: 256 Characters.
    • Effect Modify Attribute: 256 Characters.
    • Effect Play Sound: 240 Characters.
    • Effect Script Call: 500000 Characters. (Update increased this from 256.)
    • Effect Send Chat: 64 Characters.
Miscellaneous C (Guide Part 14)
Honestly, I do not know how I never known about this, but according to discord (I tested and it does work.) You can hold shift + click up/down UI button with a trigger selected and move the trigger up/down by 5. Alternatively, you can hold ctrl + click up/down UI button and move it up/down by 10.
- - - - - - - - - - - - - - - - - - - - - - - - -
Separator (Ignore this section)
Advanced Stuff (Information)
(The following sections are optional information. You can skip these if you want or come back to them later if need be.)

Finally, I wanted extra sections for advanced/complicated stuff. Some of this information is related to tests I do in the editor and dump the results here. If there is anything else you want me to add here, please let me know in the comments section and I will try to add it. (If available/able to.)
Terms (Information)
Throughout this guide, you may notice some terms you're not familiar with. As a programmer, I just wanted to list them here. Here is what they are/mean. (Feel free to skip this section for now and read it later on as a reference.)

  • Boolean (Bit)

    • On/Off, Yes/No, True/False, Enabled/Disabled, or 0/1. (Only two possible values.)

  • String

    • Letters, Numbers, Symbols, Etc. Basically, Text. "Hello World!"

  • Byte (8 Bit)

    • This is a number between -128 and 127 Signed or 0 and 255 Unsigned.

  • Short Integer (16 Bit)

    • This is a number between -32768 and 32767 Signed or 0 and 65535 Unsigned.

  • Integer (32 Bit)

    • This is a number between -2147483648 and 2147483647 Signed or 0 and 4294967295 Unsigned.

  • Array

    • A Collection/Table of Values within a Variable.

  • Constant <Data Type>

    • Makes a Data Type Constant. (It's set and will never change values.)

  • Unsigned <Data Type>

    • Makes a Number Based Data Type only have a Positive Range.

  • Signed <Data Type>

    • Makes a Number Based Data Type have a Negative to Positive Range.

  • Advanced Genie Editor (AGE)

    • See Advanced Genie Editor (AGE) Section.
Advanced Genie Editor (AGE)
I realized I never explained AGE but I do mention it a few times. It could go in terms... but, I think I'll just link it to here... Anyway... (You don't have to read this section but, it does have some interesting information.)

AGE let's you look into the game data itself and let's you make mods of the data. (These can cause issues sometimes but, does allow for interesting concepts/ideas for modding.) You could get it online but, I noticed AOE2DE started including it in the games directory itself along with any changes they make. (It's probably better to use this one.) By default, it should be in here:

C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\Tools_Builds\AdvancedGenieEditor3.exe

(Path may differ if you installed the game/AOE2DE/Steam elsewhere.)
Trigger Examples (Information)
(New Examples)

<TO DO>

(Old Example)

Here is a example trigger from my Jurassic Park Scenario:

  • Objective: No
  • State: Off
  • Looping: Yes

  • C0: Timer
  • C1: Own Fewer Objects
  • E0: Remove Object
  • E1: Create Object
  • E2: Change Object HP
  • E3: Change Object Attack
  • E4: Change Object Name

I activate this trigger later on in the scenario based on timers. This trigger spawns units. It first removes any units in it's way, creates the new unit, and applies some stat changes. Note: I task my objects in a seperate trigger. It's a good idea if you want a looping trigger like this.
Saving in Beta/PUP (Oops...)
So uh, I may have accidentally done this... I highly recommend you DO NOT DO THIS. (I realized my mistake too late.) Due to the changes in the versioning/updates/build, compatibility may/might only work in future updates/patches/builds of the game. So, trying to open scenarios in older/current versions may not load correctly...

Thankfully, I was told that most likely, it should be fixed in the next update/current PUP build. Although, I cannot exactly re-save it to the old format again... Just keep this in mind for now...
Translation of Scenario Text
Description/Explanation

This section is optional information. You do not have to do this unless you want to have your text translate to other languages. It can be a bit tedious/time consuming. It also helps if you know other languages as well. However, it is technically doable via google translate. (Not ideal but, it's better than only one language.)

Requirements/Skills Needed/Etc.

  • Programmers Notepad. (or a Text Editor that can 'Encode' in 'UTF-8 No Mark')
  • Know Multiple Languages/Know how to use Google Translate.
  • General Knowledge on how the AOE2DE Scenario Editor works. (Including Triggers. See my guide if you need help on this.)
  • How to make your own mods.

Named ID's (Update)

Note: Thanks to 'CanineCrown7153' to pointing this out.

Note that you can use named ID's. HOWEVER, to use them in the editor, you will have to copy/paste them in manually since they only accept numbers. Example:

MY_NEW_STRING_ID "Hello World!"

Then, you would just copy/paste: MY_NEW_STRING_ID as needed.

Update: It seems 'some' do accept characters. Perhaps, they are/were working on it at some point? Interesting nonetheless. (Noted)

Introduction/Guide

So, you want to know how to translate text in your scenario? It is actually very simple to do. However, there is one factor that you need to know/remember about. That is: String ID's. What is a String ID? A unique number. That's it. It really is that simple. (Well, not really but, there is only one other thing part of it. The actual string of characters that goes along with it.) Let me give you an example...

1 "This is a string."
2 "This is another string."
3 "Hello World!"
4 "This is fun."

Edit/Note: Technically, it can be anything that is Unique. However, it's probably better to stick with numbers for now...

See? Not too hard right? Well, not exactly... There is a slight problem with this example... These String ID's could be "in use". (I don't think they actually are but, that would require some research/checking into.) What do I mean exactly? First, let's go to the game's data directory for an explanation... Go to this path. (May be different depending on installation directory.)

C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\en\strings\key-value

Now, open up the file named: key-value-strings-utf8.txt with your text editor.

Yeah... That is a lot of ID's... There are actually even more too... We can come back to that later though...

Hmm? What is "key-value-modded-strings-utf8.txt"? (It's in the directory too.) I am glad you asked! This is what file you will be using to add your own custom strings. (Just note that you will not be using this file directly. You should copy it into your mod directory in the correct format and such.)

You will also need to have some folders as well like this in your mods resources directory:



(Folder Names/Languages)

br = Portuguese
de = German
en = English
es = Spanish
fr = French
hi = Hindi
it = Italian
jp = Japanese
ko = Korean
ms = Malay
mx = Spanish (Latin? I honestly do not know the exact difference.)
pl = Polish
ru = Russian
tr = Turkish
tw = Chinese (Traditional)
vi = Vietnamese
zh = Chinese (Simplified)

These folder names are important for the languages. Inside each of these folders, you need to have more folders... Here is what it should look like...

  • <Language Folder>
    • <strings>
      • <key-value>
        • key-value-modded-strings-utf8.txt

That is for all the languages you want to translate to. English is the "fallback" language in case there are no translations for other languages.

So, how exactly does this work? As I said, you need to use the String ID's for this to work. How? It's simple. In each of the language files of "key-value-modded-strings-utf8.txt" you add a unique ID and the string. Here is an example...

<English>
1337 "Hello."
<Spanish>
1337 "Hola."
<Portuguese>
1337 "Olá."
<Japanese>
1337 "こんにちは"

and so on...

So, you have a translated string... Now what? Simple. Use the String ID in the editor and it should work just fine. How? Well, there are a few different things that can use strings... I'll make a list of what you can use...

  • Players Civilization Name.
  • Message Tab. (All of them are available to use.)
  • String Based Trigger Effects. (Name, Description, Etc.)
  • Objectives.

That's all there is to it. Really. Although, I do want to point out something. If you do not use the correct encoding or do something incorrectly, the translations can break the game/UI sometimes. If you see something go wrong, check to be sure you are doing this exactly as I said and used the correct encoding. (UTF-8 does not work sadly. It has to be UTF-8 No Mark. At least, from my experience. I am not a encoding expert...)

Programmer's Notepad Users: If you have not already found it, go to File -> Encoding -> UTF-8 No Mark and save the file. If you use another editor, you will have to determine how to do it yourself. (google it/read the help information.)

Also, NEVER use an existing String ID from the game! It has to be unique! (You will have to find one yourself that is not in use. The max value I believe is a integer so, 2.14 billion possible ID's. I personally just used 2 billion and went up from there by 1. Just note that if you choose to do this, I assume modded strings will also have to be taken into consideration. Documenting these ID's may be advised for other modders.)

Update: To clarify something; you can use existing ID's if you need to but, only if you are updating the existing ID's for a reason in your mod. As to why you would, is up to you. Like translating the game into another language for example.

Finally, here is a list of directories that has string files. (That I know of.)

C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\_common\strings
C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\<Language>
C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\<Language>\strings
C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\<Language>\strings\history
C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\resources\<Language>\strings\key-value
Very Important Note (String/Mod Related)
Update/Note: I believe this was 'fixed/patched' at some point but, I never mentioned it. You should be able to include it in the data mod without issues. (Feel free to let me know if I am wrong but, I have done it recently and it worked for me so...)

So, it seems that something important has come to my attention. (Thanks PsychoticSock.) There can be a issue with mods that include string ID's with datasets. (I had a mod that included the strings and the datamod itself.) DO NOT DO THIS.

Instead, make each mod separately. (The Dataset/Graphics on it's own and the String ID's on it's own.) Why? Well, this can cause a... 'Not Loaded in Time/Properly?' Issue... (It's hard to describe...) But basically, the problem is, the String ID's don't get prioritized/loaded at the correct time and they may not work as you intend. (Explanation from Experience: The result from my experience/test was trying to add these objects to the editor. I knew they were correct but, they did not show up. After I separated the mods, they show up just fine/as intended.)

Important Note: Make sure the/your 'String ID's mod' has Higher priority over all mods. (This should hopefully make it that it will load correctly all the time.)
(WIP) Markup Codes (Strings)
I know some of these exist but, I don't know all of them. I want to add this to the guide but, I need to do some research. I will list a few of them in the meantime.

You can put these inside strings to add specific data to the string as needed. It's pretty common in unit descriptions.

[Validated]

<BLUE> (Messages/Stings)
<RED> (Messages/Stings)
<GREEN> (Messages/Stings)
<YELLOW> (Messages/Stings)
<AQUA> (Messages/Stings)
<PURPLE> (Messages/Stings)
<GREY> (Messages/Stings)
<ORANGE> (Messages/Stings)
<WHITE> (Messages/Stings. Available but, pointless since white is the default color.)

[note]: while researching, i found these but sadly, they do not work.

<BLACK>
<COL11>
<COL12>
<COL13>
<COL14>
<COL15>
<COL16>

[end note]

<b>STRING<b> (Bold. Messages/Stings)
<i>STRING<i> (Italic. Messages/Stings)

<cost> (Objects)
<food> (Objects)
<wood> (Objects)
<stone> (Objects)
<gold> (Objects)
<hp> (Objects)
<attack> (Objects)
<armor> (Objects)
<piercearmor> (Objects)
<range> (Objects)
<garrison> (Objects)

<static_cost=Resource,#> (Objects. Interesting... I need to do research into this one.)
Argument 1: Food, Wood, Stone, or Gold
Argument 2: Any Integer Number.

<Resource Type> (Objectives. I will look into this at some point.. See the next section: "Resource Types" I have tried all of them and they work.)

[To Do]

<VARIABLE-NAME> or <Variable #> (You can use variables too. Just so you know, if you don't name it, it should be this. Replace # with the number. Otherwise, just use the name inside the tag. However, I never managed to get these to work... Sadly...)

<Conversions, 1> (Interesting. Can you assign a default value? Hmm... I am unsure... It does not seem to work visually... but, it does show up normally... I'll test more later.)

[printf Format String]

\n (New Line. This one is from the C Programming Language.)
%d (This one is from the C Programming Language.)
%s (This one is from the C Programming Language.)
Resource Types (Part 1)
I am just going to put this here... There are a lot of these that I still need to go though... I grabbed these from TS's data_aok.xml file.

(Note that the first 4 have a ! in front of them. I believe this is DE only. IIRC, these were not present in the other versions with the !)

* I will mark these with a star for now to note where I left off while looking though the list...

Adding the Values inside <> in case you want to use the string markup. (Assuming they are named correctly.)

Crash Note: I am not 100% sure but, while testing, my game crashed. I believe it has to do with the player count. If you use these with player count, be sure the players are actually in the game/scenario before using them.

Update: Seems they went alphabetical order... Time to reorganize...

<!Food Storage> *
<!Wood Storage> *
<!Stone Storage> *
<!Gold Storage> *

<% Map Explored> *

<All Monuments Captured> *
<All Relics Captured> *
<All Techs Achieved> *
<Attack Warning Sound ID> (Unknown) *

<Berry Storage> (Berries Food (Unused)) *
<Boarding Recharge Rate> *
<Bonus Population Cap> *
<Building Cost Sum> (Economy Score) *
<Building Housing Rate> *
<Building Repair Cost>
<Buildings Value Total>

<Can Convert> *
<Castle Age Tech ID> *
<Cavalry Kill Reward>
<Chopping Gold Productivity>
<Chopping Productivity> *
<Civilian Population> (Villager High) *
<Civilization Name Override>
<Construction Rate Modifier> (Build Rate (Except Wonders)) *
<Conversion Range> *
<Conversion Resistance> *
<Conversions> *
<Convert Boats> (Boarding) *
<Convert Building Chance> *
<Convert Building Max> *
<Convert Building Min> *
<Convert Max Adjustment> *
<Convert Min Adjustment> *
<Convert Resist Max Adjustment> *
<Convert Resist Min Adjustment> *
<Converted Units Die> (Heresy) *
<Corpse Decay Time> (Unused?) *
<Crenellations> (Garrisoned Inf.) *
<Current Age> *
<Current Population> (Current and Headroom) *

<Dark Age Tech ID> *
<Dominant Sheep Control> (Sheep/Turkey Dominant LOS) *

<Early Town Center Limit>
<Elevation Higher Bonus> *
<Elevation Higher Damage>
<Elevation Lower Bonus> *
<Elevation Lower Damage>
<Enable Building Conversion> (Redemption) *
<Enable Monk Conversion> (Atonement) *
<Enable PTWC / Kidnap / Loot> (Enable Town Center Packing / Raider Ability) *
<Enable Siege Conversion>

<Faith> (Unused?) *
<Faith Recharging Rate> *
<Farm Food Amount> *
<Farming Gold Productivity> *
<Feitoria Food Productivity> *
<Feitoria Gold Productivity> *
<Feitoria Stone Productivity> *
<Feitoria Wood Productivity> *
<Feudal Age Tech ID> *
<Fish Storage> *
<Fish Trap Food Amount> *
<Fishing Productivity>
<Flemish Militia Population> *
<Folwark Attribute Type> *
<Folwark Building Type> *
<Folwark Collection Amount> *
<Food Gathering Productivity> *
<Food Generation Rate> *
<Food Maintenance> (Unused?) *
<Food Score> *
<Food Total> *
<Foraging Wood Productivity>

<Gaia Kill Value>
<Gaia Razing Value>
<Gaia Razings>
<Gaia Tribute>
<Gather Accumulator> *
<Gold Counter> *
<Gold Generation Rate> *
<Gold Mining Productivity> *
<Gold Score> *
<Gold Total> *

<Heal Rate Modifier> *
<Healing Range> *
<Hit Points Killed> (Unused) *
<Hit Points Razed> (Unused) *
<Hun Wonder Discount> (Atheism (Wonder Bonus)) *
<Hunter Productivity>

<Imperial Age Tech ID> *
<Infantry Kill Reward>

<Kidnap Storage> (Unused?) *
<Kill Ratio> *
<Killed by Others> (Units Lost) *
<Killed Gaia>
<Killed P1> *
<Killed P2> *
<Killed P3> *
<Killed P4> *
<Killed P5> *
<Killed P6> *
<Killed P7> *
<Killed P8> *
<Kills by Gaia>
<Kills by P1> *
<Kills by P2> *
<Kills by P3> *
<Kills by P4> *
<Kills by P5> *
<Kills by P6> *
<Kills by P7> *
<Kills by P8> *

<Livestock Food Productivity>

<Meat Storage> (Animal Food (Unused)) *
<Mercenary Kipchak Count> *
<Mercenary Kipchak Limit> *
<Military Can Convert>
<Military Convert Chance>
<Military Convert Range>
<Military Convert Recharge>
<Military Population> (Largest Army) *
<Monasteries> *
<Monument Food Productivity> *
<Monument Gold Productivity> *
<Monument Stone Productivity> *
<Monument Wood Productivity> *
<Monuments Captured> *

<No Dropsite Farmers>

<Ore Storage> (Unused) *

<P1 Kill Value> (Score) *
<P1 Razing Value> (Score) *
<P1 Razings> *
<P1 Tribute> *
<P2 Kill Value> (Score) *
<P2 Razing Value> (Score) *
<P2 Razings> *
<P2 Tribute> *
<P3 Kill Value> (Score) *
<P3 Razing Value> (Score) *
<P3 Razings> *
<P3 Tribute> *
<P4 Kill Value> (Score) *
<P4 Razing Value> (Score) *
<P4 Razings> *
<P4 Tribute> *
<P5 Kill Value> (Score) *
<P5 Razing Value> (Score) *
<P5 Razings> *
<P5 Tribute> *
<P6 Kill Value> (Score) *
<P6 Razing Value> (Score) *
<P6 Razings> *
<P6 Tribute> *
<P7 Kill Value> (Score) *
<P7 Razing Value> (Score) *
<P7 Razings> *
<P7 Tribute> *
<P8 Kill Value> (Score) *
<P8 Razing Value> (Score) *
<P8 Razings> *
<P8 Tribute> *
<Population Headroom> *

<Queued Units> *

<Raiding Productivity> *
<Razed by Others> (Buildings Lost) *
<Razings> *
<Razings by Gaia>
<Razings by P1> *
<Razings by P2> *
<Razings by P3> *
<Razings by P4> *
<Razings by P5> *
<Razings by P6> *
<Razings by P7> *
<Razings by P8> *
<Relic Food Production Rate> *
<Relic Gold Production Rate> *
<Relic Income Sum> (Collected) *
<Relic Stone Production Rate>
<Relic Wood Production Rate>
<Relics Captured> *
<Relics Visible on Map> *
<Remarkable Discovery> (Unused?) *
<Research Cost Modifier> *
<Research Time Modifier> *
<Reveal Ally> (Cartography) *
<Reveal Enemy> (Spies) *
<Reveal Enemy Town Centers> *

<Salvage Decay Rate> *
<Shared Line of Sight> *
<Shepherd Productivity> *
<Spawn Inside>
<Spawn Limit> *
<Speed Up Building Range>
<Speed Up Building Type>
<Speed Up Effect Type>
<Speed Up Object Type>
<Speed Up Percentage>
<Speed Up Secondary Effect Type>
<Speed Up Secondary Percentage>
<Spies Discount> (Atheism (Spies Discount)) *
<Standing Castles> *
<Standing Wonders> *
<Start with Unit 444 (PTWC)> (Start With Packed Town Center / Raider) *
<Starting Food> *
<Starting Gold> *
<Starting Scout ID>
<Starting Stone> *
<Starting Villagers> *
<Starting Wood> *
<Stone Generation Rate> *
<Stone Mining Gold Productivity> *
<Stone Mining Productivity> *
<Stone Score> *
<Stone Total> *
<Survival to Finish> *
Resource Types (Part 2)
List got too long. I had to make a separate section.

<Tax Gather Rate> *
<Tech Cost Sum> (Technology Score) *
<Technology Count> *
<Technology Reward Effect>
<Theocracy> *
<Total Castles Built> *
<Total Tribute Received> *
<Total Units Owned> *
<Total Value of Kills> (Score: Military) *
<Total Value of Razings> (Razing Score) *
<Total Wonders Built> *
<Town Center Unavailable> *
<Trade Food Percent>
<Trade Goods> (Unused?) *
<Trade Income Sum> (Profit) *
<Trade Stone Percent>
<Trade Vig Rate> (Trade Fee) *
<Trade Wood Percent>
<Trade Workshop Food Productivity> *
<Trade Workshop Gold Productivity> *
<Trade Workshop Stone Productivity> *
<Trade Workshop Wood Productivity> *
<Training Count> *
<Tribute from Gaia>
<Tribute from P1> *
<Tribute from P2> *
<Tribute from P3> *
<Tribute from P4> *
<Tribute from P5> *
<Tribute from P6> *
<Tribute from P7> *
<Tribute from P8> *
<Tribute Inefficiency> (Tribute Fee) *
<Tribute score> (Score: Economy (Tribute)) *
<Tribute Sent> *

<Unit Repair Cost>
<Units Converted> *
<Units Killed> *
<Units Value Total>
<Unused Resource 008> (Trade Bonus (Unused?)) *
<Unused Resource 010> (Trade Production Rate (Unused?)) *
<Unused Resource 018> (Unknown) *
<Unused Resource 030> (Building Limit) *
<Unused Resource 031> (Food Limit) *
<Unused Resource 051> (Houses (Unused))
<Unused Resource 059> (Trade Good Quality (Unused?)) *
<Unused Resource 060> (Trade Market Level (Unused?)) *
<Unused Resource 061> (Allow Formations (Unused?)) *
<Unused Resource 066>
<Unused Resource 069>
<Unused Resource 070>
<Unused Resource 071>
<Unused Resource 072>
<Unused Resource 073>
<Unused Resource 074>
<Unused Resource 075>
<Unused Resource 076>
<Unused Resource 102>
<Unused Resource 103>
<Unused Resource 104>
<Unused Resource 105>
<Unused Resource 106>
<Unused Resource 107>
<Unused Resource 108>
<Unused Resource 109>
<Unused Resource 110>
<Unused Resource 111>
<Unused Resource 112>
<Unused Resource 113>
<Unused Resource 114>
<Unused Resource 115>
<Unused Resource 116>
<Unused Resource 117>
<Unused Resource 118>
<Unused Resource 119>
<Unused Resource 120>
<Unused Resource 121>
<Unused Resource 122>
<Unused Resource 123>
<Unused Resource 124>
<Unused Resource 125>
<Unused Resource 126>
<Unused Resource 127>
<Unused Resource 128>
<Unused Resource 129>
<Unused Resource 130>
<Unused Resource 131>
<Unused Resource 132>
<Unused Resource 133>
<Unused Resource 136>
<Unused Resource 137>
<Unused Resource 138>
<Unused Resource 139>
<Unused Resource 140>
<Unused Resource 141>
<Unused Resource 142>
<Unused Resource 143>
<Unused Resource 144>
<Unused Resource 145>
<Unused Resource 146>
<Unused Resource 147>
<Unused Resource 148>
<Unused Resource 149>
<Unused Resource 150>
<Unused Resource 151>
<Unused Resource 156>
<Unused Resource 157>
<Unused Resource 158>
<Unused Resource 159>
<Unused Resource 160>
<Unused Resource 161>
<Unused Resource 162>
<Unused Resource 163>
<Unused Resource 198> (Unk 198 (unused?)) *
<Unused Resource 199> (Unk 199 (unused?)) *
<Unused Resource 200> (Unk 200 (unused?)) *
<Unused Resource 201> (Unk 201 (unused?)) *
<Unused Resource 202> (Unk 202 (unused?)) *
<Unused Resource 203> (Unk 203 (unused?)) *
<Unused Resource 204> (Unk 204 (unused?)) *
<Unused Resource 220> *
<Unused Resource 275>
<Unused Resource 276>
<Unused Resource 277>
<Unused Resource 278>
<Unused Resource 285>
<Unused Resource 286>
<Unused Resource 287>
<Unused Resource 288>
<Unused Resource 289>
<Unused Resource 290>
<Unused Resource 291>
<Unused Resource 292>
<Unused Resource 293>
<Unused Resource 294>
<Unused Resource 295>
<Unused Resource 296>
<Unused Resource 297>
<Unused Resource 298>
<Unused Resource 299>
<Unused Resource 309>
<Unused Resource 310>
<Unused Resource 311>
<Unused Resource 312>
<Unused Resource 313>
<Unused Resource 314>
<Unused Resource 315>
<Unused Resource 316>
<Unused Resource 317>
<Unused Resource 318>
<Unused Resource 319>
<Unused Resource 320>
<Unused Resource 321>
<Unused Resource 322>
<Unused Resource 323>
<Unused Resource 324>
<Unused Resource 334>
<Unused Resource 335>
<Unused Resource 336>
<Unused Resource 337>
<Unused Resource 338>
<Unused Resource 339>
<Unused Resource 340>
<Unused Resource 341>
<Unused Resource 342>
<Unused Resource 343>
<Unused Resource 344>
<Unused Resource 345>
<Unused Resource 346>
<Unused Resource 347>
<Unused Resource 348>
<Unused Resource 349>
<Unused Resource 359>
<Unused Resource 360>
<Unused Resource 361>
<Unused Resource 362>
<Unused Resource 363>
<Unused Resource 364>
<Unused Resource 365>
<Unused Resource 366>
<Unused Resource 367>
<Unused Resource 368>
<Unused Resource 369>
<Unused Resource 370>
<Unused Resource 371>
<Unused Resource 372>
<Unused Resource 373>
<Unused Resource 374>
<Unused Resource 384>
<Unused Resource 385>
<Unused Resource 386>
<Unused Resource 387>
<Unused Resource 388>
<Unused Resource 389>
<Unused Resource 390>
<Unused Resource 391>
<Unused Resource 392>
<Unused Resource 393>
<Unused Resource 394>
<Unused Resource 395>
<Unused Resource 396>
<Unused Resource 397>
<Unused Resource 398>
<Unused Resource 399>
<Unused Resource 409>
<Unused Resource 410>
<Unused Resource 411>
<Unused Resource 412>
<Unused Resource 413>
<Unused Resource 414>
<Unused Resource 415>
<Unused Resource 416>
<Unused Resource 417>
<Unused Resource 418>
<Unused Resource 419>
<Unused Resource 420>
<Unused Resource 421>
<Unused Resource 422>
<Unused Resource 423>
<Unused Resource 424>
<Unused Resource 434>
<Unused Resource 435>
<Unused Resource 436>
<Unused Resource 437>
<Unused Resource 438>
<Unused Resource 439>
<Unused Resource 440>
<Unused Resource 441>
<Unused Resource 442>
<Unused Resource 443>
<Unused Resource 444>
<Unused Resource 445>
<Unused Resource 446>
<Unused Resource 447>
<Unused Resource 448>
<Unused Resource 449>
<Unused Resource 459>
<Unused Resource 460>
<Unused Resource 461>
<Unused Resource 462>
<Unused Resource 463>
<Unused Resource 464>
<Unused Resource 465>
<Unused Resource 466>
<Unused Resource 467>
<Unused Resource 468>
<Unused Resource 469>
<Unused Resource 470>
<Unused Resource 471>
<Unused Resource 472>
<Unused Resource 473>
<Unused Resource 474>
<Unused Resource 484>
<Unused Resource 485>
<Unused Resource 486>
<Unused Resource 487>
<Unused Resource 488>
<Unused Resource 489>
<Unused Resource 490>
<Unused Resource 491>
<Unused Resource 492>
<Unused Resource 493>
<Unused Resource 494>
<Unused Resource 495>
<Unused Resource 496>
<Unused Resource 497>
<Unused Resource 498>
<Unused Resource 499>

<Value Current Buildings> (Current Buildings Score) *
<Value Current Units> (Current Units Score) *
<Value Killed by Others> (Units Lost Score) *
<Value Razed by Others> (Buildings Lost Score) *
<Value Wonders Castles> (Society Score) *
<Villager Population>
<Villagers Created Total>
<Villagers Idle Periods Total>
<Villagers Idle Seconds Total>
<Villagers Killed by AI Player> *
<Villagers Killed by Animals>*
<Villagers Killed by Gaia> *
<Villagers Killed by Human Player> *

<Wood Generation Rate> *
<Wood Score> *
<Wood Total> *
Modify Attribute (Part 1)
Update: I Reorganized/Updated these sections alphabetically. I had to add a 3rd section though...

  • Name: Accuracy Percent
  • Values: 0 to 100. / -999999999 to 2147483647.
  • Description: Modify a Objects Accuracy.
  • Notes: You can enter up to 2147483647 but, nothing notable happens. Setting to 0 does not seem to do any noticeable difference though...

  • Name: Amount of 1st Resource Storage
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects 1st Resource Storage Slot. (Example: Population Headroom.)
  • Notes:

  • Name: Amount of 2nd Resource Storage
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects 2nd Resource Storage Slot. (Example: Current Population.)
  • Notes:

  • Name: Amount of 3rd Resource Storage
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects 3rd Resource Storage Slot. (Example: Total Units Owned.)
  • Notes:

  • Name: Area Damage
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Area Damage? (Maybe Blast Damage? I don't know...)
  • Notes: I don't know exactly what this does...

  • Name: Armor
  • Values: Quantity: 0 to 255. / Type: 0 to 255. (See Misc A.)
  • Description: Modifies the Objects Armor by a Type.
  • Notes: (Although, it suggests Quantity of 65535 but, it resets?)

  • Name: Attack
  • Values: Quantity: 0 to 255. / Type: 0 to 255. (See Misc A.)
  • Description: Modifies the Objects Attack by a Type.
  • Notes: (Although, it suggests Quantity of 65535 but, it resets?)

  • Name: Attack Dispersion
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Attack Dispersion.
  • Notes: The intent was to make the projectile to spread out when missing an attack. The higher the value, the more it goes off target.

  • Name: Attack Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Attack Graphic ID.
  • Notes: Example: Archer Attack ID is 627.

  • Name: Attack Reload Time
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Attack Reload Time.
  • Notes: Lower is faster and Higher is slower.

  • Name: Base Armor
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Base Armor.
  • Notes: If Attack Type/Armor Type isn't present, it will use this value.

  • Name: Blast Attack Level
  • Values: 0, 1, 2, 3, 4, 64, 128 (See Misc A.) / -999999999 to 2147483647.
  • Description: Modifies the Objects Blast Attack Level.
  • Notes: 4, 8, 16, and 32 were replaced in Blast Damage.
  • Update: new 4 value.

  • Name: Blast Defense Level
  • Values: 0, 1, 2, 3, 4, 64, 128 (See Misc A.) / -999999999 to 2147483647.
  • Description: Modifies the Objects Blast Defense Level.
  • Notes: 4, 8, 16, and 32 were replaced in Blast Damage.
  • Update: new 4 value.

  • Name: Blast Width
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Blast Width.
  • Notes: An example would be like a Saboteurs attack.

  • Name: Blockage Class
  • Values: -999999999 to 2147483647.
  • Description:
  • Notes:

  • Name: Blood Unit
  • Values: -1 / -999999999 to 2147483647.
  • Description: Modifies the Objects Blood Unit ID.
  • Notes: This seems to apply to gaia units like deer. Generally, it's -1. (None)

  • Name: Bonus Damage Resistance
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Bonus Damage Resistance.
  • Notes: This applies to all armor types except for 3, 4, and 31 apparently.

  • Name: Building Icon Override
  • Values: 0 to 26, 28, 30 to 45, 52 to 87 / -999999999 to 2147483647.
  • Description: Modifies the Objects Building Icon ID.
  • Notes: See "C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\widgetui\textures\ingame\buildings"

  • Name: Can Be Built On
  • Values: 0 to 2+ / -999999999 to 2147483647.
  • Description: Modifies the Objects Can Be Built On Value.
  • Notes: 0 is default, 1 is highest elevation, and 2+ is not effected by elevation.

  • Name: Carry Capacity
  • Values: 0 to 800+? / -999999999 to 2147483647.
  • Description: Modifies the Objects Carry Capacity.
  • Notes: Example: Villagers Carry Capacity. (Max effective value should be 800 for gold mine. I cannot modify the storage value for gaia to test higher values via triggers.)

  • Name: Charge Event
  • Values: 0 to 1? / -999999999 to 2147483647.
  • Description: Modifies the Objects Charge Event.
  • Notes: The AGE info message suggests it's a boolean? (0 or 1.)

  • Name: Charge Type
  • Values: 0 to 2 / -999999999 to 2147483647.
  • Description: Modifies the Objects Charge Type.
  • Notes: 1 is attack and 2 is hit points. 0 is none?

  • Name: Combat Ability
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Combat Ability.
  • Notes: Is this special ability? I dunno otherwise...

  • Name: Conversion Chance Modifier
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Conversion Chance Modifier.
  • Notes: Relates to Monks.

  • Name: Dead Unit ID
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Dead Unit ID.
  • Notes: See AGE Units for these. Generally, these unit ID's end with <NAME>_D.

  • Name: Dying Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Dying Graphic.
  • Notes: See AGE Units/Graphics for these.

  • Name: Fog Visibility
  • Values: 0 to 4 / -999999999 to 2147483647.
  • Description: Modifies the Objects Fog Visibility.
  • Notes: 0 Not visible, 1 Always visible, 2 Visible if alive, 3 Inverted visibility, 4 Check Doppelganger.

  • Name: Food Costs
  • Values: 0 to 32767 / -999999999 to 2147483647.
  • Description: Modifies the Objects Food Costs.
  • Notes:

  • Name: Formation Category
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Formation Category.
  • Notes: "Formation Category (0: not using formation, 1: mobile, 2: body, 3: ranged, 4: long ranged, 5: protected)."

  • Name: Foundation Terrain
  • Values: -1 to 199 / -999999999 to 2147483647.
  • Description: Modifies the Objects Foundation Terrain.
  • Notes: See AGE Terrains.

  • Name: Frame Delay
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Frame Delay.
  • Notes: Graphic Frames Delay before projectile is shot.

  • Name: Garrison Capacity
  • Values: 0 to 255 / -999999999 to 2147483647.
  • Description: Modifies the Objects Garrison Capacity.
  • Notes:

  • Name: Garrison Type
  • Values: 0 to 255 / -999999999 to 2147483647.
  • Description: Modifies the Objects Garrison Type.
  • Notes: See AGE for Garrison Type. It adds bits together to get specific values.

  • Name: Gold Costs
  • Values: 0 to 32767 / -999999999 to 2147483647.
  • Description: Modifies the Objects Gold Costs.
  • Notes:

  • Name: Hero Status
  • Values: 0 or 1 / -999999999 to 2147483647.
  • Description: Modifies the Objects Hero Status.
  • Notes: Pretty sure this is a boolean. (On/Off.)

  • Name: Hit Points
  • Values: 1 to 32767 / -999999999 to 2147483647.
  • Description: Modifies the Objects Hit Points.
  • Notes: Any other values and the object will die instantly.

  • Name: Hotkey ID
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Hotkey ID.
  • Notes: Refer to AGE or use hotkeys.json in dat folder.

  • Name: Icon ID
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Icon ID.
  • Notes: Refer to AGE or use widgetui/icons.json.

  • Name: Line of Sight
  • Values: 1 to 20 / -999999999 to 2147483647.
  • Description: Modifies the Objects Line of Sight.
  • Notes:
Modify Attribute (Part 2)
  • Name: Maximum Charge
  • Values: 0+? / -999999999 to 2147483647.
  • Description: Modifies the Objects Maximum Charge.
  • Notes: Nothing really mentioned in patch notes or AGE.

  • Name: Maximum Conversion Time Modifier
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Maximum Conversion Time Modifier.
  • Notes: Monk conversion related.

  • Name: Maximum Range
  • Values: 0 to 255? / -999999999 to 2147483647.
  • Description: Modifies the Objects Maximum Range.
  • Notes: Note that 20 is the standard limit but, does not exist for modify attribute.

  • Name: Maximum Total Missiles
  • Values: 0 to 255? / -999999999 to 2147483647.
  • Description: Modifies the Objects Maximum Total Missiles.
  • Notes: AGE suggests max is 255.

  • Name: Minimum Conversion Time Modifier
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Minimum Conversion Time Modifier.
  • Notes: Monk Conversion related.

  • Name: Minimum Range
  • Values: 0 to 255? / -999999999 to 2147483647.
  • Description: Modifies the Objects Minimum Range.
  • Notes: Not sure why you would set this to 255 but, 254 should work for a 1 tile buffer.

  • Name: Movement Speed
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Movement Speed.
  • Notes:

  • Name: Object Name ID
  • Values: 0+? / -999999999 to 2147483647.
  • Description: Modifies the Objects Object Name ID.
  • Notes: 20 is the standard limit but, does not exist for modify attribute. Note that negative values do work. Units walk backwards.

  • Name: Obstruction Type
  • Values: -999999999 to 2147483647.
  • Description:
  • Notes:

  • Name: Occlusion Mode
  • Values: 0 to 7? / -999999999 to 2147483647.
  • Description: Modifies the Objects Occlusion Mode.
  • Notes: See Occlusion Mode in AGE. It adds bits together to get specific values.

  • Name: Population
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Population.
  • Notes:

  • Name: Projectile Arc
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Projectile Arc.
  • Notes: IIRC, higher values arc's more and lower values arc's less.

  • Name: Projectile Hit Mode
  • Values: 0 to 2 / -999999999 to 2147483647.
  • Description: Modifies the Objects Projectile Hit Mode.
  • Notes: 0 is continue on, 1 is disappear, and 2 is hit all?

  • Name: Projectile Smart Mode
  • Values: 0 or 1 / -999999999 to 2147483647.
  • Description: Modifies the Objects Projectile Smart Mode.
  • Notes: Pretty sure this is a boolean. 0 is where target was and 1 is where target is going to be.

  • Name: Projectile Unit
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Projectile Unit.
  • Notes: See AGE Projectile Units. Only use Class Type 60. (The game may crash if you don't.)

  • Name: Projectile Vanish Mode
  • Values: 0 or 1 / -999999999 to 2147483647.
  • Description: Modifies the Objects Projectile Vanish Mode.
  • Notes: 0 is stop projectile at target and 1 is continue on though the target.

  • Name: Recharge Rate
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Recharge Rate.
  • Notes: Nothing is mentioned in AGE or patch notes...

  • Name: Regeneration Rate
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Regeneration Rate.
  • Notes: The rate at which a object regenerates. No idea if there is any documentation on this. I don't see anything in AGE. However, I know that a object has to be a hero for this to work.

  • Name: Resource Costs
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Resource Costs.
  • Notes: I am unsure how this works... There are 3 Resource Cost Values but, this only applies to 1? There is also the amount which you have to set... Unless, it uses all 3? I dunno otherwise... Will test later...

  • Name: Rotation Speed
  • Values: 0+? / -999999999 to 2147483647.
  • Description: Modifies the Objects Rotation Speed.
  • Notes: Lower numbers rotates a Trebuchet faster and higher numbers rotates the Trebuchet slower when attacking something.

  • Name: Running Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Running Graphic.
  • Notes: See AGE Units/Graphics ID's.

  • Name: Search Radius
  • Values: 0 to 255? / -999999999 to 2147483647.
  • Description: Modifies the Objects Search Radius.
  • Notes: How many tiles away can a unit see an enemy unit before targeting. (Basically, it's Line of Sight but, exclusive.)

  • Name: Secondary Projectile Unit
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Secondary Projectile Unit.
  • Notes: See AGE Units. Only use Class Type 60. (Game may crash otherwise.)

  • Name: Selection Effect
  • Values: -999999999 to 2147483647.
  • Description:
  • Notes:

  • Name: Short Description ID
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Short Description ID.
  • Notes: I am not exactly sure which string ID this relates to... Is it Language File Help? From a simple test, it seems to be? Unsure though...

  • Name: Shown Attack
  • Values: 0 to 32767? / -999999999 to 2147483647.
  • Description: Modifies the Objects Shown Attack.
  • Notes:

  • Name: Shown Melee Armor
  • Values: 0 to 32767? / -999999999 to 2147483647.
  • Description: Modifies the Objects Shown Melee Armor.
  • Notes:

  • Name: Shown Pierce Armor
  • Values: 0 to 32767? / -999999999 to 2147483647.
  • Description: Modifies the Objects Shown Pierce Armor.
  • Notes:

  • Name: Shown Range
  • Values: 0 to 32767? / -999999999 to 2147483647.
  • Description: Modifies the Objects Shown Range.
  • Notes:

  • Name: Special Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Special Graphic.
  • Notes: See AGE Units/Graphics.

  • Name: Standing Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Standing Graphic.
  • Notes: See AGE Units/Graphics.

  • Name: Standing Graphic 2
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Standing Graphic 2.
  • Notes: See AGE Units/Graphics.

  • Name: Stone Costs
  • Values: 0 to 32767 / -999999999 to 2147483647.
  • Description: Modifies the Objects Stone Costs.
  • Notes:
Modify Attribute (Part 3)
  • Name: Terrain Defense Bonus
  • Values: -1 to 31 / -999999999 to 2147483647.
  • Description: Modifies the Objects Terrain Defense Bonus.
  • Notes: See AGE Terrain Tables.

  • Name: Terrain Restriction ID
  • Values: -1 to 31 / -999999999 to 2147483647.
  • Description: Modifies the Objects Terrain Restriction ID.
  • Notes: See AGE Terrain Tables.

  • Name: Total Missiles
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Total Missiles.
  • Notes: Possibly max of 255? No limit is mentioned in AGE except for Max Total Projectiles which is 255.

  • Name: Train Button
  • Values: 1 to 15 and 20 to 35 / -999999999 to 2147483647.
  • Description: Modifies the Objects Train Button.
  • Notes: Update; 15 works now for all buildings and 6 and 11 work for the Market.

  • Name: Train Location
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Train Location.
  • Notes: Only Buildings work. (Unless, they changed this recently.)

  • Name: Train Time
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Train Time.
  • Notes:

  • Name: Trait Piece
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Trait Piece.
  • Notes: AGE suggests it may be useless?

  • Name: Undead Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Undead Graphic.
  • Notes: Never used Undead Mode stuff... but, it seems to be a graphic so... See AGE Unit/Graphics.

  • Name: Unit Size X
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Unit Size X.
  • Notes: Relates to the Collision box stuff.

  • Name: Unit Size Y
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Unit Size Y.
  • Notes: Relates to the Collision box stuff.

  • Name: Unit Size Z
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Unit Size Z.
  • Notes: Relates to the Collision box stuff. (This may be related to the 'Can be Built On' value according to AGE.)

  • Name: Unit Trait
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Unit Trait.
  • Notes: See AGE Units Unit Trait. This adds bits together to get specific values.

  • Name: Walking Graphic
  • Values: -999999999 to 2147483647.
  • Description: Modifies the Objects Walking Graphic.
  • Notes: See AGE Units/Graphics.

  • Name: Wood Costs
  • Values: 0 to 32767 / -999999999 to 2147483647.
  • Description: Modifies the Objects Wood Costs.
  • Notes:

  • Name: Work Rate
  • Values: 0+? / -999999999 to 2147483647.
  • Description: Modifies the Objects Work Rate.
  • Notes: If 0, tasks do not seem to be performed. Otherwise, they will be at this rate.
Custom Training/Researching (Part 1)
This one was pretty important to me and I need to do it eventually... So, let's do this... All buildings are not the same when it comes to custom training/researching. So, I am going though all the buildings and seeing which ones work and which ones don't. (I already know a few from testing but not complete yet... It's actually pretty interesting. I will also note special cases and whatnot here.)

Important Note: All these tests are done by Disabling all Units, Techs, and Buildings. (This is done to show the maximum usage of button spots. You will still have to manually check each button if you do not disable all of them or manually enable them yourself.)

Note: I am only checking the selectable/icon buildings in the editor. There is little reason to use the others. (For now anyway...)

Update: I tested all research on a Lumber Camp and they all worked fine. Note that one issue can come up I noticed. If you move the Age Up Button, it will still remain on the Town Center but, it won't do anything. It will work on the new building though.

Important Update: So, it turns out they scattered the Numbers into 'sections'. 1 to 15 (Page 1) and 21 to 35 (Page 2). I will still have to edit the guide a bit... The general idea is the same though... For Page 2 though, you will have to manually calculate the numbers to avoid/use.

Patch Update: 15 is now usable for all buildings and buttons 6, 11 for the market is now usable.

Here is the format I intend to use:

(Classification)

  • 1: Can Apply Custom Button and Trainable/Researchable. (Recommended to use these.)


  • 2: Can Apply Custom Button but, not Trainable/Researchable or it can but, it is extremely slow to do so. (Only use these if you need to.)

    Update/Note: In some cases, you can change the "Work Rate" to 1 and it will work fine.

  • 3: Cannot Apply Custom Button or Trainable/Researchable. (Not recommended to use these.)
(Pages)

  • 1: 1 Page. (This is the standard pages on all buildings.)

  • 2: 2 Pages. (There are only 2 objects that I know of that have this. Docks/Harbors. I know its very specific but, I will write it down nonetheless.)
    Update: Technically, this is still usable. (I will have to do more testing but, you can use button numbers 21 to 35.)

(Avoidance)

  • Certain Button Numbers should be avoided when possible. The most common Numbers are: 1, 5, 10, and 15. (Lock/Unlock/Reseed/Ungarrison/Etc, Set Gather Point, and Next Page. Others will be mentioned such as the market later on. Probably a Extra Section. Will come back to this.)
    Update: For Page 2, you also need to remove 21, 25, 30, 35. (For these above since they are static on both Pages.)
    Update: I am going to remove 1 and 21 from the lists. (Except for Gates Type Objects. They only apply there anyhow...)

  • Note: It's probably safe to assume all other buttons are usable besides the avoidance ones. Just test it yourself to be sure it works though.

(Full)

  • This is an extra list when all techs are enabled. You will have to avoid these buttons too if you have everything enabled.

(Format)

  • Building: <NAME>
  • Classification: <1, 2, or 3> (  )
  • Pages: <1 or 2> (Default Pages)
  • Avoidance: <1 to 35>
  • Full: <1 to 35>

Important Update: I noticed this just now. When you add a 'Trainable Object' to an 'Building', the Game automatically adds a 'Set Gather Point' Button. (5) Meaning, most likely, Button 5 will have to be avoided for all. (Note: This does not apply to research but, it makes sense to avoid it nonetheless.)
Update: Also, it adds a 'Ungarrison Button' as well but, Hidden until Garrisoned Inside of. (10). I will add this to them as well.
Update: As for Page 2, that would be (25) and (30). I will add these too.
Custom Training/Researching (Part 2)
Note: Tested with Villager Building. (All other unit types may or may not work. This is just a common test for now...)

Note: I did some simple testing with chemistry and I think they are basically the same. (Merging both as one.)

Building: Aachen Cathedral
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Amphitheatre
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Aqueduct
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Arch of Constantine
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Archery Range
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 25, 30

Building: Army Tent (A to E)
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Barracks
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 25, 30

Building: Blacksmith
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 5, 6, 7, 10, 25, 30

Building: Bombard Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Caravanserai
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Castle
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 25, 30

Building: Cathedral
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Chain (4)
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: City Gate (4) ***
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: City Wall
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Colosseum
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Dock *
Classification: 1
Pages: 2
Avoidance: 5, 10, 11, 12, 15, 20, 25, 26, 27, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30

Building: Donjon
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1?, 5, 10, 25, 30

Building: Dormition Cathedral
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Farm
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Feitoria
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fence
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fire Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fish Trap *
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Folwark
Classification: 1
Pages: 1
Avoidance: 4, 5, 10, 25, 30
Full: 1, 4, 5, 10, 25, 30

Building: Fortified Gate (4)
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: Fortified Palisade Wall
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fortified Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fortified Wall
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Fortress
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Gate (4)
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: Gol Gumbaz
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Guard Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Harbor * + ****
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: House
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Hut (A to G)
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Keep
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Krepost
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 5, 10, 25, 30

Building: Lumber Camp
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 5, 10, 25, 30

Building: Market
Classification: 1
Pages: 1
Avoidance: 5, 7, 8, 9, 10, 12, 13, 14, 25, 30
Full: 1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 25, 30

Building: Mill
Classification: 1
Pages: 1
Avoidance: 4, 5, 10, 25, 30
Full: 1, 4, 5, 10, 25, 30

Building: Mining Camp
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 5, 10, 25, 30
Custom Training/Researching (Part 3)
(Adding images and the text is too long now. Need to move this over.)

Building: Monastery
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 25, 30

Building: Monument
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Outpost
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Pagan Shrine
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Palisade Gate (4)
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: Palisade Wall
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Pyramid
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Quimper Cathedral
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Rice Farm *
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Rock Church
Classification: 3
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Senchi Stupa
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Sankore Madrasah
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Sea Gate (4) * + ***
Classification: 1
Pages: 1
Avoidance: 1, 5, 10, 21, 25, 30
Full: 1, 5, 10, 21, 25, 30

Building: Sea Tower *
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Sea Wall *
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Shrine
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Siege Workshop
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 30

Building: Stable
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 25, 30

Building: Stone Wall
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Storage
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Temple of Heaven
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Tent (A to E)
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Tower of London
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Town Center
Classification: 1
Pages: 1
Avoidance: 5, 10, 15, 25, 30
Full: 1, 2?, 5, 6, 7, 8, 10, 11, 15, 25, 30

Building: Town Center (Packed) **
Classification: 3
Pages: 1
Avoidance: 1, 5, 6, 9, 10, 25, 30
Full: 1, 5, 6, 9, 10, 25, 30

Building: Trade Workshop
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: University
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 30

Building: Watch Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building:Wonder
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building:Yurt (A to H)
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Barricade (A to D)
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Dome of the Rock
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Granary
Classification: 3
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Great Pyramid
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Mosque
Classification: 2
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Pavilion (A to C)
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: Poenari Castle
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: The Accursed Tower
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

Building: The Tower of Flies
Classification: 1
Pages: 1
Avoidance: 5, 10, 25, 30
Full: 5, 10, 25, 30

* Note: You may need to be careful about training land units with these. Still need to test later.
** Note: Not sure if I should include this or not.
*** Note: I do not recommend using these unless you have to... The list type seems to get mixed up and can throw you off in the editor.
**** Note: I am a bit confused on this... It does not act the way I assumed it would. Be careful using this object.

Edit: It turns out that the 'Harbor' Building is something completely different. (It's not part of the Malay Civ.)

Note: I don't own the expansions so, some of those details from me are questionable for now.
Object ID'S List (Part 1)
Just a list of Object ID's in case you need them/wondering what they are... (A good reference.)

Note to Self: Also include the special Unit ID's like Huskarl from Barracks and such...

Note: I am unsure if I will include Projectile ID's and other things... I will see...

Update: I need to separate these into their own sections... This section may be gone later...

Note: Assuming they do not make major changes to the dataset, these should always be valid.
Unit ID'S (Part 2)
[UNIT ID'S] (PLAYERS)

[None]: -1
Alfred the Alpaca: 1300
Amazon Archer: 850
Amazon Warrior: 825
Arambai: 1126
Arbalester: 492
Archer: 4
Armored Elephant: 1744
Bactrian Archer: 2324
Bactrian Camel: 1237
Ballista Elephant: 1120
Bandit: 299
Battering Ram: 1258
Battle Elephant: 1132
Berserk: 692
Bireme: 2128
Bombard Cannon: 36
Boyar: 876
Builder: 118
Camel: 897
Camel Archer: 1007
Camel Raider: 2327
Camel Rider: 329
Camel Scout: 1755
Cannon Galleon: 420
Canoe: 778
Capped Ram: 422
Caravel: 1004
Cart: 1338
Cataphract: 40
Catapult Ship: 2138
Cavalier: 283
Cavalry Archer: 39
Centurion: 275
Chakram Thrower: 1741
Champion: 567
Chicken A: 2083
Chicken B: 2085
Chicken C: 2087
Chu Ko Nu: 73
Cobra Car: 748
Composite Bowman: 1800
Condottiero: 882
Conquistador: 771
Coustilier: 1655
Cow A: 705
Cow B: 1596
Cow C: 1598
Cow D: 1600
Cretan Archer: 2326
Crossbowman: 24
Crusader Knight: 1723
Demolition Raft: 1104
Demolition Ship: 527
Donkey: 846
Dragon Ship: 1302
Dromon: 1795
Eagle Scout: 751
Eagle Warrior: 753
Eastern Swordsman: 894
Ekdromos: 2325
Elephant Archer: 873
Elite Arambai: 1128
Elite Ballista Elephant: 1122
Elite Battle Elephant: 1134
Elite Berserk: 694
Elite Boyar: 878
Elite Camel Archer: 1009
Elite Cannon Galleon: 691
Elite Caravel: 1006
Elite Cataphract: 553
Elite Centurion: 1792
Elite Chakram Thrower: 1743
Elite Chu Ko Nu: 559
Elite Composite Bowman: 1802
Elite Conquistador: 773
Elite Costilier: 1657
Elite Eagle Warrior: 752
Elite Elephant Archer: 875
Elite Fire Archer: 1970
Elite Fire Lancer: 1903
Elite Galley: 2132
Elite Gbeto: 1015
Elite Genitour: 1012
Elite Genoese Crossbowman: 868
Elite Ghulem: 1749
Elite Hippeus: 2108
Elite Hoplite: 2111
Elite Huskarl: 555
Elite Hussite Wagon: 1706
Elite Immortal (Melee): 2102
Elite Immortal (Ranged): 2175
Elite Iron Pagoda: 1910
Elite Jaguar Warrior: 726
Elite Janissary: 557
Elite Kamayuk: 881
Elite Karambit Warrior: 1125
Elite Keshik: 1230
Elite Kipchak: 1233
Elite Konnik: 1227
Elite Konnik (Dismounted): 1253
Elite Leitis: 1236
Elite Lembos: 2126
Elite Liao Dao: 1922
Elite Longboat: 533
Elite Longbowman: 530
Elite Magyar Hussar: 871
Elite Mameluke: 556
Elite Mangudai: 561
Elite Monaspa: 1805
Elite Obuch: 1703
Elite Organ Gun: 1003
Elite Plumed Archer: 765
Elite Qizilbash Warrior: 1829
Elite Ratha (Melee): 1740
Elite Ratha (Ranged): 1761
Elite Rattan Archer: 1131
Elite Samurai: 560
Elite Serjeant: 1659
Elite Shotel Warrior: 1018
Elite Shrivamsha Rider: 1753
Elite Skirmisher: 6
Elite Steppe Lancer: 1372
Elite Strategos: 2105
Elite Tarkan: 757
Elite Teutonic Knight: 554
Elite Throwing Axeman: 531
Elite Tiger Cavalry: 1951
Elite Turtle Ship: 832
Elite Urumi Swordsman: 1737
Elite War Chariot: 2151
Elite War Elephant: 558
Elite War Wagon: 829
Elite White Feather Guard: 1961
Elite Woad Raider: 534
Farmer: 259
Fast Fire Ship: 532
Fire Archer: 1968
Fire Galley: 1103
Fire Lancer: 1901
Fire Ship: 529
Fisherman: 56
Fishing Ship: 13
Flamethrower: 188
Flaming Camel: 1263
Flemish Militia (Female): 1697
Flemish Militia (Male): 1663
Forager: 120
Furious the Monkey Boy: 860
Galleon: 442
Galley: 539
Galley - Antiquity: 2130
Gbeto: 1013
Genitour: 1010
Genoese Crossbowman: 866
Ghulam: 1747
Goat: 1060
Goat (Unconvertible): 2381
Gold Miner: 579
Goose: 1243
Greek Noble Cavalry: 2322
Grenadier: 1911
Halberdier: 359
Hand Cannoneer: 5
Heavy Camel Rider: 330
Heavy Cavalry Archer: 474
Heavy Crossbowman: 493
Heavy Demolition Ship: 528
Heavy Hei Guang Cavalry: 1946
Heavy Incendinary Ship: 2135
Heavy Lembos: 2125
Heavy Pikeman: 892
Heavy Rocket Cart: 1907
Heavy Scorpion: 542
Heavy Swordsman: 76
Hei Guang Cavalry: 1944
Herder: 1892
Hint Object: 2238
Hippeus: 2107
Hoplite: 2110
Horse A: 814
Horse B: 1356
Horse C: 1602
Horse D: 1604
Horse E: 1606
Houfnice: 1709
Hunnic Horse: 1869
Hunter: 122
Huskarl: 41
Hussar: 441
Hussite Wagon: 1704
Immortal (Melee): 2101
Immortal (Ranged): 2174
Imperial Camel Rider: 207
Imperial Centurion: 275
Imperial Legionary: 1
Imperial Skirmisher: 1155
Incendiary Raft: 2133
Incendiary Ship: 2134
Invisible Object: 1291
Iron Pagoda: 1908
Iroquois Warrior: 1374
Jaguar Warrior: 725
Janissary: 46
Jian Swordsman: 1974
Junk: 15
Kamayuk: 879
Karambit Warrior: 1123
Keshik: 1228
Khan: 1275
King: 434
Kipchak: 1231
Knight: 38
Konnik: 1225
Konnik (Dismounted): 1252
Legionary: 1
Leitis: 1234
Lembos: 2123
Leviathan: 2140
Liao Dao: 1920
Light Cavalry: 546
Llama: 305
Long Swordsman: 77
Longboat: 250
Longbowman: 8
Lou Chuan: 1948
Lumberjack: 123
Lysander's Raider: 2349
Magyar Huszar: 869
Mameluke: 282
Men-at-Arms: 75
Mangonel: 280
Mangudai: 11
Mercenary Hoplite: 2321
Mercenary Peltast: 2332
Merchant: 1572
Merchant Ship: 2149
Militia: 74
Missionary: 775
Monaspa: 1803
Monk: 125
Monk with Relic: 286
Monoreme: 2127
Mounted Samurai: 1568
Mounted Trebuchet: 1923
Moveable Map Revealer: 0
Ninja: 1145
Norse Warrior: 361
Obuch: 1701
Onager: 550
Onager Ship: 2139
Organ Gun: 1001
Ox Cart: 1271
Ox Wagon: 1273
Oyster Gatherer: 2333
Pagan Priest: 1940
Pagan Priest with Relic: 1941
Paladin: 569
Penguin: 639
Petard: 440
Photonman: 1577
Pig: 1245
Pikeman: 358
Plumed Archer: 763
Priest: 1023
Priest with Relic: 1400
Qizilbash Warrior: 1817
Queen: 1292
Ratha (Melee): 1738
Ratha (Ranged): 1759
Rattan Archer: 1129
Relic Cart: 1304
Repairer: 156
Rhodian Slinger: 2320
Rocket Cart: 1904
Royal Janissary: 52
Sakan Axeman: 2330
Samurai: 291
Savar: 1813
Scorpion: 279
Scout Cavalry: 448
Scythian Axe Cavalry: 2323
Serjeant: 1658
Sharkatzor: 1222
Sheep: 594
Shepherd: 592
Shotel Warrior: 1016
Shrivamsha Rider: 1751
Sickle Warrior: 2331
Siege Elephant: 1746
Siege Onager: 588
Siege Ram: 548
Siege Tower: 1105
Skirmisher: 7
Slinger: 185
Sogdian Cataphract: 1299
Sparabara: 2329
Spearman: 93
Steppe Lancer: 1370
Stone Miner: 124
Strategos: 2104
Tarantine Cavalry: 2328
Tarkan: 755
Teutonic Knight: 25
Thirisadai: 1750
Throwing Axeman: 281
Tiger Cavalry: 1949
Torch A (Convertable): 854
Torch B (Convertable): 1377
Traction Trebuchet: 1942
Trade Cart (Empty): 128
Trade Cart (Full): 204
Trade Cog: 17
Transport Ship: 545
Transport Ship (Antiquity): 2148
Trebuchet: 42
Trebuchet (Packed): 331
Trireme: 2129
Turkey: 833
Turtle Ship: 831
Two-Handed Swordsman: 473
Urumi Swordsman: 1735
Villager: 1810
Villager (Female): 293
Villager: (Male): 83
War Chariot: 2150
War Chariot (Barrage): 1980
War Chariot (Focus Fire): 1962
War Elephant: 239
War Galley: 21
War Galley - Antiquity: 2131
War Lembos: 2124
War Wagon: 827
Warrior Priest: 1811
Warrior Priest with Relic: 1831
Water Buffalo: 1142
White Feather Guard: 1959
Winged Hussar: 1707
Woad Raider: 232
Xianbei Raider: 1952
Xolotl Warrior: 1570

[UNIT ID'S] (GAIA)

Bear: 486
Butterflies: 1608
Butterflies: 1609
Butterflies: 1610
Crocodile: 1031
Deer: 65
Dire Wolf: 89
Falcon: 1056
Hawk: 96
Ibex: 1239
Iron Boar: 810
Javelina: 822
Komodo Dragon: 1135
Lion: 1029
Macaw: 816
Ostrich: 1026
Rabid Wolf: 202
Rhinoceros: 1139
Seagulls: 303
Snow Leopard: 1241
Stork: 1028
Stormy Dog: 862
Tiger: 1137
Vulture: 1305
Wild Bactrian Camel: 1247
Wild Boar: 48
Wild Camel: 884
Wild Horse: 835
Wolf: 126
Zebra: 1019
Building ID'S (Part 3)
[BUILDING ID'S] (PLAYERS)

Aachen Cathedral: 1622
Amphitheatre: 251
Aquaduct: 231
Arch of Constantine: 899
Archery Range: 87
Army Tent A: 1196
Army Tent B: 1197
Army Tent C: 1198
Army Tent D: 1199
Army Tent E: 1200
Barracks: 12
Blacksmith: 103
Bombard Tower: 236
Bridge A--Bottom: 607
Bridge A--Broken Bottom: 740
Bridge A--Broken Top: 739
Bridge A--Cracked: 738
Bridge A--Middle: 606
Bridge A--Top: 605
Bridge B--Bottom: 610
Bridge B--Broken Bottom: 743
Bridge B--Broken Top: 742
Bridge B--Cracked: 741
Bridge B--Middle: 609
Bridge B--Top: 608
Bridge C--Bottom: 1206
Bridge C--Broken Bottom: 1212
Bridge C--Broken Top: 1211
Bridge C--Cracked: 1210
Bridge C--Middle: 1205
Bridge C--Top: 1204
Bridge D--Bottom: 1209
Bridge D--Broken Bottom: 1215
Bridge D--Broken Top: 1214
Bridge D--Cracked: 1213
Bridge D--Middle: 1208
Bridge D--Top: 1207
Bridge E--Bottom: 1552
Bridge E--Broken Bottom: 1558
Bridge E--Broken Top: 1557
Bridge E--Cracked: 1556
Bridge E--Middle: 1551
Bridge E--Top: 1550
Bridge F--Bottom: 1555
Bridge F--Broken Bottom: 1561
Bridge F--Broken Top: 1560
Bridge F--Cracked: 1559
Bridge F--Middle: 1554
Bridge F--Top: 1553
Caravanserai: 1754
Castle: 82
Cathedral: 599
Chain: 1396 *
Chain: 1397 *
Chain: 1398 *
Chain: 1399 *
City Gate: 1579 *
City Gate: 1583 *
City Gate: 1587 *
City Gate: 1591 *
City Wall: 370
Colosseum: 263
Dock: 45
Donjon: 1665
Dormition Cathedral: 1369
Farm: 50
Feitoria: 1021
Fence: 1062
Fire Tower: 190
Fish Trap: 199
Folwark: 1734
Fortified Gate (Down): 85
Fortified Gate (Hori): 660
Fortified Gate (Up): 63
Fortified Gate (Vert): 668
Fortified Palisade Wall: 119
Fortified Tower: 1102
Fortified Wall: 155
Fortress: 33
Gate (Down): 88
Gate (Hori): 659
Gate (Up): 64
Gate (Vert): 667
Gol Gumbaz: 1217
Guard Tower: 234
Harbor: 1189
House: 70
Hut A: 1082
Hut B: 1083
Hut C: 1084
Hut D: 1085
Hut E: 1086
Hut F: 1087
Hut G: 1088
Keep: 235
Krepost: 1251
Lumber Camp: 562
Market: 84
Mill: 68
Minaret of Jam: 1773
Mining Camp: 584
Monastery: 104
Monument: 826
Outpost: 598
Pagan Shrine: 1712
Palisade Gate (Down): 793
Palisade Gate (Hori): 797
Palisade Gate (Up): 789
Palisade Gate (Vert): 801
Palisade Wall: 72
Pyramid: 689
Quimper Cathedral: 872
Rice Farm: 1187
Rock Church: 1378
Sanchi Stupa: 1216
Sankore Madrasah: 1367
Sea Gate: 1379 *
Sea Gate: 1383 *
Sea Gate: 1387 *
Sea Gate: 1391 *
Sea Tower: 785
Sea Wall: 788
Shrine: 1264
Siege Workshop: 49
Stable: 101
Stone Wall: 117
Storage: 1081
Temple of Heaven: 637
Tent A: 1097
Tent B: 1098
Tent C: 1099
Tent D: 1100
Tent E: 1101
Tower of London: 1368
Town Center: 109
Town Center (Packed): 444
Trade Workshop: 110
University: 209
Watch Tower: 79
Wonder: 276
Wooden Bridge A--Bottom: 1311
Wooden Bridge A--Middle: 1310
Wooden Bridge A--Top: 1309
Wooden Bridge B--Bottom: 1314
Wooden Bridge B--Middle: 1313
Wooden Bridge B--Top: 1312
Yurt A: 712
Yurt B: 713
Yurt C: 714
Yurt D: 715
Yurt E: 716
Yurt F: 717
Yurt G: 718
Yurt H: 719

* Note that these are a bit glitchy with the name being the same.

Note: For Modifying City Gate, you should modify 1579 to 1594. (Or just use the Gate Class.)

[BUILDING ID'S] (GAIA)

Ruins: 345
Hero ID'S (Part 4)
[HERO ID'S] (PLAYERS)

Abraha Elephant: 1071
Admiral Yi Sun-Shin: 844
Aethelfrith: 169
Alaric the Goth: 223
Alexander Nevski: 197
Algirdas: 1725
Amoghavarsha: 1763
Archbishop: 177
Archer of the Eyes: 686
Ataulf: 453
Attila the Hun: 777
Babur: 1070
Bad Neighbor: 682
Bad Neighbor (Packed): 730
Bayinnaung: 1165
Belisarius: 167
Bernard d'Armagnac: 1687
Bleda the Hun: 779
Bohemond: 1681
Bui Bi: 1183
Chand Bardai: 1295
Charlemagne: 165
Charles Martel: 424
Constable Richemont: 646
Cuauhtemoc: 307
Cuman Chief: 1268
Cusi Yupanqui: 749
Dafydd ap Gruffydd: 1685
Dagnajan: 1106
Dinh Le: 1184
Dmitry of Moscow: 1730
Duke D'Alencon: 638
Edward Longshanks: 1669
El Cid: 198
El Cid Campeador: 824
Emperor in a Barrel: 733
Emperor Sigismund: 1729
Envoy: 1186
Erik the Red: 171
Francesco Sforza: 439
Francisco de Orellana: 425
Frankish Paladin: 632
Fredrick Barbarossa: 429
Friar Tuck: 163
Gajah Mada: 1157
Gawain: 175
General Araiyan: 1766
Genghis Khan: 731
Gidajan: 1109
Gilbert de Clare: 1671
Girgen Khan: 1269
God's Own Sling: 683
God's Own Sling (Packed): 729
Gonzalo Pizarro: 427
Guglielmo Embriaco: 1072
Guy Josselyne: 648
Harald Hardrada: 426
Henry II: 1040
Henry the Lion: 418
Henry V: 847
Hrolf the Ganger: 428
Huayna Capac: 1075
Hunting Wolf: 700
Ibrahim Lodi: 1771
Imam: 842
Itzcoatl: 1067
Ivaylo: 1290
Ivaylo: 1265
Jacqueline of Hainaut: 1692
Jadwiga: 1715
Jan Zizka: 1713
Jarl: 1298
Jayanegara: 1158
Jayaviravarman: 1164
Jean Bureau: 650
Jeran de Lorrain: 644
Joan of Arc: 629
Joan the Maid: 430
Jogaila: 1718
John the Fearless: 1673
Kestutis: 1721
Khosrau: 1297
King Alfonso: 840
King Authur: 173
King Bela IV: 230
King Sancho: 838
Kitabatake: 195
Kotyan Khan: 1267
Kushluk:702
La Hire: 640
Lancelot: 174
Le Lai: 1180
Le Loi: 1178
Le Trien: 1181
Leif Erikson: 106
Little John: 1077
Llywelyn ap Gruffydd: 1683
Lord de Graville: 642
Luu Nhan Chu: 1182
Master of the Templar: 680
Mihira Bhoja: 1762
Mikhail of Tver: 1731
Miklos Toldi: 1076
Minamoto: 196
Mordred: 176
Musa ibn Nusayr: 1034
Mustafa Pasha: 1068
Nobunaga: 845
Ornlu the Wolf: 707
Osman: 1303
Pacal II: 1069
Pachacuti: 1074
Phillip the Good: 1675
Pope Leo I: 781
Princess Yodit: 1039
Prithvi: 1294
Prithviraj: 437
Qutlugh: 1769
Raden Wiljaya: 1159
Rajendra Chola: 1764
Reynald de Chatillion: 678
Richard de Clare: 1037
Richard the Lionheart: 160
Robert Guiscard: 1677
Robin Hood: 200
Roger Bosso: 1679
Roland: 166
Saboteur: 706
Saladin: 1296
Sanyogita: 1293
Scythian Scout: 852
Scythian Wild Woman: 783
Shah: 704
Shaybani Khan: 1772
Sheriff of Nottingham: 164
Siegfried: 170
Sieur Bertrand: 636
Sieur de Metz: 634
Sir John Fastolf: 652
Sosso Guard: 1574
Su Dingfang: 1073
Subotai: 698
Sumanguru: 1080
Sunda Royal Fighter: 1160
Sundjata: 1035
Suryavarman I: 1162
Tabinshwehti: 1166
Tamerlane: 172
Tariq Ibn Ziyad: 1036
The Black Prince: 161
The Middlebrook: 1631
Theodoric the Goth: 168
Tokhtamysh Khan: 1262
Topa Yupanqui: 703
Tristan: 1038
Tsar Konstantin: 1266
Udayadityavarman I: 1163
Ulrich von Jungingen: 1727
Urus Khan: 1276
Vasco de Gama: 203
Vlad Dracula: 193
Vytautas the Great: 1281
Wang Tong: 1185
Warwolf Trebuchet: 1690
Warwolf Trebuchet (Packed): 1691
William the Conqueror: 849
William Wallace: 432
Yekuno Amlak: 1064
Yodit: 1066
Young Babur: 1768
Young Jadwiga: 1732
Zawisza the Black: 1078

[HERO ID'S] (GAIA)

Note: There are none... Yet...
Other ID'S (Part 5)
[OTHER ID'S] (PLAYERS)

Barricade A: 1090
Barricade B: 1218
Barricade C: 1219
Barricade D: 1220
Bonfire: 304
Dismantled Cart: 1270
Dome of the Rock: 690
ES Flag: 851
FE Flag: 1285
Flag A: 600
Flag B: 601
Flag C: 602
Flag D: 603
Flag E: 604
Flag F: 1307
Flag G: 1150
Flag H: 1151
Flag I: 1152
Flag J: 1153
Flag K: 1282
Flag L: 1283
Flag M: 1284
Flare: 274
Flare A (Permanent): 1689
Flare B (Permanent): 1785
Granary: 1089
Great Pyramid: 696
Impaled Corpse: 1315
Map Revealer: 837
Map Revealer Giant: 1775
Map Revealer Medium: 1774
Mosque: 655
Nine Bands: 720
Pavillion A: 624
Pavillion B: 626
Pavillion C: 625
Poenari Castle: 445
Rubble 1 X 1: 863
Rubble 2 X 2: 864
Rubble 3 X 3: 865
Rubble 4 X 4: 1497
Rubble 8 X 8: 1498
Shipwreck A: 721
Shipwreck B: 722
Smoke: 1308
Statue (Civilization): 1279
Stelae A: 1092
Stelae B: 1093
Stelae C: 1094
Target A: 1564
Target B: 1565
The Accursed Tower: 684
The Tower of Flies: 685
Torch A: 499
Torch B: 1376

[OTHER ID'S] (GAIA)

Animal Skeleton: 1091
Barrels: 1330
Black Tile: 306
Blocker: 1776
Box Turtles: 1141
Broken Cart: 858
Buddah Statue A: 1171
Buddah Statue B: 1172
Buddah Statue C: 1173
Buddah Statue D: 1174
Burned Building: 758
Bush A: 302
Bush B: 1053
Bush C: 1054
Cactus: 709
Cracks: 241
Crater: 723
Dolphin: 61
Fern Patch: 1175
Fish (Dorado): 455
Fish (Perch): 53
Fish (Salmon): 456
Fish (Snapper): 458
Fish (Tuna): 457
Flame 1: 1333
Flame 2: 1334
Flame 3: 1335
Flame 4: 1336
Flower Bed: 859
Flowers 1: 334
Flowers 2: 335
Flowers 3: 336
Flowers 4: 337
Forage Bush: 59
Fruit Bush: 1059
Gallow: 1095
Gold Mine: 66
Goods: 1321
Grass Patch, Dry: 1033
Grass Patch, Green: 301
Grass, Dry: 1359
Grass, Green: 1358
Grave: 820
Great Fish (Marlin): 450
Hay Stack: 857
Head: 821
Ice, Navigable: 728
Indian Ruins: 1784
Indian Statues: 1777
Loot: 472
Lumber: 1320
Mountain 1: 310
Mountain 2: 311
Mountain 3: 744
Mountain 4: 745
Mountain 5: 1041
Mountain 6: 1042
Mountain 7: 1043
Mountain 8: 1044
Nubian Pyramid: 1563
Old Stone Head: 855
Pagoda A: 1201
Pagoda B: 1202
Pagoda C: 1203
Paifang Gate: 1562
Path 1: 339
Path 2: 340
Path 3: 341
Path 4: 338
Piece of the True Cross: 688
Plant: 818
Plant (Bush, Green): 1360
Plant (Dead): 1365
Plant (Flowers): 1366
Plant (Jungle): 1351
Plant (Rainforest): 1354
Plant (Shrub, Green): 1362
Plant (Underbrush Tropical): 1352
Plant (Underbrush): 1353
Plant (Weeds): 1364
Quarry: 1319
Rekha-Deul Temple: 1778
Relic: 285
Rock (Beach): 1148
Rock (Jungle): 1149
Rock 1: 623
Rock 2: 1323
Rock Formation 1: 1048
Rock Formation 2: 1049
Rock Formation 3: 1050
Roman Ruins: 856
Rugs: 711
Sea Rocks 1: 389
Sea Rocks 2: 396
Shore Fish: 69
Sign: 819
Skeleton: 710
Snow Mountain 1: 1045
Snow Mountain 2: 1046
Snow Mountain 3: 1047
Statue (Column): 1322
Statue (Left): 1343
Statue (Right): 1345
Stone Mine: 102
Stump: 809
Stupa: 1191
Temple Ruin: 1566
Tree (Acacia): 1063
Tree (Bamboo Forest): 348
Tree (Baobab): 1052
Tree (Birch): 1717
Tree (Cypress): 1347
Tree (Dead): 1250
Tree (Dragon): 1051
Tree (Italian Pine): 1348
Tree (Jungle): 414
Tree (Mangrove): 1144
Tree (Oak Autumn Snow): 1249
Tree (Oak Autumn): 1248
Tree (Oak Forest): 411
Tree (Oak): 349
Tree (Olive): 1349
Tree (Palm Forest): 351
Tree (Pine Forest): 350
Tree (Rainforest): 1146
Tree (Reeds): 1350
Tree (Snow Pine): 413
Tree A: 399
Tree B: 400
Tree C: 401
Tree D: 402
Tree E: 403
Tree F: 404
Tree G: 405
Tree H: 406
Tree I: 407
Tree J: 408
Tree K: 409
Tree L: 410
Tree TD: 284
Trowulan Gate: 1176
Vases: 1177
Waterfall (Background): 1635
Waterfall (Overlay): 896
Well: 1567
Misc. ID'S (Part 6)
Anything else that I miss goes here...

Huskarl (Barracks): 759
Elite Huskarl (Barracks): 761
Tarkan (Stable): 886
Elite Tarkan (Stable): 887
Konnik (Krepost): 1254
Elite Konnik (Krepost): 1255
Free Kipchak (Castle): 1260
Serjeant (Donjon): 1660
Elite Serjeant (Donjon): 1661
Builder: 118
Farmer: 259
Fisherman: 56
Forager: 120
Gold Miner: 579
Hunter: 122
Lumberjack: 123
Repairer: 156
Shepherd: 592
Stone Miner: 124
Class ID's (Part 7)
Source: https://airef.github.io/parameters/parameters-details.html#ClassId

These are a collection of objects in a class. Refer to the source there for specific information on them...

-1 all-units-class
900 archery-class
901 monument-class
902 trade-cog-class
903 building-class
904 villager-class
905 ocean-fish-class
906 infantry-class
907 forage-class
908 stone-mine-class
909 prey-animal-class
910 predator-animal-class
911 miscellaneous-class
912 cavalry-class
913 siege-weapon-class
914 terrain-class
915 tree-class
918 monastery-class
919 trade-cart-class
920 transport-ship-class
921 fishing-ship-class
922 warship-class
923 cavalry-cannon-class
927 wall-class
930 flag-class
932 gold-mine-class
933 shore-fish-class
935 petard-class
936 cavalry-archer-class
939 gate-class
942 relic-class
943 monk-with-relic-class
944 archery-cannon-class
947 scout-cavalry-class
949 farm-class
951 packed-trebuchet-class
952 tower-class
954 unpacked-trebuchet-class
955 scorpion-class
958 livestock-class
959 king-class
Hidden ID's
There are "other" hidden IDs in the data as well. (Dead bodies, projectiles, etc...) For now, I am just going to make a note of it for now... Although, you would probably be better off looking here for them:

https://docs.google.com/spreadsheets/d/1llyn7FWKEtmss_WE-6hinMItpsV-h-6qsY8xBlkxUzw/edit?gid=193837369#gid=193837369

(Probably a more useful list compared to mine but, eh...)
Map Sizes/Tiles/Points/Etc.
(Note: Zero based arrays. Subtract 1 as needed.)

Old Map Size
Tiny
Small
Medium
Normal
Large
Giant *
LudiKRIS
Dimensions
120 × 120
144 × 144
168 × 168
200 × 200
220 × 220
240 × 240
480 × 480
Tiles
14400
20736
28224
40000
48400
57600
230400
Value Range
0-119, 0-119
0-143, 0-143
0-167, 0-167
0-199, 0-199
0-219, 0-219
0-239, 0-239
0-479, 0-479
Center (E)
59, 59
71, 71
83, 83
99, 99
109, 109
119, 119
239, 239
Left (A)
0, 0
0, 0
0, 0
0, 0
0, 0
0, 0
0, 0
Right (B)
119, 119
143, 143
167, 167
199, 199
219, 219
239, 239
479, 479
Top (C)
119, 0
143, 0
167, 0
199, 0
219, 0
239, 0
479, 0
Bottom (D)
0, 119
0, 143
0, 167
0, 199
0, 219
0, 239
0, 479

New Map Sizes
Miniature
Huge
Giant *
Massive
Enormous
Colossal
Incredible
Monsterous
Dimensions
80 x 80
240 x 240
252 x 252
276 x 276
300 x 300
320 x 320
360 x 360
400 x 400
Tiles
6400
57600
63504
76176
90000
102400
129600
160000
Value Range
0-79, 0-79
0-239, 0-239
0-251, 0-251
0-275, 0-275
0-299, 0-299
0-319, 0-319
0-359, 0-359
0-399, 0-399
Center (E)
39, 39
119, 119
125, 125
137, 137
149, 149
159, 159
179, 179
199, 199
Left (A)
0, 0
0, 0
0, 0
0, 0
0, 0
0, 0
0, 0
0, 0
Right (B)
79, 79
239, 239
251, 251
275, 275
299, 299
319, 319
359, 359
399, 399
Top (C)
79, 0
239, 0
251, 0
275, 0
299, 0
319, 0
359, 0
399, 0
Bottom (D)
0, 79
0, 239
0, 251
0, 275
0, 299
0, 319
0, 359
0, 399

* Note: Notice the new difference here.

A: Left
B: Right
C: Top
D: Bottom
E: Center
F: Top Left Side
G: Bottom Right Side
H: Top Right Side
I: Bottom Left Side

X: X-Axis
Y: Y-Axis
+: Corner

+
Y
Y
Y
Y
Y
+
X
C
-
H
-
B
X
X
-
-
-
-
-
X
X
F
-
E
-
G
X
X
-
-
-
-
-
X
X
A
-
I
-
D
X
+
Y
Y
Y
Y
Y
+

As you can see here, the x and y axis are reversed... This throws me off all the time...

Lemme see if I can draw it using code...

■■■■■■■■■■■■■■■+■■■■■■■■■■■■■■■ ■■■■■■■■■■■■X■■C■■Y■■■■■■■■■■■■ ■■■■■■■■■X■■□■■□■■□■■Y■■■■■■■■■ ■■■■■■X■■F■■□■■□■■□■■H■■Y■■■■■■ ■■■X■■□■■□■■□■■□■■□■■□■■□■■Y■■■ +■■A■■□■■□■■□■■E■■□■■□■■□■■B■■+ ■■■Y■■□■■□■■□■■□■■□■■□■■□■■X■■■ ■■■■■■Y■■I■■□■■□■■□■■G■■X■■■■■■ ■■■■■■■■■Y■■□■■□■■□■■X■■■■■■■■■ ■■■■■■■■■■■■Y■■D■■X■■■■■■■■■■■■ ■■■■■■■■■■■■■■■+■■■■■■■■■■■■■■■

Update: I could not include the RMS/AI in the table because it's too big. So, I will add a list here instead.

[RMS Legacy]

  • TINY_MAP
  • SMALL_MAP
  • MEDIUM_MAP
  • LARGE_MAP
  • HUGE_MAP
  • GIGANTIC_MAP
  • LUDIKRIS_MAP

[RMS Modern]

  • MAPSIZE_MINI
  • MAPSIZE_TINY
  • MAPSIZE_SMALL
  • MAPSIZE_MEDIUM
  • MAPSIZE_NORMAL
  • MAPSIZE_LARGE
  • MAPSIZE_HUGE
  • MAPSIZE_GIANT
  • MAPSIZE_MASSIVE
  • MAPSIZE_ENORMOUS
  • MAPSIZE_COLOSSAL
  • MAPSIZE_INCREDIBLE
  • MAPSIZE_MONSTROUS
  • MAPSIZE_LUDICROUS

[AI Legacy]

  • TINY-MAP
  • SMALL-MAP
  • MEDIUM-MAP
  • NORMAL-MAP
  • LARGE-MAP
  • GIANT-MAP
  • LUDIKRIS-MAP

[AI Modern]

  • MINIATURE-MAP-SIZE
  • TINY-MAP-SIZE
  • SMALL-MAP-SIZE
  • MEDIUM-MAP-SIZE
  • NORMAL-MAP-SIZE
  • LARGE-MAP-SIZE
  • HUGE-MAP-SIZE
  • GIANT-MAP-SIZE
  • MASSIVE-MAP-SIZE
  • ENORMOUS-MAP-SIZE
  • COLOSSAL-MAP-SIZE
  • INCREDIBLE-MAP-SIZE
  • MONSTROUS-MAP-SIZE
  • LUDICROUS-MAP-SIZE

[MAP SIZES/SCALES]

AI Stuff
I just wanted to make this a quick reference section. If you want to do anything related to AI stuff, please refer to this site:

https://airef.github.io/index.html

The old docs are still somewhat helpful but, they are out of date at this point. Which you can find in:

C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\Docs\All
RMS Stuff
Just a quick reference section. I recommend reading this site for the most up to date info:

https://docs.google.com/document/d/1jnhZXoeL9mkRUJxcGlKnO98fIwFKStP_OBozpr0CHXo/edit

The old docs are still somewhat helpful but, they are out of date at this point. Which you can find in:

C:\Program Files (x86)\Steam\steamapps\common\AoE2DE\Docs\All
XS Stuff
Note: You will need a text editor for this. I recommend Notepad++.

Note: You might want to read the "Terms (Information)" section if you want to use xs or read about it more in the guide below. Both are good.

A few things I need to mention before I get into this.

1: You need to know the following location. It can be important.

C:\Users\<USERNAME>\Games\Age of Empires 2 DE\<STEAM_ID>\profile\

This is where the xsdat files will be generated. (This is mainly for Read/Write functions though. If you don't use these, this directory is not really important. Still good to know though.)

2: If you test in the editor, it will default to "default0.xsdat". HOWEVER, if you have a mod scenario with the same name as the mod xs file, it will use the mod scenario's filename instead. Like so:

"example.aoe2scenario"
"example.xs"

will output:

"example.xsdat"

Generally speaking anyway. In Skirmish, it should do the same. (I think. There are some weird edge cases sometimes.)

3: While testing custom campaigns, I found that they did not seem to detect either... They did work however in skirmish/single player. May be a bug. Hopefully, this is fixed later.

Now according to the community guide, you need to use a "main" function. While yes, it is good practice, (and you should.) I found that you don't actually have to. (If it's something simple.) Feel free to if you are still learning but, you still should.

Anyway, I don't think I need to write out a whole section myself since their guide is good. I do recommend reading that. It has a lot of great information. (Some that even I did not know. Such as rules. Which are very useful.)

https://ugc.aoe2.rocks/general/xs/beginner/

Note: But, if you do get into the read/write stuff, I recommend getting a Hex editor. (I am currently using HxD.) You can probably search the web if you need further help on the subject but, it all comes down to data types. (in some form or another. Like Binary, Bytes, Strings, Floats, Hex, Etc...)
Particles
This is all the available attributes I could find within particles. Let me know if I missed anything.

[BOOLEAN]

"CropSpawn" BOOLEAN_TRUE_FALSE (true, false)
"DimInFog" BOOLEAN_TRUE_FALSE (true, false)
"DisplayInFog" BOOLEAN_TRUE_FALSE (true, false)
"DisplayInHidden" BOOLEAN_TRUE_FALSE (true, false)
"FlipH" BOOLEAN_TRUE_FALSE (true, false)
"IsBlood" BOOLEAN_TRUE_FALSE (true, false)
"IsFire" BOOLEAN_TRUE_FALSE (true, false)
"IsPersistent" BOOLEAN_TRUE_FALSE (true, false)

[STRING]

"AtlasFile" STRING_PATH
"DisplayLevel" CONSTANT_STRING? ("High", "Medium", "Low")
"Format" STRING_PATH
"Layer" CONSTANT_STRING? ("Terrain", "Top")
"StartMode" CONSTANT_STRING? ("Fade", "Complete")
"StopMode" CONSTANT_STRING? ("Fade", "Instant")
"Timer" CONSTANT_STRING? ("Real", "Game")
"Type" CONSTANT_STRING? ("Once", "Loop")

[INTEGER/FLOAT]

"A" FLOAT_DECIMAL (Alpha. possibly 0.0 to 1.0)
"Alpha" FLOAT_DECIMAL/INTEGER_NUMBER
"AlphaEnd" INTEGER_NUMBER
"AlphaStart" INTEGER_NUMBER
"B" INTEGER_NUMBER (Bottom.)
"B" FLOAT_DECIMAL (Blue. possibly 0.0 to 1.0)
"Duration" INTEGER_NUMBER
"Duration1" FLOAT_DECIMAL/INTEGER_NUMBER
"Duration2" FLOAT_DECIMAL/INTEGER_NUMBER
"First" INTEGER_NUMBER
"G" FLOAT_DECIMAL (Green. possibly 0.0 to 1.0)
"ImageAngles" INTEGER_NUMBER
"ImageCount" INTEGER_NUMBER
"ImageFirst" INTEGER_NUMBER
"ImageRepeat" INTEGER_NUMBER
"L" INTEGER_NUMBER (Left.)
"Last" INTEGER_NUMBER
"R" INTEGER_NUMBER (Right.)
"R" FLOAT_DECIMAL (Red. possibly 0.0 to 1.0)
"RotationStart1" INTEGER_NUMBER (possibly 0-359 degrees)
"RotationStart2" INTEGER_NUMBER (possibly 0-359 degrees)
"RotationSpeed1" INTEGER_NUMBER
"RotationSpeed2" INTEGER_NUMBER
"Scale" FLOAT_DECIMAL/INTEGER_NUMBER
"ScaleEnd1" FLOAT_DECIMAL
"ScaleEnd2" FLOAT_DECIMAL
"ScaleSpeed" FLOAT_DECIMAL
"ScaleStart1" FLOAT_DECIMAL
"ScaleStart2" FLOAT_DECIMAL
"SortBias" INTEGER_NUMBER
"Speed" INTEGER_NUMBER
"Sprite1" INTEGER_NUMBER
"Sprite2" INTEGER_NUMBER
"StartDelay" FLOAT_DECIMAL
"StartDelay1" INTEGER_NUMBER
"StartDelay2" INTEGER_NUMBER
"StartDuration" FLOAT_DECIMAL/INTEGER_NUMBER
"StopDuration" FLOAT_DECIMAL/INTEGER_NUMBER
"T" INTEGER_NUMBER (Top.)

[ATTRIBUTE/ARRAY/ARGUMENTS]

"AtlasImagesRaw" ATTRIBUTES
  • "Format" STRING_PATH
  • "First" INTEGER_NUMBER
  • "Last" INTEGER_NUMBER
"Color" ATTRIBUTES_RGBA
  • "R" FLOAT_DECIMAL (possibly 0.0 to 1.0)
  • "G" FLOAT_DECIMAL (possibly 0.0 to 1.0)
  • "B" FLOAT_DECIMAL (possibly 0.0 to 1.0)
  • "A" FLOAT_DECIMAL (possibly 0.0 to 1.0)
"Emitter" ATTRIBUTES
  • "Type" CONSTANT_STRING? ("Once", "Loop")
  • "Sprite1" INTEGER_NUMBER
  • "Sprite2" INTEGER_NUMBER
"frames" ARRAY_ATTRIBUTES
  • "filename" STRING_PATH
  • "frame" ATTRIBUTES
    • "x" INTEGER_NUMBER
    • "y" INTEGER_NUMBER
    • "w" INTEGER_NUMBER
    • "h" INTEGER_NUMBER
  • "rotated" BOOLEAN_TRUE_FALSE (true, false)
  • "trimmed" BOOLEAN_TRUE_FALSE (true, false)
  • "spriteSourceSize" ATTRIBUTES
    • "x" INTEGER_NUMBER
    • "y" INTEGER_NUMBER
    • "w" INTEGER_NUMBER
    • "h" INTEGER_NUMBER
  • "sourceSize" ATTRIBUTES
    • "w" INTEGER_NUMBER
    • "h" INTEGER_NUMBER
  • "pivot" ATTRIBUTES
    • "x" INTEGER_NUMBER
    • "y" INTEGER_NUMBER
  • "meta" ATTRIBUTES
    • "app" STRING_URL
    • "version" FLOAT_DECIMAL
    • "image" STRING_PATH
    • "format" CONSTANT_STRING? ("RGBA8888")
    • "size" ATTRIBUTES
      • "w" INTEGER_NUMBER
      • "h" INTEGER_NUMBER
    • "scale" INTEGER_NUMBER
    • "smartupdate" DATA/HASH?
"QuickCull" ATTRIBUTES
  • "L" INTEGER_NUMBER
  • "T" INTEGER_NUMBER
  • "R" INTEGER_NUMBER
  • "B" INTEGER_NUMBER
"Sprites" ARRAY_ATTRIBUTES
  • "ImageFirst" INTEGER_NUMBER
  • "ImageCount" INTEGER_NUMBER
  • "Type" CONSTANT_STRING? ("Once", "Loop")
  • "StartDelay" FLOAT_DECIMAL
  • "Duration" INTEGER_NUMBER
  • "Scale" FLOAT_DECIMAL
  • "Alpha" FLOAT_DECIMAL/INTEGER_NUMBER
  • "StartMode" CONSTANT_STRING? ("Fade", "Complete")
  • "StartDuration" FLOAT_DECIMAL/INTEGER_NUMBER
  • "StopMode" CONSTANT_STRING? ("Fade", "Instant")
  • "StopDuration" FLOAT_DECIMAL/INTEGER_NUMBER

Testing Note #1: [Speculation] I found that the scaling seems to be (generally. minus the scaling attribute.) handled automatically. (x1 and x2 are not a thing apparently?) Also, after trial/error, I finally managed to draw a tile that is EXACTLY like the grid in game. It is a bit weird though. It uses a 2-3 isometric line. (I hate it but, whatever.) Here is the image if you want it:



Testing Note #2: I always assumed pivot would be the "anchor point" but, apparently not? I honestly have no idea how to adjust it. It seems to always align in the center. (it's half off aligned on the grid. You can though, adjust the image width/height to adjust it probably.)

Testing Note #3: I found a weird/minor issue as well while testing out my custom particles. They do not seem to 'update' until the game is actually started. In the editor, they seem to not show/update properly until you test the map/scenario at least once. Keep this in mind.
Other Stuff
Anything else that others mention in comments or message me.

Originally posted by fhechene:

"Hi!

A comment on hotkey ID in modify attribute. I'll have to split this on two parts

Thread part 01:

This ID is linked to every trainable unit. You can get this number using Advanced Genie Editor 3, included in the Tools_Builds folder, in the main game folder.
Just look for the 'Hotkey*' entry.

For example, for Militia, Champion, Longswordsman, Two handed swordsman and Mant-at-arms it's 16079 (I don't know if you can mod this for every unit in the militia line, so that's why I didn't say militia-line, but that's beyond the scope of this tutorial).
For Knight, Cavalier and Paladin it's 16070 and so on.

This means that if you change the place of training of a unit, or construction of a building, it will keep its hotkey. If you have asigned Q for militia, for example, and move it to a Trade Workshop, to square 3, for example, it will still be trainable using Q."

"A comment on hotkey ID in modify attribute: part 02

You can use this for the following. Say you want to train Legions in barracks. You enable and change place of training with triggers. If you want the player to be able to use its own hotkeys, you can assign it hotkey 16673, which is Eagle Warrior hotkey code.

A thing to notice: remember, the game engine considers Huskarls/Tarkans trained at barracks/stable different units of Huskarls/Tarkans trained at Castle. For example, Barracks huskarl hotkey id is 16748 and Castle huskarl is 16104."

Originally posted by SpoOkyMagician:

Interesting Random Fact: The Short Description (The panel on the right for objectives.) can only show 18 Lines. After that, it gets cut off.

Originally posted by SpoOkyMagician:

Interesting Fact: If you try to replace a mass amount of units in the editor via triggers, the limit is 10000. (Unless, it's looping. It will replace each step by 10k. But if not, it will only replace 10k once in a trigger.)

Originally posted by SpoOkyMagician:

Since the editor does not have a 'group hotkey set' function, the game will only task 60 units at a time. If you do the whole map as the area, it won't get all of them. You need to limit the area to specific smaller areas where they are spawned/created and tasked in those areas. This way, it will task up to 60 units at a time in that area. (Be sure to loop a trigger and have it on a small timer of at least 2 seconds. 1 second is too short.)

Originally posted by SpoOkyMagician:

So, I did some testing with AGE for max ID's. I am a bit unsure of these values but, they did crash at that point. (For the program anyway.) 20505 Units, (Why is this so low?) 1089882 for Graphics, and 2275439 for Sounds. (Going above this value throws an error. For me anyway.) 591312 for Techs. 394208 for Effects. 138254 Ages. (LMAO.) 63 Civs. (Damn. Not many it seems.) 106203 Terrain Tables. 52596 Colors. 19380 Maps. 3364091 for Effect Commands. (There are a few more but, nothing I really care about.)

Originally posted by SpoOkyMagician:

I found out there is a limit of 9999 Units for Datamods. Anymore, the game/program crashes.

Update/Edit: It seems it is now 32766 for me. (recent test.)

Originally posted by SpoOkyMagician:
8/4/23 Test: 72 (Arrow) Towers, Post-Imperial players, 1 Goth Champion with max hitpoints. Who kills the Champion the fastest/slowest?

[RESULTS]

japanese: 0:32

celts: 1:03
britons: 1:05

italians: 1:15
byzantines: 1:16
chinese: 1:16
incas: 1:16
koreans: 1:16
saracens: 1:16
spanish: 1:16
turks: 1:16
vietnamese: 1:16

teutons: 1:23

aztecs: 1:31
berbers: 1:31
vikings: 1:31

bulgarians: 1:41
burmese: 1:41
ethiopians: 1:41
franks: 1:41
khmer: 1:41
lithuanians: 1:41
malay: 1:41
mayans: 1:41
portuguese: 1:41

magyars: 1:53
hindustanis: 1:54
malians: 1:54
mongols: 1:54
tarars: 1:54

persians: 2:11
slavs: 2:11

goths: 2:32
huns: 2:32

cumans: 3:03

[RESULTS END]

Originally posted by SpoOkyMagician:
Fun fact: If you set a buildings 'train time' to 0, it instantly builds. No need to build the foundation at all. :D

Originally posted by SpoOkyMagician:
Fun Fact: Relic Gold stops generating at 134217728 Gold. I dunno why that value specifically though. :\

Originally posted by SpoOkyMagician:
You can modify a gaia storage resource without data modding. You have to change it's DeadUnitID to itself AND change the resource storage. (I found max is 32767. Any higher, it glitches out.) Once you finish collecting from the first object, the new object replacing it will have the new value you set.

Originally posted by SpoOkyMagician:
There are 36 units in the game that DO NOT have a idle hotkey button for them. (, and . do not work. It was 37 until I found the King Hotkey.)

  • Camel.
  • Bactrian Camel.
  • The 5 Horses.
  • The 5 Cows.
  • Ox Cart/Ox Wagon.
  • Emperor in a Barrel/Cart.
  • Llama/Sheep/Pig/Goose/Turkey/Goat.
  • Ornlu the Wolf/Furious the Monkey Boy.
  • Relic Cart.
  • Princess Yodit/Shah/King Sancho/Jacqueline of Hainaut/King Bela IV/Jayanegara/Merchant/King Alfonso/Udayadityavarman I/Queen/Sanyogita

Originally posted by SpoOkyMagician:
From these 36 units, 12 of them cannot be deleted/killed with the delete key.

  • The 5 Cows.
  • Relic Cart.
  • Llama/Sheep/Pig/Goose/Turkey/Goat.

Originally posted by SpoOkyMagician:
I thought I mentioned this but, it seems I did not. Be careful using "Change Object Name". This creates a "New" Object and has issues with applying stats. Also, I found a really bad side effect too. If you double click a renamed unit, it will ALSO select OTHER renamed units. (Regardless if they are the same type or not.)

Originally posted by Ekarlath:
I can confirm that it is possible to modify "unregistered attributes" using the xsEffectAmount code in a call script trigger !
(unregistered attributes = not in the dropdown list of "modify attributes" trigger)

Now it's tryhard time to find all those unkown attributes ID !

I'll probably share what I find on the Genie_Editor page of the AoE fandom.
If you're interessed in doing a small XS scripting section for attributes manipulation in the guide, it would be a pleasure for me to assist you in that regard.

Upon further investigation, I'm deducting that there is some kind of hardcoded failsafe to prevent altering in real time that attribute for now. So I'll be waiting for the devs to allow editor editing of that value.

Good point is that we know for sure "Combat Ability" is not the Special Ability field, it's the AGE "Break off combat" one, that serv for auras and ground attacking.

With task addition to the XS scripting with the last update, it's now possible to create centurion like aura for units in the game, as they shown example in the patchnote.

Originally posted by SpoOkyMagician:
So, you can do the following garrison stacking it seems:

1: Militia inside a Militia. (or any unit really.)
2: Militia garrisons inside a Ram.
3: Ram garrisons inside a Transport Ship.
(This is as far as you can go I believe.)
- - - - - - - - - - - - - - - - - - - - - - - - -
Separator (Ignore this section)
Conclusion (Guide Part 15)
With all of the new Conditions/Effects, I expect for many new impressive Scenarios to be released. (It may take some time since they game just came out recently.) I can't wait to see what Scenario Designers come up with. (Including myself.)

Good Luck and Have Fun Everyone!

~ SpoOkyMagician
- - - - - - - - - - - - - - - - - - - - - - - - -
Separator (Ignore this section)