Component Behavior
Health and Armor
SetComponentActive initializes PawnRef, validates authority, binds OnTakeAnyDamage, copies settings and subscribes to OnHealthUpdate. AddHealth clamps to MaxHealthValue + AdditionalHealthValue; AddArmor clamps to MaxArmorValue. Positive inputs are required by numerical helpers; removal floors at zero.
Each health pulse applies HealthDrainValue (component default 5) if CrossAffect.Health.Drain is active, then regenerates AddAmountHealth × HealthModifierValue unless StopRegeneration is present. No explicit Downed/Dead guard stops that pulse. Wounded tag tests do not consistently represent ordinary damage/recovery.
RemoveHealthValue first handles crossing MinHealthValue into Downed, resets all HealthStateTags, starts the downed timer and returns. A lethal hit from above the threshold therefore can report Downed at health zero before any Dead path. Life resets also remove armor tags; HandleDamageEvent depends on those tags and can then fail to select an armor/health damage branch.
Revive refuses Dead, otherwise resets to Alive/Wounded and adds a fixed 25 health. It does not require Downed. Timer expiration sets Dead and broadcasts OnDied without forcing HealthValue to zero. bUseDownedTimer is not checked in TriggerDownedTimer.
Food and Water
Food/Water add by the supplied positive amount, capped at their maxima. Pulse drain requires Hungry/Thirsty and multiplies configured ReduceAmountFood/Water by ReduceModifier, doubled by the corresponding HigherDrain affect. Neutral suppresses the whole drain. Starving/Dehydrated are added on threshold crossing and removed after replenishment above the minimum.
SetData initializes Neutral; activation subsequently sets Hungry+Thirsty. AddModifier is stored but not used by AddValue. ResetToDefaults while subscribed resets to Neutral and therefore changes future drain behavior.
Stamina and Fitness
Resting: adds 1.5 × effective stamina regeneration modifier and removes ReduceAmountFitness × StaminaModifierValue fitness. Moving without Running: normally regenerates the same stamina amount, or drains when DrainWithoutSprint is active; adds AddAmountFitness × StaminaModifierValue fitness. Moving+Running: drains the effective stamina drain modifier and adds 1.5 × AddAmountFitness × StaminaModifierValue fitness.
ReducedRegeneration halves regeneration; HigherDrain doubles drain. ReducedMaxStamina halves the configured base max when AddStaminaValue executes, then adds FitnessValue to that cap. Applying the affect does not immediately reclamp existing stamina; a later positive add can lower an over-cap value. AddAmountStamina/ReduceAmountStamina and FitnessModifierValue are not used by these pulse formulas.
Temperature
Cooling or ReduceTemperature takes priority, subtracting ReduceAmountTemperature × ReduceModifier. Otherwise Heating or AddTemperature adds AddAmountTemperature × AddModifier. Neutral with no affects is idle. Values are not clamped to configured min/max; those fields are used in client receive notifications. The handler does not implement an ambient temperature equilibrium or automatic health effect.
See Implementation Limits for production implications and Header Reference for exact field defaults/exposure.