And I was looking through the modding articals and various threads stickied around here and I haven't noticed one that deals specifically with technologies, especially one designed for newbies. So I decieded to put my knowledge to use and make this guide, I apologize if I only missed it and this has been done before.
To start, I should answer a few questions about technologies:
Wow. I should begin by saying that for any regular modder, technology editing is almost as important as unit editing, if not more so! With technologies, you can modify almost any given attribute of any unit/building/other technology in an enormous number of ways. Ever wondered how ES got the different cultures/major gods/minor gods to each have different attributes? That's through technologies! How about how units are upgrade through thier various stages of progression? Well, once you learn it, it's all easy to understand, and I'll be teaching it to you now. Technology editing and unit editing are indeed closely related. Unit editing will control what qualities or statuses a unit has, technologies allow those statuses to be changed through the course of the game depending on certain conditions, for example villager gathering upgrades. If such techs did not exist, then you would have to spend your enitre game using the unupgraded villager gather rates, making it nearly impossible to support a mythic/titan age civilization. However, because technology editing and unit editing are so closely connected, it is recommended that you have atleast moderate knowledge of unit editing. There is another modding guide on Proto (unit) editing Hopefully, you are able to understand proto reasonably by now and are ready to start editing technologies. But before we begin, you will need the following programs in order to move on: Notepad/Wordpad. One or both of these come already available with nearly every system made today, so this shouldn't be a problem. Now it's time to move on. The AoM file that controls technologies is called techtree, in the original AoM, but techtreex in the Titans Expansion. From now on I will be refering to them both as Unfortunately techtree(x) is hidden inside Data.bar, if you have vanilla AoM, or in Data2.bar if you have TT. So open Bar Explorer, and then specify the folder you want Bar Explorer to look into by double clicking on the correct folders until you reach "C:/Program Files/Microsoft Games/Age of Mythology/data/" once you see Data.bar and Data2.bar in this folder, double click on the one that is appropriate for your game (Data.bar for vanilla AoM, Data2.bar for TT). Once you have Data(2).bar open with Bar Explorer, look for the file techtree(x).xmb, and then use the "edit - Extract to..." option and set the folder as "C:/Program Files/Microsoft Games/Age of Mythology/data/" And just to make things easier, do the same with proto(x).xmb. Now, exit Bar Explorer, and open AoM Ed. Select the option "direct file conversion" then specify the "C:/Program Files.../Age of Mythology/data/" folder and select techtree(x).xmb and click open. A notice should pop up saying something like "converting to XML, select an output window" set it in the data folder. Then do the same process with proto(x).xmb. Whew! You're almost ready to start editing techtree(x).xml, but before you do, open the data folder and delete the 2 files called techtree(x).xm The moment you've been waiting for, at last! Using notepad/wordpad open up the file techtree(x).xml, just ignore proto(x) for now. The first technology you should see is "Age 1". Here is an explanation of what each of the lines in each technology This simply the name that the data files will recognize the technology with, whenever it is being refered to at some other point. Just ignore this unless you want to add a technology, which I will come to later. The two choices here are "Power" or "Normal". "Power" means that the tech in question is refering to a god power, which are all controled elsewhere. "Normal" simply means this is an "ordinary" technology, so unless you are creating a new god power, this should be set to "Normal" and ignored. This seems to refer to the ID number of the tech. If you are adding a new technology, then your new tech should have it's dbid set to 1 more than the tech directly above it. If not, then leave this alone. This specifies the string table number that holds the name that the technology will have in-game. In most cases that name is the same as the "tech name", but not always. Disregard this unless you are adding a new technology. Abstract, editor-only techs will not even have this. This determines the cost of the technology. You simply type which resource you want in the quotations after In number after the This determines how long the technology will take to be completed, in seconds. That's all there is to it. Go ahead and change this if you want. Just remember that higher numbers take more time, and vice versa. Surprising though it may sound, this sets the status of the tech. The status available to use are: The way that these statuses affect technologies, and given the fact that one technology can change the status of another technology, can lead to a huge and tangled web of reasoning which can get very complicated. If you find yourself needing to edit the statuses of a large number of interconnected techs, you may want to have a document or paper to keep track of what you do. This just determines the icon the tech will have, it is entirely up to you. Don't forget that you can always look into proto(x).xml or at another technology and then copy the icon of another unit/tech into the one you are editing/creating. There is also a modding artical This is very important if you are creating your own technology, much less so if you are not. There is a string in the game's language dll for every technology in the game, the number in this line tells techtree which string contains the description for this technology. For example, the tech "Medium Archers" has a rollovertextid of 10751, and the game's language dll the string 10751 reads: Many techs will not even have this. Supposedly, this tells the game in which position the slot to research this tech will appear. However, if your new tech is to appear at a unit/building, you must set this in proto(x).xml. So I'm pretty sure you can just ignore this completely. Various "flag"s may be present in a technology, most of them are quite self-explanatory, i.e. The prerequisites determine what conditions must be met before the technology's status (most often set to "obtainable") will take affect. These conditions vary enormously and would be impossible for one article to list. Here are some commonly used examples: If this is inside the prereq brackets, then the tech's status will only take affect once the given age is reached. Note that you do not need a "specificage" prereq if you want the age to be the Archaic Age. Also, if you want the Titan Age as a prereq, you cannot use this and must instead use: This means that only a certain culture can get the tech. Be sure to spell the word correctly an remove any spaces/illegal character's. If you want multiple cultures to be able to recieve this tech then, be sure to have one This is, by far the most common prerequisite found in all of techtree(x). It is saying that, in order for this tech to be obtainable/active/whatever-its-status-is, then another tech (the one written between ">" and " Here is an example, the reason you cannot reasearch With this you can have it so that any technology, at any of the given statuses (obtainable, unobtainable, active, persistant...) be required as a prereq for any other technology. No doubt this can cause extreme logical headaches, but it gives you very powerful control over the requirements for your new/edited technology. Now, you've made it through understanding (hopefully) the statuses, prereqs, costs, etc. that make up a technology, we must move on to the long-awaited effects themselves. Remember the proto(x).xml I told you to save earlier? Now is when you're going to need it! So open it with notepad/wordpad now, and be prared to constantly be looking into it! The Since "Text Output" and "Set Name" have to with language dll editing and only become important if you need to create your own technology, I will focus on the "Data" effect type. Here we come to a super tricky part of editing, in which you must have a select goal you are trying to achieve. Guessing mindlessly, will not help you here. Once you set the effect type as Data, there are numerous specifications that will come next, that vary greatly depending on what effect you are trying to achieve. Maximize proto now, use the "find" feature under "edit" to search for the unit you trying to change with a technology. Once you have that, IF you trying to modify somthing that is listed under one of its "proto action"(s) (i.e. a units attack range) than the very next thing you put after IF, you are changing an attribute of your unit that is NOT listed under one of its proto action(s) (for example, it's hitpoints) then affter If the attribute you want to modify about your unit is not related to any of its actions, then you can skip all text written in purple. Unfortunately, every single Wheather you are changing an attribute found under a unit's proto action, it's damage, or anything else, you need to read this paragraph. Before you close off the effect you've been creating, you have one more specification to make. And that is the relativity. The relativity tells techtree(x) how apply the number you put in "amount" to attribute you specified. (Applying what I just said to my Toxote example: without a relativity, techtree(x) wouldn't know how the "5.00" I put in "amount" would affect the "pierce damage" of a Toxote's "RangedAttack". Does it multiply? ... Add?...) Techtree(x) uses four relativities that apply the amount to the attribut in different ways. The four relativities are: The final step in ending your effect then is to slose of the specifications with a relativity, and then set the targeted proto unit. My Toxote tech's effect would look like this: Then I'd be sure all this data is affecting the Toxote so I'd finish the effect to look like: (Note that the ProtoUnit is set to "Toxote If I had been trying to modify another attribute about the Toxote that was still found in it's proto action(s), but was not "Damage" then the extra "damagetype" would have been eliminated. Suppose I were trying to give the Toxote an accuracy of 1.00 (100%) then my effect would look like this: Alright, now that we see that, pretend I were trying to modify an attribute of the Toxote that had nothing to do with its proto action(s). Say I intended to halve the Toxote's train points, which is not part of its RangedAttack action, then the tag "action" would be eliminated. And it would look like this: (In proto, "train points" is one word so don't add a space in between the "train" and "points" while setting "TrainPoints" as the subtype. But for some reason you need to capitalize the two words.) This occur only rarely, but one last tag called "unittype" that must be added to any effect if, and only if: 1.The attribute you want your effect to modify is part of a proto action. 2.If the Hopefully this will clarify a little, imagine I wanted to give Jarls a +1 multiplier against myth units. Bonus Damage attacks are controled within a proto action ("HandAttack" in this case) so condition one is met. Bonus Damage is a Look at that carefully for a moment. The writing in blue is to show that the effect is something that will change the data, the orange text shows that the change will take place on an action - and the action is called "HandAttack". The green text gives the amount I wanted to be added, the red subtype is showing which I hope you have, but in case you have not understood what I've been telling you about how to create your own data effects, there is always a work-around. Think of an already existing technology with an effect very close to the one you are looking for. Example situation: You want the mythic age to increase villager gold mining by 10%. You could always open techtree(x).xml and find the tech "Plow" then copy+paste the effect of plow into the tech "Age 4" while changing the My advice, especially if you are new to this sort of thing, is that if you cannot comprehend how exactly to create your own effects, than don't worry too much for now, if you understand relativites and amounts well enough then you can use the copy+paste+edit method. But as you grow more experianced in techtree(x) editing, study that and try to learn it, you'd be surprised how much more you can do with tech effects when you can decrypt them yourself! As you should be able to see by now, proto(x) and techtree(x) are very closely connected. The statuses, tags, and abilities that units have because of their proto identities, heavily influence the data that you will need to put in techtree(x). A few more abstract reminders about technology editing: 1. There have been several people who have claimed that the game's data files, such as proto(x) and techtree(x), have a tendancy to "round" or sometimes change the values you put into them, even if you put them in correctly. This is a widely circulated, but false, urban myth. If you program your effect correctly, then the numbers or percentages applied will work correctly, studying the relativities will help you not to mess up your programing here. 2. A technology cannot modify, in any way, an action on a unit if the action does not already exist in that unit's proto. Try setting a technology that will add 6.00 to regeneration rate of a Mountain Giant. Even if you set the effect correctly, your Mountain Giant will not regenerate. Here's why: You would be adding 6.00 to an action that does not exist, thus doing nothing. You have to edit the Mountain Giant's proto identity and add a regeneration action, like this: You'd have to make the value of the action be "0" if you don't want anything to occur untill you research the tehcnology. In fact, this is the reason why the Titan can regenerate using Hekate's "Mythic Rejuvenation" technology, because ES so carelessly forgot to remove the regeneration action from the Titan. This principle applies not only to regeneration, but to healing, trading, gahtering, attacking, you name it! If you're wondering why I'm telling you this, it's because I want to be sure you won't become frustrated with setting up a perfectly valid technology only to find it doesn't work, the reason may be in the proto. 3. Here are some less-orthodox technology effects to keep in mind should you need them (effects that would be nearly impossible to deduct on one's own): This effect is important if you ever need to enable a new unit you've created, or change the technology that enables a different unit. Remember that the target type must be your new unit's/the old unit's name spelled EXACTLY as it is in proto(x).xml. This effect occurs only in the age advance techs. Only if you tried to create a new age your self would you ever need to bother with this, so just ignore it. This effect means that the selected sound from Age of Mythology's "Sound" folder will play everytime this technology takes effect. The default click we hear when every technology is completed does NOT need to be specified here; that will occur automatically. I doubt this will be used much, but if you feel you have a neat sound you'd like to play once the tech is researched then be my guest! To anyone who is new/very poor in their tech editing skills, the I hope you got enough out of this guide to make it worth the hours I spent typing it (seriously, even If anyone has spotted an error, knows of something I missed, or has any overall comments or constructive criticisms on how to improve this guide, just post a reply and I'll be happy to investigate. A guide on how to add entirely new technologies coming soon! [This message has been edited by Magnum Pi (edited 08-03-2006 @ 00:39 AM).]
by Vachu. Quicker and easier to use than AoM ED's sustitute method. Needed to extract the nessecary files that are compiled inside various .bar files. Good job, Vachu.
mean (
[/culture>
A far less common prereq (found in age advances) requires you to have a certain amount of a certain type of unit, this one is used sparingly, but, if used, will require you to know a bit about proto(x).xml. Suppose I wanted atleast 5 infantry units to be required before my imaginary tech X would be available. I would use this prereq, set the "unit" to "AbstractInfantry" (because all infantry units have this in thier proto identity, thus making them be counted), set the "count" to 5, then set the operater to "gte" meaning greater than or equal to. If you didn't understand that, it's not critical, as this prereq is used very sparsely. The next possible prereq I'm about to show, however is used extensively, so it's imperative that you comprehend that.
Firstly, listed after the prereqs for each tech, will be the line
~~(||M/4gnum Pi ||)~~
Evolution has... come to do for biology what vitalism did for it previously. — Robert Rosen
COSMIC ANCESTRY - The Modern Version of Panspermia
Files by Magnum Pi: New Forest Fire! (5.0) , Infinite Farms Tutorial (5.0) , Exrta Resources, Extra Population (--)
Age of Empires : Age of Kings : Age of Mythology : Age of Empires III : Rise of Nations
Learn to solve your Rubik's Cube!