Bullet Penetration in Counter-Strike: Source: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
Line 59: Line 59:


==Dependence on SurfaceProperties.txt==
==Dependence on SurfaceProperties.txt==
Upon further testing, it has become clear that the penetration depth is depended on the "gamematerial" field of the surface property entry of the given material.
Upon further testing, it has become clear that the penetration depth is depended on the gamematerial field of the surface property entry of the given material.
Here is a table in order of stopping power of the gamematerials:
Here is a table in order of stopping power of the gamematerials:
{|
{|
| AWP inches || gamematerial || general description
| AWP inches || gamematerial || general description
|-
|-
| 18 || "C" || Concrete
| 18 || C || Concrete
|-
|-
| 18 || "P" || Computer
| 18 || P || Computer
|-
|-
| 23 || "D" || Dirt
| 23 || D || Dirt
|-
|-
| 23 || "V" || Vent
| 23 || V || Vent
|-
|-
| 30 || "T" || Tile
| 30 || T || Tile
|-
|-
| 45 || "-","B","F","G","H","I","L","M","O","S","T","X","Y" || Everything Else: Flesh, Grates, Plastic, Metal, Liquids, Glass...
| 45 || -,B,F,G,H,I,L,M,O,S,T,X,Y || Everything Else: Flesh, Grates, Plastic, Metal, Liquids, Glass...
|-
|-
| >45 || "W" || Wood
| >45 || W || Wood
|}
|}


Brush entities require the smaller of 24 inches and the value associated with the gamematerial. For example a brush of toolsblockbullets texture is used in a func_breakable. Since toolsblockbullets is type "C", 18 is less than 24 so we use 18.
Brush entities require the smaller of 24 inches and the value associated with the gamematerial. For example a brush of toolsblockbullets texture is used in a func_breakable. Since toolsblockbullets is type C, 18 is less than 24 so we use 18.


Note surfaceprop "default" has gamematerial "C".
Note surfaceprop default has gamematerial C.
Thus bullets penetrate nodraw, blockbullets, etc. as if they were hitting concrete.
Thus bullets penetrate nodraw, blockbullets, etc. as if they were hitting concrete.

Revision as of 01:47, 23 August 2005

This document aims to provide detailed information about what parameters affect the penetration depth of bullets from the various weapons in Counter-Strike:Source. This is a work-in-progress.

Rudimentary Results

The following table gives the shallowest depth of a sigle brush that completely blocks the incoming bullet. The brushes were six faced with dimensions 80x104xN and with each face set to the given material.

Weapon glass/prodwndwa tools/toolsblockbullets
tools/toolsnodraw
M3 1 1
XM1014 1 1
USP 15 6
Mac-10 15 6
UMP 15 6
TMP 20 8
Glock 21 9
Elites 21 9
MP5 21 9
P228 25 10
Five-Seven 30 12
P90 30 12
Deagle 30 12
Galil 35 14
Famas 35 14
M4-A1 35 14
SG 552 35 14
SG 550 35 14
M249 35 14
AK-47 39 16
Scout 39 16
Aug 39 16
G3SG1 39 16
AWP 45 18

The results of this are somewhat troubling: Toolsblockbullets does not live up to its name. Even worse is the fact that nodraw is just as good at stopping bullets.

Dependence on SurfaceProperties.txt

Upon further testing, it has become clear that the penetration depth is depended on the gamematerial field of the surface property entry of the given material. Here is a table in order of stopping power of the gamematerials:

AWP inches gamematerial general description
18 C Concrete
18 P Computer
23 D Dirt
23 V Vent
30 T Tile
45 -,B,F,G,H,I,L,M,O,S,T,X,Y Everything Else: Flesh, Grates, Plastic, Metal, Liquids, Glass...
>45 W Wood

Brush entities require the smaller of 24 inches and the value associated with the gamematerial. For example a brush of toolsblockbullets texture is used in a func_breakable. Since toolsblockbullets is type C, 18 is less than 24 so we use 18.

Note surfaceprop default has gamematerial C. Thus bullets penetrate nodraw, blockbullets, etc. as if they were hitting concrete.