Skip to content

Damage Types

Overview

Damage types form an inheritance hierarchy used by the combat system to determine resistances, effects, and penalties. Each damage type file can declare a Parent and Inherits field to extend another type’s properties. Leaf types (e.g. Fire, Slashing) are what weapons and abilities actually deal; the root types (Physical, Elemental, Environment) exist solely to define shared sub-type behaviour.

File Location

Assets/Server/Entity/Damage/

One JSON file per damage type:

Assets/Server/Entity/Damage/
Physical.json
Elemental.json
Environment.json
Environmental.json
Bludgeoning.json (implicit — no standalone file; defined inline)
Slashing.json
Fire.json
Ice.json
Poison.json
Projectile.json
Fall.json
Drowning.json
Suffocation.json
OutOfWorld.json
Command.json

Schema

FieldTypeRequiredDefaultDescription
ParentstringNoThe ID of the parent damage type this type inherits from.
InheritsstringNoAdditional inheritance declaration (typically mirrors Parent).
DurabilityLossbooleanNofalseWhether hits of this type cause equipment durability loss.
StaminaLossbooleanNofalseWhether hits of this type deplete the target’s stamina.
BypassResistancesbooleanNofalseIf true, this damage type ignores all resistance calculations.
DamageTextColorstringNoHex colour used for floating damage numbers (e.g. "#00FF00" for poison).
$CommentstringNoInternal comment string, not used at runtime.

Hierarchy

(root)
├── Physical DurabilityLoss: true, StaminaLoss: true
│ ├── Slashing Parent: Physical
│ ├── Bludgeoning (inherited from Physical)
│ └── Piercing (inherited from Physical)
├── Elemental (base type for elemental sub-types)
│ ├── Fire Parent: Elemental
│ ├── Ice Parent: Elemental
│ └── Poison DamageTextColor: #00FF00
├── Projectile DurabilityLoss: true, StaminaLoss: false
├── Environment (base type)
│ ├── Fall Parent: Environment
│ └── Drowning Parent: Environment
├── Environmental DurabilityLoss: true, StaminaLoss: true, BypassResistances: false
│ (environmental hazards: thorns, cactus, etc.)
├── Suffocation
├── OutOfWorld
└── Command DurabilityLoss: false, StaminaLoss: false, BypassResistances: true

Type Descriptions

TypeParentDurabilityLossStaminaLossBypassResistancesNotes
PhysicaltruetruefalseRoot physical type; facilitates sub-types.
SlashingPhysicaltruetruefalseSword, axe damage.
ElementalfalsefalsefalseRoot elemental type; facilitates sub-types.
FireElementalfalsefalsefalseFire spell and ignition damage.
IceElementalfalsefalsefalseIce spell damage.
PoisonfalsefalsefalseGreen damage text (#00FF00).
ProjectiletruefalsefalseArrow and thrown projectile hits.
EnvironmentRoot type for environmental damage.
FallEnvironmentFall damage.
DrowningEnvironmentSuffocation in water.
EnvironmentaltruetruefalsePlant hazards (thorns, cactus).
CommandfalsefalsetrueAdmin/script-applied damage; bypasses all resistances.

Examples

Physical (Assets/Server/Entity/Damage/Physical.json):

{
"$Comment": "This damage type exists to facilitate sub types",
"DurabilityLoss": true,
"StaminaLoss": true
}

Slashing (Assets/Server/Entity/Damage/Slashing.json):

{
"Parent": "Physical",
"Inherits": "Physical"
}

Poison (Assets/Server/Entity/Damage/Poison.json):

{
"DamageTextColor": "#00FF00"
}

Command (Assets/Server/Entity/Damage/Command.json):

{
"DurabilityLoss": false,
"StaminaLoss": false,
"BypassResistances": true
}

Environmental (Assets/Server/Entity/Damage/Environmental.json):

{
"$Comment": "Damage type for environmental hazards like plants (bushes, cactus, etc.)",
"DurabilityLoss": true,
"StaminaLoss": true,
"BypassResistances": false
}