This plugin converts any map into a game of freeze tag. When players die, they become encased in ice, and a teammate must stand near them to bring them back to life (It may also be configured to unfreeze them automatically, or respawn them). If enabled - Once all players on a team become frozen, or the configured round timer expires, the round is over.
CVARs:
Code:
sm_tf2freezetag_version: version number, for tracking (don't change)
sm_freezetag_enabled (1) Enable/Disable Freezetag Mode [0/1]
sm_freezetag_feedback (1) Enable/Disable Notification Messages [0/1]
sm_freezetag_thirdperson (0) Disable 0, Force TP 1, Preserve 2 [0-2] *
sm_freezetag_proxpulse (0.2) Update Interval For Beacons [0.1-1.0]
sm_freezetag_forcemulti (10) Damage Force Multiplier To Push Frozen People [0-1000]
sm_freezetag_forcecap (500) Damage Force Cap To Push Frozen People [0-5000]
sm_freezetag_model (1) Enable/Disable Ice Block Model [0/1] **
* The camera will force third person and back to first person if 1 is set, it will restore the client to whatever their camera was set to if 2 is set.
** Model must be installed on the server for the mod to load/enable it. When the model is disabled, players become transparent, and the medic melody particle will be used.
Configuration File::
The configuration file contains a default fallback, and map prefixes. You may also insert map-specific names, do not include the .bsp
for example if you wish to add one for degroot, name the key "cp_degrootkeep"
Code:
"default"
{
"preround" "10" // 0-20 preround time duration for class switching (and setup time on multistage maps)
"timer" "180" // 0-5940 timer for how long round will last, 0 = disable round timer (use map timer, or win by elimination)
"eliminations" "1" // 0-1 1 = allow freezetag to end the round when a team is frozen, 0 = do nothing
"maxrounds" "30" // 0-100 max rounds that will be played Wins/Stalemates before map change is forced (0 to disable)
"radius" "150" // 100-300 max distance from teammate to unfreeze them
"duration" "3" // 1-10 time to stand by teammate to unfreeze them
"opendoors" "1" // 0-2 0 = don't open doors (keeps the game/setup timer, sets setup timer to preround time), 1 = open gently, 2 = delete
"removespawns" "1" // 0-1 1 = remove respawn rooms and visualizers, 0 = do nothing
"openaps" "0" // 0-1 0 = don't mess with area portals, 1 = force all open
"blockcaps" "1" // 0-1 0 = allow capture points, 1 = disable capture points
"blockflags" "1" // 0-1 0 = allow flag capture, 1 = disable flag capture
"blocktrains" "0" // 0-1 0 = allow trains, ghosts, payload carts, 1 = disable (carts still won't move without caps enabled)
"hpratiored" "0.5" // 0.01-1.0 Red team - ratio of health to restore players with
"hpratioblue" "0.5" // 0.01-1.0 Blue team - ratio of health to restore players with
"autotimered" "60" // 0-5940 Red team - time to automatically unfreeze frozen players, 0 = disable
"autotimeblue" "60" // 0-5940 Blue team - time to automatically unfreeze frozen players, 0 = disable
"autohpratiored" "0.25" // 0.0-1.0 Red team - ratio of health to restore automatically unfrozen players with, 0 to respawn them in respawnroom
"autohpratioblue" "0.25" // 0.0-1.0 Blue team - ratio of health to restore automatically unfrozen players with, 0 to respawn them in respawnroom
"trackdamage" "1" // 0-1 1 = Damage to frozen players resets automatic timer, 0 = does not reset
"allowchangeclass" "0" // 0-1 1 = Respawn unfrozen players in spawn with given class, 0 = require round change
}
Commands:- sm_freezetag_reloadconfigs: (Rcon) Reloads the configuration file, changes take effect immediately.
- sm_freezetag_unfreeze: (Cheats) Unfreezes frozen player(s) in place.
- sm_freezetag: Info/help menu for information about weapon modifications, rules, tips, etc.
- sm_stuck, sm_unstuck: Triggers unstuck mode. Increased radius, transported to spawn frozen when revived, lower HP for rest of round.
Code:
2012-12-30 (v1.0.0)
* Initial Release
2013-1-20 (v1.1.2)
* Updated Main Release
- Added support for more map types (payload, attack/defend, etc)
- Integrated community suggestions (automatic unfreeze, respawn, toggle model, etc)
- Changed the ice model.
- Added a decoy for spies using the dead ringer.
- Prevented frozen players from attacking.
- Reworked how rounds are tracked/started.
- Eliminated many ConVars, moved them to configuration file.
- Fixed many early bugs regarding player movement and weapon detection.
- Cleaned up the code a bit for better readability, and rewrote some functions to be more efficient.
- Lots of other minor things.
2013-1-22 (v1.1.3)
- Fixed offset checking @ start
- Lowered max time added for next weapon attack since sometimes it did not seem to work properly.
2013-5-12 (v1.1.4)
- Changed all mediguns to behave normally.
- Removed light effect to increase performance.
- Removed unstuck code when colliding with frozen players (to address crashing issues).
- Frozen players are now non-solid to players.
- Bots are now pushable.
- The frozen model now moves more smoothly with players.
- Player gibs are now disabled when the mod is enabled.
- Players are now teleported to spawn points rather than respawned when using unstuck or hitting map traps.
This ensures compliance with other game modes (such as ff2 or vsh).
- Warmup freeze now prevents movement, and does not block attacking.
- Code cleanup: Removed unnecessary dropflag function.
Changed entity spawning code to be more efficient.
Removed unneccessary client checks.
Clients and entities are now passed by reference/userid.
Requirements:
Installation:- Place the bz2 archives on your fastdownload server if appropriate, they are included in the "fastdownload" directory.
- Extract the contents of the "tf" folder Preserve the directory, so that the materials and models reach appropriate destinations.
- The configuration file goes in tf\addons\sourcemod\configs, not your tf\cfg directory.
Plans:- Find some way to parent the ice block model directly to the player properly.
- Pop up a menu informing players about weapon changes/replacements.
Notes:- I suggest you change your mp_waitingforplayers_time to something like 60, (sm_cvar mp_waitingforplayers_time 60) so that people have time to load in and don't start frozen right away on the first round.
- Mods that scramble teams, or limit classes may help you manage the game mode a bit better. Keep in mind that each freeze registers as a death/frag, and each defense/unfreeze as a capture.
- Late joiners will be frozen in place. This allows them to join arena games in progress without upsetting the flow/balance of the game. Teammates will be able to revive them in the spawn room, or if automatic unfreeze is enabled -- they will self-revive.