This article relates to the game "Counter-Strike: Global Offensive". Click here for more information.


From Valve Developer Community
Jump to: navigation, search
English (en)
For Counter-Strike 2 Counter-Strike 2 weapons, see List of CS2 Weapons.
This page documents information about a game or software, Counter-Strike: Global Offensive Counter-Strike: Global Offensive, that is no longer available for purchase or download digitally.
It is covered here for historical and technical reference.

This listing is for weapons featured in Counter-Strike: Global Offensive Counter-Strike: Global Offensive.

New weapons include: Molotov grenades, which create a pool of fire in the ground, Decoy grenades, which create fake weapon sounds, and a taser melee weapon, the Zeus x27.

Later update of CS:GO also introduced weapons such as R8 Revolver, and much more.

Buy Menu

Pistol SMG Heavy Rifle Equipment Grenade


Knives Miscellaneous CS:GO Danger Zone Danger Zone CS:GO Danger Zone Melee CS:GO Co-op Strike Co-op Strike

Giving Weapons

To give yourself a weapon, you can use the cheat command give <entityname>, which should spawn a specified weapon inside the executing player, for example give weapon_awp. Knives and Danger Zone melees might instantly be removed by the game when they would spawn; To overcome this, one can use the command sequence give <entityname>; ent_fire <entityname> addoutput "classname weapon_knifegg" (in one line!) so that the entity "becomes" an entity that is not removed by the game in the same tick. Note that some weapons have a different classname after being given, e.g. give weapon_axe; ent_fire weapon_melee addoutput "classname weapon_knifegg".

Map driven item giving can be done with game_player_equip. To equip weapons using VScript, a game_player_equip entity can be created, used and removed.

Manipulating Weapons

Weapons can be manipulated via I/O, e.g. with ent_fire, and even more using VScript. All weapon entities support the inputs Kill, SetAmmoAmount <int>, SetReserveAmmoAmount <int>, ToggleCanBePickedUp, for example the command ent_fire weapon_ak47 kill removes all AK-47s in the map. To give some inspiration, if weapon is the VScript handle of a weapon entity, we can use weapon.Destroy() to kill it, weapon.GetOwner() == null to check whether it is dropped (true) or carried by a player (false), EntFireByHandle(weapon, "SetReserveAmmoAmount", "0", 0, null, null) to remove its reserve ammo and much more.

Note.pngNote:When the weapon is killed that a player has deployed, their viewmodel will be broken until they deploy another weapon.
Tip.pngTip:There are weapon classes whose entities initially have an identical classname keyvalue after being spawned, even though they were created from different classnames. This makes it impossible to target only one of these weapon classes in the I/O system such as MP5-SD and MP7 entities, because entities of both classes will have the classname "weapon_mp7" after being spawned, so firing I/O events to weapon_mp5sd won't have any effect because there is no entity with that classname. This problem can be bypassed in VScript: If we find an entity with the classname "weapon_mp7", we can identify whether it is actually an MP5-SD or an MP7 by checking whether entity.GetModelName() returns either "models/weapons/w_smg_mp5sd_dropped.mdl" or "models/weapons/w_smg_mp7_dropped.mdl". Other entities whose classname changes on spawn are the USP-S, CZ75-Auto, R8 Revolver, M4A1-S, Rescue Kit, Wrench, Hammer, Axe and all knives except weapon_knife and weapon_knifegg.

See also