Colors+ is a UE4SS Lua mod for Star Wars: Zero Company that adds a Custom Color picker to the game's customization screens: any color, not just the preset swatches, with a live preview.
It writes the chosen color into the same customization data a swatch pick uses, so the game saves it like any other color. The mod never calls save functions or edits save files, and colors stay after it is removed.
- A color box, hue slider and hex input under supported color choices.
- Main-menu character creator and the barracks character editor: clothing and armor, hair, skin (including race-specific skin bundles such as Zabrak tones), makeup, tattoos, and horn and scar HSV adjustments.
- Droids: head, body and legs colors on astromechs in the creator and the barracks, including the story droid BR-1.
- Armory → Customize Weapon: the Paint Color of blasters. Drafts only touch the armory preview, so Location and Paint Finish can be changed while the picker is open.
- Apply keeps the color; Cancel returns to the previous one.
- Armor wearing a color the palette no longer offers (for example from an unlocker mod) can still be changed.
- Works in every game language; the picker's own buttons are English.
Not supported: the base game's eye choices, lightsabers, and ZCUnlocked's Bolt Color and blade rows (their colors come from ZCUnlocked's own store). Mouse only.
Click CUSTOM COLOR under a color choice, pick a color, then Apply or Cancel.
| Where | Apply | Leaving |
|---|---|---|
| Main-menu creator | Writes the character's color for this visit | Save the character to keep it; leaving without saving restores the original |
| Barracks editor | Writes the character's color | Kept (the barracks has no save step) and saved with the game |
| Armory | Writes the weapon's paint; the game saves it at once | Nothing to do |
Picking a stock swatch afterwards replaces a custom color as usual. Player
instructions (also the basis of the mod page) are in
src/ColorsPlus/README.md.
- Star Wars: Zero Company
- UE4SS for Zero Company: the recommended build (v3.0.1 Beta,
a1e7f571)
| Steam build | Status |
|---|---|
| 25134257 | Tested |
| 24874058 | Tested |
Steam is the tested launcher. Later builds may work but are unverified until tested.
Download the release ZIP from
Nexus Mods, not
GitHub's source-code archive. The ZIP keeps ColorsPlus as its top-level
folder and includes metadata for both mod managers below.
- Zero Mod Manager (formerly ZCOM Mod Manager): open Install, drop in the ZIP, then confirm Colors+ is enabled under Mods.
- Zero Company Mod Command: drag the ZIP into the Hangar Bay and check that it's enabled.
- Install UE4SS for Star Wars: Zero Company.
- Extract the
ColorsPlusfolder intoSWZeroCompany/Binaries/Win64/ue4ss/Mods/. - Check that
ue4ss/Mods/ColorsPlus/Scripts/main.luaexists. Install the whole folder;main.lualoads the other modules andAssets/. - If your UE4SS setup ignores the packaged
enabled.txt, addColorsPlus : 1toue4ss/Mods/mods.txt.
Close the game, then install the new ZIP the same way. By hand, copy it over
the old folder so Recovery/ is kept. Only one copy may be installed: test
builds up to 0.3.0 used a Colors_Probe folder, so delete that. Restart the
game after installing or updating; don't use UE4SS's Reload All Mods.
To uninstall, disable or remove it in your mod manager, or delete the
ColorsPlus folder. Custom colors stay on your characters and weapons, and
saves load fine without the mod.
- Character Overhaul Suite (MinervaMagicka): compatible.
- ZCUnlocked (Smexy): mostly compatible. Its Bolt Color and lightsaber blade rows don't get the button; those colors come from ZCUnlocked's own store.
- Ship Paint and Hangar Lift (Coppershore): not tested yet.
Colors+ writes two logs beside the installed mod:
colors_plus_probe.log: detailed events (capped at 4 MB).colors_plus_performance.log: 5-second timing summaries while the picker is in use (capped at 1 MB).
At the cap, a log moves to <name>.previous.log and a fresh one starts.
UE4SS.log remains the startup and crash log.
Sweeping the mouse quickly across the swatches can close the picker; the previous color is kept, so just open it again.
Open an issue with:
- the game build and UE4SS version;
- other customization mods installed;
- what you were customizing (character race, slot or weapon) and the steps to reproduce it; and
colors_plus_probe.log,colors_plus_performance.logandUE4SS.log.
A color 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 only written on Apply. The exception is Zabrak skins with a material swap, which are drafted on the character itself 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 first; anything unexpected is refused instead of 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.
See docs/architecture.md for the character editors.
The armory lives in armory_ui.lua (button and picker host) and
armory_paint.lua (preview drafts and Apply); their header comments
describe the measured game behaviour they rely on.
.
├── .github/workflows/release-nexus.yml # manual Nexus release
├── CHANGELOG.md # player-facing notes per release
├── LICENSE
├── README.md
├── Zero_Company_UE4SS_Lua_Guide.md # general UE4SS lessons
├── docs/
│ ├── architecture.md # how a character color edit works
│ ├── development-history.md # detailed notes through 1.0
│ ├── nexus/ # mod page summary and BBCode description
│ ├── practical-ue4ss-ui-modding-notes.md
│ └── ... # older investigations and reviews
├── src/ColorsPlus/ # the distributable mod folder
│ ├── Assets/ # picker gradient textures
│ ├── Recovery/README.txt # keeps the journal folder in the ZIP
│ ├── Scripts/ # main.lua and modules
│ ├── README.md # player guide
│ ├── enabled.txt
│ ├── modinfo.json # Zero Company Mod Command
│ └── zcom-mod.json # Zero Mod Manager
├── tests/ # LuaJIT tests with UE4SS fakes
└── tools/
├── bump_version.py # version bump + changelog promotion
├── generate-picker-gradients.mjs # regenerates Assets/*.png
├── nexus_changelog.py # a release's notes as Nexus text
├── package.py # release ZIP (adds LICENSE)
└── run-tests.sh
src/ColorsPlus is the distributable folder; tools/package.py zips it with
the LICENSE and checks every script is reachable from main.lua.
-
Clone the repository and copy
src/ColorsPlusinto the game'sue4ss/Modsfolder. -
Run the tests (needs
luajit):tools/run-tests.sh # every test tools/run-tests.sh armory_ui # selected tests
-
Restart the game and test in game: the mod works on generated Blueprint classes, live widget trees and the game's own customization data, which the tests only fake.
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; and
- the armory with the game in another language.
Commit messages follow Conventional Commits
(feat(armory): …, fix(hub): …, chore(release): v1.0.0).
The manually run Release to Nexus Mods workflow publishes a release; use
tools/package.py for a local, package-only build.
-
Add player-facing notes under
## [Unreleased]inCHANGELOG.md, grouped as Added / Changed / Fixed / Removed. -
Bump the version with
patch,minorormajor:python3 tools/bump_version.py minor
It updates
modinfo.json,zcom-mod.json,Scripts/main.luaand the player README title, and turns[Unreleased]into the new version. -
Run
tools/run-tests.shandpython3 tools/package.py, then checkdist/ColorsPlus-#.#.#.zipwith a mod manager and a clean manual install. A built version is immutable: the packager refuses to overwrite a ZIP with different contents. -
Commit (
chore(release): v#.#.#), merge tomainand push. -
Run Release to Nexus Mods from the Actions tab. It needs the
NEXUSMODS_API_KEYrepository secret.
The workflow:
- requires
modinfo.json,zcom-mod.json,main.luaand the player README title to hold the same#.#.#version; - reads that version's notes from
CHANGELOG.md; - runs the tests and builds the ZIP with
tools/package.py; and - uploads it to Nexus as
ColorsPlus v#.#.#.zip, finding the mod and its single active file through the API (exactly one active file is required).
Bug reports, compatibility findings and focused pull requests are welcome through Issues and Pull Requests. Keep the game's own customization data as the only place a color is stored, and refuse unrecognized layouts rather than guessing.
- Downloads: Nexus Mods
- Changes:
CHANGELOG.md - Bugs and requests: GitHub Issues
MIT © 2026 Chatter Chats. The release ZIP includes the license.