Counter-Strike 2/Weapons: Difference between revisions
m (Nesciuse moved page Counter-Strike 2/Weapons/en to Counter-Strike 2/Weapons without leaving a redirect: Move en subpage to basepage) |
mNo edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<noinclude>{{LanguageBar}}{{For|{{csgo|4}} weapons|[[Counter-Strike: Global Offensive/Weapons|List of CS:GO Weapons]]}}{{cs2 topicon}}<!-- noinclude so it wont show up on "Counter-Strike 2" page and cause problems. --> | |||
< | This listing is for weapons featured in {{Cs2|2}}. All information shown here at the moment are largely based off {{csgo|1|nt=CS:GO}}, so some information here may not apply to CS2. | ||
This listing is for weapons featured in {{Cs2| | </noinclude> | ||
__NOTOC__ | __NOTOC__ | ||
As of the release of {{Cs2|2}}, there are currently no new weapons introduced. However, the smoke that comes from the [[weapon_smokegrenade|smoke grenade]] now can be pushed by bullets, grenades to briefly clear sightlines or expand occlusion, plus can collides with the world objects, as smoke grenades are now dynamic volumetric objects compare to [[sprites]] used in previous games. Some weapons, such as all weapons from Danger Zone gamemode, were either removed or left unused as {{cs2|1}} currently does not have Danger Zone. | |||
As of the release of {{Cs2| | |||
=== Buy Menu === | === Buy Menu === | ||
{| class="standard-table" | {| class="standard-table" | ||
Line 104: | Line 103: | ||
Weapons can be manipulated via [[I/O]], e.g. with {{ent|ent_fire}}, and even more using [[VScript]]. All weapon entities support the inputs <code>Kill, SetAmmoAmount <int>, SetReserveAmmoAmount <int>, ToggleCanBePickedUp</code>, for example the command <code>ent_fire weapon_ak47 kill</code> removes all AK-47s in the map. To give some inspiration, if <code>weapon</code> is the VScript handle of a weapon entity, we can use <code>weapon.Destroy()</code> to kill it, <code>weapon.GetOwner() == null</code> to check whether it is dropped (true) or carried by a player (false), <code>[[List of CS:GO Script Functions#Other|EntFireByHandle]](weapon, "SetReserveAmmoAmount", "0", 0, null, null)</code> to remove its reserve ammo and much more. | Weapons can be manipulated via [[I/O]], e.g. with {{ent|ent_fire}}, and even more using [[VScript]]. All weapon entities support the inputs <code>Kill, SetAmmoAmount <int>, SetReserveAmmoAmount <int>, ToggleCanBePickedUp</code>, for example the command <code>ent_fire weapon_ak47 kill</code> removes all AK-47s in the map. To give some inspiration, if <code>weapon</code> is the VScript handle of a weapon entity, we can use <code>weapon.Destroy()</code> to kill it, <code>weapon.GetOwner() == null</code> to check whether it is dropped (true) or carried by a player (false), <code>[[List of CS:GO Script Functions#Other|EntFireByHandle]](weapon, "SetReserveAmmoAmount", "0", 0, null, null)</code> to remove its reserve ammo and much more. | ||
{{note|When the weapon is killed that a player has deployed, their viewmodel will be broken until they deploy another weapon.}} | {{note|When the weapon is killed that a player has deployed, their viewmodel will be broken until they deploy another weapon.}} | ||
{{tip|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 [[weapon_mp5sd|MP5-SD]] and [[weapon_mp7|MP7]] entities, because entities of both classes will have the classname <code>"weapon_mp7"</code> after being spawned, so firing I/O events to <code>weapon_mp5sd</code> won't have any effect because there is no entity with that classname. This problem can be bypassed in VScript: If we find an <code>entity</code> with the classname <code>"weapon_mp7"</code>, we can identify whether it is actually an MP5-SD or an MP7 by checking whether <code>entity.GetModelName()</code> returns either <code>"models/weapons/w_smg_mp5sd_dropped.mdl"</code> or <code>"models/weapons/w_smg_mp7_dropped.mdl"</code>. Other entities whose classname changes on spawn are the [[weapon_usp_silencer|USP-S]], [[weapon_cz75a|CZ75-Auto]], [[weapon_revolver|R8 Revolver]], [[weapon_m4a1_silencer|M4A1-S]], [[item_cutters|Rescue Kit]], [[weapon_spanner|Wrench]], [[weapon_hammer|Hammer]], [[weapon_axe|Axe]] and all knives except [[weapon_knife]] and [[weapon_knifegg]].}}== See also == | {{tip|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 [[weapon_mp5sd|MP5-SD]] and [[weapon_mp7|MP7]] entities, because entities of both classes will have the classname <code>"weapon_mp7"</code> after being spawned, so firing I/O events to <code>weapon_mp5sd</code> won't have any effect because there is no entity with that classname. This problem can be bypassed in VScript: If we find an <code>entity</code> with the classname <code>"weapon_mp7"</code>, we can identify whether it is actually an MP5-SD or an MP7 by checking whether <code>entity.GetModelName()</code> returns either <code>"models/weapons/w_smg_mp5sd_dropped.mdl"</code> or <code>"models/weapons/w_smg_mp7_dropped.mdl"</code>. Other entities whose classname changes on spawn are the [[weapon_usp_silencer|USP-S]], [[weapon_cz75a|CZ75-Auto]], [[weapon_revolver|R8 Revolver]], [[weapon_m4a1_silencer|M4A1-S]], [[item_cutters|Rescue Kit]], [[weapon_spanner|Wrench]], [[weapon_hammer|Hammer]], [[weapon_axe|Axe]] and all knives except [[weapon_knife]] and [[weapon_knifegg]].}} | ||
<noinclude><!-- so this wont show up on "Counter-Strike 2" page. --> | |||
== See also == | |||
* [[:Category:Counter-Strike: Global Offensive Weapons]] | * [[:Category:Counter-Strike: Global Offensive Weapons]] | ||
{{cs2-navbox}} | {{cs2-navbox}} | ||
[[Category:Weapons]] | [[Category:Weapons]] | ||
</noinclude> | </noinclude> |
Latest revision as of 01:44, 16 July 2024



This listing is for weapons featured in Counter-Strike 2. All information shown here at the moment are largely based off CS:GO, so some information here may not apply to CS2.
As of the release of Counter-Strike 2, there are currently no new weapons introduced. However, the smoke that comes from the smoke grenade now can be pushed by bullets, grenades to briefly clear sightlines or expand occlusion, plus can collides with the world objects, as smoke grenades are now dynamic volumetric objects compare to sprites used in previous games. Some weapons, such as all weapons from Danger Zone gamemode, were either removed or left unused as Counter-Strike 2 currently does not have Danger Zone.
Buy Menu
Pistol | SMG | Heavy | Rifle | Equipment | Grenade |
---|---|---|---|---|---|
Other
Knives | Miscellaneous | ![]() |
---|---|---|
|
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.


"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
|