About
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
Quick Start
Ceres can be used with pure Lua, or with TypeScript using a
TypeScript to Lua transpiler. There are template repositories for both.
Pure Lua
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.
TypeScript
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.
Repository
Other information can be found in the
Ceres repository, which I recommend checking out. New releases also usually appear there sooner.