Garry's Mod Wiki

GM:EntityTakeDamage

  boolean GM:EntityTakeDamage( Entity target, CTakeDamageInfo dmg )

Description

Called when an entity takes damage. You can modify all parts of the damage info in this hook.

See GM:PostEntityTakeDamage if you wish to hook the final damage event.

Applying damage from this hook to the entity taking damage will lead to infinite loop/crash.

Arguments

1 Entity target
The entity taking damage
2 CTakeDamageInfo dmg
Detailed information about the damage event.

Returns

1 boolean
Return true to completely block the damage event

Example

Explosion damage is reduced to players only.

hook.Add( "EntityTakeDamage", "EntityDamageExample", function( target, dmginfo ) if ( target:IsPlayer() and dmginfo:IsExplosionDamage() ) then dmginfo:ScaleDamage( 0.5 ) // Damage is now half of what you would normally take. end end )

Example

Players in vehicles takes halved damage.

hook.Add( "EntityTakeDamage", "EntityDamageExample2", function( target, dmginfo ) if ( target:IsVehicle() ) then local ply = target:GetDriver() if ( IsValid(ply) && dmginfo:GetDamage() > 1 ) then dmginfo:SetDamage(dmginfo:GetDamage() / 2) ply:TakeDamageInfo(dmginfo) dmginfo:SetDamage(0) end end end )