Skip to content

Build a translation-only RimWorld mod

build-mod packages translated RimWorld language data into a standalone translation mod.

PO is not required. The command supports two source modes:

  1. an external PO handoff;
  2. an existing translated Languages/<locale> tree.

Build from an existing Languages tree

Use this when translation XML already exists — including output produced by a RimLoc project workflow:

rimloc-cli build-mod \
  --from-root ./work/MyTranslatedMod \
  --out-mod ./dist/MyTranslatedMod-RU \
  --lang ru \
  --dry-run

After reviewing the plan, rerun without --dry-run.

Relevant options include:

  • --from-root <DIR> — source tree containing translated Languages data;
  • --from-game-version <CSV> — select version subfolders;
  • --out-mod <DIR> — isolated destination;
  • --lang <CODE> / --lang-dir <DIR>;
  • --name, --package-id, --rw-version;
  • --dedupe;
  • --dry-run.

Build from PO

Use this when PO is the chosen interchange format:

rimloc-cli build-mod \
  --po ./work/MyMod.ru.po \
  --out-mod ./dist/MyMod-RU \
  --lang ru \
  --dry-run

This is useful for Poedit/CAT workflows, but it is not the canonical RimLoc project path.

Output safety

A real build refuses to silently merge into a non-empty output directory unless the explicit merge behavior is requested by the current CLI.

Always:

  • use --dry-run first;
  • write to an output directory, not the source mod/game tree;
  • validate the generated result before publishing;
  • test it in RimWorld.

Why the command still mentions PO

The CLI predates the full canonical project workflow and keeps stable, useful format-specific commands for interoperability. That is intentional compatibility, not an architectural requirement that RimLoc projects be PO files.

Run rimloc-cli build-mod --help for the exact options supported by your build.