
We are not using Steam Workshop anymore!
This guide uses local files on your computer, not the Steam Workshop.
📁 Where to put themes
Themes are loaded from your local game folder, not downloaded through Steam.
To use a custom theme:
Locate your game installation folder
(Steam → Right-click game → Manage → Browse local files)
Find or create a folder called:
/themes/
Save your theme as a .json file inside that folder
Example:
shadowforge_honeycomb.json
Themes must be written in valid JSON format. JSON is very strict, so small mistakes will break your theme.
🔤 Basic JSON rules
Everything is written as "key": value
Keys (names) must always be in double quotes
Text values must also be in double quotes
Numbers do not use quotes
Each line must end with a comma, except the last one
The entire file must start with { and end with }
✅ Correct example
{
"name": "Shadowforge Honeycomb",
"author": "Miki",
"description": "Dark forged metal theme with warm honeybee amber highlights.",
"bg": [28, 24, 18],
"title": [255, 190, 40],
"text": [255, 245, 200],
"slider_bg": [60, 50, 30],
"slider_knob": [255, 170, 0],
"button": [45, 38, 25],
"bar": [255, 210, 60]
}
❌ Common mistakes
Missing quotes:
name: Shadowforge Honeycomb
Using single quotes:
'name': 'Shadowforge Honeycomb'
Trailing comma on last line:
{
"name": "Theme",
"bg": [0, 0, 0],
}
Using HEX colors:
"title": "#FFBE28"
All colors must be written as RGB arrays:
[Red, Green, Blue]
Values must be between 0–255
Example:
"title": [255, 190, 40]
HEX support?
❌ HEX colors are not supported
You must convert them to RGB.
If your file is not valid JSON:
The theme may not appear at all
The game may ignore the file completely
UI elements may be missing or invisible
The game may fallback to default settings
Even one small mistake (like a missing comma) can break everything.
Copy an existing theme and edit it
Use an online JSON validator if something doesn’t work
Double-check commas, quotes, and brackets
Keep everything clean and consistent
If your theme isn’t working, it’s almost always a JSON formatting issue — check that first.