War3Net
The complete .NET toolkit for Warcraft III modding.
Install / Use
/learn @Drake53/War3NetREADME
War3Net Modding Library
The complete .NET toolkit for Warcraft III modding
<p align="center"> <img src="assets/images/war3net-banner.png" alt="War3Net Banner"> </p> <p align="center"> • <b> <a href="#what-is-war3net">What is War3Net?</a> • <a href="#vision--principles">Vision</a> • <a href="#built-with-war3net">Built with War3Net</a> • <a href="#packages">Packages</a> • <a href="#roadmap">Roadmap</a> • <a href="#contributing">Contributing</a> • <a href="#license">License</a> </b> • </p>
What is War3Net?
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.
Vision & Principles
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 6+ for broad OS support, including Windows 7/8.
Built with War3Net
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 | | ------- | ----------- | | Maya WarTex | Autodesk Maya plug-in for BLP texture loading via War3Net.Drawing.Blp. | | 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!
Packages
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. | ![VBuild] | | War3Net.Build.Core | Parsers and serializers for war3map files. | ![VBuildCore] | | War3Net.CodeAnalysis | Helper methods for Pidgin parsers. | ![VCode] | | War3Net.CodeAnalysis.Decompilers | Regenerate war3map files from a Warcraft III map script. | ![VCodeDecomp] | | War3Net.CodeAnalysis.Jass | Parse and render JASS source files. | ![VCodeJass] | | War3Net.CodeAnalysis.Transpilers | Transpile JASS to C# or Lua. | ![VCodeTrans] | | War3Net.Common | Shared utilities for War3Net packages. | ![VCommon] | | War3Net.Drawing.Blp | Read and write BLP texture files. | ![VBlp] | | War3Net.IO.Casc | Read CASC archives. | Coming soon™ | | War3Net.IO.Compression | Compression algorithms for MPQ archives. | ![VCompress] | | War3Net.IO.Mpq | Read and write MPQ archives. | ![VMpq] | | War3Net.IO.Slk | Read and write SLK data files. | ![VSlk] | | 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.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™ | | War3Net.Runtime.Core | C# implementation of Warcraft III's backend code. | Coming soon™ |
Some of the above packages are based on code from other repositories:
Roadmap
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
Contributing
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.
License
War3Net is licensed under the MIT license. Projects from NuGet packages and submodules may have a different license.
