The damaged event triggers after an actor has been damaged.
--- @param e damagedEventData local function damagedCallback(e) end event.register(tes3.event.damaged, damagedCallback)
An event can be claimed by setting
true, or by returning
false from the callback. Claiming the event prevents any lower priority callbacks from being called.
activeMagicEffect(tes3activeMagicEffect): Read-only. Only valid for elemental shield reactive damage. It is the magic effect of the shield which caused damage. Can be
attacker(tes3mobileActor): Read-only. The mobile actor dealing the damage. Can be
attackerReference(tes3reference): Read-only. The attacker mobile's associated reference. Can be
damage(number): Read-only. The amount of damage done.
killingBlow(boolean): Read-only. If true, the damage killed the target.
magicEffect(tes3effect): Read-only. The specific effect that triggered the event. This is equal to accessing
e.magicSourceInstance.effects[effectIndex]. Only valid if magicSourceInstance is set.
magicEffectIndex(number): Read-only. The index of the effect in source's effects list. Only valid if magicSourceInstance is set.
magicEffectInstance(tes3magicEffectInstance): Read-only. An instance of the magic effect in the spell that caused damage. Can be
magicSourceInstance(tes3magicSourceInstance): Read-only. A
tes3magicSourceInstanceobject of a spell that caused damage. Can be
mobile(tes3mobileActor): Read-only. The mobile actor that took damage.
projectile(tes3mobileProjectile): Read-only. Projectile that dealt the damage. Can be
reference(tes3reference): Read-only. The mobile’s associated reference.
source(tes3.damageSource): Read-only. The origin of damage. These damage sources are present as
tes3.damageSourceconstants. See the example. Damage with
tes3.damageSource.shieldsource comes from magic shields. Other sources are self-explanatory.
Example: Notify the player that their arrow/bolt killed their opponent
-- Print a message if player's arrow killed its target local function onDamaged(e) -- We only care if the player did the damage if e.attackerReference ~= tes3.player then return end -- Check if the damage was caused by a projectile, but not by a spell, so it must be an arrow or a bolt if e.projectile ~= nil and e.magicSourceInstance == nil then -- Did the damage kill the target? if e.killingBlow == true then tes3.messageBox("Your arrow felled its target!") end end end event.register(tes3.event.damaged, onDamaged)
Example: Detect that the player died from drowning
local function onDamaged(e) -- We only care if the player recieved the damage if e.reference ~= tes3.player then return end -- Does the damage come from drowining? if e.source ~= tes3.damageSource.suffocation then return end -- Is the player in Mudan Grotto? if tes3.mobilePlayer.cell.id:lower() == "mudan grotto" then -- Did the damage kill the player? if e.killingBlow == true then tes3.messageBox("You died diving for treasure!") end end end event.register(tes3.event.damaged, onDamaged)