| 06-04-2003, 06:15 PM | #1 |
This thread is to talk about something that many of us have dabbled in or have already done, and that's going beyond the unit editor and changing the base sets of unit data. This is a process that has many advantages and disadvantages, but it still remains to be somewhat "privileged" knowledge that only a few major modders know of actively. So to start the discussion off, I'll talk about what I've discovered so far through trial and some of what I've learned from others. (mainly skizot and cookie). So first lets talk about what exactly this unit editing means... What is Editing the Unit Base? Editing the unitbase is editing the default set of units that the game uses, its the most basic and powerful way to edit units. The .w3u file isn't even necessary when editing units in this manner, its possible to never use the unit editor again, EVER. The unit base is comprised of 5 symbolic link (.slk) files and 10 text files. The symbolic link files break the unit information down into different categories. The set of files seems to be driven by unitdata.slk and subsequently by unitui.slk. Meaning the game looks at unitdata first for all its information. Any unit you create must exist within those two files. The other 3 files are optional, those are unitbalance, unitweapons, and unitabilities.slk. Balance controls hit points and armor types, mostly a units defensive capabilities. Unitweapons controls a units offensive capabilites, including what its weapons sound like, and unitabilites controls what that unit can do as far as its abilities go and which abilities are turned on as autocast. The 10 text files are broken down into 4 races and neutrals, and two files per race. The two files are *unitfunc.txt and *unitstrings.txt. Much like spell editing, the func controls icons and appearance while the strings control names, tooltips and propernames. These 10 text files are optional, however if you don't include an entry your units will be named "default string" and will lack icons. So that's a bit of a summary on the subject. Now here is a discussion about the advantages and disadvantages of this process. Advantages of editing the base set Editing Speed - This is by far the most prominent advantage, changing data in excel takes but a second and you can just copy and paste to create new units without waiting for whatever absurd operations the editor has to carry out whenever you change so much as an integer. Editing Power - Power is obviously the second greatest advantage, the unit editor doesn't allow access to some vital fields and even enhanced unit editors and such don't offer the amount of features possible with .slk editing. For instance, try giving a hero a bounce attack in any unit editor, or try making a flying unit that's not invisible at runtime. (without triggers) Editing Expandability – Any unit set you make can be instantly applied to every map you make. This is very helpful in campaigns but its also helpful in maps like RPG's in which you intend to have sequels. Less Total Units – Trimming the fat is an understatement here, with base editing you use only the units you need, so you can literally cut out hundreds and hundreds of units from the game, which saves memory, loading time, and execution time. I cut FMVH down to less than 250 units and the increase in speed is DRAMATIC I might add. Better Unit Organization - Finding 20 custom units in 7 different categories to place on your map is a royal pain, if you aren't using all 4 races, then by all means just eliminate one and use it for a special category of units. For instance in FMVH we are using the orcs for all casters and projectile spell units. Disadvantages of editing the base set This process obviously isn't for everyone, so what are the disadvantages? Large Setup Time – Sure it may take less time to edit units, but man it takes a while to set this up. Depending on how complex your project is you can look to spend a week or two just making units, and that doesn't include getting the damn things to actually work. (One of the reasons I put this thread up is to try and come up with ways to fix some of these problems) Extra File Size – Although you will have less entries in your .slks the unit sets will take up extra file size, not a vast portion, mind you, but its enough to take this into mind. Premature Baldness – There is a lot of mystery in how this data is handled. Sometimes it just doesn't work, sometimes you have to delete the .w3u to even run the map, sometimes it will crash either at the beginning or the ending of the game for hereto unknown reasons. That's another thing I'm hoping to address with this thread. Known Pitfalls Who says there aren't heroes anymore? – Anytime you capitalize the first letter of a unit entry, you automatically make it a hero, so use caution. Proletarian Peasant Revolution - All unit sets must contain the hpea, human peasant, unit entry for the game to load a map without crashing. This is only required in unitdata.slk and unitui.slk. Thanks to Skizot and Project Revolution for this. ** If you have any more to add, ill edit this thread with your entry.** Areas of Interest Well just slap me around and call me Susan... I warned you Susan! – The number of different names for each hero is determined in UnitData.slk and that units racial strings entry contains the names themselves separated by commas. Da Bearz – To make a DOTC look like a bear all the time or medivah always look like a crow, you can use an animation tag in that units racial func file. Like so: Attachmentlinkprops=alternate Boneprops=alternate Animprops=alternateex Thanks to Skizot and Project Revolution for this. Big fluffy golems with wooden fists – If you have a golem hero you want his armor to sound like a metallic suit instead of a fleshy ogre or something, that's found in unitdata.slk, whereas weapon hits are in unitweapons.slk. Chief of the boat, make your speed 25 knots – Movement speed is a balance issue, so its in unitbalance, whereas the units movement type and height are in unitdata.slk. Killem all and let the necros sort em out – The death types in unitdata determine if a unit leaves a corpse, is vaporized like a summoned unit, or if he dissipates like a hero. Important if you have resurrecting units. One of these days these boots are gonna… If you want a unit to be completely non colliding, as in other units can walk all over it, set its collision to 0, give it a standon tag in unitdata for its type, give it a underscore for its movement type, and finally set its movement speed to 0. That's all I have for now, I hope we can get a good discussion going here and discover some more about this stuff from those whom have already done most of this. Sincerely, FM_TertiaryEye |
| 06-04-2003, 10:11 PM | #2 |
Actually all these things you can do with my enhancer too. The problem is implementing unitmetadata.slk in a map dedicated for multiplayer makes it work only when the map is the first played (all users that played anothermap before will be instantly kicked altogether in another game with the map working with the default unitmetadata.slk then, buggy if you used these options). I had a similar idea to yours to fix that, but then we need several things : First we need to make sure all other files linked to the fields from unitmetadata (all the profile txts, all the concerned slks) will properly work on mp when implemented in a map. Then, if it does (would be great) , it would be ever so wonderful if someone quite skilled with programming could make a standalone unit/item editor taking all these fields in account (note that this could even be done with spells, then IT WOULD ALSO BECOME A SPELL EDITOR). That editor would just need to look similar to WE's unit editor or even nicer for ergonomy. When all the unit editing would be done, it would automatically generate a minimum set of files to be implemented in the map (for example, if unitweapon.slk fields aren't aren't changed at all in the all map, ignore its generation). To edit the map again (without editing the units as WE's unit editor is useless anyways) all that would be needed is like when making custom spells, put the files in the dedicated warcraft 3 subfolders, allow local files and open the map with WE or UMSWE. Then the units could be placed etc... I would even recommand disabling the unit editor from WE to avoid any war3map.w3u corruption (easily done through Worldeditor layout / data .txts). This way, all the power of unit editing would be enabled and fully working on multiplayer maps. If someone creates a single player map or campaign, he could still use my enhancer or scio's campaign WE edition. But when it comes to multiplayer, our creativity becomes seriously crippled. I think many would agree with this Of wourse we could all do that by hand, but as you said, it requires time (listing all used units & fields to be changed to work out what SLK and TXT files to generate) but wouldn't the whole community be delighted with a WORKING ENHANCED UNIT/ITEM/SPELL EDITOR ? (oh please let me add DOODAD/SPLAT, the method is the same) I bet we would all be Please give me your opinion about this idea (originally yours ^^) and if you do agree, maybe we could start a call - with the mods approval - for a skilled programmer that could do it We could give him all the support needed for the fields/link between files etc Thanks for letting me know your opinion about this Regards |
| 06-05-2003, 04:36 AM | #3 |
Chyrd, Although i do like the idea of an editor, some certain things have to be discovered first, like for instance what fields crash what and what data causes the game to fail. One of the problems i have now, (which I'm hoping someone can help with), is that my map actually wont run unless the .w3u file is deleted prior to loading which isnt a problem, but the map also crashes the game whenever it exits. So i would like to think about the possibility of an editor, but some of these things have to be addressed first. Anyway thanks for the response. And its not really MY idea, this has been used by several groups on the campaign front and extensive modders. But i do think its something the rest of us could definately use. BTW, is it possible to give a hero a bounce attack with your enhancer? Eye |
| 06-05-2003, 10:54 AM | #4 |
I know all these issues have to be adressed. But its worth tryng as metadata files don't like to be imported into a non singleplayer map. As for the bounce attack yes i can. A hero can use unit abilities (the opposite doesn't work unless modified in abilitydata). In the latest version of my map that i did not release because of these issues, i gave a tower a missile(bounce) attack (u don't need the glaive upgrade) then gave it a specific aera of full damage then set the bumber of targets for that attack to 2 or 3. It works a treat and can be done equally to a hero. Then i also recommend the Heay or MediumMetalSlice attack sound as it fits bouncing very nicely. The other interesting feartures of my editor is changing splats for buildings, make flying buildings , (levitating rather), change the unit race, classification, change a unit to a building... Even the placement required & preventing pathings. As you have seen, the list is long. They all work (some experimental fields don't but they are rare). This said, as you know, all values from unitmetadata are taken from the other file's fields. Thats why the idea is a damn good one : It will allow us to customise the game in many ways, impossible before (unless doing the same thing 'by hand like many did) and that would work in multipler. As for the issues, i am sure they are adressable, and the idea of having to delete w3u (that really makes sense when you think about it) from the map file is just good news as it will save a few bytes lost by that method. I will try to apply your method to my map first ,as it contains 100 custom units plus a few modified ones. It will help finding out what the problems are. This said, i can already tell you about many causes of crashes. Most of them would be due to a mistype in a field or an incompatible value. Especially things like pathing, etc Thats why my enhancer will be useful. An example : The Splat for a building is a string. okay BUT even then only the string containing the ID of the splats from uberSplats.slk can be used. if not WE (then war3) will crash stright away. We need to take in account the different type of values in these fields. If we type values that the game can identify (similar values to those in the other slks and profile txts), we should not see any crash unless the value itself can't be handled by war3 (a negative Scale for the model, or negative or null amout of hp, etc.) All these problems i will be able to find out about while making the custom slks & profile files helped with my enhancer. Some fields values are defined in the uniteditordata.txt and for the others like AI Placement (don't ask me ^^ ) , it will give me many examples of valid values. I'll keep you upfated Regards |
| 06-07-2003, 08:19 AM | #5 |
Guest | could anyone give me a link to the tutorial link for slk editing??? |
| 06-08-2003, 02:42 AM | #6 |
my first one Regards |
| 06-08-2003, 08:10 AM | #7 |
Guest | Suprisingly enough i found this quite easy and picked it up myself (unit editing that is) because i found most other stuff hard. i made a small maod for my self with many new units and it pretty much all worked fine except the ai scripts. Im lost in that area |
| 06-08-2003, 04:10 PM | #8 |
so... restarting warcraft3 will fix the desync, correct? i might do this since it allows for a lot more editing... |
| 06-08-2003, 05:40 PM | #9 |
Using the method described by FM_TertiaryEye, no need to restart war3. It fully works like a charm on bnet with no real limitation. But as he pointed, making all the units for a map is time consuming and not very error friendly. I need to add a small detail in the things that are not allowed and that some prople would not necessary guess : Don't add blank lines (rows) to seperate your units in the unitUI.slk or in the UnitData.slk or the map won't even load. If someone ever finds a way to make a small program to do the job, it would be delighting. Regards |
| 08-25-2003, 07:58 PM | #10 |
hi, i've very frustrating problem when editing the slk-files. when i edit them directly in war3x.mpq, the editor crashs so i put the .slks into the war3patch.mpq but the problem: nothing happens! when i open the unit-editor, the values i've altered aren't there! i removed all abilities except the harvest from the peasant (field "abilList" in unitabilties.slk) but in the unit-editor he still has all abilities! what's wrong? |
| 08-27-2003, 12:58 PM | #11 |
I saw some nice units in Tides of Blood,but I am wondering if the creator did used an editor to make them (in this case we all don't know about it's existance) or edited the slk-s by himself... |
| 08-27-2003, 01:59 PM | #12 |
i've solved the problem. You have to extract the "Custom_V1\..." Files into war3 main directory. Seems like WE is using war3x.mpq for refering to "UnitAbilities", "UnitBalance" and "UnitWeapons". But if you extract them, WE will refer to the extracted files. However to work ingame, you must put those files within the war3patch.mpq :bangH: ://// |
