Team Fortress 2/Mapper's Reference: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(replaced overcomlicated wiki table format with htm for jump table, removed composer mozilla html formatting from other tables, added some cell coloring and huge summary note...)
m (redid cell coloring, didn't work right 1st try)
Line 28: Line 28:


<table border="1" cellpadding="2">
<table border="1" cellpadding="2">
     <tr style="background:#6495ED;">
     <tr>
      <th width="110">Class </th>
      <th style="background:#6495ED;" width="110">Class </th>
       <th width="110">Jump Type </th>
       <th style="background:#6495ED;" width="110">Jump Type </th>
       <th width="90">Horizontal </th>
       <th style="background:#6495ED;" width="90">Horizontal </th>
       <th width="90">Vertical </th>
       <th style="background:#6495ED;" width="90">Vertical </th>
     </tr>
     </tr>
     <tr>
     <tr>
       <td rowspan="2"><b>Scout</b>
       <td style="background:#CCCCCC;" rowspan="2"><b>Scout</b></td>
      </td>
       <td style="background:#CCCCCC;"> Normal </td>
       <td> Normal </td>
       <td style="background:#CCCCCC;"> 320~352 </td>
       <td> 320~352 </td>
       <td style="background:#CCCCCC;"> 72 </td>
       <td> 72
      </td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td> Double jump </td>
       <td style="background:#CCCCCC;"> Double jump </td>
       <td> 608~640 </td>
       <td style="background:#CCCCCC;"> 608~640 </td>
       <td> 117
       <td style="background:#CCCCCC;"> 117 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td rowspan="5"><b>Soldier</b>
       <td rowspan="5"><b>Soldier</b>
       <pre>* = wall climb</pre>
       <pre>* = wall climb</pre></td>
      </td>
       <td> Normal </td>
       <td> Normal </td>
       <td> 224~256 </td>
       <td> 224~256 </td>
Line 57: Line 53:
       </td>
       </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 1 rocket </td>
       <td> 1 rocket </td>
       <td> 992 (1024 max) </td>
       <td> 992 (1024 max) </td>
Line 63: Line 59:
       </td>
       </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 2 Rocket * </td>
       <td> 2 Rocket * </td>
       <td> N \ A </td>
       <td> N \ A </td>
       <td> 928~992
       <td> 928~992 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr">
       <td> 3 Rocket * </td>
       <td> 3 Rocket * </td>
       <td> N \ A </td>
       <td> N \ A </td>
       <td> 1184~1248
       <td> 1184~1248 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 4 Rocket * </td>
       <td> 4 Rocket * </td>
       <td> N \ A </td>
       <td> N \ A </td>
       <td> 1312~1376
       <td> 1312~1376 </td>
      </td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td> <b>Pyro</b> </td>
       <td style="background:#CCCCCC;"> <b>Pyro</b> </td>
       <td> Normal </td>
       <td style="background:#CCCCCC;"> Normal </td>
       <td> 256~288 </td>
       <td style="background:#CCCCCC;"> 256~288 </td>
       <td> 72
       <td style="background:#CCCCCC;"> 72 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td rowspan="5"><b>Demoman</b>
       <td rowspan="5"><b>Demoman</b>
       <pre>* = Medic necessary</pre>
       <pre>* = Medic necessary</pre>
Line 94: Line 86:
       <td> Normal </td>
       <td> Normal </td>
       <td> 250~256 </td>
       <td> 250~256 </td>
       <td> 70
       <td> 70 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 1 sticky </td>
       <td> 1 sticky </td>
       <td> 2112~2144 </td>
       <td> 2112~2144 </td>
       <td> 728 (928-960 max)
       <td> 728 (928-960 max) </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 2 stickies </td>
       <td> 2 stickies </td>
       <td> 5845? </td>
       <td> 5845? </td>
       <td> 3072~3104
       <td> 3072~3104 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 3 stickies * </td>
       <td> 3 stickies * </td>
       <td>&nbsp;? </td>
       <td>&nbsp;? </td>
       <td> over 6323
       <td> over 6323 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> 4 stickies * </td>
       <td> 4 stickies * </td>
       <td>&nbsp;? </td>
       <td>&nbsp;? </td>
       <td> over 7769
       <td> over 7769 </td>
      </td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td> <b>Heavy</b> </td>
       <td style="background:#CCCCCC;"> <b>Heavy</b> </td>
       <td> Normal </td>
       <td style="background:#CCCCCC;"> Normal </td>
       <td> 192~224 </td>
       <td style="background:#CCCCCC;"> 192~224 </td>
       <td> 72
       <td style="background:#CCCCCC;"> 72 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td rowspan="4"><b>Engineer</b>
       <td rowspan="4"><b>Engineer</b>
       <pre>* = used as platform</pre>
       <pre>* = used as platform</pre></td>
      </td>
       <td> Normal </td>
       <td> Normal </td>
       <td> 256~288 </td>
       <td> 256~288 </td>
       <td> 72
       <td> 72 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> Teleporter * </td>
       <td> Teleporter * </td>
       <td>&nbsp;? </td>
       <td>&nbsp;? </td>
       <td> 84
       <td> 84 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> Dispenser * </td>
       <td> Dispenser * </td>
       <td> 288~320 </td>
       <td> 288~320 </td>
       <td> 127
       <td> 127 </td>
      </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> Sentry * </td>
       <td> Sentry * </td>
       <td> ~315 </td>
       <td> ~315 </td>
       <td> 138
       <td> 138 </td>
      </td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td> <b>Medic</b> </td>
       <td style="background:#CCCCCC;"> <b>Medic</b> </td>
       <td> Normal </td>
       <td style="background:#CCCCCC;"> Normal </td>
       <td> 256~288 </td>
       <td style="background:#CCCCCC;"> 256~288 </td>
       <td> 72
       <td style="background:#CCCCCC;"> 72
       </td>
       </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
       <td> <b>Sniper</b> </td>
       <td> <b>Sniper</b> </td>
       <td> Normal </td>
       <td> Normal </td>
       <td> 256~288 </td>
       <td> 256~288 </td>
       <td> 72
       <td> 72 </td>
      </td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td> <b>Spy</b> </td>
       <td style="background:#CCCCCC;"> <b>Spy</b> </td>
       <td> Normal </td>
       <td style="background:#CCCCCC;"> Normal </td>
       <td> 256~288 </td>
       <td style="background:#CCCCCC;"> 256~288 </td>
       <td> 72
       <td style="background:#CCCCCC;"> 72
       </td>
       </td>
     </tr>
     </tr>
     <tr style="background:#ED5555;">
     <tr>
      <td> Maximum </td>
      <td style="background:#ED5555;"> Maximum </td>
       <td> &nbsp;? </td>
       <td style="background:#ED5555;"> &nbsp;? </td>
       <td> &nbsp;? </td>
       <td style="background:#ED5555;"> &nbsp;? </td>
       <td> over 1952 </td>
       <td style="background:#ED5555;"> over 1952 </td>
     </tr>
     </tr>
</table>
</table>
Line 191: Line 171:
<!--- screw it, I'm using html --->
<!--- screw it, I'm using html --->
<table border="1" cellpadding="2">
<table border="1" cellpadding="2">
     <tr style="background:#6495ED;">
     <tr>
      <th width="110">Class </th>
      <th style="background:#6495ED;" width="110">Class </th>
       <th width="110">Forwards </th>
       <th style="background:#6495ED;" width="110">Forwards </th>
       <th width="90">Backwards </th>
       <th style="background:#6495ED;" width="90">Backwards </th>
     </tr>
     </tr>
     <tr>
     <tr>
Line 201: Line 181:
       <td> 360 </td>
       <td> 360 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="1"><b>Soldier</b> </td>
      <td style="background:#CCCCCC;" rowspan="1"><b>Soldier</b> </td>
       <td> 240 </td>
       <td style="background:#CCCCCC;"> 240 </td>
       <td> 216 </td>
       <td style="background:#CCCCCC;"> 216 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 211: Line 191:
       <td> 270 </td>
       <td> 270 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="1"><b>Demoman</b> </td>
      <td style="background:#CCCCCC;" rowspan="1"><b>Demoman</b> </td>
       <td> 280 </td>
       <td style="background:#CCCCCC;"> 280 </td>
       <td> 252 </td>
       <td style="background:#CCCCCC;"> 252 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 221: Line 201:
       <td> 207 </td>
       <td> 207 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="1"><b>Engineer</b> </td>
      <td style="background:#CCCCCC;" rowspan="1"><b>Engineer</b> </td>
       <td> 300 </td>
       <td style="background:#CCCCCC;"> 300 </td>
       <td> 270 </td>
       <td style="background:#CCCCCC;"> 270 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 231: Line 211:
       <td> 288 </td>
       <td> 288 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td> <b>Sniper</b> </td>
      <td style="background:#CCCCCC;"> <b>Sniper</b> </td>
       <td> 300 </td>
       <td style="background:#CCCCCC;"> 300 </td>
       <td> 270 </td>
       <td style="background:#CCCCCC;"> 270 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 250: Line 230:


<table border="1" cellpadding="2">
<table border="1" cellpadding="2">
     <tr style="background:#6495ED;">
     <tr>
      <th width="110">Class </th>
      <th style="background:#6495ED;" width="110">Class </th>
       <th width="110">Weapon Type </th>
       <th style="background:#6495ED;" width="110">Weapon Type </th>
       <th width="90">Damage Dealt </th>
       <th style="background:#6495ED;" width="90">Damage Dealt </th>
     </tr>
     </tr>
     <tr>
     <tr>
Line 268: Line 248:
       <td>30~40 </td>
       <td>30~40 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="3"><b>Soldier</b> </td>
      <td style="background:#CCCCCC;" rowspan="3"><b>Soldier</b> </td>
       <td> Rocket Launcher </td>
       <td style="background:#CCCCCC;"> Rocket Launcher </td>
       <td>90~100 </td>
       <td style="background:#CCCCCC;">90~100 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Shotgun </td>
      <td style="background:#CCCCCC;">Shotgun </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Shovel </td>
      <td style="background:#CCCCCC;">Shovel </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 294: Line 274:
       <td>60~70</td>
       <td>60~70</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="3"><b>Demoman</b> </td>
      <td style="background:#CCCCCC;" rowspan="3"><b>Demoman</b> </td>
       <td> Grenade Launcher </td>
       <td style="background:#CCCCCC;"> Grenade Launcher </td>
       <td>50~60 </td>
       <td style="background:#CCCCCC;">50~60 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Pipe Bomb (sticky) Launcher</td>
      <td style="background:#CCCCCC;">Pipe Bomb (sticky) Launcher</td>
       <td>110~120</td>
       <td style="background:#CCCCCC;">110~120</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Bottle </td>
      <td style="background:#CCCCCC;">Bottle </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 320: Line 300:
       <td>60~70 </td>
       <td>60~70 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="3"><b>Engineer</b> </td>
      <td style="background:#CCCCCC;" rowspan="3"><b>Engineer</b> </td>
       <td> Shotgun </td>
       <td style="background:#CCCCCC;"> Shotgun </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Pistol</td>
      <td style="background:#CCCCCC;">Pistol</td>
       <td>10~20</td>
       <td style="background:#CCCCCC;">10~20</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Wrench </td>
      <td style="background:#CCCCCC;">Wrench </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 342: Line 322:
       <td>60~70</td>
       <td>60~70</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td rowspan="4"><b>Sniper</b> </td>
      <td style="background:#CCCCCC;" rowspan="4"><b>Sniper</b> </td>
       <td> Sniper Rifle (noscope) </td>
       <td style="background:#CCCCCC;"> Sniper Rifle (noscope) </td>
       <td>50~60 </td>
       <td style="background:#CCCCCC;">50~60 </td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td> Sniper Rifle (full charge)</td>
      <td style="background:#CCCCCC;"> Sniper Rifle (full charge)</td>
       <td>150~160</td>
       <td style="background:#CCCCCC;">150~160</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Submachine gun</td>
      <td style="background:#CCCCCC;">Submachine gun</td>
       <td>0~10</td>
       <td style="background:#CCCCCC;">0~10</td>
     </tr>
     </tr>
     <tr style="background:#CCCCCC;">
     <tr>
      <td>Kukri (knife) </td>
      <td style="background:#CCCCCC;">Kukri (knife) </td>
       <td>60~70 </td>
       <td style="background:#CCCCCC;">60~70 </td>
     </tr>
     </tr>
     <tr>
     <tr>

Revision as of 09:57, 30 May 2008

A quick reference for the numbers and statistics that any Team Fortress 2 level designer should know. Most importantly, use these numbers to help make a map feel in proportion, as TF2 maps are slightly larger than maps for other, more realistic mods.

Model sizes

These are the minimum empty space dimensions required for a model to fit and function in the game. Players can move through spaces with these dimensions, and Engineer structures can be built and operate in them. All sizes are in Hammer Units.

Model Height Width / Depth
Player (standing) 83 49
Player (ducking) 56 49
Sentry gun (level 3) 87 49
Dispenser 83 49
Teleporter 95 57
Maximum 95 57

Jump distances

The maximum jump clearances for each class, in Hammer units. A player can clear a gap that is as wide as the Horizontal clearance for his class. He can climb a ledge that is as tall as his Vertical clearance. Without jumping a player can climb a vertical height of 18 units (the largest single step of a stairs).

<tr">
Class Jump Type Horizontal Vertical
Scout Normal 320~352 72
Double jump 608~640 117
Soldier
* = wall climb
Normal 224~256 72
1 rocket 992 (1024 max) 448 (576 max)
2 Rocket * N \ A 928~992
3 Rocket * N \ A 1184~1248
4 Rocket * N \ A 1312~1376
Pyro Normal 256~288 72
Demoman
* = Medic necessary
Normal 250~256 70
1 sticky 2112~2144 728 (928-960 max)
2 stickies 5845? 3072~3104
3 stickies *  ? over 6323
4 stickies *  ? over 7769
Heavy Normal 192~224 72
Engineer
* = used as platform
Normal 256~288 72
Teleporter *  ? 84
Dispenser * 288~320 127
Sentry * ~315 138
Medic Normal 256~288 72
Sniper Normal 256~288 72
Spy Normal 256~288 72
Maximum  ?  ? over 1952
Note.pngNote:All jumps require crouching after jumping in order to reach a ledge at the given height, otherwise vertical clearance is 27 units less. Wall climb requires a Soldier to shoot the wall before reaching the peak of a rocket jump and requires a Demoman to attach a sticky to the wall and detonate it before reaching the peak of a sticky jump. Mappers should keep in mind the limitations of the average player to allow them access to necessary areas while gifting advanced players with access to secret/advantageous areas.

Class Speeds

The speeds below are measured in Hammer units per second. The spy, for example, has a movement speed of 300, so in ten seconds (the max amount of time he can stay cloaked) he can cover a distance of up to 3000 Hammer units.

Class Forwards Backwards
Scout 400 360
Soldier 240 216
Pyro 300 270
Demoman 280 252
Heavy 230 207
Engineer 300 270
Medic 320 288
Sniper 300 270
Spy 300 270
Note.pngNote:For a rough idea of how many seconds it takes a certain class to go from one part of a map to another, divide the distance between the points in Hammer units by their speed.

Damage amounts

Note.pngNote:For creating breakable obstacles (func_breakable) and/or targets in a map. Damage data gathered using func_breakable's - Min Damage to hurt. Settings for the entities were: Strength > 1.0, Physical Impact damage scale > 0.1


Class Weapon Type Damage Dealt
Scout Scattergun 60~70
Pistol 10~20
Bat 30~40
Soldier Rocket Launcher 90~100
Shotgun 60~70
Shovel 60~70
Pyro Flamethrower N/A
Shotgun 60~70
Ax 60~70
Demoman Grenade Launcher 50~60
Pipe Bomb (sticky) Launcher 110~120
Bottle 60~70
Heavy Minigun 30~40
Shotgun 60~70
Fists 60~70
Engineer Shotgun 60~70
Pistol 10~20
Wrench 60~70
Medic Needle gun 10~20
Bone saw 60~70
Sniper Sniper Rifle (noscope) 50~60
Sniper Rifle (full charge) 150~160
Submachine gun 0~10
Kukri (knife) 60~70
Spy Revolver 40~50
Knife 40~50

Pickup properties

Health pickups

Ammo pickups

Room dimensions

These are some general room dimensions from the popular maps to help gauge the proportions of your level. This section is not intended to provide detailed specifics on individual room layouts, decorations, etc.

2Fort

Room X Y Z
Ramp Room resupply 512 464 240
Long Hallway into Ramp Room 1024 128 180
Ramp Room 576 736 492*
Inner Sewer tunnel 1136 192 192
Flag Room 704 528 304
Inner Sewer water (puts out fire if crouched) - - 42
Note.pngNote:* This room has a skybox ceiling. The listed height refers to the top of the walls or other geometry.

Map prefixes

Main article:  Map prefixes
  • cp - Control Point
  • ctf - Capture the Flag
  • tc - Territorial Control
  • tr - Training (Unofficial)
  • pl - Payload