• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

Map Adapter

Hi all, yes I'm still alive.

I just uploaded v1.3.0 of this tool, here's the changelog:
  • Updated runtime to .NET 6.0
  • Added 'diff' option to file context menu to view changes (currently limited to 25000 characters for performance)
  • Added a new form for initial setup to configure the appsettings file
  • Added 'get help' button where you can create a .zip file so I can hopefully reproduce your issues
  • Support for adapting war3mapSkin files by merging them with the regular war3map files

Now to reply to the posts some of which are a year old...

Ran this on Custom Hero Survival 4.0d (2019) to port to 1.26a, and got a C# AdapterError "Sequence contains no elements" @ war3map.w3u.
Hi.
Your tool is a lifesaver, really appreciate your work. Wish you all the best.
Could somebody help me with some issues regarding downgrade? I'm trying to convert a map from 1.35 to 1.26a.
First, adapter gives an error on .w3u components saying "Sequence contains no elements", but the map has a lot of custom units.
Second, it can't adapt some trigger functions (see attachment). But I can't understand why - all this functions didn't exist in 1.26a, really? Or I just messed something?
View attachment 454636
op's last post was like a year ago but i'm still gonna post this anyway

trying to convert a map from the current reforged version to 1.27a, but i get an AdapterError on the files war3map.w3u and war3mapSkin.w3u, both of them saying "Sequence contains no elements"

i assume this post is one of the reasons for the error but it doesn't really explain much

also this probably doesn't matter but this is the map in question. not sure what to do now, really wanted to downgrade this map to 1.27a since it has too many issues in reforged
I think the 'sequence contains no elements' error is caused by the game files. I only tested this on v1.31.1 but you all seem to be trying to adapt to v1.26/1.27.
To investigate this I added the 'get help' button which includes the game files required by this tool in the .zip file.

Has this issue been resolved?
Yes it has finally been fixed in v1.3.0

What do I do if this shows up???
Required file not found: C:\path\to\war3.w3mod\units\abilitydata.slk
Directory not found: C:\path\to\war3.w3mod\units
Directory not found: C:\path\to\war3.w3mod
Directory not found: C:\path\to
Directory not found: C:\path
This is because you did not update the path in appsettings.json file. I have added an initial setup form so you no longer need to manually make the appsettings file, hopefully this makes the tool easier to use.
 
Oh My God! Your map adapter works!! It's amazing! I've been trying to rebuild my Bows and Arrows campaign map by map from version 1.36 to 1.27 and the terraining is very discouraging to remake on each map. The adapter doesn't retain the triggers and unit data but at least all of the terrain can be adapted now. That just saved me a bunch of precious time on each map. Thanks a ton!
 
welcome bacc
the sequence error thingy seems to have been fixed on war3mapSkin.w3u but i'm still getting the error on war3map.w3u
anyways just gonna dump this here
Thanks for providing the .zip file so I could reproduce the issue, seems it was indeed caused by the game files, specifically unitweapons.slk, which uses a different column name in 1.26/1.27. I have fixed this issue in v1.3.1
 
still doesnt work unfortunately
i don't get any errors anymore when converting the map, but trying to actually play the map on wc3 doesn't work. the map at least shows up on the custom games list, but trying to start it just kicks me back to the pregame lobby thing. also playing on wc3 1.27a if it matters
 
still doesnt work unfortunately
i don't get any errors anymore when converting the map, but trying to actually play the map on wc3 doesn't work. the map at least shows up on the custom games list, but trying to start it just kicks me back to the pregame lobby thing. also playing on wc3 1.27a if it matters
Did you edit the war3map.j file? Its status shows adapted but it seems there's still some incompatible variables being used that probably causes the map not being able to load: 'CAMERA_FIELD_NEARZ', 'CAMERA_FIELD_LOCAL_PITCH', 'CAMERA_FIELD_LOCAL_YAW', 'CAMERA_FIELD_LOCAL_ROLL', and 'PLAYER_COLOR_MAROON'.
 
oh yeah there was some random trigger in the map that recolored some unit to maroon. forgot to remove that, my bad

i didn't edit the .j file to my knowledge (prior to this post that is)

as for the camera stuff, there's some additional lines that appear in the .j file that don't appear in a previous version of my map that's 1.27a compatible. it's in the "CreateCameras" function:
call CameraSetupSetField( gg_cam_Camera_001, CAMERA_FIELD_NEARZ, 100.0, 0.0 )
call CameraSetupSetField( gg_cam_Camera_001, CAMERA_FIELD_LOCAL_PITCH, 0.0, 0.0 )
call CameraSetupSetField( gg_cam_Camera_001, CAMERA_FIELD_LOCAL_YAW, 0.0, 0.0 )
call CameraSetupSetField( gg_cam_Camera_001, CAMERA_FIELD_LOCAL_ROLL, 0.0, 0.0 )
i just kinda removed these from each camera, not sure if that's a good idea but it made the map work
i'm not really knowledgeable on this topic but those particular lines seem to have been introduced at some point in some reforged patch idk lol

anyways TY very much for the help, finally i can play on a non dogwater version of wc3.........................................................
 
i just kinda removed these from each camera, not sure if that's a good idea but it made the map work
That's what I had to do for some maps too btw. Not sure if its a good idea either but it gets maps working :)
___

Great tool Drake, thanks for the work put into this!
 
Lots of thanks for the updates, @Drake53 . An small issue I have faced is that many Reforged maps are distributed with EditorVersion 6113. However, MapAdapter refuses to process them.

Hex-editing their version to 6114 allows MapAdapter to successfully convert them, but I feel like this issue is worth reporting anyway.

I think the 'sequence contains no elements' error is caused by the game files. I only tested this on v1.31.1 but you all seem to be trying to adapt to v1.26/1.27.
To investigate this I added the 'get help' button which includes the game files required by this tool in the .zip file.

I don't remember how I originally set up the v1.1.6 distribution I installed, but v1.3.1 reported that my folder was missing 3 files:
  • Units/AbilityBuffMetaData.slk
  • Units/AbilityBuffData.slk
  • Doodads/DoodadMetaData.slk

So I added them, and MapAdapter no longer crashes(*) when converting Custom Hero Survival v4.0d to 1.26a. (To recap: it used to throw "AdapterError", but it now says "Adapted"). Nevertheless, the converted map cannot be opened by 1.26a, which is expected, since the JASS needs some massaging.

(*) Upon further investigation, it turns out that the v1.1.6 Map Adapter ALSO doesn't crash anymore when dealing with this map, even without those 3 files. It's highly likely that, for unrelated reasons, I had already added the ACTUAL needed files at some date between my original report and today's test.

BTW, your tool has been a crucial element in the development of my backports project, so thanks again!
 

Attachments

  • (4)goldshire.w3x
    (4)goldshire.w3x
    190 KB · Views: 78
  • (4)goldshire-original.w3x
    (4)goldshire-original.w3x
    190.1 KB · Views: 82
  • adapter-6113.png
    adapter-6113.png
    12.6 KB · Views: 95
  • CustomHeroSurvival4.0d-to-1.26.zip
    CustomHeroSurvival4.0d-to-1.26.zip
    1.3 MB · Views: 82
Last edited:
Lots of thanks for the updates, @Drake53 . An small issue I have faced is that many Reforged maps are distributed with EditorVersion 6113. However, MapAdapter refuses to process them.

Hex-editing their version to 6114 allows MapAdapter to successfully convert them, but I feel like this issue is worth reporting anyway.
I did some tests some time ago and only found 6112 and 6114, so I assumed 6113 was skipped (or only used on internal/test builds): War3Net/src/War3Net.Build.Core/Resources/GameBuilds.json at master · Drake53/War3Net
I checked the map you attached and its build number is 16269, which isn't listed here so probably an internal build version: Warcraft client builds
 
Last edited:
Could someone port these terrain templates to work on legacy like Patch 1.28?
 
Last edited:
I also have a request:
Can someone port these terrains template to work on patch 1.29.2 (or below)?
Durotar (the classic graphics one)

(I will post a few more maps later)
 
Hello! So when i opened my MPQ editor, apparently i can't find the abilitybuffdata.slx and abilitybuffmetadata.slx file at all? I used WC3 ver 1.27.1 for the directory, and i have scoured through all of the possible directory for no results still! I required it to make work on my map adapters, so if i anyone knows where to find them please do tell, thank you!
 
Hello @Drake53
I'm trying to use your map adapter v1.3.1 to play a map made by ISL called the Shadow Covenant and adapt all but got an error that says "The given key 'BlzStartUnitAbilityCooldown' was not present in the dictionary." This map recommaned 1.32 to play but i want to play it on 1.31.1 if that could happen any tip?



I believe it is something got to do with this: Cooldown Reduction [vJASS][LUA]
 
Hello! So when i opened my MPQ editor, apparently i can't find the abilitybuffdata.slx and abilitybuffmetadata.slx file at all? I used WC3 ver 1.27.1 for the directory, and i have scoured through all of the possible directory for no results still! I required it to make work on my map adapters, so if i anyone knows where to find them please do tell, thank you!
n00b shared these files earlier in this post: Map Adapter

Hello @Drake53
I'm trying to use your map adapter v1.3.1 to play a map made by ISL called the Shadow Covenant and adapt all but got an error that says "The given key 'BlzStartUnitAbilityCooldown' was not present in the dictionary." This map recommaned 1.32 to play but i want to play it on 1.31.1 if that could happen any tip?
The error is because that native was added in 1.32, so you can't play the map in 1.31 unless you have a replacement, or you can delete the function, however that will cause the map to not work as intended.
You can look up natives and in which patch they were introduced here: jassdoc/common.j at master · lep/jassdoc
 
kinda didnt wanna impose last time but i am back again to ask some shit

so i can successfully convert maps now, but when i try opening them in the world editor in their respective wc3 versions, i get the error "trigger data is missing or invalid"? just wondering if this is something you could potentially fix, or if it's just a issue on my end and i'm just dumb. anyways i can't even open wc3 on the latest shitpatch which is why i'm asking looool
 
kinda didnt wanna impose last time but i am back again to ask some shit

so i can successfully convert maps now, but when i try opening them in the world editor in their respective wc3 versions, i get the error "trigger data is missing or invalid"? just wondering if this is something you could potentially fix, or if it's just a issue on my end and i'm just dumb. anyways i can't even open wc3 on the latest shitpatch which is why i'm asking looool
Thanks for reporting. This was an issue with the adapter not making the required changes to the war3map.wtg and war3map.wct files. I only ever tested this tool for patch v1.31 so never ran into this myself.
I have updated the tool to v1.3.2, you can find the download in the OP.
 
same problem here I have no idea how it works I have the setup window which tells me that I am missing files a guide would be really cool thank you
Probably you have a broken installation of the game.
Make sure you followed the instructions correctly, specifically the presence of "appsetings.json" file in your game root.
 
Probably you have a broken installation of the game.
Make sure you followed the instructions correctly, specifically the presence of "appsetings.json" file in your game root.
i mean yeah of course i dont know anything about warcraft 3 file and i'm not english native i just did a lot of thing to try and its didnt work the post really need a tuto or at least some picture
 

Attachments

  • Capture.PNG
    Capture.PNG
    27.6 KB · Views: 136
New update, mostly focused on UI improvements:

v1.4.0 changelog:
  • Diagnostics now display a severity level (INF/WRN/ERR) and are grouped if they have the same message+severity;
  • Filename text color will now turn violet if the file has been modified;
  • File status list shortened by merging some of them together (adapted status is now compatible status + violet text);
  • File list sort can now be cleared (clicking a header now loops ASC > DESC > None > ASC instead of ASC > DESC > ASC);
  • Added icons for file status and context menu items;
  • Added context menu items to save files and undo changes;
  • Improvements to save file dialog.

Note that I haven't fully implemented the new diagnostics yet, there are still some missing, so you may get an empty diagnostics list for certain file types.

i mean yeah of course i dont know anything about warcraft 3 file and i'm not english native i just did a lot of thing to try and its didnt work the post really need a tuto or at least some picture
It seems you have set the directory to "my documents", but it needs to point to the directory which contains the game files.
You have to download either an MPQ viewer, or a CASC viewer for patch 1.30 and later, and extract the game files from your warcraft 3 installation.
This is described at the bottom of the OP.
 
This is a really useful tool I would like to use.
From the first post "Unfortunately, these cannot be automated at the moment, so you need to make the changes manually. To help you with that, here's a list of some common adjustments you may need to make:"
This could be automated if the map does not use a custom scripts/common.j file by simply adding a scripts/common.j file with the listed functions.
 
It would be much better if this tool supported CASC and MPQ by itself and people would not have to extract files of the game manually.
Besides the target patch version might also be detected from the directory/.exe file itself rather than having to choose it manually.
True, but the issue with CASC is the C# library for it is open source but without a license, which legally means all rights reserved, so I cannot use it. There's an open issue for this but the author hasn't responded to it last I checked. I could still do this for MPQ, but I only have a 1.31 install so anything involving other patches (including pre-1.30 where everything was still MPQ) is impossible for me to test.

how to fix this?
The application has a file called 'appsettings.json' in which you specify the path where the application should look for the game files. This is so the application can support multiple target patches. From your screenshots it seems like you have placed the game files in the application folder itself. Try to open the appsettings.json file and put the game files in the directory that is in this file. Alternatively you can delete the appsettings.json file and restart the application, if it does not find an appsettings.json file it will show you a setup window on startup where you can configure the target patch and game files directory and it will create the appsettings.json file for you automatically.

Dear Author, I have many maps of this type here and they cannot be converted by the object editor. Could you please help me figure out the reason?
Just the .w3x file does not give me enough information to help you unfortunately. You should use the help button in the application, which also includes the neccesary game files and information which helps me find the cause.
 
Last edited:
Updated to v1.5.1: Release War3App.MapAdapter v1.5.1 · Drake53/War3App

Please note I didn't actually test it this time around because I'm developing on WSL these days. Let me know if there are any issues.
Unfortunately, the newest release is missing an .exe file. Instead, there is a Posix-style extensionless file which fails to run under MINGW64, and which also fails to run if renamed to an .exe.

Also, I saw in the changelog that you are now adding "Support downgrading .w3i versions that were not used in retail builds." As far as I understand, that would cover the EditorVersion=6113 maps which I reported before; however, I fail to see any special handling for it. Are this and other potential versions in this status now automatically handled/interpolated?

PS. I had a hunch and just copied over the main binary from v1.3.1. Running the Gold Shire test case yields:

1757289616055.png
 
Last edited:
Unfortunately, the newest release is missing an .exe file. Instead, there is a Posix-style extensionless file which fails to run under MINGW64, and which also fails to run if renamed to an .exe.

Also, I saw in the changelog that you are now adding "Support downgrading .w3i versions that were not used in retail builds." As far as I understand, that would cover the EditorVersion=6113 maps which I reported before; however, I fail to see any special handling for it. Are this and other potential versions in this status now automatically handled/interpolated?

PS. I had a hunch and just copied over the main binary from v1.3.1. Running the Gold Shire test case yields:

View attachment 548763
Thanks for reporting this, turns out I was missing a commandline argument when publishing because I'm building on linux now. I'll make sure the next release has an .exe file.
The "Support downgrading .w3i versions that were not used in retail builds." refers to the file format version of .w3i files, not the editor version. For example the recent update from v31 to v33 also had a v32 in between which was only on the v2.0.3 PTR. I'll be honest I forgot to fix the v6113 thing, this thread isn't very useful for keeping track of reported issues. If you have a github account you could also open an issue in the repository.

In the meantime I'm also working on porting the application to Eto.Forms, which is similar to windows forms but cross-platform, allowing me to test it while I'm developing on linux.
 
Updated to v1.5.1: Release War3App.MapAdapter v1.5.1 · Drake53/War3App

Please note I didn't actually test it this time around because I'm developing on WSL these days. Let me know if there are any issues.
I found an issue : all custom units/items' models, icons, and tooltips are reset to default when downgrading to patch 1.31.1. I don't know if this is related to this specific patch or do I have to manually fix those units and items?
 
I found an issue : all custom units/items' models, icons, and tooltips are reset to default when downgrading to patch 1.31.1. I don't know if this is related to this specific patch or do I have to manually fix those units and items?
Possibly due to the incompatible "war3mapSkin.txt". Drake had even explained this issue in one of his post in this thread if I'm not mistaken.
 
I found an issue : all custom units/items' models, icons, and tooltips are reset to default when downgrading to patch 1.31.1. I don't know if this is related to this specific patch or do I have to manually fix those units and items?
Weird, that should've been fixed already since v1.3.0. Could you provide an example map (not adapted) so I can investigate?
 
Weird, that should've been fixed already since v1.3.0. Could you provide an example map (not adapted) so I can investigate?
Sure. The map I attached is extracted from a campaign so you can see that some objects are missing.
By the way, this issue also apply to campaign data. I tried to adapt the whole campaign but it gave me a bunch of errors.
I extracted all the files required to run this tool and put them inside its folder.
Sans titre.png
 
Last edited:
Sure. The map I attached is extracted from a campaign so you can see that some objects are missing.
By the way, this issue also apply to campaign data. I tried to adapt the whole campaign but it gave me a bunch of errors.
I extracted all the files required to run this tool and put them inside its folder.
View attachment 549310
Could you attach the whole campaign as well? Campaigns can contain object data which applies to all the maps, so maybe the issue you have is related to that.
 
I've sent you a PM with the link to the campaign.
Alright so first thing I noticed while investigating this is the tool cannot adapt maps inside a campaign anymore because I relied on a bug that got fixed (if I had been paying attention I would've already known this from the screenshot you posted). I'll make sure it works again in the next release.
I assume the issue you reported is due to playing the map stand-alone instead of as part of a campaign, so the shared campaign object data is missing. There should be tools that can merge the object data from the campaign into the map, allowing you to play the map outside of the campaign. I might also implement this in map adapter for convenience.

I'm still working on the port to Eto.Forms, should be about 90% done now. I refactored a lot of code so maybe I broke some things, but then again I also found and fixed a few bugs along the way.
 
Hi, thanks for keeping this tool up to date. The errors when adapting a campaign are gone, but now I stumble upon a new issue: When I try to play any map in the campaign I get this error
Screenshot.png
I can't open the map in the editor either although the tool says all the files in it are compatible. Strangely, when I adapt the maps outside the campaign they work fine but when I adapt them inside the campaign they don't work.
Also, it appears the issue with custom units/items' names, tooltips and models hasn't been fixed. It's like all the string fields related to them get reset. However, they do retain their abilities and stats.
 
sorry i know this isnt really the place to ask, but isnt there also a script that tries to fix maps that were broken by the return bug?
 
Hi, thanks for keeping this tool up to date. The errors when adapting a campaign are gone, but now I stumble upon a new issue: When I try to play any map in the campaign I get this error
View attachment 550535
I can't open the map in the editor either although the tool says all the files in it are compatible. Strangely, when I adapt the maps outside the campaign they work fine but when I adapt them inside the campaign they don't work.
Also, it appears the issue with custom units/items' names, tooltips and models hasn't been fixed. It's like all the string fields related to them get reset. However, they do retain their abilities and stats.
I think I found the issue, the maps inside the campaign were being compressed, but I think the game (and world editor) expect the maps to be uncompressed, so when it's compressed it can't open it.
This has been fixed in v1.6.1: Release War3App.MapAdapter v1.6.1 · Drake53/War3App

hello, im trying to adapt melee map from w3champions to 1.26a and getting this error, also the adapted map cannot open in the world editor due to trigger error.View attachment 551226
This seems to be an issue with the game files you're providing to the tool, I have no issue adapting the map using 1.27 game files.
 

Attachments

Hey, so I adapted a campaign from latest version to 1.31.1 and it worked well but for some reason the unit object data didn't carry over and all custom units in the object editor were the original units they were copied from, is that supposed to be how it works or did I do something wrong?
 
Back
Top