Ashlebede
New Member
- Reaction score
- 43
This tutorial explains how you can make a map in the Frozen Throne's (TFT) World Editor and then convert it so all your Reign of Chaos (RoC) friends can play it.
This method allows you to use almost everything TFT's World Editor has to offer and also allows the use of TFT-only spells. This method was used for the conversion of the famous TFT-quality map Hero Line Wars RoC and was sent to my friend Sesamia by its creator, Kueken. I would like to thank him for telling me how he converted his map and allowing me to write this tutorial.
So, if you want to make your map playable in RoC, thou shalt need the following :
It is also recommended that you have the following :
Before we start converting our map, we need to get some required files in TFT's installation folder. Open war3x.mpq (they are both in your installation folder) with the MPQ editor. It contains a (listfile). Extract it in any folder.
Now, open war3patch.mpq, which is also in your installation folder. It has no listfile ; all the files have weird names. In your editor's options, set the listfile to the one you extracted earlier. The files should now show up with acceptable names.
From war3patch.mpq, extract the following files to an empty folder :
Now, open your finished TFT map (or make it). Make sure none of the units in the Object Editor are based on TFT-only units. For instance, you can create a unit based on Footman and give it TFT-only abilities, such as Locust, which makes it unselectable. However, you cannot base a unit on the Spell Breaker, which is a TFT-only unit.
This restriction does not apply when you have TFT-only units that are not preplaced on the map and are only placed using triggers. If you have any pre-placed units based on TFT-only ones on your map, you will either have to create a new similar unit-type based on a RoC unit or place them using triggers. A good way to know if a unit is based on a TFT-only unit is to find it in the Object Editor and press CTRL+U, which resets the unit to its default, the unit on which it is based. If that unit is a Blood Mage, you know it won't work. Remember to do CTRL+Z to undo the changes if you want to go back to the modified unit.
That is the only real restriction. Do not preplace anything based on TFT-only objects. This also applies for doodads, items and destructables.
You are free to use almost any of the TFT-only content, even trigger actions, gameplay constants, custom abilities... however, there are a few trigger actions that do not work (very few, in fact), such as Unit - Hide.
Oh, by the way, if you are going to use any TFT-only model files, you might want to either replace them with RoC models or import them into your map. To do that, you will need to open war3x.mpq (the file that contains all TFT models and textures) with Warcraft 3 Viewer and find the model you're looking for. Extract it, write down its original path in war3x.mpq and do the same for every texture it uses. To find out which textures are used by a model file, go in Warcraft 3 Viewer's menu : Current File>Show used texture names. If your model also has a portrait version, extract is as well. Now, import the textures and models into the map using the World Editor's Import Manager and change their paths to the ones they had in war3x.mpq. If you do not import the textures and models, the models will not show up on computers that do not have TFT installed. Please note that importing TFT models into your map increases file size a lot.
Now, create your map as you would for any TFT map, remembering these restrictions. Once you are finished and everything is done, convert all triggers to custom text (in the trigger editor, Edit>Convert to Custom Text) and save it with a new file name, such as "myMap_CustomText.w3x".
Once that is done (it can be long if you have many non-Jass triggers), you have to make your map playable in RoC by removing every single TFT feature it has. It is the hardest (the longest, at least) part of the conversion. It is usually done by :
If it was all done correctly, your map should now have the .w3m extension. To verify whether or not it can have the .w3m extension, go in the menu Scenario>Map Description and look at that dialog box. It should tell you if you can't save it as a RoC map and why not. Change that stuff so it can work in RoC and then save your map with a new name, such as "myMap_Empty.w3m".
Now, to make your map's TFT-only features (which do not exist anymore ) work in RoC, we need to import some of TFT's files, those which we extracted from war3patch.mpq. But then, we need to edit them a bit. That is where Excel comes in handy.
Open the file AbilityData.slk with Excel or OpenOffice.org Calc. It should show all sorts of ability rawcodes and stuff in some sort of table. One of the columns, in the first row, reads "version". That column describes whether or not the ability is available in RoC.
So, you'll have to change every single "1" in that column to a "0", since "1" describes TFT and "0" describes RoC. Good luck with that, it can be long. To do so, I simply pressed 0, enter, 0, enter, 0, enter... many, many times (there are about 700 rows if I remember well). Or you can use the attached file which is already modified. Then save the AbilityData.slk file.
Now that all the abilities are available in RoC, we should import that file. In the World Editor, with your empty map, open the Import Manager. Import all of the files we extracted earlier and change their paths to the ones they had in war3patch.mpq.
For instance, "war3mapImported\AbilityData.slk" becomes "Units\AbilityData.slk". In fact, you'll just have to change all those "war3mapImported"s to "Units"s, except for TriggerData.txt, which becomes "UI\TriggerData.txt". Remember the file names are case sensitive.
Now, open your original map (the pure TFT version with custom text triggers) with the MPQ editor and extract the following files :
Those are basically all the files of your map, since they contain your map script, object editor data, trigger data, gameplay constants, interface options... they may not all be present in the map ; extract only those that exist.
Now, in the RoC version, open the Import Manager and import the files you just extracted. As for the war3patch.mpq files, change their paths to the original ones. For instance, "war3mapImported\war3map.j" becomes "war3map.j". Remove the "war3mapImported\" from every file name.
And now ? Your map should work. Yep, it should work in RoC. However, the file's size increased by a lot. You will want to run a map optimizer and/or widgetizer now that it's finished, to decrease loading time and file size.
And now, all your Reign of Chaos friends should be able to play your map. :thup:
I included a demo map. I called it "Footman with Locust". Believe it or not, it's about a footman with the Locust ability, which makes it unselectable and invulnerable. His friend, Mountain King with Banish, likes to Banish the 3 defenseless blue peasants on the map. What is so special is that it can be played in Reign of Chaos. Yes sir, it can.
View attachment FootmanWithLocustFinal.w3m <=== Demo map
View attachment AbilityData.slk.RAR <=== Modified AbilityData.slk
This method allows you to use almost everything TFT's World Editor has to offer and also allows the use of TFT-only spells. This method was used for the conversion of the famous TFT-quality map Hero Line Wars RoC and was sent to my friend Sesamia by its creator, Kueken. I would like to thank him for telling me how he converted his map and allowing me to write this tutorial.
So, if you want to make your map playable in RoC, thou shalt need the following :
- A complete TFT install updated with the most recent patch
- An MPQ editor (such as WinMPQ)
- A TFT map and the author's permission OR a map you made yourself
- Microsoft Excel (or OpenOffice.org Calc, its free and open source equivalent)
- Windows or a Windows Emulator (such as Wine)
It is also recommended that you have the following :
- Patience
- A map optimizer, to reduce file size (such as Vexorian's Wc3mapoptimizer)
- Warcraft 3 Viewer (if you want to use TFT-only models)
- A RoC-only install updated with the most recent patch (for testing)
- Fun
Before we start converting our map, we need to get some required files in TFT's installation folder. Open war3x.mpq (they are both in your installation folder) with the MPQ editor. It contains a (listfile). Extract it in any folder.
Now, open war3patch.mpq, which is also in your installation folder. It has no listfile ; all the files have weird names. In your editor's options, set the listfile to the one you extracted earlier. The files should now show up with acceptable names.
From war3patch.mpq, extract the following files to an empty folder :
- UI\TriggerData.txt
- Units\AbilityData.slk
- Units\CampaignAbilityFunc.txt
- Units\CommonAbilityFunc.txt
- Units\HumanAbilityFunc.txt
- Units\ItemAbilityFunc.txt
- Units\NeutralAbilityFunc.txt
- Units\NightElfAbilityFunc.txt
- Units\UndeadAbilityFunc.txt
Now, open your finished TFT map (or make it). Make sure none of the units in the Object Editor are based on TFT-only units. For instance, you can create a unit based on Footman and give it TFT-only abilities, such as Locust, which makes it unselectable. However, you cannot base a unit on the Spell Breaker, which is a TFT-only unit.
This restriction does not apply when you have TFT-only units that are not preplaced on the map and are only placed using triggers. If you have any pre-placed units based on TFT-only ones on your map, you will either have to create a new similar unit-type based on a RoC unit or place them using triggers. A good way to know if a unit is based on a TFT-only unit is to find it in the Object Editor and press CTRL+U, which resets the unit to its default, the unit on which it is based. If that unit is a Blood Mage, you know it won't work. Remember to do CTRL+Z to undo the changes if you want to go back to the modified unit.
That is the only real restriction. Do not preplace anything based on TFT-only objects. This also applies for doodads, items and destructables.
You are free to use almost any of the TFT-only content, even trigger actions, gameplay constants, custom abilities... however, there are a few trigger actions that do not work (very few, in fact), such as Unit - Hide.
Oh, by the way, if you are going to use any TFT-only model files, you might want to either replace them with RoC models or import them into your map. To do that, you will need to open war3x.mpq (the file that contains all TFT models and textures) with Warcraft 3 Viewer and find the model you're looking for. Extract it, write down its original path in war3x.mpq and do the same for every texture it uses. To find out which textures are used by a model file, go in Warcraft 3 Viewer's menu : Current File>Show used texture names. If your model also has a portrait version, extract is as well. Now, import the textures and models into the map using the World Editor's Import Manager and change their paths to the ones they had in war3x.mpq. If you do not import the textures and models, the models will not show up on computers that do not have TFT installed. Please note that importing TFT models into your map increases file size a lot.
Now, create your map as you would for any TFT map, remembering these restrictions. Once you are finished and everything is done, convert all triggers to custom text (in the trigger editor, Edit>Convert to Custom Text) and save it with a new file name, such as "myMap_CustomText.w3x".
Once that is done (it can be long if you have many non-Jass triggers), you have to make your map playable in RoC by removing every single TFT feature it has. It is the hardest (the longest, at least) part of the conversion. It is usually done by :
- Removing all triggers
- Removing all custom abilities and resetting the base abilities to default by using the CTRL+SHIFT+U hotkey
- Resetting all custom doodads to default by using the CTRL+U and CTRL+SHIFT+U again for base ones
- Removing all custom buffs and resetting all base buffs to default
- Removing all custom upgrades and resetting the base upgrades to default
- Removing all custom destructables and resetting the base destructables to default
- Removing all items that are not pre-placed and resetting others, as well as resetting the base items to default (if unsure whether they are pre-placed or not, reset them to default)
- Removing all units that are not pre-placed and resetting others, as well as resetting the base items to default (if unsure whether they are pre-placed or not, reset them to default)
- Resetting gameplay constants to default
If it was all done correctly, your map should now have the .w3m extension. To verify whether or not it can have the .w3m extension, go in the menu Scenario>Map Description and look at that dialog box. It should tell you if you can't save it as a RoC map and why not. Change that stuff so it can work in RoC and then save your map with a new name, such as "myMap_Empty.w3m".
Now, to make your map's TFT-only features (which do not exist anymore ) work in RoC, we need to import some of TFT's files, those which we extracted from war3patch.mpq. But then, we need to edit them a bit. That is where Excel comes in handy.
Open the file AbilityData.slk with Excel or OpenOffice.org Calc. It should show all sorts of ability rawcodes and stuff in some sort of table. One of the columns, in the first row, reads "version". That column describes whether or not the ability is available in RoC.
So, you'll have to change every single "1" in that column to a "0", since "1" describes TFT and "0" describes RoC. Good luck with that, it can be long. To do so, I simply pressed 0, enter, 0, enter, 0, enter... many, many times (there are about 700 rows if I remember well). Or you can use the attached file which is already modified. Then save the AbilityData.slk file.
Now that all the abilities are available in RoC, we should import that file. In the World Editor, with your empty map, open the Import Manager. Import all of the files we extracted earlier and change their paths to the ones they had in war3patch.mpq.
For instance, "war3mapImported\AbilityData.slk" becomes "Units\AbilityData.slk". In fact, you'll just have to change all those "war3mapImported"s to "Units"s, except for TriggerData.txt, which becomes "UI\TriggerData.txt". Remember the file names are case sensitive.
Now, open your original map (the pure TFT version with custom text triggers) with the MPQ editor and extract the following files :
- war3map.j
- war3map.w3a
- war3map.w3e
- war3map.w3h
- war3map.w3q
- war3map.w3t
- war3map.w3u
- war3map.wct
- war3map.wtg
- war3map.wts
- war3mapExtra.txt
- war3mapMisc.txt
- war3mapSkin.txt
Those are basically all the files of your map, since they contain your map script, object editor data, trigger data, gameplay constants, interface options... they may not all be present in the map ; extract only those that exist.
Now, in the RoC version, open the Import Manager and import the files you just extracted. As for the war3patch.mpq files, change their paths to the original ones. For instance, "war3mapImported\war3map.j" becomes "war3map.j". Remove the "war3mapImported\" from every file name.
And now ? Your map should work. Yep, it should work in RoC. However, the file's size increased by a lot. You will want to run a map optimizer and/or widgetizer now that it's finished, to decrease loading time and file size.
And now, all your Reign of Chaos friends should be able to play your map. :thup:
I included a demo map. I called it "Footman with Locust". Believe it or not, it's about a footman with the Locust ability, which makes it unselectable and invulnerable. His friend, Mountain King with Banish, likes to Banish the 3 defenseless blue peasants on the map. What is so special is that it can be played in Reign of Chaos. Yes sir, it can.
View attachment FootmanWithLocustFinal.w3m <=== Demo map
View attachment AbilityData.slk.RAR <=== Modified AbilityData.slk