Skip to content

The IN-DEPTH Guide to the Proto/Protox File

created 05/13/04

by Waveslave

The IN-DEPTH Guide to the Proto/Protox File

Important Preface Facts
I will refer to the Proto and Protox files as Proto(x). This is because if you are using AoM (Vanilla, No Expansion), you will deal with the Proto file. If you are using AoM: TT (Expansion), you will deal with the Protox file. So, when I say Proto(x), you use the file, Proto or Protox, that applies to you. The two are basically the same, except Protox contains more unit information since it is the expansion version.

Proto(x) comes in two forms, XML and XMB. XML form is editable and is the form you use when adding information. XMB is the form that goes in the AoM/Data folder, and is read by the program.

Always back up files that you edit. You never know when you may make a mistake, and screw up the game.

Contrary to some belief, you can have more than one new unit in your game.

What Exactly is a Proto(x)?

Proto(x) is the file that tells Age of Mythology the info on all the units in the game. It tells the program what the name, stats, and info about a unit, therefore the place to install new units.

Finding Your Proto(x)- in Detail
To find your Proto(x), you need the program AoMed.

The first step in finding your Proto(x) is to install AoMed, and get used to the features. Also, find your AoM path, usually C:/Program Files/Microsoft Games/Age of Mythology.

Open up AoMed. Press "Set Input Data File".

At the window, go to your AoM/Data folder, usually C:/Program Files/Microsoft Games/Age of Mythology/Data. Depending on if you have AoM or AoM: TT, click if you have AoM, or if you have AoM: TT. Press "Open".

You will return to the AoMed screen. Now, press "Read Data File". A green window will pop-up, with scrolling text. Let it finish.

Now, look in your AoM/Data folder. Several new files have been added to the folder, except they aren't new. They have been encoded into the data(2).bar file, and now they are extracted to mess around with.

Converting the Proto(x)

Press "Direct File Conversion".

Find your AoM/Data folder. Press the newly-extracted Proto(x).XMB file.

A window pops up asking you where you want to save the newly created Proto(x).XML file. You can put it anywhere, but for now let's put it in the AoM/Data folder still.

Congratulations! You now have the Proto.XML file, which is used to add or edit unit information.

Editing the Proto(x).XML
Adding New Units

First, open up Proto.XML with Notepad, or any other basic text program.

Scroll down to the bottom of the document. Be careful not to touch any of the text on the way down.

Paste in your unit information between </action> and </unit> at the end of the file.

Fix any errors, extra words, or incorrect spacing that might have occurred during pasting, and the end of the file and the beginning of your new unit text is correctly spaced. Use the other units as reference.

Change the Unit ID, located here ie: <unit id="810" name="Heavy Archer">, to one more than the unit id above it. So if the unit above "Heavy Archer" had a unit id of 809, then Heavy Archer would be 810.

Other Possible Edits
To personalize your mod, or to make it more like how you want, edit the stats of your new unit's text in the proto(x).XML. You could do this with the ModifyProtounit trigger, but it would only be temporarily. Lines that would need changing if you want would be <maxvelocity>3.7500</maxvelocity>, how fast your unit runs, <los>22.0000</los>, your unit's sight range, <initialhitpoints>60.0000</initialhitpoints> <maxhitpoints>60.0000</maxhitpoints>, your unit's starting and maximum health, <param name="MaximumRange" value1="20"></param>, if your unit has a ranged attack, and <param name="Damage" type="(Pierce, Hack etc)" value1="6"></param>, for attack damage. Of course there are more lines that can be modified, but those are just the main ones.

Converting Back
Press "Direct File Conversion".

Choose the Proto(x).XML, which you just edited.

Save the newly-converted Proto(x).XMB in the AoM/Data folder. This will take a few minutes, just be patient.

If successful, you have just edited your Proto(x) file, and check it out in the editor to see if everything worked.


Editing the Proto(x) is a very precise, delicate operation. One small spacing mistake can lead to an error. If you do recieve an error when converting back, just examine everything back and find your mistake.