CLI tool
Retera/WarsmashModEngine avatar
Retera/WarsmashModEngine

Warsmash Mod Engine: a Warcraft III emulator for playing mods

An emulation engine to improve Warcraft III modding

583 stars102 forksJavaAGPL-3.0

At a glance

What is it?
Warsmash is a Warcraft III emulator built on the LibGDX game engine, written in Java, that lets you run mods of the original game without installing Activision's editor or redistributing their assets. Its hard requirement is a war3mash.ini that builds a virtual file system over your own legally purchased copy, and that config file is where most of the real work sits.
Who is it for?
Warsmash fits a modder who wants to launch and test Warcraft III custom maps on a machine without the original editor, and who owns a valid copy of the game. It does not fit anyone looking for a general game engine, since the whole project is scoped to one game, and it does not fit a user who expects a one-click install, because the virtual file system has to be configured by hand per patch level.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 18 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

An emulator that borrows your own copy of the game

Warsmash is a Warcraft III emulator made using the LibGDX game engine, and the first thing the README says about assets is that the project does not include Warcraft III assets for obvious reasons. To run the emulator you need to purchase a valid copy of Warcraft III from Activision Blizzard and configure Warsmash to use those assets. That arrangement is what makes the project usable rather than a rights problem, and it is also what makes the configuration work.

The project is described as an emulation engine to improve Warcraft III modding, the primary language is Java, and the licence is AGPL-3.0, the copyleft licence with the network clause. The default branch is main, there are no GitHub releases, and the last push to the repository was on 2026-10-05.

The repository layout shows a multi-module Gradle project with a core/ directory, a desktop/ module, a server/ module and a shared/ directory, plus two parsers with telling names, fdfparser/ and jassparser/, a resources/ directory, a jars/ directory, a build.gradle and settings.gradle, and a welaunch.bat script. The parsers are the part of the project that makes emulation possible rather than merely plausible, because the game loads its data through a custom archive format and its scripts through a custom language.

The ini file is the product, not a config detail

The README has a section titled Before you Begin: INI File, and it opens by saying that whether you want to edit Warsmash from an IDE, run it from the command line, or build a binary release, you will run into the war3mash.ini config file in any case. The reason is historical and worth following, because it explains the design rather than just asserting it.

The author maintained the Retera Model Studio project since 2012, updating code in parallel with Activision Blizzard's Warcraft III up to the release of Reforged. The asset loading utilities written for that project originally detected the location of the one true Warcraft III installation on the user computer from the Windows registry. Then Activision eliminated the use of that registry key and switched to a different one by the time Reforged released. Along the way some Frozen Throne builds honoured and recorded no registry key at all, and in 2018 the files inside the installation were reorganised into Activision's newer content distribution archives, so even a successful auto-detection would not guarantee the expected file layout.

So in 2019 the automatic detection was dropped, deliberately, in favour of putting the user in control of finding the installation's files. Warsmash inherited that decision and expanded it, with the added constraint of letting users record many different configurations, each in its own INI file, so that one single Warsmash binary can launch from any one of them.

A virtual file system assembled from layered archives

The mechanism is described in the README as a virtual file system made from layers of one or more places to look for a file at a given path. The warsmash.ini block labelled [DataSources] describes it, and the README says there can be many archives loaded, with any attempt to resolve a given file looking at each archive in order to find it, from newest to oldest. The setup of that virtual file system is, in the README's phrase, in the user's hands.

The layers are what a given patch level needs, and the differences between patches are the reason the config is per-patch rather than universal. For Patch 1.22 through 1.28, the data sources are the MPQ files plus the resources folder that ships with Warsmash. Patch 1.29 drops War3Patch.mpq, which should be removed from the list. Patch 1.30 and 1.31 use manually extracted folders containing what was inside the CASC files, and the README is careful to note that on those patches these folders are named .mpq without being MPQ archives, and on 1.31 they are named .w3mod and are not named MPQ at all, and that the 1.31 names also typically match Reforged. Throughout, the resources folder from Warsmash is still included, because it holds patch-agnostic custom assets that have to be present in the virtual file system.

The consequence for a user is that the data source configuration is per patch level and per install, and getting it wrong means missing files rather than a clean error.

MaxPlayers changes with the patch, and the CASC parser has a floor

Two details in the patch list are the kind of thing that only bites at launch. Every entry specifies what the [Emulator] block requires for MaxPlayers, and it is not constant: patches 1.22 through 1.28 require MaxPlayers=16, while 1.29, 1.30, 1.31 and 1.32 require MaxPlayers=28. A configuration carried over from an older patch will therefore run with a different player count than the game expects, which affects multiplayer maps as much as single player.

The second is the CASC parser. The README says the CASC parser in Warsmash is only working for Patch 1.32.10 and beyond, currently, but that Warsmash will probe for the unique Patch 1.30 folder names for tilesets and such if they are included in the virtual file system, and that these file names do not match any other patch, and similarly for the 1.31 names, which also match Reforged typically. Patch 1.32 then uses CASC directly, with a special notation in the INI called Prefixes to designate which .w3mod files to load.

The README also flags its own confidence levels, and it is worth reading those as a maintenance warning. The 1.30 and 1.31 entries each say the patch has not been tested in a year or so on Warsmash and may experience unexpected issues from more recent code changes. So the project supports a range of patch levels, and it tells you which parts of that range are exercised.

The takedown story, and what the project wants instead of it

The README includes a section titled In the News that addresses a rumour about the project directly. It says some news websites and social media claimed that Warsmash was taken down in 2022 via a cease and desist letter from Activision Blizzard, but that this did not happen, and that the confusion started from a parody video on YouTube that was almost immediately taken down. It also says the spread of the unverified rumour vastly exceeded the rate of spread of any legitimate technology discussion, and that because of how the modern attention economy works there is no digital megaphone through which the project can set the record straight. For anyone with concerns, it points to the Warsmash Discord server.

The advice the project gives instead is a statement of position rather than a technical note. It says that if you want to support Warsmash, do not hate Activision, and instead love the Warcraft III modding. The framing is deliberate: the project is about keeping the modding community alive, and the asset arrangement described earlier is the concrete form of that position, since the assets are never redistributed and the user supplies their own copy.

The repository is licensed AGPL-3.0, which for a project whose users may want to modify and share the emulator carries its own obligations, and the additional terms file in the repository root is a separate file from the licence that deserves a read before anyone builds a distribution.

Where Warsmash is the wrong tool

Three cases point elsewhere. The first is a project that is not about Warcraft III. This is an emulator for one game, with parsers written for that game's data formats and script language, and there is nothing in the architecture that generalises.

The second is a user who wants a modern Warcraft III experience. Warsmash exists to run mods of the original game, and the whole design is a compatibility layer over a 2000s data format and a Java rewrite of a custom scripting language. If what someone wants is to play a modern map with a modern engine and a modern renderer, a current commercial remake of the game is the answer, and the difference in approach is total rather than incremental.

The third is a team that cannot accept a configuration file as a prerequisite. A single warsmash.ini per patch level, hand-edited, with data sources, archive ordering and a player limit, is a significant amount of care to look after, and the README's own admission that some patch levels have gone a year without being tested is the kind of thing that turns into an evening lost to a missing tileset folder.

The alternative worth comparing against is running the original game with the original editor and tools, which for a modder who already owns a copy of the game and wants to author rather than merely to launch is often the lower-friction path. Warsmash earns its place for the modder who wants to play other people's work on a machine without the original runtime, and for the modder who wants the newer engine behaviour that the classic game does not offer.

Editorial conclusion

Warsmash fits a modder who wants to launch and test Warcraft III custom maps on a machine without the original editor, and who owns a valid copy of the game. It does not fit anyone looking for a general game engine, since the whole project is scoped to one game, and it does not fit a user who expects a one-click install, because the virtual file system has to be configured by hand per patch level. Before you commit, read the patch list in the README carefully for the version you own, because the CASC parser is described as only working for Patch 1.32.10 and beyond while the 1.30 and 1.31 entries are marked as untested for a year or so, and read ADDITIONAL_TERMS or the licence before you redistribute a build.

Frequently asked questions

What is Warsmash Mod Engine?

It is a Warcraft III emulator made using the LibGDX game engine, in Java, described as an emulation engine to improve Warcraft III modding. The project does not include Warcraft III assets, so you need to purchase a valid copy of the game from Activision Blizzard and configure Warsmash to use those assets. The licence is AGPL-3.0.

What does the war3mash.ini file do?

The block labelled [DataSources] describes a virtual file system made from layers of one or more places to look for a file at a given path, with many archives loaded and each file resolved by looking at them in order from newest to oldest. The setup of that virtual file system is left to the user, which is why a separate INI can be kept per configuration and a single binary can launch from any of them.

Which Warcraft III patches does Warsmash support?

The README documents configuration for Frozen Throne patches 1.22 through 1.32, with different data sources per patch: MPQ files for the earlier patches, manually extracted .mpq and .w3mod folders for 1.30 and 1.31, and CASC directly for 1.32 with a Prefixes notation. It also says the CASC parser is only working for Patch 1.32.10 and beyond, currently, and that the 1.30 and 1.31 entries have not been tested in a year or so.

What is the MaxPlayers setting in the emulator block?

The [Emulator] block requires MaxPlayers to be set per patch level, and it is not the same value across versions. Patches 1.22 to 1.28 require MaxPlayers=16, while patches 1.29, 1.30, 1.31 and 1.32 require MaxPlayers=28.

Was Warsmash taken down by Activision Blizzard?

The README says that some news websites and social media claimed Warsmash was taken down in 2022 via a cease and desist letter from Activision Blizzard, but that this did not happen, and that the confusion started from a parody video that was almost immediately taken down. It asks that supporters not oppose Activision but instead support the Warcraft III modding community.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. README
  4. Retera/WarsmashModEngine on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/retera-warsmashmodengine.svg)](https://hysenlabs.com/projects/retera-warsmashmodengine)

Was this useful?