A UE4SS Lua mod for Star Wars: Zero Company that adds a Custom Color picker (color box,
hue slider, hex input, live preview) under the game's color choices: the main-menu creator and
barracks editor (clothing, armor, hair, skin, makeup, tattoos, horns, scars, droids) and the
armory's weapon Paint Color. It writes into the same customization data a swatch pick does, so
the game saves it; the mod never calls save functions or edits saves. Players should download the
release ZIP from Nexus Mods or the
GitHub releases; the mod page text is in
docs/nexus/ and the in-ZIP player guide is src/ColorsPlus/README.md.
make help lists everything. The usual loop: edit, make test, make install, restart the game.
| Target | Does |
|---|---|
make test |
the LuaJIT tests (UE4SS fakes), the script-reachability test and the gradient check |
make install / make uninstall |
link src/ColorsPlus into the main install, or remove the link |
make package |
dist/ColorsPlus-X.Y.Z.zip, with ColorsPlus/ at its root |
make bump V=X.Y.Z |
set the version everywhere (including the player README title), date the changelog |
make release |
check, test, tag, push; CI publishes to GitHub and Nexus (mod 314) |
make gradients |
regenerate Assets/*.png (needs node) |
make check / make sync |
drift from the standard / fetch the latest shared files |
The standard layout (see ../ModTemplate/STANDARD.md). Specific to this repo:
src/ColorsPlus/Scripts/:main.lualoads every module; each must be reachable from it (tests/scripts_reachable_test.py).armory_ui.luaandarmory_paint.luaare the armory; the rest are the character editors (docs/architecture.md).src/ColorsPlus/Assets/: picker gradients, generated bytools/generate-picker-gradients.mjs.src/ColorsPlus/Recovery/README.txtships so the journal folder exists after extraction (Lua can't create it); the journals themselves are gitignored..github/workflows/nexus-changelog-check.yml: manual, read-only; prints the changelogs Nexus has stored (the v3 API can't read them back).docs/: architecture, development history through 1.0, older investigations.
An edit is drafted on the game's customization preview (the armory's preview weapon, or the editor's preview character), so the real character or weapon is written only on Apply. Zabrak skins with a material swap are the exception: drafted on the character, with the original kept for Cancel. Apply writes the color into the live customization fragment, the same object a swatch pick creates, and refreshes it. Every step re-finds its objects by name and checks them; anything unexpected is refused, not guessed.
Unfinished edits are journaled under Recovery/ and replayed only after a Lua reload in the same
game session; journals from an earlier session are archived, never replayed.
Restart the game after make install (don't use UE4SS's Reload All Mods). Logs beside the mod:
colors_plus_probe.log (events, 4 MB cap) and colors_plus_performance.log (5-second timing
summaries while the picker is open, 1 MB cap); at the cap a log rolls to *.previous.log.
Before a release, check at least:
- main-menu creator: Apply, Cancel, save, and leaving without saving;
- barracks editor: Apply, leave, then save and reload the game;
- armory: change Location and Paint Finish with the picker open, then Apply and Cancel;
- a Zabrak skin tone, a Default (empty) slot and an unlocker-mod armor color;
- the armory with the game in another language.
MIT, copyright 2026 Chatter Chats.