• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Maps larger than 4mb

Status
Not open for further replies.
Level 3
Joined
Sep 25, 2008
Messages
39
From what I've understand about this, you can host and join a map under the single player option which has no restricted file size limit.
 
Level 5
Joined
Jul 4, 2007
Messages
84
There is one possible workaround:
Import everything into War3Patch.mpq instead of your map. This way war3 will automatically load them without you hitting the size limit!
Of course if you do this then everyone who wants to play your map would also have to import everything into their war3patch.mpq or else they'll get green boxes and/or invisible models. Enforcing this over Battle.net is so much hassle it isn't even worth trying.
So unless you would only play the map on lan where you can quickly patch every mpq with the required files, don't bother.

Releasing such 'hacky' map would be best solved through an installer exe, which automatically imports new files to war3patch.mpq using an mpq-lib.dll and places the map itself in the Maps\Download folder.
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
Doesn't sound like a safe solution.

I do think RTC won't really have any filesize limits, correct? But then probably it won't support peer to peer downloads either?

Maybe you should add some sort of RTC.mpq archive that contains a whole lot of custom models available for maps using RTC...
 
Level 7
Joined
Nov 12, 2005
Messages
299
> Maybe you should add some sort of RTC.mpq archive that contains a whole lot of custom models available for maps using RTC...
One of the planned features is a package system. For example, your map requires 10 goblin models that are available as a modelpack. The modelpack would be an MPQ (or perhaps 7z) that people can freely download and, if somebody who doesn't have the modelpack tries to play your map, he would get an error message that the modelpack is missing, possibly with a download link.
 
Level 11
Joined
Jul 28, 2007
Messages
920
What do you mean "RTC.mpq" , Reinventing the Craft?
Hm, that sounds as an idea, so this means that, if i understood correctly; you make map pull data from custom .mpq, or you mean Reinventing the Craft.mpq with Reinventing the Craft installed ?
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
What I mean:

Right now you need to keep mapsize below 4Mb to play. While, with RTC you'll technically be able to have much larger maps, it'll still be "faster" to simply have a required mpq file that comes standard with the RTC download, containing the most popular custom models...
It's usually the same models that are used in every map anyway.
 
Level 1
Joined
Nov 7, 2007
Messages
4
This topic interests me a great deal. ATM with the standard game how would you compile the .mpq file? just with and mpq compiler i'm guessing? cause i love having models in my map and my maps always hit like quiet a bit over the max for lan/bnet. This info will be greatly appreciated!!
 
Level 5
Joined
Jul 4, 2007
Messages
84
How would you compile the .mpq file? just with and mpq compiler i'm guessing?
Right now you need to import the models into War3Patch.mpq with any MPQ editor. And every user who wants to see those models would then have to do the same with their own War3Patch.mpq file. This is not good enough, because most people don't know how to work with MPQs. Your best shot is creating an installer for your map, which of course requires programming. (Or at least some scripting knowledge if you use NSIS or something like NSIS.)

Your installer has to extract the map file into Warcraft III\Maps\ and also patch Warcraft III\War3Patch.mpq with the models that didn't fit into the map. This can be done (take one of the MPQ editors out there and turn it into an automated installer), but takes time.

Sooner or later someone will create a "Map Installer Creator" program for this.

To answer your question more precisely: You "compile" mpq files with mpq editors. For example WinMPQ is an mpq editor. (But lets just call the process importing, because compiling means turning source code into an executable program.)
 
Level 11
Joined
Jul 28, 2007
Messages
920
So if someone patchs his .mpq, doesnt that means that his wc3 wont be compatible with other player's wc3 who didnt change their .mpq ? If this is possible and wc3 will be sharable, meaning if i patch my wc3 only for specific map and i would be able to play with players who did not do that. Answer me.
 
Level 1
Joined
Nov 7, 2007
Messages
4
I started using PowerMPQ and thought that's what needed to happen. i do know some VB and C++. For the most part my map ATM is just for friends and lands because of the size it will be and that i don't play online. so patching people's MPQ's would be easy for myself. but to "bboy-tiger-"

You should still be able to play other maps. all it would be doing is adding More models, icons, music, and anything else you throw in there to your wc3. unless you have things with the same name, i wouldn't think you would have a problem. And i would make a back up of your war3patch.mpq just in case.

New question. If i import models, icons, and music into the war3patch.mpq. Will everything show up in the editor?
 
Level 11
Joined
Jul 28, 2007
Messages
920
So... from now all we would need to do is make map installer and deinstaller(is that possible?) to add and remove things that your map requires into wc3patch.mpq right ? And that would be... models and icons only ?

And why dont ppl do that then (Those who have experience) ?

And y answer if we would see those files in world editor ?
 
Level 5
Joined
Jul 4, 2007
Messages
84
Standard

There's no reason to edit any files, we have the ability to inject mpq's which overrides everything just like patch.mpq does.
Yes, you have the ability. But what about others who don't have wehack? People should not be required to run an exe every time they want to play warcraft. A one time installer is more elegant.

New question. If i import models, icons, and music into the war3patch.mpq. Will everything show up in the editor?
I haven't tested it, but I seriously doubt imported things will show up. However you can just SHIFT+click on the model field and change it directly (or import the model into your map, set the unit's model to the imported file then remove the import). Same thing for icons.

Note 1: And I just realized that importing into war3Patch.mpq is unnecessary. Observe:
JASS:
call PlayMusic("folder_in_the_war3_directory\\5MB_file.mp3") //this works.
//The file isn't imported into the map, it just sits in my War3 directory.
Because if you set the "Allow Local Files" option to true, every file and folder inside the War3 directory becomes accessible ingame. We can leave the war3Patch.mpq file alone, and just create a folder "OurMapsName" and put the imported files there.

Note 2: To make this work: In regedit, go to HKCU/Software/Blizzard Entertainment/Warcraft III/ create a new DWORD key named "Allow Local Files" and set it to 1.

Note 3: Here's a real example:
JASS:
function snd takes nothing returns nothing
    local sound soundHandle=CreateSound("OurMapsName\\big_music_file.mp3",false,false,false,10,10,"DefaultEAXON")
    call StartSound(soundHandle)
endfunction
function InitTrig_snd takes nothing returns nothing
    set gg_trg_snd=CreateTrigger()
    call TriggerRegisterPlayerEvent(gg_trg_snd,Player(0),EVENT_PLAYER_END_CINEMATIC) //Pressing ESC is my favorite debugger event :)
    call TriggerAddAction(gg_trg_snd,function snd)
endfunction
Conclusion: The installer for our superbig map needs to modify the registry and copy(unpack from itself) the icons & models & the map into the appropriate directories. (Put the imports into Warcraft III\some_subfolder_to_avoid_clutter and the map into \Maps\)

Note 4: We need a standard! (To avoid confusion amongst newbie players) (And also to prevent the creation of too many directories in War3's root folder.)
I propose:
  1. Every map MUST have it's own folder at: Warcraft III\Imports\<AuthorName>\<MapName>\
    eg.: Warcraft III\Imports\3ICE\MazeDesigner\
  2. Every map MUST be distributed in the form of a compressed archive. (zip, 7z, rar, tar, gz, etc)
    eg.: Maze Designer v11.zip
  3. Folder structure must be included in the archive for easy unpacking.
    eg.:
    • Maps\3ICE's Maze Designer v11.w3m
    • Imports\3ICE\MazeDesigner11\GameMusic.mp3
    • Imports\3ICE\MazeDesigner11\HeroModel.mdx
    • Imports\3ICE\MazeDesigner11\Textures\HeroModel.blp
    • Imports\3ICE\MazeDesigner11\ReplaceableTextures\CommandButtons\BTNHeroIcon.blp
    • Imports\3ICE\MazeDesigner11\ReplaceableTextures\CommandButtonsDisabled\DISBTNHeroIcon.blp
    • Imports\3ICE\MazeDesigner11\etc...
Yes, the installer idea was replaced by a simple zip archive. Users will install the maps manually. (And we should provide the .reg file to change their registry.) We also need a readme.txt with instructions on how and where to unzip the files.

Note 5: One question remains: How will the map look when someone hosts it on BNET and those who join won't have the necessary imports folder for it? :) We need a way to prevent this.
 
Last edited:
Level 11
Joined
Jul 28, 2007
Messages
920
Hm, i knew that thing about enabling local files so you can use stuffs from folder, and not from mpq, this is used to change you interface in wc3 game, like you can change interface, tilesets in dota, also this "system" is use in diablo2 also. But i never tried to add new stuffs, this is used to overwrite things in wc3 without other players knowing that. (Just for yourself).

But i think its better idea to put all things in mpq, its harder to hack them then. And i think it will work better all together. Ppl could change models and such things from folders, harder from mpq... But that isnt that important.

About players who doesnt have needed data, i think that they can still join maps, but instead models they will see green boxes. I think, or they will get error.

My biggest concern is compatibility. I'll try to test in few days what happens when to player who doesnt have data for map when joins the game. And how thins are compatible.

Anyway update us also :). This will unlock 4mb size limit, but it will bring quite of chaos in wc3 folders... if things arent done right.

And y files wont be shown in editor i think, but you can use path...

Hm... seems like it wont work if i put files into "Imports" or "Data" folders, but when i put them into wc3 dir or Maps directory works fine. Hows with you ?

Hm, it can take files from Warcraft 3 folder only, not from folder inside wc3 folder.
Did you test this:" call PlayMusic("folder_in_the_war3_directory\\5MB_file.mp3") "
 
Last edited:
Level 5
Joined
Jul 4, 2007
Messages
84
But i think its better idea to put all things in mpq, its harder to hack them then. And i think it will work better all together. Ppl could change models and such things from folders, harder from mpq... But that isnt that important.
You want to go the mpq way? But putting your files into their mpq is not simple either. People won't trust exe files and hacking warcraft's mpq files will definitely raise alarms. I prefer zip. People trust zip.

About players who doesnt have needed data, i think that they can still join maps, but instead models they will see green boxes. I think, or they will get error.
In Reign of Chaos in place of missing models there is simply nothing. I tested with Castle: The Ground Art was shown, but the model was simply invisible. The building is also unselectable without a model. (Triggers can still select it though.)

Anyway update us also :). This will unlock 4mb size limit, but it will bring quite of chaos in wc3 folders... if things arent done right.
That's why I suggested putting everything in Imports\YourName\YourMapsName\ :) This will keep everything beautifully organized.

Hm... seems like it wont work if i put files into "Imports" or "Data" folders, but when i put them into wc3 dir or Maps directory works fine. Hows with you?
Both folders and deeply nested subfolders work for me. Probably the error is on your end. JASS strings require escaped backslashes: string s = "path\\to\\folder\\file.ext". Object Editor strings are normal: "path\to\folder\file.ext".

Did you test this:" call PlayMusic("folder_in_the_war3_directory\\5MB_file.mp3") "
No, that code probably doesn't work. But look at the other one titled "Note 3: Here's a real example:". (Playing a 5MB wav sound file from a subfolder.) I tested it extensively and it works fine on all my computers.


I hope that many people will use the methods I described in this thread. If anyone has suggestions to my proposed standard, please post. (The standard is here)
 
Last edited:
Status
Not open for further replies.
Top