Character Definition
Defines a character, be it playable or otherwise.
Basics
Name<Name> | Type: String | Default: null |
Used as the character ID in certain cases and should be unique and recommended the same as the <SubtypeId>.Also used as the displayed name in wardrobe and supports localization. | ||
Model<Model> | Type: String | Default: null |
| The character model that contains the skeleton and visual mesh. Path to a .mwm file relative to current mod's folder. Falls back to game folder if not found in current mod. Referencing assets in other mods | ||
Mass<Mass> | Type: Single | Default: 100 |
| In kg. Does not affect jetpack flight. This is added to a ship when this engineer enters a cockpit, but only this - their inventory mass is not added. | ||
Gender<Gender> | Type: String | Default: Male |
| Used by Cockpit definition's <CharacterAnimations> to decide which animation set to use. Available options (case sensitive): Male, Female or anything else would use the default/shared animations. | ||
UsableByPlayer<UsableByPlayer> | Type: Boolean | Default: true |
| Whether players can choose this character in MedicalRoom block's wardrobe in survival. Always accessible in creative mode. | ||
Body
PhysicalMaterial<PhysicalMaterial> | Type: String | Default: Character |
SubtypeId of a PhysicalMaterial Definition (PhysicalMaterials.sbc).
Visit Collision Effects for more details on what it's used for in general. | ||
CharacterCollisionWidth<CharacterCollisionWidth> | Type: Single | Default: 1 |
| The radius of the collision capsule of the character. This together with <CharacterCollisionHeight> and <CharacterCollisionCrouchHeight> defines the physical size of the character, which is also required for bullet hits. | ||
CharacterCollisionHeight<CharacterCollisionHeight> | Type: Single | Default: 1.8 |
| The height of the collision capsule of the character, while standing. Note that <CharacterCollisionWidth> is subtracted from this and a hardcoded 0.13 is also subtracted. | ||
CharacterCollisionCrouchHeight<CharacterCollisionCrouchHeight> | Type: Single | Default: 1.25 |
| The height of the collision capsule of the character while crouching. Note that <CharacterCollisionWidth> is subtracted from this. | ||
CharacterCollisionScale<CharacterCollisionScale> | Type: Single | Default: 1 |
| Multiplies the value of <CharacterCollisionWidth> and <CharacterHeadSize> but not in all cases, recommended to leave as 1. | ||
CharacterHeadSize<CharacterHeadSize> | Type: Single | Default: 0.55 |
| Optional physical sphere, gets multiplied by <CharacterCollisionScale>. Shown as a white sphere in debug draw and can be set to 0 to remove. | ||
CharacterHeadHeight<CharacterHeadHeight> | Type: Single | Default: 0.25 |
Affects two things:
| ||
HeadServerOffset<HeadServerOffset> | Type: Single | Default: 1.4 |
Used by two things in different ways:
| ||
CrouchHeadServerOffset<CrouchHeadServerOffset> | Type: Single | Default: 1 |
Used by two things in different ways and only when character is crouching:
| ||
WeakPointBoneIndices<WeakPointBoneIndices> | Type: MySerializableList<Int32> | Default: null |
| List of <RagdollBonesMappings> indexes to tag as weak points for the purpose of taking bonus damage from ProjectileAmmo's headshot damage. The first entry from <RagdollBonesMappings> is 0. For example, if the character's head is the 3rd entry, then you enter 2 in this list. <WeakPointBoneIndices>
<int>2</int>
<!-- ... -->
</WeakPointBoneIndices>
| ||
Movement
MaxSprintSpeed<MaxSprintSpeed> | Type: Single | Default: 11 |
| Forward movement speed while sprinting, in m/s. This and all the movement speeds below are multiplied by world's CharacterSpeedMultiplier. | ||
MaxRunSpeed<MaxRunSpeed> | Type: Single | Default: 11 |
| Forward movement speed, in m/s. | ||
MaxRunStrafingSpeed<MaxRunStrafingSpeed> | Type: Single | Default: 11 |
| Sideways movement speed, in m/s. | ||
MaxBackrunSpeed<MaxBackrunSpeed> | Type: Single | Default: 11 |
| Backwards movement speed, in m/s. | ||
UseOnlyWalking<UseOnlyWalking> | Type: Boolean | Default: true |
| Forces character to always be in walking mode. | ||
MaxWalkSpeed<MaxWalkSpeed> | Type: Single | Default: 6 |
| Forward movement speed while walking, in m/s. | ||
MaxWalkStrafingSpeed<MaxWalkStrafingSpeed> | Type: Single | Default: 6 |
| Sideways movement speed while walking, in m/s. | ||
MaxBackwalkSpeed<MaxBackwalkSpeed> | Type: Single | Default: 6 |
| Backwards movement speed while walking, in m/s. | ||
CanCrouch<CanCrouch> | Type: Boolean | Default: true |
| Whether the character is allowed to crouch down. | ||
MaxCrouchWalkSpeed<MaxCrouchWalkSpeed> | Type: Single | Default: 4 |
| Forward movement speed while crouching, in m/s. | ||
MaxCrouchStrafingSpeed<MaxCrouchStrafingSpeed> | Type: Single | Default: 4 |
| Sideways movement speed while crouching, in m/s. | ||
MaxCrouchBackwalkSpeed<MaxCrouchBackwalkSpeed> | Type: Single | Default: 4 |
| Backwards movement speed while crouching, in m/s. | ||
MaxSlope<MaxSlope> | Type: Single | Default: 60 |
| Maximum slope angle the character can walk up on, in degrees. | ||
FootprintDecal<FootprintDecal> | Type: String | Default: (empty) |
| The name of a <Source> that's used by one or more DecalDefinitions (Decals*.sbc). Used when the left foot steps on a surface. | ||
FootprintMirroredDecal<FootprintMirroredDecal> | Type: String | Default: (empty) |
| The name of a <Source> that's used by one or more DecalDefinitions (Decals*.sbc). Used when the right foot steps on a surface. | ||
Camera
EnableFirstPersonView<EnableFirstPersonView> | Type: Boolean | Default: true |
| If first person view is allowed when controlling this character. | ||
HeadBone<HeadBone> | Type: String | Default: null |
| Bone name from inside the model, where the first person camera should be placed. | ||
Camera3rdBone<Camera3rdBone> | Type: String | Default: null |
| Name of the bone to use for 3rd person camera. If the specified bone is not found, it will use <HeadBone> instead. | ||
MaterialsDisabledIn1st<MaterialsDisabledIn1st> | Type: String[] | Default: null |
List of material names from the <Model> to not render when using first person view with this character.<MaterialsDisabledIn1st>
<Material>SomeMaterialName</Material>
<!-- ... -->
</MaterialsDisabledIn1st>
| ||
Animation
AnimationController<AnimationController> | Type: String | Default: null | ||||||||||||
SubtypeId for an AnimationController definition (AnimationControllers\AC_*.sbc).If left undefined or declared null, the character will be set to use the old animation system. | ||||||||||||||
AnimationMappings<AnimationMappings> | Type: MyMovementAnimationMapping[] | Default: null | ||||||||||||
Unknown exact usage, only the declaration format being a list:<AnimationMappings>
<Mapping Name="Walk" AnimationSubtypeName="Walk" />
<!-- ... -->
</AnimationMappings>
| ||||||||||||||
Skeleton<Skeleton> | Type: String | Default: Humanoid | ||||||||||||
If set to Humanoid then the wardrobe will show skin selection (steam items).Does not seem to be used for anything else, therefore can be anything you want for non-humanoids. | ||||||||||||||
SpineBone<SpineBone> | Type: String | Default: null | ||||||||||||
LeftUpperarmBone<LeftUpperarmBone> | Type: String | Default: null | ||||||||||||
RightUpperarmBone<RightUpperarmBone> | Type: String | Default: null | ||||||||||||
LeftForearmBone<LeftForearmBone> | Type: String | Default: null | ||||||||||||
RightForearmBone<RightForearmBone> | Type: String | Default: null | ||||||||||||
LeftHandItemBone<LeftHandItemBone> | Type: String | Default: null | ||||||||||||
| For left-handed items (not two-handed). | ||||||||||||||
RightHandItemBone<RightHandItemBone> | Type: String | Default: null | ||||||||||||
| Required to be found to be able to equip right-handed tools/weapons (which is all vanilla ones). It's not actually used for anything past this check. | ||||||||||||||
WeaponBone<WeaponBone> | Type: String | Default: null | ||||||||||||
| Bone name where the equipped right-handed tool/weapon is positioned and oriented. The item's <RightHandPosition> & <RightHandOrientation> are relative to this. | ||||||||||||||
BoneSets<BoneSets> | Type: MyBoneSetDefinition[] | Default: null | ||||||||||||
| A list of bone sets, unknown exact behavior.
Each
<BoneSets>
<BoneSet>
<Name>Head</Name>
<Bones>SE_RigHead SE_RigNeck1</Bones>
</BoneSet>
<!-- ... -->
</BoneSets>
| ||||||||||||||
BoneLODs<BoneLODs> | Type: MyBoneSetDefinition[] | Default: null | ||||||||||||
| A list of bone sets for LODs, unknown exact behavior.
Each
<BoneLODs>
<BoneSet>
<Name>10</Name>
<Bones>SE_RigHelmetGlassBone SE_RigPelvis SE_RigSpine1</Bones>
</BoneSet>
<!-- ... -->
</BoneLODs>
| ||||||||||||||
BendMultiplier1st<BendMultiplier1st> | Type: Single | Default: 1 | ||||||||||||
| Only used when <AnimationController> is undefined (old animation system). Affects spine rotation in first person. | ||||||||||||||
BendMultiplier3rd<BendMultiplier3rd> | Type: Single | Default: 1 | ||||||||||||
| Only used when <AnimationController> is undefined (old animation system). Affects spine rotation in 3rd person. | ||||||||||||||
InitialAnimation<InitialAnimation> | Type: String | Default: Idle | ||||||||||||
| Only used when <AnimationController> is undefined (old animation system). The animation to play when character spawns. | ||||||||||||||
Inverse-kinematics
LeftAnkleBoneName<LeftAnkleBoneName> | Type: String | Default: null |
| Exact bone name. Its Y (up) position is used in the feet inverse-kinematics, or falls back to character boundingbox center if not found. | ||
RightAnkleBoneName<RightAnkleBoneName> | Type: String | Default: null |
| Exact bone name. Its Y (up) position is used in the feet inverse-kinematics, or falls back to character boundingbox center if not found. | ||
AnkleHeightWhileStanding<AnkleHeightWhileStanding> | Type: Single | Default: 0.187 |
| Offset Y (up) for ankle bones in relation to feet inverse-kinematics, unclear what exactly it affects. | ||
LeftHandIKStartBone<LeftHandIKStartBone> | Type: String | Default: null |
LeftHandIKEndBone<LeftHandIKEndBone> | Type: String | Default: null |
RightHandIKStartBone<RightHandIKStartBone> | Type: String | Default: null |
RightHandIKEndBone<RightHandIKEndBone> | Type: String | Default: null |
Suit
VisibleOnHud<VisibleOnHud> | Type: Boolean | Default: true | ||||||||||||||||||||||||
| If false, the character spawns with their radio broadcaster turned off, but can still be turned on by the player. | ||||||||||||||||||||||||||
HUD<HUD> | Type: String | Default: null | ||||||||||||||||||||||||
<SubtypeId> for a HUD definition (HUD\Default.sbc) to use when controlling this character.Uses Default if undefined, empty or the specified subtypeId is not found. | ||||||||||||||||||||||||||
SuitResourceStorage<SuitResourceStorage> | Type: List<SuitResourceDefinition> | Default: null | ||||||||||||||||||||||||
The list of gases that the suit can store.
Each <Resource> entry can contain various elements:
<SuitResourceStorage>
<Resource>
<Id Type="GasProperties" Subtype="Oxygen" />
<Throughput>1000</Throughput>
<MaxCapacity>60</MaxCapacity>
<ReducedOnSpawn>0.2</ReducedOnSpawn>
</Resource>
<!-- ... --->
</SuitResourceStorage>
| ||||||||||||||||||||||||||
NeedsOxygen<NeedsOxygen> | Type: Boolean | Default: false | ||||||||||||||||||||||||
| Seems obsolete and would define if character needs oxygen from suit, which also seems to be the helmet toggle. Either way, it's only used if both of these conditions fail:
| ||||||||||||||||||||||||||
DamageAmountAtZeroPressure<DamageAmountAtZeroPressure> | Type: Single | Default: 7 | ||||||||||||||||||||||||
| Damage taken every ~1.66s when there's no oxygen anywhere. | ||||||||||||||||||||||||||
PressureLevelForLowDamage<PressureLevelForLowDamage> | Type: Single | Default: 0.5 | ||||||||||||||||||||||||
| Room or atmosphere pressure level (0.0 to 1.0) required to not take damage, anything under will take 1 damage every 1.66s. | ||||||||||||||||||||||||||
OxygenConsumption<OxygenConsumption> | Type: Single | Default: 10 | ||||||||||||||||||||||||
| The formula used: | ||||||||||||||||||||||||||
OxygenConsumptionMultiplier<OxygenConsumptionMultiplier> | Type: Single | Default: 1 | ||||||||||||||||||||||||
| A multiplier for <OxygenConsumption>. Seems redundant. | ||||||||||||||||||||||||||
OxygenSuitRefillTime<OxygenSuitRefillTime> | Type: Single | Default: 0 | ||||||||||||||||||||||||
| Must be higher than 0 to allow oxygen refill from within a pressurized room or planet oxygen atmosphere. Formula: Where oxygen level is usually 0.0 to 1.0. | ||||||||||||||||||||||||||
MinOxygenLevelForSuitRefill<MinOxygenLevelForSuitRefill> | Type: Single | Default: 0.75 | ||||||||||||||||||||||||
| Oxygen level (0.0 to 1.0 usually) required for automatic refill from pressurized room or planet oxygen atmosphere. | ||||||||||||||||||||||||||
SuitConsumptionInTemperatureExtreme<SuitConsumptionInTemperatureExtreme> | Type: Single | Default: 3 | ||||||||||||||||||||||||
| Additional suit power consumption when the environment temperature is at either extreme (Freeze or Inferno) and linearly scaled down to 0 when at Warm.
The value is in deci-watts (probably because of a bug), meaning the value entered here has to be 10 times smaller than the desired watts at extreme temperatures. Visit Temperature (section Temperature effects on the character) for details on how temperature and this element are calculated. Suit power consumption is calculated as follows:
Radio does not consume any power, but it does require the suit to have power in order to remain enabled. All of these are hardcoded and unlikely to be changeable by mod scripts either. Suit battery capacity is hardcoded to 10 Wh, and mod scripts can't change it either. | ||||||||||||||||||||||||||
EnabledComponents<EnabledComponents> | Type: String | Default: null | ||||||||||||||||||||||||
| List of entity components to add. Internally marked obsolete and points us to EntityContainers & EntityComponents SBCs, however the RagdollComponent and InventorySpawnComponent (which are also the only values this supports) aren't in those vanilla sbcs therefore requires experimenting if this can truly be discarded. <EnabledComponents>RagdollComponent InventorySpawnComponent</EnabledComponents>
| ||||||||||||||||||||||||||
Inventory<Inventory> | Type: (complex) | Default: null | ||||||||||||||||||||||||
Defines the inventory stats, contains:
<Inventory>
<InventoryVolume>0.4</InventoryVolume>
<InventoryMass>3.40282347E+38</InventoryMass>
</Inventory>
| ||||||||||||||||||||||||||
ReducedEnergyOnSpawn<ReducedEnergyOnSpawn> | Type: Single | Default: 0 | ||||||||||||||||||||||||
| Optional. Battery proportion (0 to 1) to have when spawning at medical room/survival kit. To use this must be higher than 0 and the world's <EnableReducedStatsOnRespawn> to be enabled. (Added in SE v1.207) | ||||||||||||||||||||||||||
Flying
Jetpack<Jetpack> | Type: (complex) | Default: null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jetpack properties, contains a complex structure:
<Jetpack>
<Thrusts>
<Thrust>
<ThrustBone>FrontJetpackDummy_01</ThrustBone>
<SideFlameOffset>0.1</SideFlameOffset>
<FrontFlameOffset>0.04</FrontFlameOffset>
</Thrust>
<Thrust>
<ThrustBone>BackJetpackDummy_01</ThrustBone>
<SideFlameOffset>0.1</SideFlameOffset>
<FrontFlameOffset>0.04</FrontFlameOffset>
</Thrust>
</Thrusts>
<ThrustProperties>
<ForceMagnitude>3200</ForceMagnitude>
<SlowdownFactor>5</SlowdownFactor>
<MinPowerConsumption>0.000000001</MinPowerConsumption>
<MaxPowerConsumption>0.0001</MaxPowerConsumption>
<ConsumptionFactorPerG>250</ConsumptionFactorPerG>
<MinPlanetaryInfluence>0</MinPlanetaryInfluence>
<MaxPlanetaryInfluence>1</MaxPlanetaryInfluence>
<EffectivenessAtMinInfluence>0.67</EffectivenessAtMinInfluence>
<EffectivenessAtMaxInfluence>1</EffectivenessAtMaxInfluence>
<NeedsAtmosphereForInfluence>false</NeedsAtmosphereForInfluence>
<FuelConverter>
<FuelId>
<TypeId>GasProperties</TypeId>
<SubtypeId>Hydrogen</SubtypeId>
</FuelId>
<Efficiency>1</Efficiency>
</FuelConverter>
<FlameIdleColor>
<X>0.08</X>
<Y>0.47</Y>
<Z>0.94</Z>
<W>0.75</W>
</FlameIdleColor>
<FlamePointMaterial>JetpackThrustMiddle</FlamePointMaterial>
<FlameLengthMaterial>JetpackThrustMiddle</FlameLengthMaterial>
</ThrustProperties>
</Jetpack>
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VerticalPositionFlyingOnly<VerticalPositionFlyingOnly> | Type: Boolean | Default: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If enabled and using jetpack it prevents rotating pitch and roll. The alignment is tied to gravity (both natural and artificial) and remains that way when going outside of gravity and can be re-aligned further with magboots. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RotationToSupport<RotationToSupport> | Type: (enum) | Default: None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Available values:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxForce<MaxForce> | Type: Nullable<Single> | Default: null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Something to do with limiting physical forces applied to the character by external sources. It's unclear because it goes into the Havok physics engine. If undefined or null it will use 100000. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ImpulseLimit<ImpulseLimit> | Type: Single | Default: Infinity | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Something to do with limiting physical impulses applied to the character by external sources. It's unclear because it goes into the Havok physics engine. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Weapon handling
CanIronsight<CanIronsight> | Type: Boolean | Default: true |
| Whether this character can aim down sights of hand-held weapons. | ||
RecoilJetpackDampeningDegPerS<RecoilJetpackDampeningDegPerS> | Type: Single | Default: 0 |
| Hand-weapon recoil dampening when using jetpack. | ||
Lights
LeftLightBone<LeftLightBone> | Type: String | Default: null |
Optional. The bone name used for the left headlamp glare and "volumetric cone" (both which are hardcoded to use Headlamp flare and ReflectorConeCharacter transparent material).If left as null or the bone is not found, it does not draw the glare and cone, the actual emitted light however is still present. | ||
RightLightBone<RightLightBone> | Type: String | Default: null |
| Same as <LeftLightBone> but for the right side. | ||
LightOffset<LightOffset> | Type: Vector3 | Default: {X:0 Y:0 Z:-0.5} |
| Offset for the headlight spotlight emitter (singular, it emits a single light not two), relative to character's <HeadBone> position. Example usage: <LightOffset>
<X>0.5</X>
<Y>0.0</Y>
<Z>0.0</Z>
</LightOffset>
Where X/Y/Z correspond to Right/Up/Back axis. | ||
Sounds
UsesAtmosphereDetector<UsesAtmosphereDetector> | Type: Boolean | Default: false |
| Provides various logic for atmosphere detection that affect realistic sounds. Probably only needed for playable characters. | ||
UsesReverbDetector<UsesReverbDetector> | Type: Boolean | Default: false |
| Provides various logic to detect nearby objects to provide reverb sound effects. Probably only needed for playable characters. | ||
LoopingFootsteps<LoopingFootsteps> | Type: Boolean | Default: false |
MovementSoundName<MovementSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played while the character is moving on the ground. | ||
FastFlySoundName<FastFlySoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played while the character is moving faster than 40m/s (either with or without jetpack). | ||
JetpackIdleSoundName<JetpackIdleSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played continuously while the jetpack is on, but not thrusting. | ||
JetpackRunSoundName<JetpackRunSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played continuously while the jetpack is on and thrusting. | ||
JumpSoundName<JumpSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played once when the character jumps. | ||
CrouchDownSoundName<CrouchDownSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played once when the character crouches down. | ||
CrouchUpSoundName<CrouchUpSoundName> | Type: String | Default: (empty) |
SubtypeId (without Arc or Real prefix) of an audio definition (Audio_*.sbc).Played once when the character stands up from a crouch. | ||
BreathCalmSoundName<BreathCalmSoundName> | Type: String | Default: (empty) |
BreathHeavySoundName<BreathHeavySoundName> | Type: String | Default: (empty) |
MagnetBootsEndSoundName<MagnetBootsEndSoundName> | Type: String | Default: (empty) |
MagnetBootsProximitySoundName<MagnetBootsProximitySoundName> | Type: String | Default: (empty) |
MagnetBootsStartSoundName<MagnetBootsStartSoundName> | Type: String | Default: (empty) |
MagnetBootsStepsSoundName<MagnetBootsStepsSoundName> | Type: String | Default: (empty) |
IronsightActSoundName<IronsightActSoundName> | Type: String | Default: (empty) |
IronsightDeactSoundName<IronsightDeactSoundName> | Type: String | Default: (empty) |
PainSoundName<PainSoundName> | Type: String | Default: (empty) |
DeathSoundName<DeathSoundName> | Type: String | Default: (empty) |
DeathBySuffocationSoundName<DeathBySuffocationSoundName> | Type: String | Default: (empty) |
SuffocateSoundName<SuffocateSoundName> | Type: String | Default: (empty) |
OxygenChokeCriticalSoundName<OxygenChokeCriticalSoundName> | Type: String | Default: (empty) |
OxygenChokeLowSoundName<OxygenChokeLowSoundName> | Type: String | Default: (empty) |
OxygenChokeNormalSoundName<OxygenChokeNormalSoundName> | Type: String | Default: (empty) |
HelmetOxygenCriticalSoundName<HelmetOxygenCriticalSoundName> | Type: String | Default: (empty) |
HelmetOxygenLowSoundName<HelmetOxygenLowSoundName> | Type: String | Default: (empty) |
HelmetOxygenNoneSoundName<HelmetOxygenNoneSoundName> | Type: String | Default: (empty) |
HelmetOxygenNormalSoundName<HelmetOxygenNormalSoundName> | Type: String | Default: (empty) |
Ragdoll
RagdollRootBody<RagdollRootBody> | Type: String | Default: (empty) | ||||||||||||||||||
| Expects a bone name to use as the root bone for the ragdoll. | ||||||||||||||||||||
RagdollDataFile<RagdollDataFile> | Type: String | Default: null | ||||||||||||||||||
| Only used if the character's model doesn't have havok data. Path in game folder (does not work in mods) to a .hkt file to use for the ragdoll. | ||||||||||||||||||||
RagdollBonesMappings<RagdollBonesMappings> | Type: MyRagdollBoneSetDefinition[] | Default: null | ||||||||||||||||||
| A list of bone sets that make up capsules. These capsules are used by ragdoll system in some way, but also by bullets when hitting this character. For the character to be hit, it first has to hit the physical capsule of the character, then it has to hit an actual triangle of the model and that has to be inside one of these capsules. One of these capsules can also be marked as a weakpoint in <WeakPointBoneIndices> to take bonus damage.
<RagdollBonesMappings>
<BoneSet>
<Name>Ragdoll_SE_rig_Pelvis001</Name>
<Bones>SE_RigPelvis SE_RigSpine1</Bones>
</BoneSet>
<!-- ... -->
</BoneLODs>
| ||||||||||||||||||||
RagdollPartialSimulations<RagdollPartialSimulations> | Type: MyBoneSetDefinition[] | Default: null | ||||||||||||||||||
| Used when flying or falling to flail the character's limbs. If a name is not present it will automatically fill in a hardcoded set of bones which happen to be the exact ones in the example (which is from the game sbc). Each
<RagdollPartialSimulations>
<BoneSet>
<Name>Jetpack</Name>
<Bones>Ragdoll_SE_rig_LUpperarm001 Ragdoll_SE_rig_LForearm001 Ragdoll_SE_rig_LPalm001 Ragdoll_SE_rig_RUpperarm001 Ragdoll_SE_rig_RForearm001 Ragdoll_SE_rig_RPalm001 Ragdoll_SE_rig_LThigh001 Ragdoll_SE_rig_LCalf001 Ragdoll_SE_rig_LFoot001 Ragdoll_SE_rig_RThigh001 Ragdoll_SE_rig_RCalf001 Ragdoll_SE_rig_RFoot001</Bones>
</BoneSet>
<BoneSet>
<Name>Jetpack_Weapon</Name>
<Bones>Ragdoll_SE_rig_LThigh001 Ragdoll_SE_rig_LCalf001 Ragdoll_SE_rig_LFoot001 Ragdoll_SE_rig_RThigh001 Ragdoll_SE_rig_RCalf001 Ragdoll_SE_rig_RFoot001</Bones>
</BoneSet>
</RagdollPartialSimulations>
| ||||||||||||||||||||
Dead body
LootingTime<LootingTime> | Type: Single | Default: 300 | ||||||||||||||||||||||||
| Seconds until the dead body vanishes. | ||||||||||||||||||||||||||
EnableSpawnInventoryAsContainer<EnableSpawnInventoryAsContainer> | Type: Boolean | Default: false | ||||||||||||||||||||||||
SpawnInventoryOnBodyRemoval<SpawnInventoryOnBodyRemoval> | Type: Boolean | Default: false | ||||||||||||||||||||||||
| Only used if <EnableSpawnInventoryAsContainer> is enabled. | ||||||||||||||||||||||||||
InventorySpawnContainerId<InventorySpawnContainerId> | Type: Nullable<SerializableDefinitionId> | Default: null | ||||||||||||||||||||||||
| Only used if <EnableSpawnInventoryAsContainer> is enabled. Has the same contents format as <Id> except of course the element name. | ||||||||||||||||||||||||||
DeadBodyShape<DeadBodyShape> | Type: DeadBodyShape | Default: null | ||||||||||||||||||||||||
Optional but does not seem to do anything different on engineer characters.
Contains more elements:
<DeadBodyShape>
<BoxShapeScale x="1.0" y="1.0" z="1.0" />
<RelativeCenterOfMass x="0.0" y="0.0" z="0.0" />
<RelativeShapeTranslation x="0.0" y="0.0" z="0.0" />
<Friction>20.0</Friction>
</DeadBodyShape>
| ||||||||||||||||||||||||||
(Top) | From DefinitionBase:
Common
Id<Id> | Type: SerializableDefinitionId | Default: (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.
<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: String | Default: null | ||||||||||||||||||||||||
| 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.
| ||||||||||||||||||||||||||
Description<Description> | Type: String | Default: null | ||||||||||||||||||||||||
| 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.
{0}, {1}, etc, then they will replaced by kb&m control binds defined in <DescriptionArgs>. | ||||||||||||||||||||||||||
DescriptionArgs<DescriptionArgs> | Type: String | Default: null | ||||||||||||||||||||||||
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. | ||||||||||||||||||||||||||
Icon<Icon> | Type: String[] | Default: null | ||||||||||||||||||||||||
| 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
| ||||||||||||||||||||||||||
DLC<DLC> | Type: String[] | Default: null | ||||||||||||||||||||||||
| Optional. The DLC subtypeId that this definition will require. For the IDs, refer to <SE>\Content\Data\Game\DLCs.sbc. | ||||||||||||||||||||||||||
AvailableInSurvival<AvailableInSurvival> | Type: Boolean | Default: true | ||||||||||||||||||||||||
| 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: Boolean | Default: true | ||||||||||||||||||||||||
| 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. | ||||||||||||||||||||||||||
EnabledEnabled (attribute[1]) | Type: Boolean | Default: true | ||||||||||||||||||||||||
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 <Component>, <Blueprint>, etc. | ||||||||||||||||||||||||||
xsi:typexsi:type (attribute[1]) | Type: string | Default: null | ||||||||||||||||||||||||
Name of an object that this definition will be deserialized as. 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 For more details on how this relates to the TypeId, and usage examples, see: Things to know about SBC - TypeId vs xsi:type. | ||||||||||||||||||||||||||
Obsolete Elements
Note: this list only contains root-level from this definition only, nothing from inherited ones.
| <JumpForce> | Type: Single | Default: 2.5 |
| Not used. Unclear how the jump height is actually determined because it's handled entirely by the Havok physics engine. | ||
| <FeetIKEnabled> | Type: Boolean | Default: false |
| Not used, leg inverse-kinematics are always enabled. | ||
| <ModelRootBoneName> | Type: String | Default: null |
| Not used. | ||
| <LeftHipBoneName> | Type: String | Default: null |
| Not used. | ||
| <RightHipBoneName> | Type: String | Default: null |
| Not used. | ||
| <LeftKneeBoneName> | Type: String | Default: null |
| Not used. | ||
| <RightKneeBoneName> | Type: String | Default: null |
| Not used. | ||
| <IKSettings> | Type: MyFeetIKSettings[] | Default: null |
| Not used except for some debug render code, likely Medieval Engineers leftover. | ||
| <FootLenght> | Type: - | Default: - |
| Seen in SBC but does not exist in game code at root level. It's in <IKSettings> however but that is also not used. | ||
| <FootWidth> | Type: - | Default: - |
| Seen in SBC but does not exist in game code at root level. It's in <IKSettings> however but that is also not used. | ||
| <AnkleHeight> | Type: - | Default: - |
| Seen in SBC but does not exist in game code at root level. It's in <IKSettings> however but that is also not used. | ||
| <ReachableDistanceBelowStanding> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <MaxRaisedFootHeightStanding> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <MaxFootPlacementDistanceStanding> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <ReachableDistanceBelowRunning> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <MaxRaisedFootHeightRunning> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <MaxFootPlacementDistanceRunning> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <FootOnGroundPostions> | Type: List<MyObjectBuilder_FootsPosition> | Default: null |
| Not used. | ||
| <LightGlareSize> | Type: Single | Default: 0.02 |
| Not used. | ||
| <ReflectorTexture> | Type: String | Default: Textures\Lights\reflector.dds |
Not used. Game hardcodedly uses the Textures\Lights\dual_reflector_2.png for the projected light texture, and ReflectorConeCharacter for the dual "volumetric light" cones. | ||
| <LeftGlare> | Type: String | Default: null |
Not used. Game hardcodedly uses the Headlamp flare definition. | ||
| <RightGlare> | Type: String | Default: null |
Not used. Game hardcodedly uses the Headlamp flare definition. | ||
| <StepSoundDelay> | Type: Int32 | Default: 100 |
| Not used. | ||
| <StepSoundInterval> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <MaxHealth> | Type: - | Default: - |
| Seen in SBC but does not exist in game code. | ||
| <BoneSet> | Type: - | Default: - |
| Seen in SBC but does not exist in game code, probably a mistake with <BoneSets>. | ||