• 🏆 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!

MM Engine - Version 2.0.4 (Dev Build)

About MM Engine


MM Engine is a major modification that complements the original WC3 with such features as loading custom mpqs at the War3Patch.mpq level; adding custom races, including interface and voice acting; creating your own campaigns at the level of the original and much more!

Current version: 2.0.4 (Dev Build)

Sources: GitHub

* 2.0.4 (Dev Build) - Disabled MIX and other exploits that could somehow harm the mod process. Added the ability to connect dll libraries to mods. Fixed bugs with game crashes, improved stability. Added custom map icons. Most likely, I was doing something else, but I already managed to forget...

P.s many innovations of previous versions have been eliminated due to their uselessness.

* 2.0.0 (Build 1) - Fixed various bugs. Configs, mod manifests are now a JSON file. All MM Engine settings are stored in the corresponding json, in the Warcraft III folder. Addons are now tied to mod. Added support for custom icons to maps, as it was with Nirvana, examples can be found in the archive with the mod. API changed.

* 1.1.1 (Release) - Fixed the function of getting a number from the config, now it works with negative numbers. Improved API, also included in the MM Engine archive. Fix crash custom, now you can play with mods even on them.

* 1.1.0 (Release) - Added support for addons. APIs for working with addons have been created. Removed support for widescreen monitors, removed the ability to change the color of health, removed the ability to zoom in and out of the camera. All of this will be implemented as addons. Fix launch of custom maps with mod. The races are limited to 99. Created its own launcher. Added the ability to display your logo (500x400 px) by typing "Logo Your logo.bmp", and the text above it "LogoText Your Text \ nNew Line".

* 1.0.1 (Release) - Fixed bug at startup.

* 1.0.0 (Release) - added a second mod creation system. Added a fix for widescreen monitors, a health bar, the ability to change the color of the health bar, zoom in on the camera by pressing LMB and LCTRL. To reload the config during the game, hold down LCTRL + R. Added a new system of races, based on the original, without using a handicap.

cfg.png


* 1.0.0 (Alpha 5) - Fixed crash when starting the map for one. Added the ability to build custom town halls using the chief's box. Fixed a bug with the loading screen when choosing any race. Added the ability to add campaigns (it has already been, but not completed yet). Added WideScreenFix (thanks to RenderEdge for the source) for the gameplay. Fixed a crash when launching campaigns. Fixed the difficulty of HARD in campaigns, now it is displayed. Improved the function of loading mpq, now they are superimposed like layers in Photoshop)

* 1.0.0 (Alpha 4) - Fix crash when starting titles. The camera is fixed, now when you try to use it outside the game (in the main menu), the game does not crash. Improved race system. The syntax of mpq installation and version has been changed, now you can use a dash, and also, when writing the name of the loaded mpq, you can use spaces. Updated the sample of the mod with the gnoll race. Updated instructions for installing mods.

* 1.0.0 (Alpha 3) - Fixed a bug with the sound of the completion of the building. Added the ability to zoom out / zoom in the camera by holding LCTRL + LMB.

* 1.0.0 (Alpha 2) - Fixed a bug with multiplayer, the work of the AI of the alliance and the horde, the loading screen and the display of race icons in the results menu. Rollback to the old system for loading mpq, races, etc. (prescribing in the launch parameters or creating a bat, an example in a new video lesson).

* 1.0.0 (Alpha 1) - The system for adding new races has been fully implemented. Added new functions to common.j, bj. The priority from the simplicity of creating races has moved to the subtlety of customization. The limit has been increased to 59 non-standard races (if you also replace 4 standard races, then to 63). New number system version. The main script file is again bj. Standard priority for mpq upload is 8 (War3Patch.mpq level). In terms of sophistication and functionality, we overtook such mods as Nirvana, Way of Others, Elven Union. We are waiting for your remakes. ;D

Older versions:

* 1.0 - Added the ability to create and load add-ons (You can download their sources here). To install the addon, load it into the "Addons" folder, in the Warcraft root, specify the addon in "MM Engine.cfg" by adding it to the "Addons" item.

* 0.9 - Added the ability to change the language. Mods are stored in the "Mods" folder. The main file of any mod is "Manifest.ini", you can connect other files to it by using the "#include" function to name the file.extension "". All mpq archives of the mod are stored in the corresponding folder "Mpqs" located in the mod folder. It is possible to connect more than one archive, allowing you to connect additional. archives with models. For correct operation, they must be specified in the order in the "Mpqs" function.

* 0.8 - Maximum compression of the system for creating new races in mme.j - 1 line.

* 0.7 - Simplified race creation system. The size of the code required to add to mme.j when creating new races - 3.

* 0.6 - Transferring all .bat values to a temporary medium, and from it to a mod. Added English (beta).

* 0.5 - Fixed a bug with adding a race to the mod.

Requirements:
- Warcraft III - TFT 1.26
- Microsoft Visual C ++ 2015
- Microsoft .NET Framework 4.0

MM Engine:
Move the mod to the folder with Warcraft III - TFT.

Mods:
To install mods on top of MM Engine, create a mod folder in the Mods folder, and then transfer all the files to it. To run, use the -mod <Mod folder name> argument.

Adding a new campaign

Step 1: Create map(s) in WC3 editor and transfer them to your mpq along the path "Maps\FrozenThrone\Campaign\" (or write your own path). When adding maps, if you are using the same mpq editor as mine, remove compression and encryption, otherwise WC3 simply won't find the map.

AddNewMap.png


Step 2: To write new campaigns, you need to get CampaignStrings_exp.txt from War3Patch.mpq, change it at your discretion, and then transfer it to your mpq along the "UI \" path (strictly along this path). The "DefaultOpen" parameter makes the campaign available without going through others.

HowToAddNewCampaign.png




Stage 1: Unit Creation

The note:

1) For each mod, there must be a kind of foundation, without which it cannot exist. To begin with, you should create rough sketches of your race. Be it tweets on a piece of paper, pencil sketches, or a persistent thought in your head. Use your imagination. Give her your own flavor that will distinguish her from other races.
2) Creation of modifications for Warcraft 3 from scratch is a task beyond everyone's strength. The user must understand every bit of the code, have knowledge in the programming area and other troubles. However, MM Engine allows you to simplify this process to the maximum by providing some of its additions. If you haven’t downloaded it yet, then do it, as we will need this engine in creating our own modification.
3) After you have decided on the concept, sketch out an approximate ''development line'' (aka TechTree). Each race has 1 main building, 1 altar, 1 food production building, 1 starting barrack, and 1 building that makes improvements. At the second level (or 2nd Tier) of development, each race has a building for training magicians and 1 special building. The third level (aka 3-rd Tier) gives 1 building, which produces the most powerful combat unit of the race.
4) After drawing up your line of development, you can start working on your race. Collect resources (models, icons, possibly a soundtrack) for your mod. All resources can be found on such popular platforms as HiveWorkshop, XGM and so on.

Step 1: After all the collected resources, you can go to the technical part of the mod. Use the campaign editor (or map) to create your own race. This process is not very labor intensive. It only requires patience and a lot of free, free time.

1.png


Step 2: When you are done with this part, press CTRL + D. This will display the ID (aka RawCode) of all game elements, including non-standard ones. After that, it is advisable to write down somewhere the ID of your workers, heroes and the main building, which will appear at the beginning of the game.

2.png


Step 3: Save our campaign (map), and then simply change the file extension from w3n (w3m \ w3x) to mpq. It looks pretty simple, doesn't it?

3.png




Stage 2: Scripts

Step 1: From the previously downloaded MM Engine.mpq we get Blizzard.j and common.j.

4.png


Step 2: Following the example with the standard races, create a variable that stores our race in the game.

5.png


Step 3: Remember the very IDs that we wrote out? Prescribing for our new race of workers. Do not forget to register the heroes and the main building in order to avoid all sorts of incidents.

6.png


7.png


8.png


9.png


Step 4: We register the AI for our race, which we had to put into our MPQ archive earlier. If we do not have one, then we skip this point.

10.png


Step 5: To display the strings that appear in the absence of a race, we register their keys in Blizzard.j, and the strings themselves in GlobalStrings.fdf (You can get it from War3Patch.mpq).

11.png




Stage 3: Interface and minor additions

Step 1: To add an interface, we get war3skins.txt from MM Engine.txt, and, following the example of the standard races, we write our own paths for the interface.

12.png


Step 2: If you want your town hall to be erected with the help of the chiefs' box, take the AbilityData.slk file from War3Patch.mpq and add our town hall to the standard ones on line 609 (ID Albg).

13.png


Step 3: To add phrases that are displayed in case of a shortage of food, take CommandStrings.txt from War3Patch.mpq and add our phrase in the line with the Nofood key. Don't forget to put a comma.

14.png




Stage 4: Create .json and finalize

Step 1: Since version 2.0.0 MM Engine has switched to a unified method for launching mods, now all mod settings are stored in Manifest.json, in the mod folder, and to launch the mod, you need to write in the arguments -mod <Mod folder name >, so we fill in our Manifest and transfer everything to the mod folder, to its place (Mpq to the Mpqs folder; dll libraries to the Bins folder; Manifest, the logo and icons just to the mod folder).

Manifest parameters:
- ModName - Responsible for the name of the mod;
- ModIcon - Responsible for the name of the mod icon file (do not specify the extension, because it is always .ico);
- ModVersion - Responsible for the displayed version of the mod in the main menu;
- Preview - Responsible for the appearance of the mod's logo at startup, has 3 child parameters, of which 2 are required: Logo (similar to the icon, extension .bmp), Info (displayed information), and 1 optional - enable (true / false);
- Mpqs - Responsible for loading mpq, is an array with objects that have 2 child parameters, of which Name is mandatory, responsible for the name of mpq, and Priority is optional, responsible for the priority of loading, if absent, it is automatically issued from the addition of the maximum priority and one;
- Bins - Responsible for connecting dll libraries, is an array with strings;
- Races - Responsible for loading races, is an array with objects that have 2 required parameters: Skin - race name located in war3skins.txt and Key - race name located in GlobalStrings.fdf.

15.png


Step 2: Add the -mod <Mod folder name> parameter to the arguments and enjoy the game.

If everything goes well, then I will update the mod page here as well. ^^

- VK Page
- XGM Page
Previews
Contents

MM Engine (Binary)

MM Engine - Naga Race Mod (Example) (Binary)

Reviews
eejin
New(ish) tool rules allow tools for older WC3 versions if there is a good reason for them to not work on Reforged. This tool can be very useful for quickly creating custom races. Perhaps a thing you could improve is the dialog for when a 1.26...
Level 7
Joined
Jun 5, 2018
Messages
180
Russians always tend to bring out surprise, from Nirvana to the famous RenderEdge as well as yours. You are so creative.

However, the operation seems to a bit complicated. You are expected to improve the user experience of your excellent work.
 
Last edited:
Level 4
Joined
Oct 31, 2018
Messages
15
Russians always tend to bring out surprise, from Nirvana to the famous RenderEdge as well as yours. You are so creative.

However, the operation seems to a bit complicated. You are expected to improve the user experience of your excellent work.

Thanks for the feedback. In fact, everything is very easy, just the instruction turned out big. For example, I added the MM Engine - Gnoll Race so that you can disassemble it and understand the principle of operation.

p.s Nirvana is a mod from a Chinese developer
 
Level 4
Joined
Oct 31, 2018
Messages
15
Now I have a question:
Does MM engine support patch 1.26+ or -? Or it only works with patch 1.26, right? If it does, I think it is necessary to improve the software and remove its limitations.
It works on patch 1.26 and 1.27. In other patches, mpq archives are hidden and because of this, I cannot transfer it to newer patches.

UPD: 1.26, i have never tried it on 1.27.
 
Last edited:
Level 1
Joined
Nov 1, 2018
Messages
2
Now I have a question:
Does MM engine support patch 1.26+ or -? Or it only works with patch 1.26, right? If it does, I think it is necessary to improve the software and remove its limitations.
Exclusively mod to 1.26, but it seems to be on all versions, if it turns out to figure out how to implement this in future versions except 1.26, but it will also support 1.26 mod!
 
Level 4
Joined
Oct 31, 2018
Messages
15
Your tool seems very interesting. Do you have any intention of updating it to function with the newest Warcraft 3 version? Once you do it can be reviewed for approval. Refer to the tool submission rules or contact me if you need any clarification.
This is not a commercial project, I don’t do it for money, I do it for fun. I don't like the latest Warcraft 3 patches, so there will be no updates to them. ^^
 

eejin

Tool Moderator
Level 12
Joined
Mar 6, 2017
Messages
221
New(ish) tool rules allow tools for older WC3 versions if there is a good reason for them to not work on Reforged. This tool can be very useful for quickly creating custom races. Perhaps a thing you could improve is the dialog for when a 1.26 installation is not found. Currently it only errors on Storm.dll being missing.
 
Level 4
Joined
Oct 31, 2018
Messages
15
New(ish) tool rules allow tools for older WC3 versions if there is a good reason for them to not work on Reforged. This tool can be very useful for quickly creating custom races. Perhaps a thing you could improve is the dialog for when a 1.26 installation is not found. Currently it only errors on Storm.dll being missing.
I tried to do this. MM Engine.exe is an extended version of war3.exe. I can't start WC3 without storm.dll, because it's not supported by the game.
 
Level 10
Joined
May 31, 2019
Messages
137
This is pretty cool!

Would it be possible to at least support 1.28? That version still uses mpqs, as well as Storm.dll.
1.28 is my preferred version for these reasons:
  • The last version before any gameplay/balance changes from the reforged team.
  • Cinematics display well on modern systems
  • it's easily moddable via built-in support for War3Mod.mpq
  • it has an active community on Eurobattle.net, solving the multiplayer issue.
  • Can be run at 1080p in 4:3 aspect ratio.
Not sure if it has any hidden changes that would make it too difficult for MM-Engine compatibility though.

Also I wonder if the editor could be made to support custom races (like having the units in new 'folders' in the object editor)

What about race-specific 'damaged building/mech' effects?
ex. [Xfns], [Xfnl]. These are listed in 'Buffs' in the object editor, but as far as I can tell the game is hard-coded to only look for specific ones for each race.
 
Last edited:
Level 4
Joined
Oct 31, 2018
Messages
15
This is pretty cool!

Would it be possible to at least support 1.28? That version still uses mpqs, as well as Storm.dll.
1.28 is my preferred version for these reasons:
  • The last version before any gameplay/balance changes from the reforged team.
  • Cinematics display well on modern systems
  • it's easily moddable via built-in support for War3Mod.mpq
  • it has an active community on Eurobattle.net, solving the multiplayer issue.
  • Can be run at 1080p in 4:3 aspect ratio.
Not sure if it has any hidden changes that would make it too difficult for MM-Engine compatibility though.

Also I wonder if the editor could be made to support custom races (like having the units in new 'folders' in the object editor)

What about race-specific 'damaged building/mech' effects?
ex. [Xfns], [Xfnl]. These are listed in 'Buffs' in the object editor, but as far as I can tell the game is hard-coded to only look for specific ones for each race.
Yes, everything is possible.
 
Top