weapon_decoy

From Valve Developer Community
Jump to navigation Jump to search
Class hierarchy
CDecoyGrenade
CBaseCSGrenade
CWeaponCSBase
CBaseCombatWeapon
CBaseAnimating
CBaseEntity
weapon_decoy.cpp
The Decoy Grenade in CS:GO.

weapon_decoy is a point entity available in Counter-Strike: Global Offensive Counter-Strike: Global Offensive and Counter-Strike 2 Counter-Strike 2.

Description

When landed and fully stopped, it imitates the sounds of the primary weapon that the thrower had equipped when throwing. If the thrower had no primary weapon, their secondary weapon (i.e. their pistol) is used. If they had no such weapon, weapon_glock for Terrorists or weapon_hkp2000 for CTs is used.

While playing sounds, there is an indicator on the thrower's team's radar where the decoy landed.

After about 15 seconds, it explodes, dealing approximately up to 10 damage to unarmored and up to 4 damage to armored players within a small exposion radius.

If the absolute value of the ConVar ff_damage_decoy_explosion is smaller than 1, team damage by decoys is disabled. Its default value is 0, as the team damage had occasionally been abused in competitive matches to get teammates kicked.

KeyValues

CS:GO / CS2 Weapon:

Is this weapon allowed to be picked up? (CanBePickedUp) <boolean> (in all games since Counter-Strike: Global Offensive)
Determines if players are able to pick up the weapon.

Flags

Start Constrained : [1]

Prevents the model from moving.

Deny Player Pickup : [2] !FGD

Prevents player from being able to pick up the weapon.

Inputs

CS:GO / CS2 Weapon:

SetAmmoAmount <integer> (in all games since Counter-Strike: Global Offensive)
For guns, sets the number of bullets in the active magazine. Does nothing for grenades.
Counter-Strike: Global Offensive Every value behaves like its congruent value in the range 0-255 in modulus 256 (e.g. -255 and 257 behave like 1 etc.). When set to 0, the owner may start reloading automatically, if possible. Other values congruent to 0 (-256, 256, 512, ...) might cause undefined behavior. Values congruent to -1 (mod 256) make the ammo numbers disappear. If set to a value outside the weapon's clip size, reloading might deliver unexpected results.
Counter-Strike 2 Behaves like SetClipPrimary.
SetReserveAmmoAmount <integer> (in all games since Counter-Strike: Global Offensive)
For guns, sets the number of bullets in reserve for reloading, clamping at the weapon's maximum (e.g. 90 for the weapon_ak47).
For grenades, sets their count, clamping at the current maximum depending on the convars ammo_grenade_limit_*; When setting to 0 or below while holding the grenade, the player no longer owns any, but the viewmodel stays.
Counter-Strike: Global Offensive Negative values make a gun's ammo display disappear and reloading is impossible.
Counter-Strike 2 Negative values are clamped to 0 for guns.
ToggleCanBePickedUp <boolean> (in all games since Counter-Strike: Global Offensive)
Toggles whether the weapon can be picked up by players. Visually, nothing changes and there is no event if picking up fails. Hover texts like "[E] Swap for AK-47" remain in both cases.

SetClipPrimary <integer> (only in Counter-Strike 2)
For guns, sets the number of bullets in the active magazine, clamping between 0 and its clip size; When setting to 0, the owner may start reloading automatically.
Does nothing for grenades.
SetClipSecondary <integer> (only in Counter-Strike 2)
Icon-Bug.pngBug:Does nothing. SetReserveAmmoAmount works.  [todo tested in?]

Outputs

CS:GO / CS2 Weapon:

OnPlayerUse
Fires when a player +uses this weapon (!activator is the player.). Does not fire if the weapon is picked up successfully.
OnPlayerPickup
Fires when a player picks this weapon up (!activator is the player.).
OnCacheInteraction  (removed since Counter-Strike 2) !FGD
When dropped, fires every tick on player touch (!activator is the player.).
Counter-Strike: Global Offensive Also fires on successful +use pickup. Does not fire if CanBePickedUp is false.
OnNPCPickup  (removed since Counter-Strike 2) !FGD
Fires when an NPC picks up this weapon (!activator is the NPC). Bots are considered players, so this output has no functionality.