Skin Template: Steam Customizer Code format - SteamCustomizer/Editor GitHub Wiki
Each skin has a file called skin.json
in the root of the folder.
This file is an important link between visual representation and customization information.
Steam Customizer Code is heavily based on JSON data-interchange format.
NOTICE: In contrast to JSON, Steam Customizer Code is capable of storing comments inside of it, despite being named as *.json
Such file consists of 6 core parts:
{
"version": <string>,
"metadata": <object>,
"variables": <object>,
"groups": <object>,
"views": <object>,
"files": <object>
}
Skin version number.
Ideally this should be convertible into a number and should be updated in an increasing order.
Metadata object:
{
"skinBase": <string, required>,
"folderName": <string, required>,
"name": <string, required>,
"author": <string, required>,
"authorUrl": <string>,
"skinURL": <string>,
"description": <string>,
"themeVariable": <string>
}
skinBase Required
Name of the skin on which to base this skin on ("default" - base on Valve default Steam skin)
NOTICE: This could be used to base customized skin based on custom skin. This enabled to create customizable modifications of already created skins!
folderName Required
Name of the generated skin folder name in .../Steam/skins/ folder
name Required
Name of the skin, rendered in GUI
author Required
Author name, used as extra metadata in manager
authorUrl
Author site link, used as extra metadata in manager
skinURL
Original skin site link, used as extra metadata in manager
description
Description of the skin, used as extra metadata in manager
themeVariable
Color variable name which value would be used as skin theme color
Variables are the core of Steam Customizer templating.
Read about the whole format here.
Groups are required for variable organization.
They reside in groups
object and has a format as follows:
"groups":
{
<group_name>:
{
[
"name":
{
"default": <string>[, <language_name>: <string>, ...]
},
]
"variables": [ <variable_name>[, <variable_name>, ...] ]
}
}
Which could be described as such:
There is a group object, where each property is an object with at least variables
property defined as an array of variable names to include in this group.
Additionally each group can have a name object, which should contain default
(fallback) name and any number of additional localized names.