Skip to main content

LightSet Config

warning

LightSet files are saved automatically by the Steel Studio app. You do not need to create or edit them manually.
Use this page as a reference only, or if you want to hand-craft a LightSet to ship with a track.

LightSet files are stored as lightset_[name].json in [track_folder]/extension/steelstudio/.

How to use a LightSet with a track

  1. Create a lightset_[name].json file based on the template below and place it in [track_folder]/extension/steelstudio/.
  2. Open Steel Studio. The LightSet will appear in the tile grid automatically.
  3. Click its tile to activate it.

Config file

extension/steelstudio/lightset_00_default.json
{
"name": "My Light Set",
"lights": [
{
"name": "Main Light",
"enabled": true,
"posX": 0,
"posY": 3,
"posZ": 0,
"dirX": 0,
"dirY": -1,
"dirZ": 0,
"spot": 0,
"spotSharpness": 0.5,
"colorStops": [
{ "r": 1, "g": 1, "b": 1 }
],
"intensity": 5,
"holdTime": 1,
"transitionTime": 1,
"range": 20,
"volumetricLight": false,
"fadeAt": 500,
"fadeSmooth": 200,
"shadows": false,
"shadowsStatic": false,
"shadowsHalfRes": false,
"shadowsExtraBlur": false,
"specularMultiplier": 1,
"diffuseConcentration": 0,
"rangeGradientOffset": 0,
"affectsCars": true,
"showInReflections": false,
"skipLightMap": false,
"meshes": "",
"materials": "",
"emissiveEnabled": false,
"emissiveMeshes": "",
"emissiveMaterials": "",
"emissiveIntensity": 1
}
]
}

LightSet properties

NameDescriptionPossible values
nameDisplay name of the LightSet shown in the tile gridString
lightsArray of light objects in this setArray

Light properties

NameDescriptionPossible values
nameLabel for this light shown in the editorString
enabledWhether this light is active when the LightSet is appliedtrue | false
posX / posY / posZPosition offset of the light in world spaceNumber (−500 to 500)
dirX / dirY / dirZDirection vector for spotlightsNumber
spotSpotlight cone angle in degrees (0 = point light)Number (0–175)
spotSharpnessHardness of the spotlight cone edgeNumber (0–1)
colorStopsArray of color stops for single color or animated gradientArray of { r, g, b }
intensityLight brightness multiplierNumber (0.1–50)
holdTimeSeconds to stay at each color stop before transitioningNumber
transitionTimeSeconds to blend from one color stop to the nextNumber
rangeMaximum illumination radius in metresNumber (0.1–500)
volumetricLightEnable volumetric (fog/haze) rendering for this lighttrue | false
fadeAtDistance at which the light begins to fadeNumber
fadeSmoothFade transition widthNumber
shadowsEnable real-time shadowstrue | false
shadowsStaticCast shadows only against static geometrytrue | false
shadowsHalfResRender shadow map at half resolutiontrue | false
shadowsExtraBlurApply extra softening to shadow edgestrue | false
specularMultiplierStrength of specular highlightsNumber (0–5)
diffuseConcentrationFocuses diffuse illumination toward the light centerNumber (0–1)
rangeGradientOffsetAdjusts how brightness falls off across the rangeNumber (0–1)
affectsCarsWhether the light illuminates car modelstrue | false
showInReflectionsWhether the light appears in reflection surfacestrue | false
skipLightMapExclude this light from lightmap calculationstrue | false
meshesComma-separated mesh names to attach this light toString
materialsMaterial string for material-only lightsString
emissiveEnabledDrive a mesh ksEmissive property in sync with this lighttrue | false
emissiveMeshesMesh names to apply emissive control toString
emissiveMaterialsMaterial names to apply emissive control toString
emissiveIntensityEmissive brightness overrideNumber (0–10)

Color stops

Each entry in colorStops is an object with three fields:

FieldDescriptionValues
rRed channel0–1
gGreen channel0–1
bBlue channel0–1

A single color stop produces a static light. Two or more stops produce an animated gradient. The animation cycles through stops using the holdTime and transitionTime values defined on the parent light.

info

holdTime and transitionTime are shared across all lights in a LightSet, keeping them synchronized.