• What is War3Net? • Vision • Built with War3Net • Packages • Roadmap • Contributing • License •
Your one-stop .NET toolkit for all things Warcraft III. From low-level file formats like MPQ and BLP to high-level map building in C# and working with JASS scripts—War3Net has you covered.
Stop reinventing the wheel. Start building.
War3Net aims to be the definitive .NET foundation for Warcraft III tooling—built on three core principles:
- Completeness — Every file format. Every game version. RoC through Reforged.
- Correctness — Byte-for-byte accuracy with Blizzard's implementations. No guesswork.
- Compatibility — .NET 5+ for broad OS support, including Windows 7/8.
Disclaimer: Projects listed here are independent and not affiliated with, endorsed by, or maintained by the creator of War3Net. Use them at your own discretion.
| Project | Description |
|---|---|
| Project name | This is a placeholder, serving as an example of how to insert the name, url, and description of your project |
Using War3Net in your project? Open a PR to add it here!
Main packages:
| Package | Description | Downloads |
|---|---|---|
| War3Net.Build | Build complete Warcraft III maps programmatically, including script generation and asset packaging. | |
| War3Net.CodeAnalysis.Jass | Work with JASS code: parse existing scripts, transpile to C#/Lua, or generate new code. |
Full list of current and planned packages:
| Package | Summary | NuGet |
|---|---|---|
| War3Net.Build | Generate map scripts and MPQ archives from C#/vJass source code. | |
| War3Net.Build.Core | Parsers and serializers for war3map files. | |
| War3Net.CodeAnalysis | Helper methods for Pidgin parsers. | |
| War3Net.CodeAnalysis.Decompilers | Regenerate war3map files from a Warcraft III map script. | |
| War3Net.CodeAnalysis.Jass | Parse and render JASS source files. | |
| War3Net.CodeAnalysis.Transpilers | Transpile JASS to C# or Lua. | |
| War3Net.Common | Shared utilities for War3Net packages. | |
| War3Net.Drawing.Blp | Read and write BLP texture files. | |
| War3Net.IO.Casc | Read CASC archives. | Coming soon™ |
| War3Net.IO.Compression | Compression algorithms for MPQ archives. | |
| War3Net.IO.Mpq | Read and write MPQ archives. | |
| War3Net.IO.Slk | Read and write SLK data files. | |
| War3Net.Modeling | Read and write .mdl and .mdx files. | Coming soon™ |
| War3Net.Rendering | Render Warcraft III models using Veldrid. | Coming soon™ |
| War3Net.Replay | Parse replay (.w3g) files. | Coming soon™ |
| War3Net.Runtime | Execute JASS and Lua map scripts using NLua. | Coming soon™ |
| War3Net.Runtime.Core | C# implementation of Warcraft III's backend code. | Coming soon™ |
| War3Net.Runtime.Api.Blizzard | Blizzard.j API implemented in C#. | Coming soon™ |
| War3Net.Runtime.Api.Common | API for War3Net.Runtime.Core, similar to War3Api.Common. | Coming soon™ |
Some of the above packages are based on code from other repositories:
Two major initiatives are in progress:
JASS Language Suite — Bringing modern IDE tooling to JASS.
- Fault-tolerant parsing, semantic analysis, and LSP support
- End goals: Intelligent script adaptation across game versions • VSCode extension
Warcraft III Runtime — Run maps without the game.
- Native JASS VM, C# natives, headless rendering
- End goals: Automated C# map testing • Full game emulation
Please open an issue before creating a pull request.
Pull requests should be small and atomic to make them easier to review. Avoid doing multiple things in a single pull request like fixing bugs, adding new features, and refactoring code.
War3Net is licensed under the MIT license. Projects from NuGet packages and submodules may have a different license.