editor.atmosphere

Eight convenience methods for volumetric clouds, sky atmosphere, exponential height fog, and sky light. Bulk reflection-based getters and setters replace 94 individual BlueprintCallable setters with four get*Info / two set*Properties calls, plus a one-shot spawnSetup that stands up a full sky-and-weather rig in a single call. AI agents reach through this namespace to configure atmospheric surfaces the native Remote Control surface cannot touch concisely.

← API Reference

Always available. The atmosphere handler lives in the Engine module with no additional plugin dependency. All 94 individual property setters (21 cloud + 29 atmosphere + 30 fog + 14 sky light) remain accessible via editor.rc.call when fine-grained control is preferable to the bulk setter.

Method summary

Method Mutating Tier Purpose
listComponentsnoFreeEnumerate all atmosphere actors/components in the level.
getCloudInfonoFreeBulk read every property on the VolumetricCloudComponent.
setCloudPropertiesyesFreeBulk write VolumetricCloudComponent properties.
getSkyAtmosphereInfonoFreeBulk read SkyAtmosphereComponent properties.
getFogInfonoFreeBulk read ExponentialHeightFogComponent properties.
setFogPropertiesyesFreeBulk write ExponentialHeightFogComponent properties.
getSkyLightInfonoFreeBulk read SkyLightComponent properties.
spawnSetupyesFreeOne-call spawn of the full atmosphere rig (up to 5 actors).

editor.atmosphere.listComponents

Discover all atmosphere-related actors and their components in the current level. Returns one row per matching component.

No parameters.

Returns:

FieldTypeDescription
componentsarrayEach: {actor_name, actor_path, component_type, component_path, enabled}. Types: VolumetricCloud, SkyAtmosphere, ExponentialHeightFog, SkyLight, DirectionalLight.
countnumberNumber of components returned.

Example Request:

{ "jsonrpc": "2.0", "id": 1, "method": "editor.atmosphere.listComponents" }

Example Response:

{
  "jsonrpc": "2.0", "id": 1,
  "result": {
    "components": [
      { "actor_name": "SkyAtmosphere", "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.SkyAtmosphere", "component_type": "SkyAtmosphere", "component_path": "SkyAtmosphereComponent", "enabled": true },
      { "actor_name": "VolumetricCloud", "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.VolumetricCloud", "component_type": "VolumetricCloud", "component_path": "VolumetricCloudComponent", "enabled": true }
    ],
    "count": 2
  }
}

editor.atmosphere.getCloudInfo

Bulk read every editable property on a VolumetricCloudComponent via reflection. Default target is the first matching actor in the level when actor is omitted.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to the first matching actor.

Returns:

FieldTypeDescription
actor_namestringResolved actor name.
actor_pathstringFull actor path.
propertiesobjectMap of 21 cloud properties: LayerBottomAltitude, LayerHeight, PlanetRadius, Material, and more.

Example Request:

{ "jsonrpc": "2.0", "id": 2, "method": "editor.atmosphere.getCloudInfo" }

Example Response:

{
  "jsonrpc": "2.0", "id": 2,
  "result": {
    "actor_name": "VolumetricCloud",
    "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.VolumetricCloud",
    "properties": { "LayerBottomAltitude": 5.0, "LayerHeight": 10.0, "PlanetRadius": 6360.0, "Material": "/Engine/EngineSky/VolumetricClouds/m_SimpleVolumetricCloud_Inst.m_SimpleVolumetricCloud_Inst" }
  }
}

editor.atmosphere.setCloudProperties

Bulk write VolumetricCloudComponent properties. Pass one or more property-name/value pairs as params; each lands through reflection. Failed per-property writes surface in the errors array without rolling back successful ones.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to the first matching actor.
property namesvariesYesAny property from getCloudInfo, name-matched.

Returns:

FieldTypeDescription
successboolTrue if at least one property write succeeded.
properties_changednumberCount of successful writes.
errorsarrayPresent on per-property failure. Each: {name, reason}.

Example Request:

{
  "jsonrpc": "2.0", "id": 3,
  "method": "editor.atmosphere.setCloudProperties",
  "params": { "LayerBottomAltitude": 3.5, "LayerHeight": 8.0 }
}

Example Response:

{ "jsonrpc": "2.0", "id": 3, "result": { "success": true, "properties_changed": 2 } }

editor.atmosphere.getSkyAtmosphereInfo

Bulk read every editable property on a SkyAtmosphereComponent via reflection. 29 properties returned.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to first matching actor.

Returns:

FieldTypeDescription
actor_namestringResolved actor name.
actor_pathstringFull actor path.
propertiesobjectMap of 29 atmosphere properties: BottomRadius, AtmosphereHeight, RayleighScattering, MieScattering, and more.

Example Request:

{ "jsonrpc": "2.0", "id": 4, "method": "editor.atmosphere.getSkyAtmosphereInfo" }

Example Response:

{
  "jsonrpc": "2.0", "id": 4,
  "result": {
    "actor_name": "SkyAtmosphere",
    "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.SkyAtmosphere",
    "properties": { "BottomRadius": 6360.0, "AtmosphereHeight": 60.0, "MieScatteringScale": 0.003996, "RayleighScatteringScale": 0.033100 }
  }
}

editor.atmosphere.getFogInfo

Bulk read every editable property on an ExponentialHeightFogComponent via reflection. 30 properties returned, including the nested VolumetricFog struct.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to first matching actor.

Returns:

FieldTypeDescription
actor_namestringResolved actor name.
actor_pathstringFull actor path.
propertiesobjectMap of 30 fog properties: FogDensity, FogHeightFalloff, FogInscatteringColor, VolumetricFog, and more.

Example Request:

{ "jsonrpc": "2.0", "id": 5, "method": "editor.atmosphere.getFogInfo" }

Example Response:

{
  "jsonrpc": "2.0", "id": 5,
  "result": {
    "actor_name": "ExponentialHeightFog",
    "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.ExponentialHeightFog",
    "properties": { "FogDensity": 0.02, "FogHeightFalloff": 0.2, "FogInscatteringColor": "(R=0.5,G=0.6,B=0.7,A=1.0)" }
  }
}

editor.atmosphere.setFogProperties

Bulk write ExponentialHeightFogComponent properties. Same contract as setCloudProperties: per-property reflection writes, failed entries surface in errors.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to first matching actor.
property namesvariesYesAny property from getFogInfo, name-matched.

Returns:

FieldTypeDescription
successboolTrue if at least one property write succeeded.
properties_changednumberCount of successful writes.
errorsarrayPresent on per-property failure. Each: {name, reason}.

Example Request:

{
  "jsonrpc": "2.0", "id": 6,
  "method": "editor.atmosphere.setFogProperties",
  "params": { "FogDensity": 0.04, "FogHeightFalloff": 0.15 }
}

Example Response:

{ "jsonrpc": "2.0", "id": 6, "result": { "success": true, "properties_changed": 2 } }

editor.atmosphere.getSkyLightInfo

Bulk read every editable property on a SkyLightComponent via reflection, plus the commonly-checked real_time_capture flag as a top-level field.

Parameters:

NameTypeRequiredDescription
actorstringNoActor name or label. Defaults to first matching actor.

Returns:

FieldTypeDescription
actor_namestringResolved actor name.
actor_pathstringFull actor path.
real_time_captureboolWhether the sky light rebuilds its capture every frame.
propertiesobjectMap of 14 sky light properties: Intensity, LightColor, SourceType, and more.

Example Request:

{ "jsonrpc": "2.0", "id": 7, "method": "editor.atmosphere.getSkyLightInfo" }

Example Response:

{
  "jsonrpc": "2.0", "id": 7,
  "result": {
    "actor_name": "SkyLight",
    "actor_path": "/Game/Maps/L_Main.L_Main:PersistentLevel.SkyLight",
    "real_time_capture": true,
    "properties": { "Intensity": 1.0, "LightColor": "(R=1,G=1,B=1,A=1)", "SourceType": "SLS_CapturedScene" }
  }
}

editor.atmosphere.spawnSetup

Stand up a complete atmosphere rig in one call. Spawns up to five actors (SkyAtmosphere, VolumetricCloud, ExponentialHeightFog, SkyLight, DirectionalLight) with sensible defaults. Skips actors that already exist in the level -- idempotent on re-call.

Parameters:

NameTypeRequiredDescription
sun_rotationobjectNo{pitch, yaw, roll}. Default {-50, -30, 0}.

Returns:

FieldTypeDescription
successboolTrue if the call completed.
spawnedarrayActors the handler created this call.
skippedarrayActors already present in the level.
spawned_countnumberCount of newly-spawned actors.
skipped_countnumberCount of skipped actors.

Example Request:

{
  "jsonrpc": "2.0", "id": 8,
  "method": "editor.atmosphere.spawnSetup",
  "params": { "sun_rotation": { "pitch": -35, "yaw": 45, "roll": 0 } }
}

Example Response:

{
  "jsonrpc": "2.0", "id": 8,
  "result": {
    "success": true,
    "spawned": ["SkyAtmosphere", "VolumetricCloud", "ExponentialHeightFog", "SkyLight", "DirectionalLight"],
    "skipped": [],
    "spawned_count": 5,
    "skipped_count": 0
  }
}

Related

  • API Reference index
  • editor.rc -- Remote Control passthrough for the 94 individual cloud/atmosphere/fog/sky-light BC setters
  • editor.water -- paired ocean/river/lake surfaces for full outdoor environments