C H R O M A
More hair colors. More skin tones. Make them your own.
Editable color palettes for RaceMenu | Skyrim SE, AE, and VR
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Author's NoteMore hair colors. More skin tones. Make them your own.
Editable color palettes for RaceMenu | Skyrim SE, AE, and VR
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
I wanted the 300 hair colors from Tailor's wig palette available when making a character in RaceMenu. I also wanted more skin tones, with choices that suit each race and a separate set of unusual colors for anyone making something a little different.
Chroma brings those palettes into the existing Hair Color and Skin Tone sliders. If a color you want is missing, you can add it yourself in a text file. There is no plugin to rebuild and no race patch to maintain every time you add another shade.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OverviewChroma adds hair and skin color presets to RaceMenu from editable TOML libraries.
The supplied libraries contain 300 hair colors and 122 skin colors. The skin library includes 22 colors from Realistic Natural Skin Tones, 80 new natural tones spread across eight races, and 20 shared fantasy colors.
Each supported race gets its own assigned natural additions, followed by the fantasy palette. A Nord receives the Nord additions, a Redguard receives the Redguard additions, and each elf race has its own selection. Both sexes receive the same Chroma additions.
No ESP, ESM, or ESL. Chroma is an SKSE DLL and two color libraries. It uses no plugin slots.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FeaturesHair Colors
- 300 colors - the original names, RGB values, family grouping, and order are preserved.
- Natural and colorful shades - Black, Dark Brown, Brown, Light Brown, Red, Blonde, Ash, Silver, Frost, Midnight, Moss, Tide, Plum, and Rose.
- Uses the existing Hair Color slider - choose a color in RaceMenu as you normally would.
- Room for your own palette - add more colors or make a separate TOML with just the shades you want.
- Ten new natural tones per race - Breton, Dark Elf, High Elf, Imperial, Nord, Orc, Redguard, and Wood Elf.
- 22 original Realistic Natural Skin Tones colors - names and RGB values are retained, with Chroma-specific race assignments.
- 20 shared fantasy tones - blues, greens, pinks, purples, and more, placed after the natural additions for every supported race.
- Race-specific additions - natural tones assigned to another race do not appear among your character's Chroma additions.
- Both sexes - no separate male and female palette files to maintain.
- Ready to use - install Chroma and open RaceMenu. Editing the files is optional.
- Existing presets stay - Chroma adds to the race data produced by your load order. It does not replace your original colors.
- Duplicate checks - matching existing presets are skipped, and duplicate color IDs are reported in the log.
- Loads at startup - edit a library, restart Skyrim, and the new choices are available.
- No extra menu - no MCM or separate color-selection interface to learn.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A Palette for Each RaceThe natural expansion takes its starting point from Skyrim's own skin palettes. The new shades explore different undertones within those palettes:
- Breton - soft ivory, almond, neutral beige, and muted rosy tan.
- Nord - cool ivory, pale pink, heather, windworn rose, and light tan.
- Imperial - olive, golden sand, ochre, copper, and umber.
- Redguard - sienna, chestnut, bronze, cacao, and deep brown.
- High Elf - ivory gold, citrine, olive gold, and bronze.
- Wood Elf - bark, amber, cedar, and muted olive-brown.
- Dark Elf - ash, slate, charcoal, blue-gray, and violet-gray.
- Orc - sage, lichen, jade, moss, and gray-green.
Skin coverage: Chroma 1.0 supports the eight base races listed above. It does not add skin tones to Argonians, Khajiit, vampire race variants, Astrid's special race, or custom race records. Hair has its own target list, which also includes several vampire variants and Astrid.
Existing colors: Race grouping applies to Chroma's additions. Vanilla colors and colors already supplied by other mods remain available. Chroma does not remove or reclassify them.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RequirementsUse versions of these requirements that match your Skyrim executable. Chroma is built for SE, AE, and VR using CommonLibSSE-NG.Installation
- Install the requirements above.
- Install Chroma with your mod manager and enable it. In MO2, enable it in the left pane; there is no ESP to activate in the right pane.
- Launch Skyrim through SKSE.
- Open RaceMenu and use the Hair Color and Skin Tone sliders.
The original presets appear first. Chroma's natural additions follow them, with its fantasy skin colors at the end. Matching colors already present in your race's palette are skipped, so slider totals can differ between load orders.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Adding Your Own ColorsThe supplied libraries are:
SKSE/Plugins/Chroma/Hair/Chroma Hair.toml
SKSE/Plugins/Chroma/Skin/Chroma Skin.toml
You can edit those files directly. For personal additions, I recommend creating separate TOMLs in the same folders so an update to Chroma does not overwrite your work. In a mod manager, these paths start inside the mod's folder. For a manual installation, they start inside Skyrim's Data folder.
Use a plain text editor, save with the .toml extension, and place the file directly in Hair or Skin. Chroma does not scan subfolders.
Example 1: Add Two Hair Colors
Create SKSE/Plugins/Chroma/Hair/My Hair Colors.toml and paste:
schema_version = 1
kind = "hair"
races = ["Skyrim.esm|013741", "Skyrim.esm|013746"]
[[colors]]
id = "myhair.copper_ember"
name = "Copper Ember"
rgb = "#784B39"
family = "Red"
[[colors]]
id = "myhair.dusky_plum"
name = "Dusky Plum"
rgb = "#63435F"
family = "Plum"
This adds both colors to Breton and Nord, for both sexes. Every color in a hair file uses the race list at the top of that file.
The family field is an optional label for organizing the file. It does not create a category in RaceMenu or automatically sort the colors. Entries retain their written order. If you edit Chroma Hair.toml itself, place your new entry beside the family you want it to follow.
Example 2: Give Different Races Their Own Skin Colors
Create SKSE/Plugins/Chroma/Skin/My Natural Skin.toml and paste:
schema_version = 3
kind = "skin"
section = "race"
races = ["Skyrim.esm|013746"]
[[colors]]
id = "myskin.nord_cool_rose"
name = "Nord Cool Rose"
rgb = "#D2ACAF"
[[colors]]
id = "myskin.dunmer_smoke"
name = "Dunmer Smoke"
rgb = "#697581"
races = ["Skyrim.esm|013742"]
Nord Cool Rose uses the file's default race list, so only Nords receive it. Dunmer Smoke has its own race list, so only Dark Elves receive that color. A race list inside a skin color entry replaces the file's default list for that entry.
Example 3: Add Shared Fantasy Skin Colors
Create SKSE/Plugins/Chroma/Skin/My Fantasy Skin.toml and paste:
schema_version = 3
kind = "skin"
section = "fantasy"
races = [
"Skyrim.esm|013741",
"Skyrim.esm|013742",
"Skyrim.esm|013743",
"Skyrim.esm|013744",
"Skyrim.esm|013746",
"Skyrim.esm|013747",
"Skyrim.esm|013748",
"Skyrim.esm|013749"
]
[[colors]]
id = "myskin.starlight_blue"
name = "Starlight Blue"
rgb = "#569BC4"
[[colors]]
id = "myskin.dusk_orchid"
name = "Dusk Orchid"
rgb = "#B983AD"
All eight supported races receive these colors in the fantasy group, after their natural additions. The race list controls who gets the colors; section = "fantasy" controls where they appear.
Race Reference
Breton = Skyrim.esm|013741
Dark Elf = Skyrim.esm|013742
High Elf = Skyrim.esm|013743
Imperial = Skyrim.esm|013744
Nord = Skyrim.esm|013746
Orc = Skyrim.esm|013747
Redguard = Skyrim.esm|013748
Wood Elf = Skyrim.esm|013749
Race references use a plugin filename, a vertical bar, and the race's local hexadecimal FormID. They are not EditorIDs or load-order-prefixed FormIDs. Hair libraries can target other installed races, but skin libraries are restricted to the eight entries above.
A Few Things to Remember
- Give every color a unique ID. Use a prefix of your own, such as myhair or myskin. IDs can contain letters, numbers, periods, underscores, and hyphens. Reusing an ID causes the conflicting entries to be rejected.
- Write RGB as a quoted hex color. For example, rgb = "#784B39". Keep the hash and all six hex digits inside the quotes.
- Repeat the color block, not the file header. Add another [[colors]] block for each new entry. Keep schema_version, kind, and the file's default settings at the top.
- Set skin race targets explicitly when editing the supplied file. Chroma Skin.toml defaults to all eight supported races. Add a races line to your new entry if it should belong to only one race.
- Use the fantasy section for unusual skin tones. In Chroma Skin.toml, adding section = "fantasy" inside a color entry puts that entry in the final fantasy group. Its race list still controls availability.
- Restart Skyrim after editing. Reopening RaceMenu alone will not reload the TOMLs.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Compatibility and SavingChroma adds presets to the race data already loaded by Skyrim. It does not write race overrides into an ESP, remove existing presets, or recolor every NPC. A race overhaul or a patch such as Synthesis can still contribute its own colors, and those choices remain available.
If another installed mod supplies matching color presets, Chroma skips those matches instead of adding them again.
Hair selections use the SKSE co-save. Chroma saves the player's selected Chroma hair RGB in the matching .skse file and restores it when loading. Keep that file with your save and keep Chroma installed when relying on those hair selections. Skin uses Skyrim's normal saved tint data.
Before removing Chroma, switch to a hair color supplied by the base game or another mod you are keeping, then save. Removing Chroma removes its additional slider choices on the next launch.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
For Mod AuthorsYou can distribute additional Chroma palettes as TOML files. Put them directly under SKSE/Plugins/Chroma/Hair/ or SKSE/Plugins/Chroma/Skin/ in your mod, use distinctive filenames and IDs, and list Chroma as a requirement. A palette pack does not need its own ESP.
The source code and the supplied libraries are available on GitHub. The README covers the supported schema versions and configuration fields.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TroubleshootingThe extra colors are not showing up
Make sure Chroma is enabled in your mod manager and Skyrim was launched through SKSE. Check that the DLL and libraries are installed under SKSE/Plugins, then fully restart the game. Also confirm that your character uses one of the supported race records.
My custom file is being ignored
Check that it ends in .toml rather than .toml.txt, sits directly in the Hair or Skin folder, and has the matching kind value. A malformed file is rejected as a whole. Look in Documents/My Games/Skyrim Special Edition/SKSE/Chroma.log for the filename and error.
I see fewer colors than the library contains
The 122 skin colors are the total library, not the number added to every race. Each supported race gets its assigned natural colors plus the 20 shared fantasy colors. Matching existing presets are skipped. RaceMenu's sliders also count from zero, so the displayed final position is one less than the number of choices.
My Nord still has a color that looks like it belongs to another race
Chroma limits its own natural additions by race. It preserves the original presets and any colors already added by your load order. Check the winning race record or generated patch if you want to change those existing choices.
I renamed or copied a supplied TOML and now colors are missing
Every loaded color ID must be unique. If both copies remain in an active palette folder, their matching IDs are rejected. Move backups outside the Hair and Skin folders, or give genuinely new colors their own IDs.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Credits- ColdSun - Chroma, the Tailor hair palette, and the CS_Assets hair race reference.
- Asherz - the original Realistic Natural Skin Tones colors.
- Expired - RaceMenu.
- The SKSE, CommonLibSSE-NG, and toml++ contributors - the tools and libraries Chroma is built on.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Created by ColdSun
Developed by an engineer with 35 years of experience in the field
DLL digitally signed as Heath Brown through Microsoft's Azure signing service
Source Code
Built with C++ | CommonLibSSE-NG | SKSE
Created by ColdSun
Developed by an engineer with 35 years of experience in the field
DLL digitally signed as Heath Brown through Microsoft's Azure signing service
Source Code
Built with C++ | CommonLibSSE-NG | SKSE



































