The goal for RLS is to be a declarative, domain-specific language for defining randomizer logic - regions, locations, exits, events, and their access conditions. It transpiles to C++ (for Shipwright) and Python (for Archipelago-SoH, possibly rulebuilder json), so both projects share a single source of truth.
RandoLogicScript [options] <files/folders...>
| Option | Description |
|---|---|
-t, --transpiler <name> |
Transpiler to use, must be followed by -o. May be repeated. |
-o, --output <dir> |
Output directory for the preceding transpiler. |
-h, --help |
Show help message. |
Each -t must be paired with an -o:
RandoLogicScript -t soh -o out/soh/ src/
Multiple transpilers can be specified, each with their own output directory:
RandoLogicScript -t soh -o out/soh/ -t ap -o out/ap/ src/ extra.rls
Input paths can be individual .rls files or directories (which are recursively scanned for .rls files).
| Name | Target |
|---|---|
soh |
C++ for Shipwright |
ap |
Python for Archipelago |