DamageInfoA borrowed view of the current damage event, valid only during the synchronous OnTakeDamage or
OnTakeDamagePost SDKHook callback: reading or writing it afterwards (including after an await)
throws "expired borrowed view". Returning HookResult.Handled/Stop from OnTakeDamage blocks the
hit by setting damage to 0 after every handler ran; the engine's damage function still runs.
import type { DamageInfo } from "@s2script/sdk";
function onTakeDamage(info: DamageInfo) { info.damage = info.damage / 2; }damage: numberm_flDamage). On the pre-hook, assigning MODIFIES the damage the engine
applies (later handlers see it); set to 0 to block. A non-finite value is refused (the damage
keeps its prior value). On OnTakeDamagePost, assignment is ignored (the original already ran).readonly damageType: numberreadonly attacker: EntityRef | nullreadonly inflictor: EntityRef | nullreadonly victim: EntityRef | nullthis), or null if stale.