weapon_shield

From Valve Developer Community
Jump to: navigation, search
Worldmodel of the Shield.

weapon_shield is a point entity available in Counter-Strike: Global Offensive Counter-Strike: Global Offensive. The Riot Shield was first introduced as part of the CS:GO Danger Zone Danger Zone mode, but since OpRiptide.pngOperation Riptide has been added to the buy menu for CS:GO/CS2 Casual Casual Hostage mode.

Entity Description

When deployed, a player holds the shield in front of them, protecting them from the front but also restricting their own field of view. When shot, the shield loses some of its durability and the carrier can see in a UI element showing how much damage the shield can still absorb before it will break. The carrier can use their primary or secondary fire to perform a knock in front of them, dealing a number of damage points set with sv_shield_bash_damage_to_players to unarmored players. With enough armor points, armored players receive half of the damage but they also lose armor points. When the shield is holstered, the carrier has the shield on their back, shielding damage from behind but they don't see the aforementioned UI element. When broken while active, the player switches to their best weapon.

Bots cannot actively use a shield, they can only carry it on their back.

For this weapon to be purchasable and being able to pick it up in CS:GO/CS2 Casual Casual, at least one func_hostage_rescue needs to be present in the map. It can always be picked up in CS:GO Danger Zone Danger Zone, i.e. if game_type 6; game_mode 0 are set.

Confirm:It appears that weapon_shield has no string alias for the buy command (such as buy awp), but you can use the command buy 1 25.
Note.pngNote:Even though the Riot Shield is in the buy menu, it is unaffected by mp_buy_allow_guns.

Related Console Variables

Console Variable Default Value Description
mp_shield_speed_deployed 170 The max speed of a player when they have a shield deployed.
mp_shield_speed_holstered 200 The max speed of a player when they have a shield holstered.
sv_shield_bash_damage_to_nonplayer 30 Shield bash damage to non-players.
sv_shield_bash_damage_to_players 90 Shield bash damage to players.
sv_shield_explosive_damage_cap 99 [Todo]
sv_shield_explosive_damage_crouch_bonus 10 [Todo]
sv_shield_explosive_damage_mindist 30 [Todo]
sv_shield_explosive_damage_mult 4 [Todo]
sv_shield_explosive_damage_scale 0.5 [Todo]
sv_shield_hitpoints 850 Amount of damage the shield can absorb before breaking.
sv_shield_purchase_restricted_to ct Restrict shield purchases to specific team. Has no effect in CS:GO Danger Zone. Values:
  • "none": No one
  • "ct": Only CTs
  • "t": Only Ts
  • none of the above: Both teams

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.

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.