posted 10-24-06 04:08 PM EDT (US)   
This is a tutorial on editing the stringtable by irishlegend8 at heavengames. Email at irishlegend2006@yahoo.ie


Firstly you should read the other tutorials on modding the proto


This tutorial will hopefully show you how to
-Change a units name
-Change a units description
-Change the names of many different things like the british homecity cathedral or default homecity name


1)Go to the aoe3 data folder its found in local disk (c – program files- Microsoft games – age of empires 3 - data
2)Find the xml file named stringtable
3)Right click on it and select properties. Look for a small box that says read only if its ticked click on it so theres no tick
4)Next make a backup of the original stringtable in another folder
5)Right click on strintable again select open with and select a text editor like notepad or wordpad


when its opened you should see something like this
<StringTable version ='10'>
<Language name ='English'>
<String _locID ='10670'>Villagers gather Wood faster.</String>
<String _locID ='11070'>Gang Saw</String>
<String _locID ='11723' symbol ='cStringNotReadyToResearch'>%s is not ready to research.</String>
<String _locID ='11724' symbol ='cStringHelpStringUnitFormat' comment ='1 - culture name, 2 - hotkey text, 3 - cost, 4 - pop, 5 - rollover text'>%1s%2s. %3s %4s\n%5s</String>
<String _locID ='11725' symbol ='cStringHelpStringUnitPopCost'>Pop: %d <icon="(32)(ui/ingame/resource_population)"></String>



Now in another window I want you to open an xml file named proto (its in local disk (c – program files- Microsoft games – age of empires 3 – data) and press ctrl + f and type in settler and click find
You will get something like this
<Unit id ='212' name ='Settler'>
<DBID>1</DBID>
<DisplayNameID>22806</DisplayNameID>
<EditorNameID>34132</EditorNameID>
<PopulationCount>1</PopulationCount>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Protected</FormationCategory>
<MaxVelocity>4.0000</MaxVelocity>
<MaxRunVelocity>6.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>units\villagers\villager.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<PhysicsInfo>dude</PhysicsInfo>
<Icon>units\villagers\villager_icon</Icon>
<PortraitIcon>units\villagers\villager_portrait</Po rtraitIcon>
<SelectionPriority>10</SelectionPriority>
<RolloverTextID>22814</RolloverTextID>
<ShortRolloverTextID>25708</ShortRolloverTextID>

Notice the line <DisplayNameID>22806</DisplayNameID> the settler display name ingame is settler
Now go back to the stringtable again and enter ctrl + f and type in 22806 and click find you should get this

<String _locID ='22806'>Settler</String>

this means if you change it to

<String _locID ='22806'>Lazy Worker</String>

when you select a settler ingame his name will be lazy worker not settler

or you could find gaps that are left in between numbers if you look at the stringtable it goes

<String _locID ='17094' symbol ='cStringUIStatePaintWater'>Left-click to dig out water. Press ESC to cancel.</String>
<String _locID ='17095' symbol ='cStringUIStateEditWater'>Left-click to select water. Press ESC to cancel.</String>
<String _locID ='17096' symbol ='cStringUIStateHelp'>Left-click a unit to see detailed help. Right-click to return to normal
<String _locID ='17114' symbol ='cStringUIStatePaintCliff'>Left-click to create cliffs. Right-click to create canyons. Press ESC to cancel.</String>

it skips 17097-17113 (this is just one example)

you could say

<String _locID ='17097'>Lazy Worker</String>
since 17097 isn’t already being used and change the
<DisplayNameID>22806</DisplayNameID>
for the settler in the proto to
<DisplayNameID>17097</DisplayNameID>
and it will have the same effect


Now look at the part of the proto that says
<EditorNameID>34132</EditorNameID>
the name of the settler in the scenario editor is VIL settler
if you click on ctrl+f in the stringtable you will get
<String _locID ='34132'>VIL Settler</String>
by changing it to
<String _locID ='34132'>VIL Lazy Worker</String>
the settler name in the editor will now be VIL Lazy Worker or you could make a new string that’s not being used
<String _locID ='17098'>VIL Lazy Worker</String>
and change the proto to
<EditorNameID>17098</EditorNameID>


Next is the description of the unit
<RolloverTextID>22814</RolloverTextID>
<ShortRolloverTextID>25708</ShortRolloverTextID>
the top one <rollovertextid> is the description you will see of the unit ingame when he is selected
the bottom one <shortrollovertextid> is the shorter description you wills see ingame



Next is the settlers <RolloverTextID>22814</RolloverTextID> description
got by entering ctrl + f and then finding 22814
<String _locID ='22814'>Villager that constructs buildings and gathers resources.</String>
you could change this to
<String _locID ='22814'>Lazy Worker that constructs buildings and gathers resources.</String>
or make a new string like above in the display name id and editor name id


next is the settlers <ShortRolloverTextID>25708</ShortRolloverTextID> description
got by entering ctrl + f and then finding 25708
<String _locID ='25708'>Villager</String>
you could change this to
<String _locID ='25708'>Lazy Villager</String>
or make a new string like above in the display name id and editor name id


that is where the stringtable appears in the proto but that is not the only place where you see

<DisplayNameID></DisplayNameID>

when you see this it is something to do with the stringtable



For example if you have aoe3ed (look in the modding programs tutorial) you will be able to do this
Extract the file homecitybritish.xml.xmb from the data bar file with the archive viewer and convert it with the fileconverter
Now open it with a text editor
You should get something like
<homecity>
<civ>British</civ>
<name>$$36883$$</name>
<heroname>$$43030$$</heroname>
<gatherpointunit>HomeCityGatherFlag</gatherpointuni t>
<visual>british\british_homecity.xml</visual>

notice these 2

<name>$$36883$$</name>
<heroname>$$43030$$</heroname>

you should look these numbers up in the stringtable and see what you get
these are the default homecity and heronames for the british

Now press ctrl+f and enter cathedral
You should get
<building>
<name>Cathedral</name>
<visual>
<file>british\british_cathedral.xml</file>
<bone>bone_cathedral</bone>
</visual>
<uix>80</uix>
<uiy>475</uiy>
<camera>british\british_homecity_cathedral_camera.cam</camera>
<widescreencamera>british\british_homecity_cathedral_w idescreencamera.cam</widescreencamera>
<unlocklevel>0</unlocklevel>
<portrait>ui\home_city\cathedral_icon</portrait>
<displaynamestringid>24969</displaynamestringid>
<rolloverstringid>25538</rolloverstringid>
<obtainabletechs>
<tech x="0.0" y="1.0">HCNativeLore</tech>

notice <displaynamestringid>24969</displaynamestringid>
<rolloverstringid>25538</rolloverstringid>
enter 24969 in the stringtable and you will get
<String _locID ='24969' symbol ='cStringHomeCityCathedral'>Cathedral</String>
when you are looking at your homecity card one of the buildings is cathedral
make a string
<String _locID ='17109' symbol ='cStringHomeCityCathedral'>British Church</String>
and change
<displaynamestringid>24969</displaynamestringid>
to
<displaynamestringid>17109</displaynamestringid>
now when you view your cards the cathedral will be called british church
you can use the same idea for
<rolloverstringid>25538</rolloverstringid>
and you will get
<String _locID ='25538' symbol ='cStringHCCathedralRollover'>Building upgrades</String>
you can change this if you want as well

when your finished convert homecitybritish back to homecitybritish.xml with the file converter and move it to local disk (c – program files- Microsoft games – age of empires 3 - data

Here was just one more example of where the stringtable appears in other than the proto


If you have managed to do everything so far then well done!! You've completed this tutorial
But remember always have a backup file and if your making a new string use a number that is not already being used

------------------------------------------------------------ ----
------------------------------------------------------------ ----
THIS IS THE VERY BASICS FOR THIS KIND OF MODDING THE REST I HAVE LOST THE WILL TO CONTINUE
THIS WILL HOPEFULLY SHOW PEOPLE THE FILES REQUIRED

ANY QUESTIONS ON THIS POST THEM HERE I WILL BE HAPPY TO ANSWER QUESTIONS