Skin Configuration
Every FM Skin Builder project requires a config.json file. This file defines your skin’s metadata and build settings.
Quick Start
Minimal config.json:
{
"schema_version": 1,
"name": "My Skin"
}That’s all you need to start building!
Complete Schema
Here’s a config.json with all available fields:
{
"schema_version": 1,
"name": "Dark Theme Pro",
"author": "Your Name",
"version": "1.0.0",
"description": "A sleek dark theme with custom icons",
"includes": [
"graphics/icons",
"graphics/backgrounds"
]
}Field Reference
schema_version (Required)
{
"schema_version": 1
}| Property | Value |
|---|---|
| Type | Integer |
| Required | Yes |
| Valid values | 1 |
The schema version tells FM Skin Builder which config format you’re using. This enables future compatibility when new features are added.
Important: Must be exactly 1 (a number, not a string).
// Correct
"schema_version": 1
// Wrong
"schema_version": "1" // String, not numbername
{
"name": "Dark Theme Pro"
}| Property | Value |
|---|---|
| Type | String |
| Required | No |
| Default | Folder name |
Your skin’s display name. Used in:
- FM Skin Builder’s title bar
- Build logs
Tips:
- Keep it concise but descriptive
- Avoid version numbers in the name (use
versionfield instead)
author
{
"author": "John Doe"
}| Property | Value |
|---|---|
| Type | String |
| Required | No |
| Default | None |
Your name or username. For attribution and documentation purposes.
version
{
"version": "1.0.0"
}| Property | Value |
|---|---|
| Type | String |
| Required | No |
| Default | None |
Your skin’s version number. We recommend semantic versioning:
| Version | Meaning |
|---|---|
| MAJOR (1.x.x) | Breaking changes, major redesign |
| MINOR (x.1.x) | New features, significant additions |
| PATCH (x.x.1) | Bug fixes, small tweaks |
Examples:
1.0.0→ Initial release1.0.1→ Fixed a color issue1.1.0→ Added new icon set2.0.0→ Complete redesign
description
{
"description": "A sleek dark theme with blue accents and custom icons for FM26"
}| Property | Value |
|---|---|
| Type | String |
| Required | No |
| Default | None |
A description of your skin. Keep it brief but informative.
includes
{
"includes": [
"styles",
"graphics/icons",
"graphics/backgrounds"
]
}| Property | Value |
|---|---|
| Type | Array of strings |
| Required | No |
| Default | [] |
Specifies which asset folders to process during build. Each entry is a path relative to your project root.
Valid paths:
"styles"- Process stylesheets"graphics/icons"- Process icon replacements"graphics/backgrounds"- Process background replacements- Custom paths to asset folders you create
Important:
- If you have an
graphics/folder but don’t include it here, those assets are ignored - Each included folder should contain a
mapping.jsonfile - Paths are case-sensitive on macOS/Linux
Editing config.json
Using the Config Editor (Simple Mode)
FM Skin Builder provides a visual editor:
- Single-click
config.jsonin Explorer - The Config Editor opens with a form interface if you are in Simple Mode
- Edit fields using input boxes and checkboxes
- Save your changes (Ctrl/Cmd + S)
Config Editor in Simple Mode
Screenshot ID: config-editor-simple
Using Expert Mode
For direct JSON editing:
- Toggle to Expert Mode
- Edit the raw JSON
- Save (Ctrl/Cmd + S)
Config Editor in Expert Mode
Screenshot ID: config-editor-expert
Validation
The editor validates your config in real-time:
| Check | Error Message |
|---|---|
| Valid JSON | ”Unexpected token…“ |
| schema_version present | ”schema_version is required” |
| includes paths exist | ”Include path not found: …” |
Config validation error
Screenshot ID: config-validation
Common Configurations
Color-Only Skin
No assets, just color changes:
{
"schema_version": 1,
"name": "Blue Accent",
"author": "Your Name",
"version": "1.0.0",
"includes": ["styles"]
}Folder structure:
blue-accent/
├── config.json
└── styles/
├── mapping.json # Per-stylesheet targeting
└── base.uss # Global colorsFull Theme with Assets
Complete skin with icons and backgrounds:
{
"schema_version": 1,
"name": "Complete Dark Theme",
"author": "Your Name",
"version": "1.0.0",
"description": "Dark theme with custom icons and backgrounds",
"includes": [
"styles",
"graphics/icons",
"graphics/backgrounds"
]
}Folder structure:
complete-dark/
├── config.json
├── styles/
│ └── base.uss
└── graphics/
├── icons/
│ ├── star.png
│ └── mapping.json
└── backgrounds/
├── main_bg.jpg
└── mapping.jsonMulti-File Color Configuration
Organized CSS across multiple files:
{
"schema_version": 1,
"name": "Organized Theme",
"version": "2.0.0",
"includes": ["styles"]
}Folder structure:
organized/
├── config.json
└── styles/
├── base.uss # Global colors
├── FMColours.uss # Main UI colors
├── MatchColours.uss # Match screen colors
└── mapping.json # Per-stylesheet targetingTroubleshooting
”Invalid JSON syntax”
Common JSON mistakes:
// Missing comma
{
"schema_version": 1
"name": "My Skin" // ← needs comma above
}
// Trailing comma
{
"schema_version": 1,
"name": "My Skin", // ← remove this comma
}
// Missing quotes
{
schema_version: 1 // ← keys need quotes
}Solution: Use a JSON validator like jsonlint.com
”schema_version must be 1"
// Wrong
"schema_version": "1" // String
// Correct
"schema_version": 1 // Number, value 1"Include path not found”
The path in includes doesn’t exist:
{
"includes": ["graphics/iconz"] // Typo - should be "icons"
}Solution: Create the folder or fix the path.
Changes not taking effect
- Make sure you saved config.json
- Rebuild your skin (changes require rebuild)
- Check the Output panel for errors
Best Practices
Keep It Simple
Only add fields you actually need:
// Good - minimal but complete
{
"schema_version": 1,
"name": "My Theme",
"version": "1.0.0"
}Use Meaningful Descriptions
// Good
"description": "A dark theme optimized for night gaming with reduced eye strain"
// Less useful
"description": "My skin"Version Consistently
Increment version when you release updates:
// v1.0.0 - Initial release
// v1.0.1 - Fixed button colors
// v1.1.0 - Added new iconsDon’t Include Unused Paths
// If you don't have backgrounds, don't include it
{
"includes": ["graphics/icons"] // Only what you use
}Next: Editors - Learn about the different editors for CSS, UXML, and more.