Team Fortress 2/Creating a Spawnroom
Creating your room
First of all, you should have an area which you consider to be the spawnroom. It must be large enough to contain however many info_player_teamspawn
entities you want to add there without colliding with them. Other then that it may be of any shape or color. For this example, the room you see on the right will be transformed into a spawnroom for the RED team.

Making it a respawn room
Create a func_respawnroom brush-based entity with material tools/toolstrigger
that fills your area. Name it something like red_respawn_room_01 and set its team to RED. Name it accordingly due to how many spawn rooms you may have for the same team.
Bring the players inside
Now you need to add the player spawns. Create an info_player_teamspawn in your room. Change the spawn's team to RED. Make 15 copies of the player spawn entity, giving each of them plenty of space. Give your info_player_teamspawn entities all the same name, for example: Team_red_player_01. This naming system can later help also with which entity spawns in what spawnroom.
Respawn and resupply
It may be good to have a resupply area inside your respawn. A resupply consists of two entities:
- A prop_dynamic, representing the resupply locker.
- A func_regenerate, which gives it functionality.
Create a prop_dynamic
somewhere in the room, set its model to models/props_gameplay/resupply_locker.mdl
, and give it a name such as resup1. Now create a func_regenerate
brush-based entity with material tools/toolstrigger
, making sure it occupies a larger area around the prop. However note that you might need to make the volume a certain size, so that it does not create exploits in anyway. Set its Associated Model
to the name given to the dynamic prop (resup1, in this article), and set its team to RED.
Keeping the bullies out
Some players like to camp in spawn rooms, spawn-killing players. There is, however, an easy solution to this problem, which consists of creating a barrier that blocks the spawnroom entry to players of the opposite team.
To do this, create a func_respawnroomvisualizer brush-based entity with material tools/toolsnodraw
. Assign material overlays/no_entry
to the side that faces away from the spawn area. Be sure to set its Associated Respawn Room
accordingly.
Making a door
The final step is to make a door that will seal off (non-vis) the room from most fire. Firstly, place a prop_dynamic
in the doorway and set its model to models/props_gameplay/door_slide_large_door.mdl
.

Next, create a func_door entity. You should try to shape and size the brush to the exact size and width of the model door. Name it to something that helps with the current naming system depending on the number of rooms you are going to make. For example: door_red_spawnroom_01. As this entity will be only a moving scheme for the prop, texture it with nodraw.
func_door
attributes you will have to change individually:
- Speed: changing this will effect how fast the door will open and close. Usually, this is set to 400 for a fast moving door, which allows quick passage. Set it to a lower value to make the door close and open at a slower rate.
- Delay Before Reset: Set this to -1 so that the door will never close as long as someone is in the doorway. Otherwise, the door will close and NOT reopen until everyone has cleared the trigger. Anything other that -1 can lead to griefing (i.e. one player can lock an entire team in the spawnroom).
- Lip: Used to adjust how far the door sticks out or goes into the surrounding structure. For this tutorial the value is 3. The lip is set in Hammer units.
- Move direction: This is the final thing to edit and the most important. We want this door to open upwards, so we'll set it to Up. However, you may set it to move in any direction, just make sure players can get past the door after spawning. For rotating doors, use the func_door_rotating entity.
In addition, uncheck the Touch Opens flag under the Flags tab, leaving this checked will allow the enemy team to open the door.
Now reselect the door prop, and parent it to the func_door
you have just created.
Next, create a filter_activator_tfteam, and name it to something appropriate, such as Filter_door_red_01. Lastly, set the team filter to RED.

The final thing to make is a trigger_multiple that will tell the door when to open and close. The trigger should be large enough to accommodate player size and allow for the door to fully reach its open state before the player gets to it. It may be a good idea to stretch the trigger volume so that it can be activated from either side of the door, instead of making two trigger volumes. Also, make sure you set its filter property to the filter you have created for the door (Filter_door_red_01).
Now it's time to edit the input/output tabs. Your inputs and outputs should look like the image to the right.
That's it, you just finished making a spawn room! Still, don't forget about lighting and details. A maps in Team Fortress 2 may have anywhere from one to three or more rooms per team depending on the map objectives.
Theory
A respawn room's location and arrangement will directly affect the pacing of a map. It's a good idea to have a rough idea of how you want your map laid out and how much time it will take players to reach the objectives when choosing their location. Your spawn room should provide players with a quick break from the action. If you're creating a map for public play, keep in mind many TF2 servers have a 10 to 20 second respawn time after a player dies before they can rejoin the action. If the spawn points are easily accessible by members of the enemy team, you'll have players spend that 10 to 20 seconds waiting to respawn only to be greeted by another 10 to 20 second wait when they're killed by the enemy team immediately after spawning.