The official authoring CLI for BlueArcade 3 Universal Modules.
bacli scaffolds, checks, tests, and builds .bamodule Universal Modules for BlueArcade 3, the
sandboxed Lua module format that runs identically across every BlueArcade Edition, including
Minecraft and Hytale. No prior knowledge of the runtime internals is needed to author a module.
Download the latest bacli jar from the releases page of this repository, or build it yourself:
git clone git@github.com:BluevaDevelopment/BlueArcade_CLI.git
cd BlueArcade_CLI
./gradlew shadowJar
The built jar lands in build/dist/bacli-<version>.jar.
bacli init [dir] --id <id> [--type minigame|microgame] [--name <name>] [--author <author>]
bacli check [dir]
bacli build [dir] [--out <dir>]
bacli test [dir]
[dir] defaults to the current directory.
| Command | What it does |
|---|---|
init |
Scaffolds a new module project: module.toml, a starter src/main.lua, and a language file. |
check |
Validates a project: manifest schema, file layout, and Lua syntax, before you try to build it. |
build |
Runs check, then packages the project into a loadable .bamodule archive. |
test |
Runs plain Lua unit tests under tests/ against a small built-in assertion library. |
A module project is a plain directory containing a module.toml manifest, a src/ folder of Lua
files, and an optional resources/ folder for YAML settings and language files. bacli build
packages it into a single .bamodule archive, a zip file with a renamed extension, ready to be
dropped into a running BlueArcade 3 server.
Once a module is built, it can be published independently at blueva.net/store/blue-arcade/modules/manage, with no pull request needed anywhere. Blueva's own official modules, along with the pattern for adopting a community module officially, live in the BlueArcade_Modules repository.
Pull requests are welcome, whether that means fixing a bug, improving an existing command, or proposing a new one. Opening an issue first for anything non trivial is appreciated, so the change can be discussed before any real work goes into it.
Licensed under the GNU General Public License v3.0. See LICENSE for the full text.
Part of BlueArcade 3, a cross platform framework for building modular multiplayer minigames.
