Ceres is a stand-alone scriptable build toolchain for Warcraft III maps. It provides a way to quickly and easily build and package Warcraft III Lua maps, as well as various other utilities and tools.
It is scriptable and customizable using Lua, and can be used to orchestrate whatever you want, including:
- Building a single Lua map
- Building multiple Lua maps
- Editing your maps' Object Data using Lua
- Managing imports
- And so on
Ceres can be used with pure Lua, or with TypeScript using a TypeScript to Lua transpiler
. There are template repositories for both.
If you just want to use Lua and nothing else, setup is very minimal. Clone this repository
, follow the instructions in the readme, and customize it to your heart's content.
If you want to use TypeScript in your maps, Ceres can be used with it too. Setup is a bit more complex than with pure Lua, but you can use this repository
as a template. Make sure to read the readme.
There is also an example of using NPM to download external dependencies in your project, namely Cerrie
, which is a library providing an idiomatic set of APIs for TypeScript projects, as well as some utilities such as File I/O and Live Reload. If you want to get started with Cerrie, take a look at this branch of ceres-ts-template
API & Docs
Ceres provides various APIs to enable it to do what it does, to both maps and build scripts. Namely, it has APIs for object editing, MPQ reading/writing, file I/O, Lua script compilation, file preprocessing and so on. The entire API surface has been documented in the form of a TypeScript declaration file
, which you can use as a reference even when not using TypeScript - all APIs are themselves pure Lua and do not require TypeScript.
Parts of Ceres are also documented more in-depth in the Wiki
, which you can check out for extra information.
Other information can be found in the Ceres repository
, which I recommend checking out. New releases also usually appear there sooner.