1. Are you planning to upload your awesome tool to Hive? Please review the rules here.
    July 9, 2018: The rules for the Tool Section have been revised. Please be sure to read the revisions.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. Lead your forces to battle in the 15th Techtree Contest. The call is yours, commander!
    Dismiss Notice
  5. The reforging of the races is complete. Come see the 14th Techtree Contest Results.
    Dismiss Notice
  6. It's time to choose your horse in the race - the 32nd Modeling Contest Poll is up!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Ceres v0.3.5 - a scriptable build toolchain for WC3

Submitted by mori
This bundle is marked as approved. It works and satisfies the submission rules.
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.
Contents

Ceres v0.3.5 - Windows (Binary)

Ceres v0.3.5 - MacOS (Binary)

Ceres v0.3.5 - Linux (Binary)

Reviews
eejin
Have heard nothing but good things about Ceres! An excellent tool for building maps. One small thing is that the download seems to be zip files in zip files, but that doesn't stop it from getting approved.
  1. yxq1122

    yxq1122

    Joined:
    Jun 5, 2018
    Messages:
    139
    Resources:
    0
    Resources:
    0
    Great work!
    Glad to see it as an official release here. I like it because it provides a revolutionary way to build and package war3 maps outside the world editor.

    Here I want to give some suggestions:
    1. Support for (v)Jass maps
    Is it possible to build war3 (v)Jass maps by a JassHepler call? One could build wc3 maps of any type by using this tool instead of world editor if possible.
     
  2. mori

    mori

    Joined:
    Jun 13, 2016
    Messages:
    439
    Resources:
    2
    Tools:
    1
    Tutorials:
    1
    Resources:
    2
    Thanks for the kind words!

    It should be possible, yeah. Currently, the default buildscript expects that a Lua map is going to be built, but it should be pretty easy to add an option to disable the Lua compilation step. I'll look into it.
     
  3. iown_azz

    iown_azz

    Joined:
    Jun 16, 2008
    Messages:
    312
    Resources:
    0
    Resources:
    0
    I dont get how to open or us it....
     
  4. mori

    mori

    Joined:
    Jun 13, 2016
    Messages:
    439
    Resources:
    2
    Tools:
    1
    Tutorials:
    1
    Resources:
    2
    It's a commandline utility. There's an example project in this here repo.

    If you want help with the project, you can hop into our discord.
     
  5. eejin

    eejin

    Tool Moderator

    Joined:
    Mar 6, 2017
    Messages:
    150
    Resources:
    1
    Tools:
    1
    Resources:
    1
    Have heard nothing but good things about Ceres! An excellent tool for building maps. One small thing is that the download seems to be zip files in zip files, but that doesn't stop it from getting approved.
     
    Last edited: Feb 21, 2020
  6. mori

    mori

    Joined:
    Jun 13, 2016
    Messages:
    439
    Resources:
    2
    Tools:
    1
    Tutorials:
    1
    Resources:
    2
    Updated this release to v0.3.5. Here's the changelog for the difference between 0.3.1 and 0.3.5:
    <3
     
  7. Robbepop

    Robbepop

    Joined:
    Mar 6, 2008
    Messages:
    892
    Resources:
    7
    Maps:
    6
    Spells:
    1
    Resources:
    7
    Nice tool, exactly what I was looking for. Will toy around with it and see how far I get.