.
This is a package of numerous resources and improvements for TF2 mapping to assist in easing the tedious and tricky parts of world creation.
In the following posts you will find information about what to expect and how to use each specific resource.
=== July 9 2010 ===
--- Prop Library ---
• Renamed category "Trains, Carts & Trucks" to "Vehicles & Friends"
• Added 71 news props from Engineer update and Training
-- 5 Supports & Framing
-- 7 Windows & Friends
-- 1 Railings, Stairs & Balconies
-- 9 Fences & Walls
-- 3 Patch Panels
-- 9 Gameplay
-- 1 Tracktrack
-- 1 Spytech
-- 1 Vehicles & Friends
-- 24 Nature
-- 1 Huge Props & Friends
-- 4 3D Sky
-- 5 Everything Else
--- Gametype Library ---
• Updated all payload modes to use the new simplified control system
• Removed time-rollover between rounds for multi-stage modes
• Changed AddTime to AddTeamTime in multi-stage control point mode
--- FGD ---
• New flags on path_track
• New key on team_round_timer
• New keys/inputs on team_train_watcher
• Added 8 new soundscapes to env_soundscape
--- Prefabs ---
• Added 8 track curve prefabs for the new 45 degree segment
• Added 8 new soundscapes
--- Other ---
• Added 8 new soundscapes to Soundscape Library
Full Changelog

If you are using a system that has been repaired, here is how to implement the changes without recopying the entire system.
=== December 19 2009 ===
PLR cart stage transition reliability fixes
• The following outputs exist as OnPass on the final path_track of stages A and B. Remove them and copy the outputs to the corresponding team_control_point_round while changing the output type to OnWonByTeam#
•
Stage A
•
Stage B
=== September 1 2009 ===
Explosive damage passing through door prefabs
Library/Prefab setup gate congruency.
=== July 29 2009 ===
PLR cart not moving with 3 people on it at round start

The installer has been confirmed to work on XP, Vista and 7. Please report any issues if you run into them.
An uninstaller will be created in the root SDK folder at
steamapps\<user>\sourcesdk
Never again will you have to suffer searching through the model browser for something you need. It is now all laid out before you in an easily browsed environment categorized by the type of prop you are in need of.
The library contains 1072 props across 20 categories delimited
by visgroups:
- Door & Frames
- Supports & Framing
- Windows & Friends
- Railings, Stairs & Balconies
- Fences & Walls
- Patch Panels
- Cranes
- Light Fixtures
- Gameplay
- Traintrack
- Pipes
- Ventilation
- Spytech
- Vehicles & Friends
- Nature
- Industrial
- Building Prefabs
- Huge Props & Friends
- 3D Sky
- Everything Else
The scope of this library is limited to models used for detailing a map. You will not find player models, animated explosion debris, etc. A handful of props are included in two categories, in such cases the categories are situated adjacently, so that all relevant props are in the area when enabled.
I don't see the props. <- VERY COMMON!
The props are hidden in
visgroups!
Go to
View Menu > Screen Elements > Filter Control
This will turn on the
visgroup panel. Go to the User tab and you can show/hide different prop groups.
I see a bunch of yellow boxes. / I can't see very far.
Raise the model render distance or back clipping plane in
Tools Menu > Options > 3D views
It takes too long to get around.
• Raise the camera movement speed in
Tools Menu > Options > 3D views
• Instant travel to a selected category can be accomplished by: selecting the visgroup, clicking the
mark button, pressing
Ctrl+Shift+E &
Ctrl+E. This will center the 3D and 2D views on the group.
No more confusion over setting up rounds. No more timer headaches. No more payload crashing. All your woes from setting up the functional entity system for your map are gone forever! You can now have all nine standard gametypes at your fingertips with built in helpful comments to assist in hooking them up to your map!
Each system's entities are in a visgroup for easy selection to copy them into your own map. There is also a visgroup with walls and sky containing each area so you can turn them on, turn off all but one system, compile and see it in action.
Included are:
• Capture the Flag
• Arena
• King of the Hill
• A+B>C (Gravelpit style)
• Territorial Control
• 5 CP Push (Granary style)
• Multi Stage CP (2x3 Dustbowl style)
• Single Stage Payload (with four points)
• Multi Stage Payload (2x3)
• Payload Race
Many of the core entities are prefixed for their gametype to avoid I/O conflict within the VMF. If you wish to simplify names in your own map by removing the prefix it can be done very easily. After you copy the entities to your map, use the Replace function (Ctrl+Shift+R) to find the prefix in all entities and 'replace' them with blank. (
Example, using multi stage cp)
Please note, this will not work on PLR, doing so will not replace the names within AddOutput on the final paths of the first stage. They will need to be done manually.
Single payload setups include a basic finale: sounds and a mushroom cloud. Multi Stage Payload includes drop-down stage transitions ala Goldrush.
If you are unfamiliar with how trigger_capture_area times work, you may want to check
my thread on the subject.
What is NOT included? Anything that isn't directly linked to the function of the system. This means things like func_respawnroom, basic doors, resupply cabinets, etc. However, when necessary I have included filters that are needed for entities that will change teams.
A related side note I feel is worth mentioning here: in spawn rooms that will change teams leave the func_respawnroom set to Any team. It will automatically take on the team of spawn points it contains, and in turn the func_respawnroomvisualizer will work properly. (same goes for func_regenerate, leave it as Any since the wrong team won't be able to enter)
I want to make single stage PLR.
Delete the paths/spawns/CPs in the second two areas, and the following 8 entities from the "stack":
- plr_round_(B/C)
- plr_(blu/red)_watcher(B/C)
- plr_stageC_start_(counter/case)
Then do
Map Menu > Check for problems and delete all the broken dead-end outputs left over.
(If valve decides to make one then I will add it to the library, until then it stays with all other custom modes)

I built this from scratch, only referencing valve maps when I needed a particular number or file. This means I managed to streamline the I/O flow as well as reduce entity count in several places. Below are a few examples.
• Removing the logic_relay chain for multi-stage setup gates.
Valve used three logic_relays (fired all at once by the timer) that enable/disable each other in sequence to open the gates for the three stages. I was able to remove this by simply having the timer trigger the gates directly, having the second and third gates begin locked, and set an OnFullyOpen output on the first and second gates that unlock the next.
• Spawn points and rounds in single stage payload.
Badwater (and by extension the VDC tutorial) use a team_control_point_round, despite it being a single-round map. This has led to many people having broken spawn points because they are not properly linked up to the round system. It is entirely unnecessary to use a t_c_p_r here, and the spawn points can be controlled directly with enable/disable inputs (Badwater does this anyway, I still don't know why the round is in there).
• Territorial Control.
Hydro has so many extraneous entities and outputs it is ridiculous. Filters that aren't used by anything, game_round_win entities that don't (can't) perform their intended function, irrelevant reset outputs since the whole map will reset anyway. No way I can list it all, but needless to say my system is far more compact and efficient.
• Payload Race third-stage starting location bonus.
(Logical view comparison. Mine on left, valve's on right.)
Valve used 4 math_counter and 6 logic_relay to determine where to start the two carts. Round victory would add 1 to your two math_counters, the first enabling the second starting relay and disabling the first, and the second enabling the third starting relay and disabling the second. For both teams. Then at the third round all six relays were told to fire, and only the two enabled would do so.
What I did instead was use a single math_counter and a logic_case. Red winning either round would add 2 to the counter, Blue winning would add 3. This means after both rounds the only possible values are 4, 5 or 6. Then when the third round starts I just tell the counter to send it's value to the case which then teleports both carts according to the value.
• Removing the math_remap from the payload system. (No longer relevant)
If players enter the trigger_capture_area too fast it will only send the end-total through OnNumCappersChanged, this will result in the logic_case doing nothing if it receives input beyond it's assigned speed cases. Valve used a math_remap to truncate higher outputs from the t_c_a and keep it in the 0-3 range.
By only specifying three player counts (0, 1, 2) instead of four on the logic_case we can use OnDefault to cover 3 and above. OnDefault is fired whenever the logic_case receives an input for which it does not have a defined case, which means it works if 3 players enter at once or all the way up to 16 scouts at once. Goodbye math_remap!
Tired of clicking around faceless gray blocks to find a specific one? Upset at your nobuilds not behaving? Wish you didn't have to turn off smart edit when you want a fourth payload point? Obnoxiously large boxes getting in the way of small scale work?
No more! With this improved, modified, and all around super-awesome supplementary FGD all these woes will be gone forever! You get access to entities left out by default, improvements in usability to more other entities than I care to count and
twenty-two shiny new icons for entities that were previously unrecognizable!
• Twenty-two icons and the info_player_teamspawn model shown above
• Access to the following entities:
-- ai_changetarget
-- entity_spawn_manager
-- entity_spawn_point
-- func_flag_alert
-- func_physbox_multiplayer
-- point_push
-- trigger_stun
-- trigger_vphysics_motion
• Default new-map skybox set to sky_tf2_04
• Size of sky_camera entbox reduced from 32³ to 4³
• Access to previously hidden keys, inputs and outputs on:
-- dispenser_touch_trigger
-- env_fog_controller
-- func_tracktrain
-- game_text
-- item_teamflag
-- obj_sentrygun
-- obj_dispenser
-- path_track
-- team_control_point_master
-- team_train_watcher
• Fixed improper keys, inputs and outputs on:
-- filter_* (all filters)
-- func_nobuild
• Parenting keys, inputs and outputs on:
-- func_capturezone
-- func_regenerate
-- func_respawnroom
-- info_player_teamspawn
• Improved descriptions on:
-- trigger_hurt
• Better default settings on:
-- func_door:
__Touch opens flag OFF
__Delay before reset at -1
-- team_control_point
__Disable shadows flag ON
func_nobuild
• Removed: Team and Start Disabled keys. SetTeam, Enable and Disable I/Os.
None of these did anything, they are dead-ends in the entity code.
• Added: SetActive, SetInactive and ToggleActive I/Os.
These are what actually work instead of enable and disable.
• Added: Parenting keys and I/Os.
It has the ability to be parented, so I figured I'd add it in. However, a mobile nobuild will only stop construction at it's current location, and will not affect any buildables it passes through.
func_physbox_multiplayer
This is identical to func_physbox except that it has more network-friendly physics code.
func_tracktrain
• Added: Two inputs new with the scout update
-- I:
TeleportToPathTrack - Immediately teleports the train to the specified path_track, however it seems to ignore the
height above track key when placing it on the path. The height corrects itself by the time it reaches the next path.
-- I:
SetSpeedForwardModifier - Allows you to scale the forward speed of the train from 0-100% without actually changing any speed values. Range is 0-1
info_player_teamspawn
Parenting this entity is only half functional. The location of the spawnpoint will properly move with it's parent, but the direction players face upon spawn will NOT. Players will always face the direction set in Hammer.
item_teamflag
• Added:
TurnOff and
TurnOn inputs
These control the display of the intelligence case. The model reverts to on when dropped or captured, but not when picked up or returned. Colored smoke and falling paper still exist when model is off.
obj_sentrygun & obj_dispenser
• Added: Invulnerable flag and default upgrade level keys to dispenser.
• Added: Several I/Os these entities support:
-- I:
SetHealth - Set the current AND maximum health. Will cause CRASH if set to 0. If object is upgraded health will scale according to new value.
-- I:
AddHealth - Increase health. Will NOT surpass maximum. Will NOT kill if 0 health is reached using negative values.
-- I:
RemoveHealth - Decrease health. Will kill if 0 health is reached.
-- I:
SetTeam - Set the team the object is allied to. Does NOT change skin.
-- I:
skin - Set the skin the object uses. Useful in conjunction with SetTeam.
-- O:
OnDestroyed - Sent when object dies.
-- O:
OnDamaged - Sent when hurt.
-- O:
OnObjectHealthChanged - Sends current health as a parameter whenever a change occurs.
trigger_capture_area
• Added:
OnNumCappersChanged2 output
Identical to OnNumCappersChanged except for outputting -1 (instead of 0) when the area is being blocked by the enemy. This is used for stopping the cart in place on a hill in payload race, whereas 0 will allow the cart to roll back.
team_control_point_master
• Added:
SetWinnerAndForceCaps input
Forces victory and round end while awarding ownership of all CPs to the winning team. Does NOT award team score for CPs taken in this manner.
team_train_watcher
• Added:
OnStartOvertime input
Sets the cart to 5-seconds-until-recession a single time. Note that this is in fact an input despite being named
On...

Another reducer of tedium and saver of time! With this Prefab Pack you now have small pre-assembled entity things ready to drop into your map and run!
• 49 soundscapes with sounds listed and available positions pre-made.
• 16 track curves with associated path_tracks in 2 team flavors.
• 6 standard doors in 3 team filter flavors.
• 3 sizes of setup gates pre-made for up to 3 stages.
• Resupply lockers in 3 team filter flavors.
• A pair of generic team filter entities.
• Moving sawblade with all effects.
• Pumpkin bomb setup.
For instructions on how to place prefabs see
this article on the VDC.
Why prefabs?
This is a set of prefabs instead of a library because each instance has entities that need to be uniquely named. Properly created prefabs will increment a number of the entity name so that every time you add a new one to your map it is unique. This means you can drop in as many doors as you want and they work instantly without changing anything, or drop in tracks and all you need to do is link up the ends without touching the rest.
Doors
• The team-only doors are set to use filters named
filter_red and
filter_blu (no e). Make sure yours are named this or use the filter pair prefab.
• Not-so-obvious sized doors have the recommended hole-in-the-wall size listed in the entity comments.
Track
• The skip brushes are to keep the prefab aligned to the grid better, feel free to delete them after you have the track placed (but you don't need to! skip faces are discarded during compile).
• The skip triangle indicates the direction of path flow so you don't need to examine the path_tracks.
Sawblades
• The non-sticking sticky bombs in Sawmill are due to a hard-coded feature based on entity names. I have included the two names that support this as individual prefabs.

Soundscape Library which you can load up in TF2 to preview all available soundscapes, then you know which prefabbed soundscape you want to use!
Upon loading the map it will self-enable the soundscape debug mode to let you see the locations and names of the soundscapes. All you need to do is walk around to each one you wish to hear to preview it. The green line indicates the currently active one.
For information on how to properly use a soundscape see
Ravidge's great tutorial on this site.

Improved material browser thumbnails for all 64 blend materials. Now not only do you see what two textures they
actually blend, but the blend modulation (makes a pattern rather than smooth gradient) is also accurately portrayed. To top it off I've included a color-coded system so you know at a glance if the material will have detail sprites with settings you are using for your map.
All thumbnails reflect the alpha settings shown
here. Evenly changing across the middle with each corner solid.
Here are comparison images of 45 of the materials,
default and
mine, to see just how improved they are.

17 tool textures now with the "tf" keyword! Now you don't have to remove the keyword every time you want to get a new tool texture.
If you find any materials missing the keyword or something you think should have it, let me know!

Some users will have Hammer's video settings defaulted to a very low level. The included config will override these settings and make all textures in the 3D view crisper and cleaner.
If you have a
really old computer you may not want to use this, as it does increase system resource usage.