Optional: SteamTools - will cause your server to display "VS Saxton Hale (vVersion)" instead of "Team Fortress" in the "Game" section of the server browser.
Make sure the ClientPrefs extension that comes with SourceMod is enabled, else queue points and other settings won't work properly.
Install SourceMod 1.5.2, or, if that doesn't work properly, a recent SourceMod snapshot from the 'new stable branch' or the 'development branch'. The latest VSH requires some of the features present in either 1.5.2 or the snapshots, so anything earlier... won't work.
Install the TF2Items and SDKHooks extensions (linked above).
From the downloads section just below this installation section, grab the "VSH Resources" pack, containing the materials, models, and sounds for VSH. Install it on your server. If you're not sure how to, it's similar to installing a skin on your client but with the server files instead, so look that up. A VPK link will be up sometime... soonish. When it is up, you can use the VPK on your server, instead of using the VSH Resources pack on your server.
This pack SHOULD contain all of the relevant files, but in the event you get issues, download vsh140mdlfixes.zip and vsh_142_eastermodels.zip. Hopefully you know where to put the files from those, if you need to.
If you use sv_downloadurl, download the "VSH BZ2" pack and upload the stuff inside to your fastdownload server, otherwise clients will see ERROR models and won't properly download the models/sounds/materials.
I would recommend backing up any old version of tf/cfg/sourcemod/SaxtonHale.cfg, deleting it, then filling in the newly-generated one after updating the plugin (update plugin, backup/delete file, mapchange, fill in new magically-appearing file). Also back up old versions of the files in tf/addons/configs/saxton_hale/ in case you delete or overwrite them while updating, if you're updating.
Download vsh142_easter.zip, which contains VSH 1.42. It is attached to this post.
Download "saxtonhale.smx", which fixes some stuff in 1.42 but doesn't change the version number. It is attached to this post.
Place 'saxtonhale.txt' in tf/addons/sourcemod/gamedata/. It is attached to this post.
Reload the map or restart the server.
If you won't be using the new boss from 1.42, you'll need to recompile saxtonhale.sp with the line '#define EASTER_BUNNY_ON' removed. You won't need the models for the new boss if you do so.
If you're compiling yourself you will probably need the latest include files from a recent SourceMod snapshot.
Maps: you can run this plugin on arena, koth, and vsh maps, though you'll need to find the Stripper:Source config that converts koth maps to arena maps. Be wary when using the saxton_hale_doors.cfg file, as some maps use doors as platforms (e.g. Nucleus).
The second post of this thread has a few decent maps, if you need some.
The hale_force_team cvar determines which team Hale is placed on. Setting this to 0 causes Hale to be on a random team UNLESS the map is a vsh_ map, in which case he is always BLU. Setting it to 1 causes it to be completely random. Setting it to 2 causes Hale to be on RED all the time, and setting it to 3 causes Hale to be on BLU all the time. The default is 0.
This plugin will not limit class counts, but you can use DJTsunami's Class Restrictions to do so. Balance-wise, class limits are probably a decent idea.
There's three special characters in the mode, which are chosen as the 'boss' less often than Hale: the Vagineer, the Horseless Headless Horsemann (Jr.), and the Christian Brutal Sniper. You can disable these by setting the convar hale_specials to 0.
Some servers use Taunt Crits (occassionally with a mini-crit condition) and The Amplifier for a bit of variety or balancing.
Ideally, the gamemode would be balanced with any player count, but it looks like 24-25 slots is ideal for a 'fair' game. Hale normally gets dominated by 31 players and completely dominates player counts under 10.
You can find all the cvars in tf/cfg/sourcemod/SaxtonHale.cfg hale_speed (Default: 360) - Saxton Hale's speed (max is 400) hale_rage_damage (Default: 800.0) - Damaged needed for Rage activation. hale_rage_dist (Default: 800) - Saxton Hale's Rage will effect on x inches (1/4 from this for Vagineer's Rage effect) hale_announce (Default: 120) - Time between info about the mode. 0 = disable announce. hale_specials 1/0 (Default: 1) - Special characters on/off. hale_point_type 1/0 (Default: 0) - Select condition to enable point (0 - alive players, 1 - time). hale_point_alive (Default: 5) (for hale_point_type 0) - Enable control points when there are X people left alive. hale_point_delay (Default: 6) (for hale_point_type 1) - Additional time delay per player before point's activation. Cap time is (45 + hale_point_delay*(active players - 1)) seconds. hale_enabled (Default: 1) - Do you really want set it to 0? Well now you can. Because it used to not work before, but now it does. hale_crits (Default: 1) - Allows/disallows Hale from being able to deal random critical hits. hale_ragesentrydamagemode (Default: 1) - If 0, to repair a sentry that has been damaged by rage, the Engineer must pick it up and put it back down. hale_first_round (Default 0) - If it's 0, first round will be default arena. hale_circuit_stun (Default 0) - Time, in seconds, for the Short Circuit to stun Hale. hale_spec_force_boss (Default 0) - If 1, VSH will count spectators as normal players and will allow them to gain queue points, but they will also be forced to be Hale when their turn comes. If 0, spectators are ignored completely, gain no queue points, and will not be selected as Hale. hale_enable_eureka (Default 0) - Set to 1 to allow the Eureka Effect in VSH. hale_force_team (Default 0) - As explained in the Tips section above, determines which team Hale is placed on. Setting this to 0 causes Hale to be on a random team UNLESS the map is a vsh_ map, in which case he is always BLU. Setting it to 1 causes it to be completely random. Setting it to 2 causes Hale to be on RED all the time, and setting it to 3 causes Hale to be on BLU all the time. The default is 0.
Usage: type on console, or type /command or !command in chat (for example: /hale) hale - The main menu of the mode. hale_hp or halehp - Show Hale's health. hale_next = halenext = hale_queue = halequeue - Show the queue. hale_help or halehelp - Show the help about the mode. hale_class or haleclass - Show the help about the current class. hale_new or halenew - What's new? hale_music or halemusic - Enable\disable boss music. hale_voice or halevoice - Enable\disable quite a few voices for the bosses, leaving only the more important ones playing (and at a lower volume). hale_resetqueuepoints or hale_resetq - Reset your current queue points to 0. If performed in chat, will ask for confirmation. If performed in console, will reset points immediately. If a client has negative queue points, this will probably still set their points back to 0. hale_classinfotoggle or haleclassinfotoggle - Disable showing class information (buffs/nerfs to your current class) on spawn/round start.
All of these default to the CHEATS flag.
Usage: enter into console, or type /command or !command in chat (for example: /hale) hale_addpoints<target> <points> - Add points queue points to target. hale_select<target> [hidden] - Select a player to be the next boss. If you add a 1 as another argument, this selection will not be broadcast to all players. hale_special <hale, cbs, christian, hhh, vagineer> - Sets the next special boss. hale_stop_music - Stop any currently-playing boss music for all players. hale_point_enable/hale_point_disable - Enable/disable the control point on the map (will only work if hale_point_type is set to 0).
The gamemode will activate on maps (or map prefixes "vsh_", etc) listed in tf/addons/sourcemod/configs/saxton_hale/saxton_hale_maps.cfg. In addition, quite a few koth maps feature spawn protection and doors that Hale cannot open. As such, you can place the map name in saxton_hale_doors.cfg in the same folder, and all doors on the map will be forced open.
There's some half-done support for setting next map to "Hale mapname" instead of just "mapname" to force the next map to play VSH, but it's... bad.
Placing the word "all" in either config will apply its effect to all maps.
FAQ: Q: Why aren't my convars aren't being set even though I've put them in server.cfg? A: You've got to edit tf/cfg/sourcemod/SaxtonHale.cfg.
Q: What's the "bNextMapToHale" file? A: It's the file used to say 'hey, this next map should be running VSH instead of the normal gamemode'. It's part of the half-finished nextmap "Hale mapname" support, and so will appear in the tf/ folder if the situation arises. You could technically also use this in another plugin to cause VSH to make the next map run the gamemode, if you want, e.g. switching between FF2 and VSH based on the map.
Q: How do I make koth_ maps work with this mod? A:Read this.
Q: Some bosses are ERROR models, what do I do? A: You may either be: using sv_pure 2, or 1 with an incorrect whitelist (make sure to whitelist the VSH files); using sv_downloadurl (a fastdownload server) and haven't placed the bz2 files onto your fastdownload server; substituting the actual models and sounds (on the server not the fastdownload) for their bz2 replacements (which will fail horrendously); a client who has set their downloads to none, therefore not downloading the custom files from the server.
If all files have downloaded properly, you may have to restart your client TF2 for them to work.
Q: I have a character suggestion. A: That's not a question. Freak Fortress 2 is already out.
Q: How do I use the nextmap "Hale mapname" feature? A: This is the worst part of it... you basically have to create a dummy map (either by copying the map or making an empty text file) and rename it to "Hale mapname.bsp", then select that as your nextmap. The plugin will set the next map to the normal mapname.bsp but will enable VSH on it. It's a bad system. A very bad system.
Q: How do I disable these chat messages about the plugin? A: Set the convar hale_announce to 0.
Originally Posted by Eggman
Q: I have crushes after new tf2 update. A: Update your sourcemod, and extensions.
Originally Posted by FlaminSarge
1) TF2Items crashing depends on whether the offset required to use GiveNamedItem changes. Adding *just* new items often DOESN'T make it change.
Sometimes, the crash is caused because Valve changes the way GiveNamedItem works, in which case not only the Gamedata for TF2Items has to be updated, but also the ext itself.
A: 'Crushes' isn't relevant to this, Eggman. Point being, if your server is crashing, you've got to update SourceMod, all your extensions, all your gamedata, and doublecheck everything. It's often not VSH's fault (though in the case of FF2/VSH, it's probably more likely VSH/FF2's fault than other plugins' fault).
Q: What... ARE... queue points? A: Every time a round ends, players get 10 queue points each. The person with the most queue points is selected to be Hale next round, and the current Hale's points are set to 0.
Here's a few plugins that may work well with VSH:
Goomba Stomp (you've got to set goomba_dmg_lifemultiplier to 0 if you don't want Hale dying in a matter of a few stomps. Setting it to 0.1 will make Hale lose about 10% health every time he gets stomped).
Add Observer Point: prevent server crashes in some maps when everybody dies. This is really important!
Natives can be used for your plugin to make links to VSH, for example: get Hale's UserId, Health, MaxHealth, Team, Special round index etc. This is in scripting\include\saxtonhale.inc in the 1.40 download.
1) Festive fixes
2) Hopefully fixed targes disappearing?
3) Easter and April Fool's Day are so close together this year... what could it mean...?
(spoiler, it's a new silly boss)
1) Fixed bosses disguising
2) Updated action slot whitelist
3) Updated sniper rifle list, Fest. Huntsman
4) Medigun speed works like Quick-Fix
5) Medigun+gunslinger vm fix
6) CBS gets Fest. Huntsman
7) Spies take more dmg while cloaked (normal watch)
8) Experimental backstab block animation
1) Dead Ringers have no cloak defense buff. Normal cloaks do.
2) Fixed Sniper Rifle reskin behavior
3) Boss has small amount of stun resistance after rage
4) Fixed HHH/CBS models
1) Backstab disguising smoother/less obvious
2) Rage 'dings' dispenser/tele, to help locate Hale
3) Improved skip panel
4) Removed crits from sniper rifles, now do 2.9x damage
-- Sleeper does 2.4x damage, 2.9x if Hale's rage is >90pct
-- Bushwacka nerfs still apply
-- Minicrit- less damage, more knockback
5) Scaled sniper rifle glow time a bit better
6) Fixed Dead Ringer spy death icon
7) BabyFaceBlaster will fill boost normally, but will hit 100 and drain+minicrits
8) Can't Eureka+destroy dispenser to insta-tele
9) Phlogger invuln during the taunt
10) Added !hale_resetq
11) Heatmaker gains Focus on hit (varies by charge)
12) Bosses get short defense buff after rage
13) Cozy Camper comes with SMG - 1.5s bleed, no random crit, -15% dmg
14) Valve buffed Crossbow. Balancing.
15) New cvars-hale_force_team, hale_enable_eureka
16) Powerlord's Better Backstab Detection
17) Backburner has charged airblast
18) Skip Hale notification mixes things up
19) Bosses may or may not obey Pyrovision voice rules. Or both.
-- From chat, asks for confirmation
-- From console, no confirmation!
2) Help panel stops repeatedly popping up
3) Medic is credited 100% of damage done during uber
4) Bushwacka changes:
-- Hit a wall to climb it
-- Slower fire rate
-- Disables crits on rifles (not Huntsman)
-- Effect does not occur during HHH round
5) Late December increases chances of CBS appearing
6) If map changes mid-round, queue points not lost
7) Fixed HHH tele (again).
8) HHH tele removes Sniper Rifle glow
9) Mantread stomp deals 5x damage to Hale
10) Rage stun range- Vagineer increased, CBS decreased
11) Balanced CBS arrows
12) Minicrits will not play loud sound to all players
13) Dead Ringer will not be able to activate for 2s after backstab
-- Other spy watches can
14) Fixed crit issues
15) Hale queue now accepts negative points
16) For server owners:
-- Translations updated
-- Added hale_spec_force_boss cvar
-- Now attempts to integrate tf2items config
-- With SteamTools, changes game desc
-- Plugin may warn if config is outdated
-- Jump/tele charge defines at top of code
17) For mapmakers:
-- Indicate that your map has music:
-- Add info_target with name 'hale_no_music'
18) Third Degree hit adds uber to healers
19) Knockback resistance on Hale/HHH
Bots will use rage
Doors only forced open on specified maps
CBS spawns more during Winter holidays
Deathspam for teamswitch gone
More notice for next Hale
Wrap Assassin has 2 ammo
Holiday Punch slightly disorients Hale (If stunned Heavy punches Hale, removes stun)
Mantreads increase rocketjump distance
Fixed CBS Huntsman rate of fire
Fixed permanent invuln Vagineer glitch
Jarate removes some Vagineer uber time and 1 CBS arrow
Low-end Medic assist damage now counted
Hitting Dead Ringers does more damage (as balancing)
Eureka Effect temporarily removed
HHH won't get stuck in ceilings when teleporting
Further updates pending
1.37Requires SOURCEMOD 1.4 RELEASE OR ABOVE
Fixed rage+high five.
hale_circuit_stun - Circuit Stun time (0 to disable)
Fixed coaching bug
Config file for map doors
Fixed Circuit stun
Fixed negative health bug
hale_enabled isn't a dummy cvar anymore
hale_special cmd fixes
1st-round cap enables after 1 min.
More invalid Hale checks.
Backstabs act like Razorbackstab (2s)
Fixed map check error
Wanga Prick -> Eternal Reward effect
Jarate removes 8% of Hale's rage meter
The Fan O' War removes 5% of the rage meter on hit
Removed Shortstop reload penalty
VSH_OnMusic forward added
Fixed spawn door blocking.
Cleaned up HUD text (health, etc).
VSH_OnDoJump now has a bool for superduper.
!halenoclass changed to !haleclassinfotoggle.
Fixed invalid clients becoming Hale
Removed teamscramble from first round.
Nope for no
Gottam/mottag (same as jump but quieter) for Move Up
Hurr for everything else
All map dispensers will be on the non-Hale team (fixes health bug)
Fixed command flags on overlay command
Fixed soldier shotgun not dealing midair minicrits.
Fixed invalid weapons on clients
Damage indicator (+spec damage indicator)
Hale speed remains during humiliation time
SuperDuperTele for HHH stuns for 4s instead of regular 2
Battalion's Backup adds +10 max hp, but still only overheal to 300
Full rage meter when hit by Hale. Buff causes drastic defense boost.
Fixed a telefrag glitch
Powerjack is now +25hp on hit, heal up to +50 overheal
Backstab now shows the regular hit indicator (like other weapons do)
Kunai adds 100hp on backstab, up to 270
FaN/Scout crit knockback not nerfed to oblivion anymore
Removed Short Circuit stun (better effect being made)
Now FaN and Scout crit knockback is REALLY lessened.
Medic says 'I'm charged' when he gets 100%% uber-charge with syringegun.
Added support of VSH achievements.
Team will scramble in 1st round, if 1st round is default arena.
Now client can disable info about changes of classes, displayed when round started.
Powerjack adds 50HPs per hit.
Short Circuit stuns Hale for 2.0 seconds.
Vagineer says "hurr"
Oilrig's pit no longer allows HHH to instatele
Arakawa's pit damage drastically lessened
General map fixes: disable spawn-blocking walls
Cap point now properly un/locks instead of fake-unlocking.
Tried fixing double-music playing.
Fixed Eternal Reward disguise glitch - edge case.
Help menus no longer glitch votes.
Fixed superjump velocity code.
Fixed replaced Rocket Jumpers not minicritting Hale in midair.
Half-Zatoichi is now allowed. Heal 35 health on hit, but must hit Hale to remove Honorbound.
Can add up to 25 overheal
Starts the round bloodied.
Fixed Hale not building rage when only Scouts remain.
Tried fixing Hale disconnect/nextround glitches (including music).
Candycane spawns healthpack on hit.
Added convar hale_first_round (default 0). If it's 0, first round will be default arena.
Added more translations.
Fixed a queue point exploit (VoiDeD is mean)
HHH has backstab/death sound now
First rounds are normal arena
Some weapon replacements still apply!
Teambalance is still off, too.
Fixed arena_ maps not switching teams occasionally
After 3 rounds with a team, has a chance to switch
Will add a cvar to keep Hale always blue/force team, soon
Fixed pit damage
Sounds are not .mdl more, they are .wav
Fixed minor issue about /halemusic
Soldiers minicrit Hale while he's in midair.
Direct Hit crits where it would minicrit
Reserve Shooter has faster weapons switch and +10% damage
Added hale_stop_music for admins to stop current music for all players.
FaN and Scout crit knockback is lessened
Your halemusic/halevoice settings are saved
MEGA UPDATE! Check next few pages
SUGGEST MANNO-TECH WEAPON CHANGES
Updated CBS model
Fixed last man alive sound
Removed broken hale line, fixed one
New HHH rage sound
HHH music (/halemusic)
CBS jump noise
/halevoice and /halemusic to turn off voice/music
Updated natives/forwards (can change rage dist in fwd)
hale_crits cvar to turn off hale random crits
Fixed sentries not repairing when raged
-- Set hale_ragesentrydamagemode 0 to force engineer to pick up sentry to repair
Now uses sourcemod autoconfig (tf/cfg/sourcemod/)
No longer requires saxton_hale_points.cfg file
-- Now using clientprefs for queue points
When on non-VSH map, team switch does not occur so often.
Should have full replay compatibility
Bots work with queue, are Hale less often
Hale's health increased by 1 (in code)
Many many many many many fixes
Crossbow +150% damage +10 uber on hit
Syringegun has overdose speed boost
Sniper glow time scales with charge (2 to 8 seconds)
Eyelander/reskins add heads on hit
Axetinguisher/reskins use fire axe attributes
GRU/KGB is +50% speed but -7hp/s
Airblasting boss adds rage (no airblast reload though)
Airblasting uber vagineer adds time to uber and takes extra ammo
Frontier Justice allowed, crits only when sentry sees Hale
Boss weighdown (look down + crouch) after 5 seconds in midair
FaN is back
Scout crits/minicrits do less knockback if not melee
Saxton has his own fists
Unlimited /halehp but after 3, longer cooldown
Fist kill icons
Fixed CBS arrow count (start at 9, but if less than 9 players, uses only that number of players)
Spy primary minicrits
Dead ringer fixed
Flare gun replaced with detonator. Has large jump but more self-damage (like old detonator beta)
Eternal Reward backstab disguises as random faster classes
Kunai adds 60 health on backstab
Medic uber works as normal with crits added (multiple targets, etc)
Crits stay when being healed, but adds minicrits too (for sentry, etc)
Fixed Sniper back weapon replacement
Vagineer NOPE and Well Don't That Beat All!
Telefrags do 9001 damage
Speed boost when healing scouts (like Quick-Fix)
Rage builds (VERY slowly) if there are only Scouts left
Healing assist damage split between healers
Fixed backstab assist damage
Fixed HHH attacking during tele
Soldier boots - 1/10th fall damage
AND MORE! (I forget all of them)
1.35_2 and 1.35_3
fixed bugs bout damage, medic's uber, queue and other.
There is mini-crits for scout's pistols. Not full crits, like before.
Fixed issues associated with crits.
Added FORCE_GENERATION flag to stop errorlogs.
Special crits will not removed by Medic.
Sniper's glow is working again.
No errors in console.
Less messages in chat.
Added more natives.
"Over 9000" sound returns! Thx you, FlaminSarge.
Fixed airblast reload when VSH is disabled.
Fixed airblast reload after detonator's alt-fire.
Airblast reload time reduced to 3 seconds.
hale_special 3 is disabled.
Biohazard Christian Brutal Sniper! He's about 20% cooler!
TF2_IsPlayerInCondition() returns! Fixed some bugs associated with this.
Now sniper rifle must be 100perc.charged to glow Hale.
Fixed Vagineer's model (there isn't spam on console and fire on ground).
Hunstman deals more damage.
Added reload time (5sec) for Pyro's airblast.
Fixed hale_special X admin command.
Fixed bugs, associated with Uber-update.
FaN replaced with Soda Popper.
Bazaar Bargain replaced with Sniper Rifle.
Sniper Rifle adding glow to Hale - anyone can see him for 5 seconds.
Crusader's Crossbow deals more damage.
Plugin uses TF2_IsPlayerInCondition().
Other code optimizing.
Fixed bug with replay.
Fixed bug with help menu.
added new Saxton's lines on...
kill Scout, Pyro, Heavy, Engineer, Spy
fast man standing
Fixed bugged count of CBS' arrows.
Reduced Hale's damage versus DR by 20 HPs.
Now two specials can not be at a stretch.
1.30 & 1.31 is bugfixes.
Fixed random crashes associated with CBS.
Now Hale's HP formula is ((760+x-1)*(x-1))^1.04
Added hale_special0. Use it to change next boss to Hale.
CBS has 9 arrows for bow-rage. Also he has stun rage, but on little distantion.
Teammates gets 2 scores per each 600 damage.
Demoman with Targe has crits on his primary weapon.
Removed support of non-Arena maps, because nobody did't use it and they were buggy.
Pistol/Lugermorph has crits.
VS Saxton Hale Mode is back!
Christian Brutal Sniper is a regular character.
CBS has 3 melee weapons ad bow-rage.
Added new lines for Vagineer.
Updated models of Vagineer and HHH jr.
So much bugfixes.
Admins will get hint-window after update.
Added the second URL for auto-update.
Fixed problems, when auto-update was corrupt plugin.
Added a question for the next Hale, if he want to be him. (/haleme)
Eyelander and Half-Zatoichi was replaced with Claidheamh Mor.
Dispenser and TP won't be destoyed after Engineer's death.
Mode uses the localization file.
Saxton Hale will be choosed randomly for the first 3 rounds (then by queue).
Fan O'War repalced with Sandman
Fixed silent HHHjr's rage.
Now bots (sourcetv too) do not will be Hale.
Fixed invalid uber on Vagineer's head.
Fixed other little bugs.
Fixed destroyed buildables associated with spy's fake death.
Syringe Gun replaced with Blutsauger.
Blutsauger, on hit: +3 to uber-charge.
Removed crits from Blutsauger.
CnD replaced with Invis Watch.
Fr.Justice replaced with shotgun
Fists of steel replaced with fists.
KGB replaced with GRU.
Added Super Duper Jump to rescue Hale from pit.
Removed pyro's ammolimit.
Fixed little bugs.
Now it's working :) Also little optimize about player count.
Point will be enabled when X or less players be alive.
Added new Hale's phrases.
Coming soon: point will be disabled until last X living players.
Now "(Hale)<mapname>" can be nominated for nextmap.
Medigun's uber gets uber and crits for Medic and his target.
Fixed infinite Specials.
Now gamemode's ConVars saves in file (addons\sourcemod\configs\saxton_hale_config.cfg)
And more bugfixes.
Fixed immortal spy.
Fixed crashes associated with classlimits.
Added hale_enabled convar.
Fixed bug, when all hats was removed...why?
If you have any questions, first, re-read this entire post (I know it's a pain, but there's quite a few things you probably missed the first time around), and then and only then post in this thread. Do not add anybody on Steam for help with this plugin, and do not send private messages about help with this plugin (unless you fear for your server security by posting crash dumps or something).
please make auto update optional: most admins would like to check what they put in their servers
btw, it assumes that a plugin called saxtonhale.smx is placed in the plugins folder, which in my case isn't correct