Skip to content

The complete .NET toolkit for Warcraft III modding

License

Notifications You must be signed in to change notification settings

Drake53/War3Net

Repository files navigation

War3Net Modding Library

The complete .NET toolkit for Warcraft III modding

GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub license


What is War3Net?VisionBuilt with War3NetPackagesRoadmapContributingLicense


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 5+ 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
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.Build downloads
War3Net.CodeAnalysis.Jass Work with JASS code: parse existing scripts, transpile to C#/Lua, or generate new code. War3Net.CodeAnalysis.Jass downloads

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.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:

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.