Environment Definition

From Space Engineers Wiki
Jump to navigation Jump to search
Overview
Inherits

Requires an xsi:type attribute:

<Definition xsi:type="MyObjectBuilder_EnvironmentDefinition">

Defines the world environment, mostly rendering settings but also speed limits.

Notes about merging and defaults

This definition supports definition merging, you still need the <Id> for it to know which to merge with, but past that you can declare only the things you want to change, for example only <SmallShipMaxSpeed>.
It works on all elements, including deeper ones.
One flaw of the way it merges is that if you use the exact value that the game code uses as default (not the sbc), then it will ignore your value because it's the same as not declaring it.
The presented default values are those internal code defaults and should avoid setting to those exact ones. If you must use that value, offset it by a very small margin if it's a floating point number.

Testing changes faster

Besides using an empty world (even without asteroids) to speed up world reload (F5) times, the graphical things can be experimented with in realtime with two options:

  • Developer screen (requires profiler build of the game), in Render tab specifically you can find a lot of the settings from here, but mind that not everything there is configurable in this definition.
  • Reload Definitions mod to reload the sbc in realtime, however it might not work on everything.

In general, if you see no changes double-check with a world reload and if still nothing do a full game restart as various things get read once and cached.

Other things are forced by the weather system every tick to the values from the definition (even outside of planets). Some examples: fog, sun intensity, shadow fadeout. For more hints see the WeatherEffect Definition.

Ship speeds

SmallShipMaxSpeed

<SmallShipMaxSpeed>
Type: SingleDefault100
Max speed in m/s of small grids. Valid range: 0 to 149896224.
This also affects character's max speed, being the largest between this and <LargeShipMaxSpeed> plus the largest sprint or run speed of the character.

LargeShipMaxSpeed

<LargeShipMaxSpeed>
Type: SingleDefault100
Max speed in m/s of large grids. Valid range: 0 to 149896224.
This also affects character's max speed, being the largest between this and <SmallShipMaxSpeed> plus the largest sprint or run speed of the character.

SmallShipMaxAngularSpeed

<SmallShipMaxAngularSpeed>
Type: SingleDefault36000
Max angular speed in degrees per second of small grids. Valid range 0 to 36000.

This also affects specific small-grid blocks:

  • Gyro's override slider limits.
  • Rotor/hinge's target velocity slider limits.
  • Custom Turret Controller's rotation speed slider limits.

LargeShipMaxAngularSpeed

<LargeShipMaxAngularSpeed>
Type: SingleDefault18000
Max angular speed in degrees per second of large grids. Valid range 0 to 18000.

This also affects specific large-grid blocks:

  • Gyro's override slider limits.
  • Rotor/hinge's target velocity slider limits.
  • Custom Turret Controller's rotation speed slider limits.

The character max speed is controlled by the largest ship speed plus the largest character movement speed.

Interaction colors

ContourHighlightColor

<ContourHighlightColor>
Type: Vector4Default1, 1, 0, 0.05
Color of the interaction highlighting over items and parts of blocks.
Usage:
<ContourHighlightColor>
  <X>0.5</X>
  <Y>0.2</Y>
  <Z>1.0</Z>
  <W>0.25</W>
</ContourHighlightColor>

Where X/Y/Z/W = Red/Green/Blue/Alpha.

Alpha affects the opacity of the filled color. The edge is not affected by the alpha.

ContourHighlightColorAccessDenied

<ContourHighlightColorAccessDenied>
Type: Vector4Default1, 0, 0, 0.05
Same as <ContourHighlightColor> but for when the highlighted object is not allowed to be interacted with (usually because of ownership).

ContourHighlightThickness

<ContourHighlightThickness>
Type: SingleDefault5
Thickness of the interaction highlight edges.

HighlightPulseInSeconds

<HighlightPulseInSeconds>
Type: SingleDefault0
Pulsing frequency of the overlay in interaction highlights. This does nothing if the inner fill is forced to be invisible (0 alpha).

Space

EnvironmentTexture

<EnvironmentTexture>
Type: StringDefaultTextures\BackgroundCube\Final\BackgroundCube.dds
The texture background to all of space (skybox).

Path to a .dds file relative to current mod's folder. Falls back to game folder if not found in current mod. Referencing assets in other mods

Must be a cube-map that contains 6 textures.

EnvironmentOrientation

<EnvironmentOrientation>
Type: MyOrientationDefault-1.06790054, 1.05410123, 1.58660507
Rotation for the <EnvironmentTexture>'s projected box (the skybox).

Values in radians.

Example:
<EnvironmentOrientation Pitch="0.0" Yaw="3.14" Roll="0.0" />

SunProperties

<SunProperties>
Type: MySunPropertiesDefault(shown in example)
A mix of properties for sunlight, reflections and multipliers.
Contains more elements:
<SunIntensity>Type: SingleDefault0.0
Intensity of the sun light and the sun sprite too.
<SunDirectionNormalized>Type: Vector3Default0.339467347, 0.709795356, -0.617213368
Seems not used. The BaseSunDirection inside sandbox.sbc is the one that controls sun axis and last saved direction.
<BaseSunDirectionNormalized>Type: Vector3Default0.339467347, 0.709795356, -0.617213368
Seems not used. The BaseSunDirection inside sandbox.sbc is the one that controls sun axis and last saved direction.
<EnvironmentLight>Type: MyEnvironmentLightDataDefault(see deeper)
<SunColor>Type: Vector3Default1,1,1
Direct sunlight color, in sRGB format.

Affects the sun sprite too.

If there's a planet nearby and planet's <SunColor> is assigned, then this color is linearly interpolated towards the planet's based on air density at the current position. Sun sprite however will instantly go to this color when entering the planet atmosphere, then fade into the other effects as you go deeper into the atmosphere.
<SunSpecularColor>Type: Vector3Default1, 1, 1
Sun's color when reflecting off surfaces, in sRGB format.

Does not affect the sun sprite.

Same interpolation as mentioned in <SunColor> but with SunSpecularColor in the respective links.
<SunSpecularFactor>Type: SingleDefault1
Affects sun reflection on surfaces.
<SunDiffuseFactor>Type: SingleDefault2.9
Affects sun reflection on surfaces.
<SunGlossFactor>Type: SingleDefault1
Affects sun reflection on surfaces.
<SunDiscColor>Type: Vector3Default1.5, 1.35, 1
Multiplier of <SunColor> that is applied only to the sun sprite.
<SunDiscInnerDot>Type: SingleDefault0.999
Size of the sun sprite.
0.999 is normal-looking and going lower makes it larger.
<SunDiscIntensity>Type: SingleDefault0
Glow amount for the sun sprite.
Relies on bloom from post-processing being enabled.
<SunDiscColor2>Type: Vector3Default1, 1, 1
Seems not used.
<SunDiscOuterDot>Type: SingleDefault0.996
Seems not used.
<AmbientDiffuseFactor>Type: SingleDefault1
<AmbientSpecularFactor>Type: SingleDefault1
<AmbientForwardPass>Type: SingleDefault0.01
<AmbientRadius>Type: SingleDefault10
<AmbientLightsGatherRadius>Type: SingleDefault10
<ForwardDimDistance>Type: SingleDefault3
<GlassAmbient>Type: SingleDefault0.45
Seems not used.
<AODirLight>Type: SingleDefault1
Ambient occlusion intensity in direct sunlight (or other isometric directional light).
Relies on ambient occlusion being enabled.
<AOPointLight>Type: SingleDefault0.5
Ambient occlusion intensity affected by point lights (like interior lights).
Relies on ambient occlusion being enabled.
<AOSpotLight>Type: SingleDefault0.5
Ambient occlusion intensity affected by perspective directional lights (spotlights, flashlight, etc).
Relies on ambient occlusion being enabled.
<AOIndirectLight>Type: SingleDefault1.5
Ambient occlusion intensity when not directly lit by anything.
Relies on ambient occlusion being enabled.
<SkyboxBrightness>Type: SingleDefault1
Brightness of the EnvironmentTexture.
<ShadowFadeoutMultiplier>Type: SingleDefault0.2
Higher values reduce the opacity of sunlight and spotlight shadows.
<EnvSkyboxBrightness>Type: SingleDefault3
Same as <SkyboxBrightness> but when seen by the environment probe.
<EnvShadowFadeoutMultiplier>Type: SingleDefault0
Same as <ShadowFadeoutMultiplier> but when seen by the environment probe.
<EnvAtmosphereBrightness>Type: SingleDefault0.2
Planet atmosphere brightness multiplier when seen by the environment probe.
<SkipIBLevels>Type: Int32Default0
Seems not used, gets overwritten.
<SunLightDirection>Type: Vector3Default0,0,0
Seems not used, gets overwritten.
Obsolete elements
<AmbientGlobalDensity>Type: -Default-
No longer exists.
<AmbientGlobalMinimum>Type: -Default-
No longer exists.
<AmbientGlobalMultiplier>Type: -Default-
No longer exists.
<EnvironmentProbe>Type: MyEnvironmentProbeDataDefault(see deeper)
A set of 6 camera perspectives all combined into one cubemap texture, positioned at the player's camera.

This cubemap is used for reflections and ambient light.

<TimeOut>Type: SingleDefault1.0
Seconds between rendering each frame. It will also fade between rendered frames.
0 makes it render every frame.
<DrawDistance>Type: SingleDefault100.0
Max distance in meters.
<AmbientScale>Type: SingleDefault0.1
<AmbientMinClamp>Type: SingleDefault0.02
<AmbientMaxClamp>Type: SingleDefault0.3
<EnvMapResolution>Type: Int32Default512
Environment probe's render resolution.
Should be power of 2 (doubles every time), starting from 4 minimum.
<EnvMapFilteredResolution>Type: Int32Default256
Seems not used.
<TextureMultipliers>Type: MyTextureDebugMultipliersDefault(see deeper)
Various multipliers for graphical properties of materials.
<AlbedoMultiplier>Type: SingleDefault1.0
<MetalnessMultiplier>Type: SingleDefault1.0
<GlossMultiplier>Type: SingleDefault1.0
<AoMultiplier>Type: SingleDefault1.0
<EmissiveMultiplier>Type: SingleDefault1.0
<ColorMaskMultiplier>Type: SingleDefault1.0
<AlbedoShift>Type: SingleDefault0.0
<MetalnessShift>Type: SingleDefault0.0
<GlossShift>Type: SingleDefault0.0
<AoShift>Type: SingleDefault0.0
<EmissiveShift>Type: SingleDefault0.0
<ColorMaskShift>Type: SingleDefault0.0
<ColorizeHSV>Type: Vector4Default0, 0.8, -0.1, 0
Only X,Y,Z used as additive.
Example with code defaults:
<SunProperties>
  <SunIntensity>1.0</SunIntensity>
  <EnvironmentLight>
    <SunColor>
      <X>1</X>
      <Y>1</Y>
      <Z>1</Z>
    </SunColor>
	<SunSpecularColor>
      <X>1</X>
      <Y>1</Y>
      <Z>1</Z>
    </SunSpecularColor>
    <SunSpecularFactor>1.0</SunSpecularFactor>
    <SunDiffuseFactor>2.9</SunDiffuseFactor>
    <SunGlossFactor>1.0</SunGlossFactor>
	
    <SunDiscColor>
        <X>1.5</X>
        <Y>1.35</Y>
        <Z>1.0</Z>
    </SunDiscColor>
    <SunDiscColor2>
        <X>1.0</X>
        <Y>1.0</Y>
        <Z>1.0</Z>
    </SunDiscColor2>
    <SunDiscInnerDot>0.999</SunDiscInnerDot>
    <SunDiscOuterDot>0.996</SunDiscOuterDot>
    <SunDiscIntensity>0</SunDiscIntensity>

    <AmbientDiffuseFactor>1.0</AmbientDiffuseFactor>
    <AmbientSpecularFactor>2.4</AmbientSpecularFactor>
    <AmbientForwardPass>0.0</AmbientForwardPass>
    <AmbientGlobalMinimum>0</AmbientGlobalMinimum>
    <AmbientGlobalDensity>0</AmbientGlobalDensity>
    <AmbientGlobalMultiplier>0</AmbientGlobalMultiplier>
    <AmbientRadius>50.0</AmbientRadius>
    <AmbientLightsGatherRadius>15.0</AmbientLightsGatherRadius>
    <GlassAmbient>0</GlassAmbient>
    <ForwardDimDistance>3</ForwardDimDistance>

    <AODirLight>1</AODirLight>
    <AOIndirectLight>1</AOIndirectLight>
    <AOPointLight>0.7</AOPointLight>
    <AOSpotLight>0.7</AOSpotLight>

    <SkyboxBrightness>1.0</SkyboxBrightness>
    <ShadowFadeoutMultiplier>0.0</ShadowFadeoutMultiplier>
	
    <EnvSkyboxBrightness>5.0</EnvSkyboxBrightness>
    <EnvShadowFadeoutMultiplier>0</EnvShadowFadeoutMultiplier>
    <EnvAtmosphereBrightness>1.0</EnvAtmosphereBrightness>
  </EnvironmentLight>
  <EnvironmentProbe>
    <TimeOut>1</TimeOut>
    <DrawDistance>100</DrawDistance>
    <AmbientScale>0.1</AmbientScale>
    <AmbientMinClamp>0.02</AmbientMinClamp>
    <AmbientMaxClamp>0.3</AmbientMaxClamp>
  </EnvironmentProbe>
  <EnvMapResolution>512</EnvMapResolution>
  <EnvMapFilteredResolution>256</EnvMapFilteredResolution>
  <TextureMultipliers>
    <AlbedoMultiplier>1.0</AlbedoMultiplier>
    <MetalnessMultiplier>1.0</MetalnessMultiplier>
    <GlossMultiplier>1.0</GlossMultiplier>
    <AoMultiplier>1.0</AoMultiplier>
    <EmissiveMultiplier>1.0</EmissiveMultiplier>
    <ColorMaskMultiplier>1.0</ColorMaskMultiplier>
    <AlbedoShift>0.0</AlbedoShift>
    <MetalnessShift>0.0</MetalnessShift>
    <GlossShift>0.0</GlossShift>
    <AoShift>0.0</AoShift>
    <EmissiveShift>0.0</EmissiveShift>
    <ColorMaskShift>0.0</ColorMaskShift>
    <ColorizeHSV>
      <X>0.0</X>
      <Y>0.8</Y>
      <Z>-0.1</Z>
      <W>0.0</W>
	</ColorizeHSV>
  </TextureMultipliers>
  <BaseSunDirectionNormalized>
    <X>0.339467347</X>
    <Y>0.709795356</Y>
    <Z>-0.617213368</Z>
  </BaseSunDirectionNormalized>
  <SunDirectionNormalized>
    <X>0.339467347</X>
    <Y>0.709795356</Y>
    <Z>-0.617213368</Z>
  </SunDirectionNormalized>
</SunProperties>

FogProperties

<FogProperties>
Type: MyFogPropertiesDefault(shown in example)
Fog settings for the vacuum of space.
<FogMultiplier>Type: SingleDefault0.13
<FogDensity>Type: SingleDefault0.003
<FogColor>Type: Vector3Default0,0,0
<FogSkybox>Type: SingleDefault0.0
<FogAtmo>Type: SingleDefault0.0
Example with code defaults:
<FogProperties>
  <FogMultiplier>0.13</FogMultiplier>
  <FogDensity>0.003</FogDensity>
  <FogColor>
    <X>0.0</X>
    <Y>0.0</Y>
    <Z>0.0</Z>
  </FogColor>
  <FogSkybox>0.0</FogSkybox>
  <FogAtmo>0.0</FogAtmo>
</FogProperties>

PlanetProperties

<PlanetProperties>
Type: MyPlanetPropertiesDefault(shown in example)
Some settings affecting all planets.
<AtmosphereIntensityMultiplier>Type: SingleDefault35.0
<AtmosphereIntensityAmbientMultiplier>Type: SingleDefault35.0
<AtmosphereDesaturationFactorForward>Type: SingleDefault0.5
<CloudsIntensityMultiplier>Type: SingleDefault40.0
Example with code defaults:
<PlanetProperties>
  <AtmosphereIntensityMultiplier>35.0</AtmosphereIntensityMultiplier>
  <AtmosphereIntensityAmbientMultiplier>35.0</AtmosphereIntensityAmbientMultiplier>
  <AtmosphereDesaturationFactorForward>0.5</AtmosphereDesaturationFactorForward>
  <CloudsIntensityMultiplier>40.0</CloudsIntensityMultiplier>
</PlanetProperties>

EnvironmentalParticles

<EnvironmentalParticles>
Type(list)Default(empty)
Configuration for some very specific "particle" logic systems which are rather old as they use CPU billboards, not the newer GPU-accelerated particles.

Each <ParticleType> can have:

<Id>Type: SerializableDefinitionIdDefault(invalid)
Syntax example:
<Id Type="EnvironmentalParticleLogicSpace" Subtype="SpaceParticles" />

The available Types:

  • EnvironmentalParticleLogicSpace - little dust particles near camera when flying in space.
  • EnvironmentalParticleLogicFireFly - broken code ending up doing nothing.
  • EnvironmentalParticleLogicGrassland - does not exist in game code, likely remnant from Medieval Engineers.
It is unclear if the subtype is used for anything special.
<Material>Type: StringDefaultnull
SubtypeId of a TransparentMaterial Definition.
<ParticleColor>Type: Vector4Default0,0,0,0
Usage:
<ParticleColor x="0.0" y="0.0" z="0.0" />
X/Y/Z are Right/Up/Back for positive values, and they're in meters.
<MaterialPlanet>Type: StringDefaultnull
Only used by EnvironmentalParticleLogicSpace type, but its feature to show them in natural gravity is turned off (hardcoded), therefore this is not used.
<ParticleColorPlanet>Type: Vector4Default0,0,0,0
Only used by EnvironmentalParticleLogicSpace type, but its feature to show them in natural gravity is turned off (hardcoded), therefore this is not used.
<MaxSpawnDistance>Type: SingleDefault0
<DespawnDistance>Type: SingleDefault0
<Density>Type: SingleDefault0
<MaxLifeTime>Type: Int32Default0
<MaxParticles>Type: Int32Default0

Graphics

ShadowSettings

<ShadowSettings>
Type: MyShadowsSettingsDefault(see deeper)
<Data>Type: MyShadowsSettings.StructDefault(see deeper)
<UpdateCascadesEveryFrame>Type: BooleanDefaultfalse
<EnableShadowBlur>Type: BooleanDefaulttrue
<ShadowCascadeMaxDistance>Type: SingleDefault300
<ShadowCascadeMaxDistanceMultiplierMedium>Type: SingleDefault2
<ShadowCascadeMaxDistanceMultiplierHigh>Type: SingleDefault3.5
<ShadowCascadeMaxDistanceMultiplierExtreme>Type: SingleDefault0
<ShadowCascadeSpreadFactor>Type: SingleDefault0.5
<ShadowCascadeZOffset>Type: SingleDefault400
<ReflectorShadowDistanceLow>Type: SingleDefault0.2
<ReflectorShadowDistanceMedium>Type: SingleDefault0.4
<ReflectorShadowDistanceHigh>Type: SingleDefault0.8
<ReflectorShadowDistanceExtreme>Type: SingleDefault0
<LightDirectionDifferenceThreshold>Type: SingleDefault0.0175
<LightDirectionChangeDelayMultiplier>Type: SingleDefault18
<ZBias>Type: SingleDefault0.01
<CascadesCount>Type: Int32Default6
Obsolete elements
<DisplayFrozenShadowCascade>Type: -Default-
No longer exists.
<ShowShadowCascadeSplits>Type: -Default-
No longer exists.
<ShadowCascadeSmallSkipThresholds>Type: Single[]Default(see example)
<Cascades>Type: MyShadowsSettings.Cascade[]Default(see example)
Each <Cascade> can have:
<FullCoverageDepth>Type: SingleDefault0
<ExtendedCoverageDepth>Type: SingleDefault0
<ShadowNormalOffset>Type: SingleDefault0
<SkippingSmallObjectThreshold>Type: SingleDefault0
Example with code defaults:
<ShadowSettings>
  <Data>
    <UpdateCascadesEveryFrame>false</UpdateCascadesEveryFrame>
    <EnableShadowBlur>true</EnableShadowBlur>
    <ShadowCascadeMaxDistance>300</ShadowCascadeMaxDistance>
    <ShadowCascadeMaxDistanceMultiplierMedium>2</ShadowCascadeMaxDistanceMultiplierMedium>
    <ShadowCascadeMaxDistanceMultiplierHigh>3.5</ShadowCascadeMaxDistanceMultiplierHigh>
    <ShadowCascadeMaxDistanceMultiplierExtreme>0</ShadowCascadeMaxDistanceMultiplierExtreme>
    <ShadowCascadeSpreadFactor>0.5</ShadowCascadeSpreadFactor>
    <ShadowCascadeZOffset>400</ShadowCascadeZOffset>
    <ReflectorShadowDistanceLow>0.2</ReflectorShadowDistanceLow>
    <ReflectorShadowDistanceMedium>0.4</ReflectorShadowDistanceMedium>
    <ReflectorShadowDistanceHigh>0.8</ReflectorShadowDistanceHigh>
    <ReflectorShadowDistanceExtreme>0</ReflectorShadowDistanceExtreme>
    <LightDirectionDifferenceThreshold>0.0175</LightDirectionDifferenceThreshold>
    <LightDirectionChangeDelayMultiplier>18</LightDirectionChangeDelayMultiplier>
    <ZBias>0.01</ZBias>
    <CascadesCount>6</CascadesCount>
  </Data>
  <ShadowCascadeSmallSkipThresholds>
    <Value>1000</Value>
    <Value>5000</Value>
    <Value>200</Value>
    <Value>1000</Value>
    <Value>1000</Value>
    <Value>1000</Value>
  </ShadowCascadeSmallSkipThresholds>
  <Cascades>
    <Cascade>
      <FullCoverageDepth>5</FullCoverageDepth>
      <ExtendedCoverageDepth>10</ExtendedCoverageDepth>
      <ShadowNormalOffset>0.009234829</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>25</FullCoverageDepth>
      <ExtendedCoverageDepth>50</ExtendedCoverageDepth>
      <ShadowNormalOffset>0.0356200524</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>125</FullCoverageDepth>
      <ExtendedCoverageDepth>250</ExtendedCoverageDepth>
      <ShadowNormalOffset>0.167546168</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>625</FullCoverageDepth>
      <ExtendedCoverageDepth>1250</ExtendedCoverageDepth>
      <ShadowNormalOffset>0.8271768</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>3125</FullCoverageDepth>
      <ExtendedCoverageDepth>6250</ExtendedCoverageDepth>
      <ShadowNormalOffset>4.12533</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>15625</FullCoverageDepth>
      <ExtendedCoverageDepth>31250</ExtendedCoverageDepth>
      <ShadowNormalOffset>20.6160946</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>78125</FullCoverageDepth>
      <ExtendedCoverageDepth>156250</ExtendedCoverageDepth>
      <ShadowNormalOffset>103.069923</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
    <Cascade>
      <FullCoverageDepth>390625</FullCoverageDepth>
      <ExtendedCoverageDepth>781250</ExtendedCoverageDepth>
      <ShadowNormalOffset>515.33905</ShadowNormalOffset>
      <SkippingSmallObjectThreshold>0</SkippingSmallObjectThreshold>
    </Cascade>
  </Cascades>
</ShadowSettings>

SSAOSettings

<SSAOSettings>
Type: MySSAOSettingsDefault(see deeper)
Screen-space ambient occlusion settings. Possibly not used when HBAO is enabled.
<MinRadius>Type: SingleDefault0.08
<MaxRadius>Type: SingleDefault93.374
<RadiusGrowZScale>Type: SingleDefault3.293
<Falloff>Type: SingleDefault10
<RadiusBias>Type: SingleDefault0.38
<Contrast>Type: SingleDefault4.347
<Normalization>Type: SingleDefault1.084
<ColorScale>Type: SingleDefault0.6
Example with code defaults:
<SSAOSettings>
  <Data>
    <MinRadius>0.08</MinRadius>
    <MaxRadius>93.374</MaxRadius>
    <RadiusGrowZScale>3.293</RadiusGrowZScale>
    <Falloff>10</Falloff>
    <RadiusBias>0.38</RadiusBias>
    <Contrast>4.347</Contrast>
    <Normalization>1.084</Normalization>
    <ColorScale>0.6</ColorScale>
  </Data>
</SSAOSettings>

HBAOSettings

<HBAOSettings>
Type: MyHBAODataDefault(see deeper)
Horizon-based ambient occlusion settings.
<Enabled>Type: BooleanDefaulttrue
<Radius>Type: SingleDefault2
<Bias>Type: SingleDefault0.2
<LargeScaleAO>Type: SingleDefault1
<SmallScaleAO>Type: SingleDefault1
<PowerExponent>Type: SingleDefault5
<AdaptToFOV>Type: BooleanDefaulttrue
<BackgroundAOEnable>Type: BooleanDefaulttrue
<BackgroundViewDepth>Type: SingleDefault200
<BlurEnable>Type: BooleanDefaulttrue
<BlurRadius4>Type: BooleanDefaulttrue
<BlurSharpness>Type: SingleDefault1
<BlurSharpnessFunctionBackgroundViewDepth>Type: SingleDefault1
<BlurSharpnessFunctionEnable>Type: BooleanDefaultfalse
<BlurSharpnessFunctionForegroundScale>Type: SingleDefault4
<BlurSharpnessFunctionForegroundViewDepth>Type: SingleDefault0
<DepthClampToEdge>Type: BooleanDefaultfalse
<DepthThreshold>Type: SingleDefault0
<DepthThresholdEnable>Type: BooleanDefaultfalse
<DepthThresholdSharpness>Type: SingleDefault100
<ForegroundAOEnable>Type: BooleanDefaulttrue
<ForegroundViewDepth>Type: SingleDefault7
<UseGBufferNormals>Type: BooleanDefaultfalse
Example with code defaults:
<HBAOSettings>
  <Enabled>true</Enabled>
  <Radius>2</Radius>
  <Bias>0.2</Bias>
  <SmallScaleAO>1</SmallScaleAO>
  <LargeScaleAO>1</LargeScaleAO>
  <PowerExponent>5</PowerExponent>
  <UseGBufferNormals>false</UseGBufferNormals>
  <ForegroundAOEnable>true</ForegroundAOEnable>
  <ForegroundViewDepth>7</ForegroundViewDepth>
  <BackgroundAOEnable>true</BackgroundAOEnable>
  <AdaptToFOV>true</AdaptToFOV>
  <BackgroundViewDepth>200</BackgroundViewDepth>
  <DepthClampToEdge>false</DepthClampToEdge>
  <DepthThresholdEnable>false</DepthThresholdEnable>
  <DepthThreshold>0</DepthThreshold>
  <DepthThresholdSharpness>100</DepthThresholdSharpness>
  <BlurEnable>true</BlurEnable>
  <BlurRadius4>true</BlurRadius4>
  <BlurSharpness>1</BlurSharpness>
  <BlurSharpnessFunctionEnable>false</BlurSharpnessFunctionEnable>
  <BlurSharpnessFunctionForegroundScale>4</BlurSharpnessFunctionForegroundScale>
  <BlurSharpnessFunctionForegroundViewDepth>0</BlurSharpnessFunctionForegroundViewDepth>
  <BlurSharpnessFunctionBackgroundViewDepth>1</BlurSharpnessFunctionBackgroundViewDepth>
</HBAOSettings>

PostProcessSettings

<PostProcessSettings>
Type: MyPostprocessSettingsDefault(see example)
<BloomEnabled>Type: BooleanDefaulttrue
Bloom is a glow around relatively bright objects.

Relative meaning in a dark room the control panels of blocks will have bloom, however in direct sunlight they will not because their brightness is very weak relative to the sunlight.

Requires the player to have post-processing enabled.
<BloomSize>Type: Int32Default6
How far the glare goes outside of the glowing object. Possibly a multiplier of the object size on screen.
<HighQualityBloom>Type: BooleanDefaulttrue
Affects the resolution seen by the bloom shader (therefore also the resulting bloom quality).
If false it will be a quarter of the screen resolution.
<BloomAntiFlickerFilter>Type: BooleanDefaulttrue
Applies a filter to reduce bloom flickering from camera motion which as a side effect reduces bloom intensity a bit.
<ChromaticIterations>Type: Int32Default4
Used for chromatic aberration.

More iterations is slower but makes for a smoother transition between color shades. Higher numbers have diminishing returns especially for low <ChromaticFactor> values.

Requires the player to have post-processing enabled.
<DirtTexture>Type: StringDefault(empty)
A grayscale texture used as a dirt map on the whole screen which gets lit by light flares and bloom, that also means bloom is required for this.

Path to a .dds file but only in game folder.

Used in conjunction with <BloomDirtRatio>.
<EnableTonemapping>Type: BooleanDefaulttrue
<EnableEyeAdaptation>Type: BooleanDefaultfalse
<EyeAdaptationPrioritizeScreenCenter>Type: BooleanDefaultfalse
<MinEyeAdaptationLogBrightness>Type: SingleDefault-1
<MaxEyeAdaptationLogBrightness>Type: SingleDefault2
<Temperature>Type: SingleDefault6500
<HistogramFilterMin>Type: SingleDefault70
<HistogramFilterMax>Type: SingleDefault95
<HistogramLogMin>Type: SingleDefault-4
<HistogramLogMax>Type: SingleDefault4
<HistogramLuminanceThreshold>Type: SingleDefault0
<HistogramSkyboxFactor>Type: SingleDefault0.5
<Data>Type: LayoutDefault(see deeper)
<BloomDirtRatio>Type: SingleDefault0.5
Ratio between showing bloom and showing <DirtTexture>, if it has a valid texture then at 1.0 it shows only the dirt texture and at 0.0 it shows only bloom, otherwise this does nothing.
<BloomMult>Type: SingleDefault0.28
Bloom intensity/magnitude.
<BloomLumaThreshold>Type: SingleDefault0.16
Minimum luminosity for a pixel to get bloom.
<BloomExposure>Type: SingleDefault5.8
<BloomDepthSlope>Type: SingleDefault0.3
<BloomDepthStrength>Type: SingleDefault2
<BloomEmissiveness>Type: SingleDefault1
<ChromaticFactor>Type: SingleDefault0.1
Affects the intensity chromatic aberration effect.
Higher numbers drag more of the screen edges outwards leaving behind RGB "artefacts".
<Brightness>Type: SingleDefault1
<BrightnessFactorB>Type: SingleDefault1
<BrightnessFactorG>Type: SingleDefault1
<BrightnessFactorR>Type: SingleDefault1
<LightColor>Type: Vector3DefaultX:1 Y:0.9 Z:0.5
<LuminanceExposure>Type: SingleDefault1
<ConstantLuminance>Type: SingleDefault0.1
<Contrast>Type: SingleDefault1
<Saturation>Type: SingleDefault1
<Vibrance>Type: SingleDefault0
<WhitePoint>Type: SingleDefault6
<DarkColor>Type: Vector3DefaultX:0.2 Y:0.05 Z:0
<TemperatureColor>Type: Vector3DefaultX:0 Y:0 Z:0
<TemperatureStrength>Type: SingleDefault0
<EyeAdaptationSpeedDown>Type: SingleDefault1
<EyeAdaptationSpeedUp>Type: SingleDefault2
<EyeAdaptationTau>Type: SingleDefault0.3
<GrainAmount>Type: SingleDefault0.1
<GrainSize>Type: Int32Default1
<GrainStrength>Type: SingleDefault0
<SepiaStrength>Type: SingleDefault0
<VignetteStart>Type: SingleDefault2
A camera effect where the corners of the screen become darker.

Larger values make a more intense tunnel-vision effect.

0 to disable.
<VignetteLength>Type: SingleDefault2
Must not be set to 0 otherwise the whole screen becomes black regardless of <VignetteStart>.
Affects how sharp the transition is between the middle hole and the edge darkness, higher values make it sharper, at around 10 it's still got about 5% of screen width as fade.
<Res0>Type: SingleDefault0
<Res1>Type: SingleDefault0
<Res2>Type: SingleDefault0
Obsolete elements
<LogLumThreshold>Type: -Default-
Does not exist anymore.
Example with code defaults:
<PostProcessSettings>
  <EnableTonemapping>true</EnableTonemapping>
  <EnableEyeAdaptation>true</EnableEyeAdaptation>
  <HighQualityBloom>true</HighQualityBloom>
  <BloomAntiFlickerFilter>true</BloomAntiFlickerFilter>
  <BloomSize>4</BloomSize>
  <HistogramLogMin>-6</HistogramLogMin>
  <HistogramLogMax>6</HistogramLogMax>
  <HistogramFilterMin>25</HistogramFilterMin>
  <HistogramFilterMax>98</HistogramFilterMax>
  <HistogramSkyboxFactor>0.25</HistogramSkyboxFactor>
  <MinEyeAdaptationLogBrightness>-5.0</MinEyeAdaptationLogBrightness>
  <MaxEyeAdaptationLogBrightness>5.0</MaxEyeAdaptationLogBrightness>
  <DirtTexture>Textures\SunGlare\Dirt.dds</DirtTexture>
  <ChromaticIterations>2</ChromaticIterations>
  <EyeAdaptationPrioritizeScreenCenter>true</EyeAdaptationPrioritizeScreenCenter>
  <Data>
    <BloomExposure>5.8</BloomExposure>
    <BloomLumaThreshold>0.16</BloomLumaThreshold>
    <BloomMult>0.28</BloomMult>
    <BloomDirtRatio>0.5</BloomDirtRatio>
    <BloomEmissiveness>1</BloomEmissiveness>
    <BloomDepthStrength>2</BloomDepthStrength>
    <BloomDepthSlope>0.3</BloomDepthSlope>
    <ChromaticFactor>0.1</ChromaticFactor>
    <BrightnessFactorR>1</BrightnessFactorR>
    <BrightnessFactorG>1</BrightnessFactorG>
    <BrightnessFactorB>1</BrightnessFactorB>
    <Contrast>1</Contrast>
    <Brightness>1</Brightness>
    <WhitePoint>6</WhitePoint>
    <ConstantLuminance>0.1</ConstantLuminance>
    <LuminanceExposure>1</LuminanceExposure>
    <Saturation>1</Saturation>
    <TemperatureColor>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
    </TemperatureColor>
    <TemperatureStrength>0</TemperatureStrength>
    <Vibrance>0</Vibrance>
    <EyeAdaptationTau>0.3</EyeAdaptationTau>
    <LightColor>
      <X>1</X>
      <Y>0.9</Y>
      <Z>0.5</Z>
    </LightColor>
    <DarkColor>
      <X>0.2</X>
      <Y>0.05</Y>
      <Z>0</Z>
    </DarkColor>
    <SepiaStrength>0</SepiaStrength>
    <EyeAdaptationSpeedUp>2</EyeAdaptationSpeedUp>
    <EyeAdaptationSpeedDown>1</EyeAdaptationSpeedDown>
    <GrainSize>1</GrainSize>
    <GrainAmount>0.1</GrainAmount>
    <GrainStrength>0</GrainStrength>
    <VignetteStart>2</VignetteStart>
    <VignetteLength>2</VignetteLength>
    <Res0>0</Res0>
    <Res1>0</Res1>
    <Res2>0</Res2>
  </Data>
</PostProcessSettings>

LowLoddingSettings

<LowLoddingSettings>
Type: MyNewLoddingSettingsDefaultMyNewLoddingSettings
Changes the level-of-detail settings for low model quality.
Not recommended to change.

MediumLoddingSettings

<MediumLoddingSettings>
Type: MyNewLoddingSettingsDefaultMyNewLoddingSettings
Changes the level-of-detail settings for medium model quality.
Not recommended to change.

HighLoddingSettings

<HighLoddingSettings>
Type: MyNewLoddingSettingsDefaultMyNewLoddingSettings
Changes the level-of-detail settings for high model quality.
Not recommended to change.

ExtremeLoddingSettings

<ExtremeLoddingSettings>
Type: MyNewLoddingSettingsDefaultMyNewLoddingSettings
Changes the level-of-detail settings for photo-mode model quality.
Not recommended to change.

(Top) | From DefinitionBase:

Common

Id

<Id>
Type: SerializableDefinitionIdDefault(invalid)
The type and subtype combined make up a unique identifier for this definition.

If two definitions use the same Type+Subtype (Subtypes are only unique per Type), then the last to load will override the first one(s). For more details see Things to know about SBC.

<TypeId>Type: stringDefault(invalid)
Must be an existing type with or without the "MyObjectBuilder_" prefix.

Some types require an xsi:type, refer to the vanilla files for the exact pairing.

TypeId vs xsi:type
<SubtypeId>Type: stringDefault(empty)
This can be invented and only needs to be unique per TypeId.

Vanilla game re-uses some subtypes over multiple types (e.g. Iron is used for Ore type and Ingot type).

An empty value is also a valid subtype (which vanilla also uses on at least 5 blocks).
Type (attribute[1])Type: stringDefault(invalid)
Same behavior as <TypeId>, do not define both.
Subtype (attribute[1])Type: stringDefault(empty)
Same behavior as <SubtypeId>, do not define both.
Example:
<Id>
  <TypeId>CubeBlock</TypeId>
  <SubtypeId>FancyTable</SubtypeId>
</Id>

Because it has attribute alternatives it can also be declared as:

<Id Type="CubeBlock" Subtype="FancyTable" />

DisplayName

<DisplayName>
Type: StringDefaultnull
If the object defined here is visible anywhere in the game GUI, this would be the name shown for it. In cases where it is used, it is very much required.

Can be plain-text.
If the text contains DisplayName_ then:

Description

<Description>
Type: StringDefaultnull
Optional. If the object defined here is shown with a description in the game GUI (Hotbar/G-menu, HUD, etc) then this is the place to write it.

Can be plain-text.
If the text contains Description_ then:

If the final text (plain, localized or variable-replaced) contains {0}, {1}, etc, then they will replaced by kb&m control binds defined in <DescriptionArgs>.

DescriptionArgs

<DescriptionArgs>
Type: StringDefaultnull
Optional. A comma-separated list of control IDs which are referenced in <Description> by {number} tags, which then get replaced by the keyboard or mouse bind that the viewer has for those controls.
Example:
<Description>Press {0} to fire, {1} to change color, {2} to interact.</description>
<DescriptionArgs>PRIMARY_TOOL_ACTION,CUBE_COLOR_CHANGE,USE</DescriptionArgs>

And each player will see their current binds for those actions.

The control IDs can be found in your %appdata%/SpaceEngineers/SpaceEngineers.cfg at the ControlsButtons section.

Icon

<Icon>
Type: String[]Defaultnull
Icon(s) for the definition which may or may not be used depending on the definition type.

Path to a .dds or .png file relative to current mod's folder. Falls back to game folder if not found in current mod. Referencing assets in other mods

Can be declared multiple times which will stack icons on top of eachother, however it will not work for all definitions.

Known definitions to work or not work with multiple icons
  • Working: Blocks, BlockVariantGroups and component items seen in G-menu, BlockInfo (HUD right side) and toolbars; Blueprints in terminal production tab; Blocks and PhysicalItems in gamepad HUD.
  • Partial: Blocks seen in terminal.
  • Not working: HandItems (uses PhysicalItem's icon instead); Blocks and BlockVariantGroups seen in build planner, radial menu and some economy GUIs; PhysicalItems in economy GUIs and stores; Prefabs in stores; BlueprintClass (tabs) in terminal production tab; BankingSystemDefinition (Game\BankingSystem.sbc); Emotes (both kinds of definitions) in gamepad HUD; Block skins; RespawnShips.
  • Special cases: Economy contracts, FactionIcons Definition.

DLC

<DLC>
Type: String[]Defaultnull
Optional. The DLC subtypeId that this definition will require.

For the IDs, refer to <SE>\Content\Data\Game\DLCs.sbc.
Can be declared multiple times to require multiple DLCs.

Most definition types won't check for this, the ones that do: blocks, emotes and possibly anything else that can be placed in the toolbar.

AvailableInSurvival

<AvailableInSurvival>
Type: BooleanDefaulttrue
Depends on the definition if it uses this, and if it does then this determines whether it can be accessible in survival game mode.

Currently known definitions that do use this:

Public

<Public>
Type: BooleanDefaulttrue
If the definition is visible or accessible in some cases.
For blocks, this only hides them and they can still be built using projectors and other means.

Enabled

Enabled (attribute[1])
Type: BooleanDefaulttrue
If set to false it will remove the definition after it's been loaded.
Example usage:
<Definition Enabled="false">

The "Definition" above is the opening element that for the entire definition, not an inner node like <DisplayName> is.

The opening node can have a different name for other definitions, some examples <Component>, <Blueprint>, etc.

xsi:type

xsi:type (attribute[1])
Type: stringDefaultnull

Name of an object that this definition will be deserialized as.
Sometimes required, depends on the definition. The wiki page for any given definition will mention at the top what xsi:type it requires, if any. The game's sbc files are also a reference on what xsi:types are required for a given definition.

This attribute is available on all elements and comes from the XML specification. This game relies on this attribute to change which sub-definition object is used to deserialize that element's contents. It's what allows, for example, a thruster to have unique elements (such as <MinPlanetaryInfluence>) that no other block definitions have.

For more details on how this relates to the TypeId, and usage examples, see: Things to know about SBC - TypeId vs xsi:type.