Counter-Strike: Global Offensive/Mapper's Reference: Difference between revisions
(Added images and note about Hammer bbox.) |
Thunder4ik (talk | contribs) m (clean up) |
||
(26 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Lang}} | ||
| | {{back|Dimensions}}{{Delisted|csgo}} | ||
| | |||
}} | |||
{| class="wikitable" style="float:right; margin:1em;" | {| class="wikitable" style="float:right; margin:1em;" | ||
|- style="vertical-align:bottom;" | |- style="vertical-align:bottom;" | ||
Line 11: | Line 10: | ||
| Dimensions of a [[player]] crouching. | | Dimensions of a [[player]] crouching. | ||
|} | |} | ||
Here is a reference page for any {{ | Here is a reference page for any {{csgo|4}} mapper looking for dimensions or numbers that are used for level and map creation. | ||
For other tutorials go to the [[Counter-Strike: Global Offensive Level Creation]] page. | For other tutorials go to the [[Counter-Strike: Global Offensive Level Creation]] page. | ||
== Measurements == | == Measurements == | ||
{| border="2" cellpadding="2" style="float:left; margin-right:1em" | |||
{| border="2" cellpadding="2" | |- style="background:#666;" | ||
|- style="background:# | |||
! Brush | ! Brush | ||
! Height | ! Height | ||
! | ! Depth | ||
! | ! Width | ||
|- | ! Comment | ||
| | |- | ||
! Thick Wall | |||
| || ≥ 32 || || Unlikely to be penetrated (except glass, wood, ...). | |||
|- | |- | ||
! Thin Wall | |||
| || ≤ 16 || || Penetrable for strong weapons. | |||
|- | |- | ||
| | ! Very Thin Wall | ||
| || ≤ 8 || || Penetrable for most/all weapons. | |||
|- | |||
! Big Crate | |||
| ≥ 72 || 64 || 64 || Can only see over it by jumping. | |||
|- | |- | ||
! Headglitch Crate | |||
| 56-60 || 64 || 64 || Can choose between peeking over it or hiding. | |||
|- | |||
! Small Crate | |||
| ≤ 44 || 48 || 48 || Can always see players behind it. | |||
|- | |||
! Stair Step | |||
| ≤ 18 || ≥ 16 || || Stairs should usually be [[clip texture|clip]]ped with a Slope. | |||
|- | |||
! Slope | |||
| ≤ Depth || || || Walkable if at most 45.573° steep. | |||
|} | |} | ||
<br clear=right> | |||
* | {{Note | | ||
* These figures are just suggestions and nothing official. | |||
* Height differences between players are not taken into account: A player crouching behind a crate that is 56 units high isn't safely covered if the enemy can see them from above. | |||
* See also the Eye Levels of a player below. | |||
* Test bullet penetration yourself using the cheat {{ent|sv_showimpacts_penetration|1}}. See also: [[List of CS:GO Surface Types]]. | |||
* Steep slopes can become walkable by setting the cheat {{ent|sv_standable_normal}} to something under 0.7. | |||
}} | |||
<br clear=all> | |||
=== [[Player]] Dimensions === | === [[Player]] Dimensions === | ||
{| border="2" cellpadding="2" style="text-align:center; float:left; margin-right:1em" | |||
{| border="2" cellpadding="2" style="text-align:center;" | |- style="background:#666;" | ||
|- style="background:# | |||
! Player Posture | ! Player Posture | ||
! Height | ! Height | ||
Line 50: | Line 71: | ||
| rowspan="2" | 32 | | rowspan="2" | 32 | ||
| rowspan="2" | 0.031250 | | rowspan="2" | 0.031250 | ||
| 64.093811 | | 64.093811 | ||
|- | |- | ||
! Crouching | ! Crouching | ||
| 54 | | 54 | ||
| 46.076218 | | 46.076218 | ||
|} | |} | ||
{{Warning | In Hammer, the bounding box of all player spawn entities (except [[info_player_start]] and [[info_player_logo]]) do not | {{Warning | In Hammer, the bounding box of all player spawn entities (except [[info_player_start]] and [[info_player_logo]]) do not use the player width/length of 32 units, instead using 26 units. Don't use these entities as a reference for the player width/length.}} | ||
{{Note | A corridor must be wider (!) than 32 units to be accessible to players.}} | {{Note | A corridor must be wider (!) than 32 units to be accessible to players.}} | ||
Line 65: | Line 84: | ||
{{Idea | To test in Hammer if a player fits in a narrow/angled corridor, you can make a temporary <code>32 x 32 x 72</code> (or <code>32 x 32 x 54</code>) block representing the dimensions of a player and move it to various locations inside the corridor. It is traversable if the volume of the block and surrounding geometry (including vertices and edges) do not intersect. Hold {{key|Alt}} while dragging to prevent the block from snapping to the grid.}} | {{Idea | To test in Hammer if a player fits in a narrow/angled corridor, you can make a temporary <code>32 x 32 x 72</code> (or <code>32 x 32 x 54</code>) block representing the dimensions of a player and move it to various locations inside the corridor. It is traversable if the volume of the block and surrounding geometry (including vertices and edges) do not intersect. Hold {{key|Alt}} while dragging to prevent the block from snapping to the grid.}} | ||
<br clear=all> | |||
=== Reachable Heights === | === Reachable Heights === | ||
{| border="2" cellpadding="2" style="white-space:nowrap;float:left;margin-right:1em" | |||
{| border="2" cellpadding="2" style="white-space:nowrap;" | |||
|- style="background:#666666;" | |- style="background:#666666;" | ||
! colspan="2" | Technique | ! colspan="2" | Technique | ||
Line 81: | Line 99: | ||
| 18 | | 18 | ||
| 47 | | 47 | ||
| | | 55 | ||
|- | |- | ||
| Walk/Run | | Walk/Run | ||
| 18 | | 18 | ||
| 65 | | 65 | ||
| | | 73 | ||
|- | |- | ||
| Jump while standing | | Jump while standing | ||
| 54 | | 54 (128 tick: 55) | ||
| | | 119 | ||
| | | 127 (128) | ||
|- | |- | ||
| Jump while crouching | | Jump while crouching | ||
| 56 | | 56 (57) | ||
| | | 104 | ||
| 112 | | 112 | ||
|- | |- | ||
| Jump then crouch | | Jump then crouch | ||
| 63 | | 63 (64) | ||
| | | 111 | ||
| 118 | | 118 (119) | ||
|- | |- | ||
| Crouch then jump | | Crouch then jump | ||
| | | 65 (66) | ||
| 113 | | 113 | ||
| 121 | | 121 | ||
Line 121: | Line 139: | ||
| Jump while standing on a player | | Jump while standing on a player | ||
| 129 | | 129 | ||
| | | 194 | ||
| | | 202 | ||
|- | |- | ||
| Crouch then jump on a player | | Crouch then jump on a player | ||
| | | 138 | ||
| 185 | | 185 | ||
| 193 | | 193 | ||
Line 143: | Line 161: | ||
! rowspan="7" style="background:#666666;" | Solo, Utilities | ! rowspan="7" style="background:#666666;" | Solo, Utilities | ||
| [[exojump|Exo]]-Jump while standing | | [[exojump|Exo]]-Jump while standing | ||
| 129 | | 129 (135) | ||
| | | 195 (200) | ||
| | | 203 (208) | ||
|- | |- | ||
| [[exojump|Exo]]-Jump while crouching | | [[exojump|Exo]]-Jump while crouching | ||
| 135 | | 135 (138) | ||
| 182 | | 182 (185) | ||
| 190 | | 190 (193) | ||
|- | |- | ||
| [[exojump|Exo]]-Jump then crouch | | [[exojump|Exo]]-Jump then crouch | ||
| 138 | | 138 (144) | ||
| 186 | | 186 (191) | ||
| 194 | | 194 (199) | ||
|- | |- | ||
| Crouch then [[exojump|exo]]-jump | | Crouch then [[exojump|exo]]-jump | ||
| | | 144 (147) | ||
| 191 | | 191 (194) | ||
| 199 | | 199 (202) | ||
|- | |- | ||
| [[weapon_bumpmine|Bump mine]] | | [[weapon_bumpmine|Bump mine]] | ||
Line 174: | Line 192: | ||
| [[weapon_bumpmine|Bump mine]] and [[exojump|exo]]-jump | | [[weapon_bumpmine|Bump mine]] and [[exojump|exo]]-jump | ||
| > 1600 | | > 1600 | ||
| < | | < 1700 | ||
| < | | < 1700 | ||
|} | |} | ||
{{Warning | | {{Warning | | ||
* Sometimes, there are differences between 64 [[tickrate|tick]] and 128 tick. If there are two numbers in a cell of this table, the first is the one for 64 tick and the one in brackets is the one for 128 tick. Interestingly, it is sometimes possible to reach the 128 tick block height with 64 tick (e.g. getting on a 66 units block) but requires something like strafing on the edge of the block. | |||
* There are two slightly different ways of ''Crouch Jumping'', which is why we use different terms here: | * There are two slightly different ways of ''Crouch Jumping'', which is why we use different terms here: | ||
** By '''Jump then Crouch''' we mean first invoking <code>+jump</code> and then <code>+duck</code>. | ** By '''Jump then Crouch''' we mean first invoking <code>+jump</code> and then <code>+duck</code>. | ||
** By '''Crouch then Jump''' we mean first invoking <code>+duck</code> and then <code>+jump</code> during the crouching transition. | ** By '''Crouch then Jump''' we mean first invoking <code>+duck</code> and then <code>+jump</code> during the crouching transition. | ||
* The | * The numbers in this table concerning jumps assume '''full stamina'''. That means that the [[player]] has recovered from previous landings, hitting the ground. | ||
}} | }} | ||
{{Note | | {{Note | | ||
* The '''Lowest Wall Height cannot peek over''' can be considered the Eye Level rounded up. | * The '''Lowest Wall Height cannot peek over''' can be considered the Eye Level rounded up. | ||
* Players standing on a player that does not touch the ground or that stands on another player will slide forward and the invocation of {{ent|+left}}, {{ent|+right}}, {{ent|+back}}, {{ent|+duck}} and {{ent|+speed}} has no effect. | * Players standing on a player that does not touch the ground or that stands on another player will slide forward (and unduck) and the invocation of {{ent|+left}}, {{ent|+right}}, {{ent|+back}}, {{ent|+duck}} and {{ent|+speed}} has no effect. | ||
* These numbers have been obtained using {{ent|cl_showpos|1}} | * These numbers have been obtained using a special map, {{ent|cl_showpos|1}}, as well as {{ent|getpos}} and {{ent|host_timescale}}. | ||
}} | }} | ||
<br clear=all> | |||
---- | |||
=== Fall Damage === | === Fall Damage === | ||
<div style="float:right; overflow:auto; <!--max-height:45em;--> margin:1em;"> | |||
{| border="2" cellpadding="2" style="white-space:nowrap; margin-right:2em;" | |||
{| border="2" cellpadding="2" | |- style="background:#666;" | ||
|- style="background:# | ! rowspan="2" | Height<br>in Units | ||
! Units | ! colspan="2" | Jump off<br>Fall Damage | ||
! Run off<br>Fall Damage | ! colspan="2" | Run off<br>Fall Damage | ||
! | ! colspan="2" | Crouch off<br>and stand up<br>Fall Damage | ||
! colspan="2" | Run off<br>([[exojump]])<br>Fall Damage | |||
|- style="background:#666;" | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
|- | |||
| style="background:#123;" | ≤ 162 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 | |||
|- | |||
| style="background:#123;" | 200 || style="background:#464;" | 11 || style="background:#464;" | 12 || 0 || 0 || 0 || 0 || 0 || 0 | |||
|- | |||
| style="background:#123;" | 225 || 17 || 19 || style="background:#464;" | 3 || style="background:#464;" | 4 || 0 || style="background:#464;" | 1 || style="background:#464;" | 1 || style="background:#464;" | 1 | |||
|- | |||
| style="background:#123;" | 250 || 26 || 27 || 9 || 11 || style="background:#464;" | 6 || 8 || 3 || 4 | |||
|- | |||
| style="background:#123;" | 275 || 32 || 33 || 18 || 18 || 15 || 15 || 7 || 7 | |||
|- | |||
| style="background:#123;" | 300 || 38 || 40 || 24 || 24 || 21 || 23 || 9 || 9 | |||
|- | |||
| style="background:#123;" | 325 || 44 || 46 || 33 || 32 || 30 || 29 || 13 || 12 | |||
|- | |||
| style="background:#123;" | 350 || style="background:#664;" | 50 || style="background:#664;" | 52 || 38 || 38 || 36 || 36 || 15 || 15 | |||
|- | |||
| style="background:#123;" | 375 || 56 || 58 || 44 || 45 || 41 || 42 || 17 || 18 | |||
|- | |||
| style="background:#123;" | 400 || 62 || 64 || style="background:#664;" | 50 || style="background:#664;" | 51 || 47 || 48 || 20 || 20 | |||
|- | |||
| style="background:#123;" | 425 || 68 || 69 || 56 || 57 || style="background:#664;" | 53 || style="background:#664;" | 54 || 22 || 23 | |||
|- | |||
| style="background:#123;" | 450 || 74 || 74 || 62 || 62 || 59 || 60 || 25 || 24 | |||
|- | |||
| style="background:#123;" | 475 || 80 || 79 || 68 || 68 || 65 || 66 || 27 || 27 | |||
|- | |- | ||
| | | style="background:#123;" | 500 || 83 || 85 || 71 || 73 || 71 || 72 || 28 || 29 | ||
| | |||
| | |||
|- | |- | ||
| style="background:#123;" | 525 || 89 || 89 || 77 || 78 || 77 || 76 || 31 || 31 | |||
| style="background:# | |||
|- | |- | ||
| | | style="background:#123;" | 550 || 95 || 95 || 83 || 84 || 80 || 82 || 33 || 33 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 575 || 98 || style="background:#644;" | 100 || 89 || 88 || 86 || 87 || 35 || 35 | ||
| style="background:# | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 600 || style="background:#644;" | 103 || 104 || 92 || 94 || 92 || 91 || 37 || 37 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 650 || 112 || 113 || style="background:#644;" | 101 || style="background:#644;" | 103 || style="background:#644;" | 101 || style="background:#644;" | 102 || 40 || 41 | ||
| | |||
| | |||
|- | |- | ||
| style="background:#123;" | 700 || 121 || 122 || 113 || 112 || 110 || 111 || 45 || 45 | |||
| style="background:# | |||
|- | |- | ||
| | | style="background:#123;" | 800 || 139 || 138 || 128 || 130 || 128 || 129 || style="background:#666644;" | 51 || style="background:#666644;" | 52 | ||
| style="background:#666644;" | | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 900 || 154 || 155 || 146 || 146 || 143 || 145 || 58 || 58 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 1000 || 169 || 170 || 161 || 161 || 161 || 160 || 64 || 64 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 1200 || 196 || 198 || 190 || 191 || 187 || 190 || 76 || 76 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 1400 || 223 || 223 || 217 || 216 || 214 || 216 || 87 || 86 | ||
| | |||
| | |||
|- | |- | ||
| style="background:#123;" | 1600 || 246 || 249 || 241 || 242 || 225 || 240 || 96 || 96 | |||
| style="background:# | |||
|- | |- | ||
| | | style="background:#123;" | 1800 || 270 || 271 || 265 || 264 || 264 || 264 || style="background:#664444;" | 106 || style="background:#664444;" | 105 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 2000 || 291 || 292 || 286 || 286 || 286 || 285 || 114 || 114 | ||
| | |||
| | |||
|- | |- | ||
| style="background:#123;" | 7500 || 687 || 689 || 684 || 685 || 684 || 685 || 273 || 274 | |||
| style="background:# | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 8000 || 695 || 695 || 695 || 695 || 695 || 695 || 278 || 278 | ||
| | |||
| | |||
|- | |- | ||
| | | style="background:#123;" | 16000 || 695 || 695 || 695 || 695 || 695 || 695 || 278 || 278 | ||
| 128 | |- style="background:#666;" | ||
| | ! rowspan="2" | Height<br>in Units | ||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
|- style="background:#666;" | |||
! colspan="2" | Jump off<br>Fall Damage | |||
! colspan="2" | Run off<br>Fall Damage | |||
! colspan="2" | Crouch off<br>and stand up<br>Fall Damage | |||
! colspan="2" | Run off<br>([[exojump]])<br>Fall Damage | |||
|} | |||
</div> | |||
For the following tables, we assume that a [[player]] is standing on something (e.g. on a world brush) with a given height from the ground that they fall down from. | |||
The fall damage that the player will receive does not only depend on the technique the player uses to fall down but also on the [[tickrate]]. | |||
{{Important | A player ''can'' bypass fall damage (and the landing sound) by uncrouching just before landing. Use e.g. [[trigger_hurt]] appropriately if you wish to prevent a player's survival.}} | |||
{| border="2" cellpadding="2" style="background-color:#123; margin:1em;" | |||
|- style="background:#666;" | |||
! rowspan="2" | Smallest<br>Fall Height in<br>Units causing... | |||
! colspan="2" | Jump off | |||
! colspan="2" | Run off | |||
! colspan="2" | Crouch off<br>and stand up | |||
! colspan="2" | Run off<br>([[exojump]]) | |||
|- style="background:#666;" | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
! 64 tick | |||
! 128 tick | |||
|- | |- | ||
| | | style="background:#464;" | ≥ 1 damage | ||
| | | 167 || 163 | ||
| | | 223 || 216 | ||
| 232 || 225 | |||
| 223 || 220 | |||
|- | |- | ||
| | | style="background:#554;" | ≥ 25 damage | ||
| | | 247 || 243 | ||
| | | 303 || 301 | ||
| 312 || 310 | |||
| 447 || 451 | |||
|- | |- | ||
| | | style="background:#664;" | ≥ 50 damage | ||
| | | 340 || 342 | ||
| | | 396 || 393 | ||
| 405 || 402 | |||
| 767 || 772 | |||
|- | |- | ||
| | | style="background:#654;" | ≥ 75 damage | ||
| | | 459 || 454 | ||
| | | 516 || 505 | ||
| 525 || 514 | |||
| 1173 || 1179 | |||
|- | |- | ||
| | | style="background:#644;" | ≥ 100 damage | ||
| | | 578 || 573 | ||
| | | 635 || 631 | ||
| 644 || 640 | |||
| 1666 || 1672 | |||
|- | |- | ||
| | | style="background:#422;" | ≥ 120 damage | ||
| | | 693 || 687 | ||
| | | 750 || 737 | ||
| 759 || 746 | |||
| 2127 || 2120 | |||
|} | |} | ||
{{ Note | | |||
{{ | * The fall damage is slightly higher when landing crouched as opposed to landing uncrouched. | ||
* | * The fall damage doesn't exceed 695 because {{ent|sv_maxvelocity}} is 3500 by default. If higher, the maximum fall damage also increases. | ||
* | * All fall damage is multiplied with {{ent|sv_falldamage_scale}}. | ||
* | * When wearing an [[exojump]], there is a default fall damage reduction of 60 %, controlled by the [[ConVar]] {{ent|sv_falldamage_exojump_multiplier}}. | ||
* | * Players jumping on a block with a height of 9 (128 tick: 11) units or higher will land on it silently (no crouching). | ||
* Players jumping on a block with a height of 9 units or higher will land on it silently (no crouching). | |||
* Players running off a block with a height of 20 units or more will fall. Otherwise they "stick" to the ground. | * Players running off a block with a height of 20 units or more will fall. Otherwise they "stick" to the ground. | ||
* Players running off a block with a height of 47 units or less will land silently. | * Players running off a block with a height of 47 (128 tick: 46) units or less will land silently. | ||
* Players running off a block with a height of 214 to 222 units hear a fall damage sound but don't receive any damage. | * Players running off a block with a height of 214 to 222 units hear a fall damage sound but don't receive any damage (64 tick only). | ||
* | * Players jumping off a block with a height of 159 to 162 units hear a fall damage sound but don't receive any damage (128 tick only). | ||
* The smallest initial height that a player needs to hurt themselves is 151 units: ''crouch then jump''ing off and staying crouched deals 1 damage. With an exojump, it needs just an initial height of 79 (128 tick: 75) units. | |||
}} | }} | ||
An '''approximation''' for the fall damage of a player ''running off'' some {{code|height}} on 128 tick is {{code|9.525 * sqrt(height) - 139.25}}. The resulting damage value must be clamped to the upper limit 695, then multiplied with <tt>sv_falldamage_scale</tt> (and also with <tt>sv_falldamage_exojump_multiplier</tt> if the player wears an exojump) and finally the value must be rounded down and clapmed to the lower limit of 0. As a C function, it could look like this: | |||
{| | |||
|<syntaxhighlight lang=cpp> | |||
int damage(float height, bool playerWearsExojump) | |||
{ | |||
float damage = 9.525 * sqrt( height ) - 139.25; | |||
damage = MIN(695, damage) * sv_falldamage_scale; | |||
if (playerWearsExojump) | |||
damage *= sv_falldamage_exojump_multiplier; | |||
return MAX(0, (int) damage); | |||
} | |||
</syntaxhighlight> | |||
|} | |} | ||
The error of this approximation should be at most 1 damage point. | |||
For ''jumping off'', add 54.8 to the input height to get a result of a similar precision. For the ''Crouch off and stand up'' damage subtract 9.6 from the input height. | |||
<br clear=all> | |||
---- | |||
=== Grenades === | === Grenades === | ||
{| border="2" cellpadding="3" style="margin:1em; margin-top:0; float:right" | |||
* The [[weapon_smokegrenade|smoke grenade]] diameter is | |+ Highest throwing Distance on a plane in Units | ||
* [[weapon_molotov| | |- style=background-color:#666 | ||
!rowspan=2| Throwable Type | |||
!colspan=2| Distance ''(with Jumpthrow)'' | |||
|- style=background-color:#666 | |||
! Standing | |||
! Running | |||
|- | |||
| [[weapon_smokegrenade|Smoke Grenade]]<br>[[weapon_decoy|Decoy Grenade]] || ≈ 1754 ''(2653)''<br><small>Pitch: -32.9 ''(-27.4)''</small> || ≈ 3045 ''(4380)''<br><small>Pitch: -40.7 ''(-33.0)''</small> | |||
|- | |||
| [[weapon_tagrenade|Tactical Awareness Grenade]]<br>[[weapon_snowball|Snowball]] || ≈ 1494 ''(2335)''<br><small>Pitch: -38.1 ''(-30.6)''</small> || ≈ 2494 ''(3734)''<br><small>Pitch: -46.8 ''(-39.2)''</small> | |||
|- | |||
| [[weapon_molotov|Molotov]]<br>[[weapon_incgrenade|Incendiary Grenade]] || ≈ 1247 ''(1385)''<br><small>Pitch: -18.0 ''(6.3)''</small> || ≈ 1876 ''(2015)''<br><small>Pitch: -18.0 ''(7.4)''</small> | |||
|- | |||
| [[weapon_flashbang|Flashbang]]<br>[[weapon_hegrenade|HE Grenade]] || ≈ 1050 ''(1113)''<br><small>Pitch: -10.4 ''(9.0)''</small> || ≈ 1555 ''(1618)''<br><small>Pitch: -10.5 ''(9.1)''</small> | |||
|- | |||
| [[weapon_breachcharge|Breach Charge]] || ≈ 363 ''(632)''<br><small>Pitch: -40.8 ''(-32.2)''</small> || ≈ 614 ''(1017)''<br><small>Pitch: -49.6 ''(-38.7)''</small> | |||
|} | |||
The table on the right indicates the maximum distance that the different types of grenades can be thrown by players, assuming no height differences in the floor and measured in 2D, rounded to whole units. It also contains the approximate angle at which a player must look up or down to achieve these throwing distances. A pitch of 0 means looking straight forward, -90 or 90 means straight up or down respectively. A ''jumpthrow'' is the act of holding one or both attack buttons down and then invoking the command sequence {{code|+jump; -attack; -attack2}} at once. For a [[weapon_breachcharge|breach charge]], it is {{code|+jump; +attack}}. | |||
* Players cannot throw a grenade higher than 1490 units. | |||
;Smoke | |||
* The [[weapon_smokegrenade|smoke grenade]] diameter is roughly 256 units with a height of about 128 units. | |||
* When smoking a corridor precisely, it is always possible to entirely cover a width of 200 units with no gaps, assuming no height differences in the floor. | |||
* Corridors with a width of about 256 units or more cannot be covered without gaps. | |||
* The smoke "shines" through (thin) walls. | |||
;Fire | |||
* [[weapon_molotov|Molotovs]] and [[weapon_incgrenade|incendiary grenades]] have a similar diameter as a smoke grenade. | |||
* They can easily cover a width of 256 units or less, but not too much more than that. | |||
* The flames tend to be blocked by (vertical) walls, making them spread in other directions. | |||
{{clr}} | |||
== Map Prefixes == | == Map Prefixes == | ||
See [[Map_prefixes#Counter-Strike.2C_Counter-Strike:_Condition_Zero.2C_Counter-Strike:_Source_and_Counter-Strike:_Global_Offensive|Map prefixes]]. | See [[Map_prefixes#Counter-Strike.2C_Counter-Strike:_Condition_Zero.2C_Counter-Strike:_Source_and_Counter-Strike:_Global_Offensive|Map prefixes]]. | ||
{{csgo-navbox}} | |||
[[Category:Counter-Strike: Global Offensive|Dimensions]] | |||
[[Category:Level design|Dimensions in Counter-Strike: Global Offensive]] |
Latest revision as of 02:04, 6 January 2024


It is covered here for historical and technical reference.
![]() |
![]() |
Dimensions of a player standing. | Dimensions of a player crouching. |
Here is a reference page for any Counter-Strike: Global Offensive mapper looking for dimensions or numbers that are used for level and map creation.
For other tutorials go to the Counter-Strike: Global Offensive Level Creation page.
Measurements
Brush | Height | Depth | Width | Comment |
---|---|---|---|---|
Thick Wall | ≥ 32 | Unlikely to be penetrated (except glass, wood, ...). | ||
Thin Wall | ≤ 16 | Penetrable for strong weapons. | ||
Very Thin Wall | ≤ 8 | Penetrable for most/all weapons. | ||
Big Crate | ≥ 72 | 64 | 64 | Can only see over it by jumping. |
Headglitch Crate | 56-60 | 64 | 64 | Can choose between peeking over it or hiding. |
Small Crate | ≤ 44 | 48 | 48 | Can always see players behind it. |
Stair Step | ≤ 18 | ≥ 16 | Stairs should usually be clipped with a Slope. | |
Slope | ≤ Depth | Walkable if at most 45.573° steep. |

- These figures are just suggestions and nothing official.
- Height differences between players are not taken into account: A player crouching behind a crate that is 56 units high isn't safely covered if the enemy can see them from above.
- See also the Eye Levels of a player below.
- Test bullet penetration yourself using the cheat sv_showimpacts_penetration 1. See also: List of CS:GO Surface Types.
- Steep slopes can become walkable by setting the cheat sv_standable_normal to something under 0.7.
Player Dimensions
Player Posture | Height | Width/Depth | Feet Level | Eye Level |
---|---|---|---|---|
Standing | 72 | 32 | 0.031250 | 64.093811 |
Crouching | 54 | 46.076218 |



32 x 32 x 72
(or 32 x 32 x 54
) block representing the dimensions of a player and move it to various locations inside the corridor. It is traversable if the volume of the block and surrounding geometry (including vertices and edges) do not intersect. Hold Alt while dragging to prevent the block from snapping to the grid.
Reachable Heights
Technique | Max Block Height can get on |
Lowest Wall Height cannot peek over |
Lowest Ceiling Height will not bump against | |
---|---|---|---|---|
Solo | Crouch | 18 | 47 | 55 |
Walk/Run | 18 | 65 | 73 | |
Jump while standing | 54 (128 tick: 55) | 119 | 127 (128) | |
Jump while crouching | 56 (57) | 104 | 112 | |
Jump then crouch | 63 (64) | 111 | 118 (119) | |
Crouch then jump | 65 (66) | 113 | 121 | |
2 players | Crouch on a player | 90 | 119 | 127 |
Walk on a player | 90 | 137 | 145 | |
Jump while standing on a player | 129 | 194 | 202 | |
Crouch then jump on a player | 138 | 185 | 193 | |
3 players | Slide on two players | 162 | 207 | 215 |
4 players | Slide on three players | 234 | 281 | 289 |
Solo, Utilities | Exo-Jump while standing | 129 (135) | 195 (200) | 203 (208) |
Exo-Jump while crouching | 135 (138) | 182 (185) | 190 (193) | |
Exo-Jump then crouch | 138 (144) | 186 (191) | 194 (199) | |
Crouch then exo-jump | 144 (147) | 191 (194) | 199 (202) | |
Bump mine | > 900 | < 1000 | < 1000 | |
Bump mine and jump | > 1300 | < 1400 | < 1400 | |
Bump mine and exo-jump | > 1600 | < 1700 | < 1700 |

- Sometimes, there are differences between 64 tick and 128 tick. If there are two numbers in a cell of this table, the first is the one for 64 tick and the one in brackets is the one for 128 tick. Interestingly, it is sometimes possible to reach the 128 tick block height with 64 tick (e.g. getting on a 66 units block) but requires something like strafing on the edge of the block.
- There are two slightly different ways of Crouch Jumping, which is why we use different terms here:
- By Jump then Crouch we mean first invoking
+jump
and then+duck
. - By Crouch then Jump we mean first invoking
+duck
and then+jump
during the crouching transition.
- By Jump then Crouch we mean first invoking
- The numbers in this table concerning jumps assume full stamina. That means that the player has recovered from previous landings, hitting the ground.

- The Lowest Wall Height cannot peek over can be considered the Eye Level rounded up.
- Players standing on a player that does not touch the ground or that stands on another player will slide forward (and unduck) and the invocation of +left, +right, +back, +duck and +speed has no effect.
- These numbers have been obtained using a special map, cl_showpos 1, as well as getpos and host_timescale.
Fall Damage
Height in Units |
Jump off Fall Damage |
Run off Fall Damage |
Crouch off and stand up Fall Damage |
Run off (exojump) Fall Damage | ||||
---|---|---|---|---|---|---|---|---|
64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick | |
≤ 162 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
200 | 11 | 12 | 0 | 0 | 0 | 0 | 0 | 0 |
225 | 17 | 19 | 3 | 4 | 0 | 1 | 1 | 1 |
250 | 26 | 27 | 9 | 11 | 6 | 8 | 3 | 4 |
275 | 32 | 33 | 18 | 18 | 15 | 15 | 7 | 7 |
300 | 38 | 40 | 24 | 24 | 21 | 23 | 9 | 9 |
325 | 44 | 46 | 33 | 32 | 30 | 29 | 13 | 12 |
350 | 50 | 52 | 38 | 38 | 36 | 36 | 15 | 15 |
375 | 56 | 58 | 44 | 45 | 41 | 42 | 17 | 18 |
400 | 62 | 64 | 50 | 51 | 47 | 48 | 20 | 20 |
425 | 68 | 69 | 56 | 57 | 53 | 54 | 22 | 23 |
450 | 74 | 74 | 62 | 62 | 59 | 60 | 25 | 24 |
475 | 80 | 79 | 68 | 68 | 65 | 66 | 27 | 27 |
500 | 83 | 85 | 71 | 73 | 71 | 72 | 28 | 29 |
525 | 89 | 89 | 77 | 78 | 77 | 76 | 31 | 31 |
550 | 95 | 95 | 83 | 84 | 80 | 82 | 33 | 33 |
575 | 98 | 100 | 89 | 88 | 86 | 87 | 35 | 35 |
600 | 103 | 104 | 92 | 94 | 92 | 91 | 37 | 37 |
650 | 112 | 113 | 101 | 103 | 101 | 102 | 40 | 41 |
700 | 121 | 122 | 113 | 112 | 110 | 111 | 45 | 45 |
800 | 139 | 138 | 128 | 130 | 128 | 129 | 51 | 52 |
900 | 154 | 155 | 146 | 146 | 143 | 145 | 58 | 58 |
1000 | 169 | 170 | 161 | 161 | 161 | 160 | 64 | 64 |
1200 | 196 | 198 | 190 | 191 | 187 | 190 | 76 | 76 |
1400 | 223 | 223 | 217 | 216 | 214 | 216 | 87 | 86 |
1600 | 246 | 249 | 241 | 242 | 225 | 240 | 96 | 96 |
1800 | 270 | 271 | 265 | 264 | 264 | 264 | 106 | 105 |
2000 | 291 | 292 | 286 | 286 | 286 | 285 | 114 | 114 |
7500 | 687 | 689 | 684 | 685 | 684 | 685 | 273 | 274 |
8000 | 695 | 695 | 695 | 695 | 695 | 695 | 278 | 278 |
16000 | 695 | 695 | 695 | 695 | 695 | 695 | 278 | 278 |
Height in Units |
64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick |
Jump off Fall Damage |
Run off Fall Damage |
Crouch off and stand up Fall Damage |
Run off (exojump) Fall Damage |
For the following tables, we assume that a player is standing on something (e.g. on a world brush) with a given height from the ground that they fall down from. The fall damage that the player will receive does not only depend on the technique the player uses to fall down but also on the tickrate.

Smallest Fall Height in Units causing... |
Jump off | Run off | Crouch off and stand up |
Run off (exojump) | ||||
---|---|---|---|---|---|---|---|---|
64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick | 64 tick | 128 tick | |
≥ 1 damage | 167 | 163 | 223 | 216 | 232 | 225 | 223 | 220 |
≥ 25 damage | 247 | 243 | 303 | 301 | 312 | 310 | 447 | 451 |
≥ 50 damage | 340 | 342 | 396 | 393 | 405 | 402 | 767 | 772 |
≥ 75 damage | 459 | 454 | 516 | 505 | 525 | 514 | 1173 | 1179 |
≥ 100 damage | 578 | 573 | 635 | 631 | 644 | 640 | 1666 | 1672 |
≥ 120 damage | 693 | 687 | 750 | 737 | 759 | 746 | 2127 | 2120 |

- The fall damage is slightly higher when landing crouched as opposed to landing uncrouched.
- The fall damage doesn't exceed 695 because sv_maxvelocity is 3500 by default. If higher, the maximum fall damage also increases.
- All fall damage is multiplied with sv_falldamage_scale.
- When wearing an exojump, there is a default fall damage reduction of 60 %, controlled by the ConVar sv_falldamage_exojump_multiplier.
- Players jumping on a block with a height of 9 (128 tick: 11) units or higher will land on it silently (no crouching).
- Players running off a block with a height of 20 units or more will fall. Otherwise they "stick" to the ground.
- Players running off a block with a height of 47 (128 tick: 46) units or less will land silently.
- Players running off a block with a height of 214 to 222 units hear a fall damage sound but don't receive any damage (64 tick only).
- Players jumping off a block with a height of 159 to 162 units hear a fall damage sound but don't receive any damage (128 tick only).
- The smallest initial height that a player needs to hurt themselves is 151 units: crouch then jumping off and staying crouched deals 1 damage. With an exojump, it needs just an initial height of 79 (128 tick: 75) units.
An approximation for the fall damage of a player running off some height on 128 tick is 9.525 * sqrt(height) - 139.25. The resulting damage value must be clamped to the upper limit 695, then multiplied with sv_falldamage_scale (and also with sv_falldamage_exojump_multiplier if the player wears an exojump) and finally the value must be rounded down and clapmed to the lower limit of 0. As a C function, it could look like this:
int damage(float height, bool playerWearsExojump)
{
float damage = 9.525 * sqrt( height ) - 139.25;
damage = MIN(695, damage) * sv_falldamage_scale;
if (playerWearsExojump)
damage *= sv_falldamage_exojump_multiplier;
return MAX(0, (int) damage);
}
|
The error of this approximation should be at most 1 damage point. For jumping off, add 54.8 to the input height to get a result of a similar precision. For the Crouch off and stand up damage subtract 9.6 from the input height.
Grenades
Throwable Type | Distance (with Jumpthrow) | |
---|---|---|
Standing | Running | |
Smoke Grenade Decoy Grenade |
≈ 1754 (2653) Pitch: -32.9 (-27.4) |
≈ 3045 (4380) Pitch: -40.7 (-33.0) |
Tactical Awareness Grenade Snowball |
≈ 1494 (2335) Pitch: -38.1 (-30.6) |
≈ 2494 (3734) Pitch: -46.8 (-39.2) |
Molotov Incendiary Grenade |
≈ 1247 (1385) Pitch: -18.0 (6.3) |
≈ 1876 (2015) Pitch: -18.0 (7.4) |
Flashbang HE Grenade |
≈ 1050 (1113) Pitch: -10.4 (9.0) |
≈ 1555 (1618) Pitch: -10.5 (9.1) |
Breach Charge | ≈ 363 (632) Pitch: -40.8 (-32.2) |
≈ 614 (1017) Pitch: -49.6 (-38.7) |
The table on the right indicates the maximum distance that the different types of grenades can be thrown by players, assuming no height differences in the floor and measured in 2D, rounded to whole units. It also contains the approximate angle at which a player must look up or down to achieve these throwing distances. A pitch of 0 means looking straight forward, -90 or 90 means straight up or down respectively. A jumpthrow is the act of holding one or both attack buttons down and then invoking the command sequence +jump; -attack; -attack2 at once. For a breach charge, it is +jump; +attack.
- Players cannot throw a grenade higher than 1490 units.
- Smoke
- The smoke grenade diameter is roughly 256 units with a height of about 128 units.
- When smoking a corridor precisely, it is always possible to entirely cover a width of 200 units with no gaps, assuming no height differences in the floor.
- Corridors with a width of about 256 units or more cannot be covered without gaps.
- The smoke "shines" through (thin) walls.
- Fire
- Molotovs and incendiary grenades have a similar diameter as a smoke grenade.
- They can easily cover a width of 256 units or less, but not too much more than that.
- The flames tend to be blocked by (vertical) walls, making them spread in other directions.
Map Prefixes
See Map prefixes.
|