myself, with a lot of additional code written by bill, and minor code contributions and a ton of helpful testing and design input also being done by aciidz. Additionally, it builds upon countless hours of reverse engineering work done by many other smart people who hang out in various communities:
We’re a few versions in now but still a little short of what we want to have before calling it a full release. Despite this, SST is already very stable and packed with many useful features.
This software is the work of a few different people, and all involved deserve credit for their work. As such, if you want to send copies to other people or use any of the code for some other purpose, please read the terms in the LICENCE
file included in the download to know what you can and cannot do, legally speaking.
Also, keep in mind that this software has absolutely NO WARRANTY! There’s no reason it should break anything, but that’s not a legal guarantee. Details of that are also written out in excruciating legalese in the included LICENCE
file. You’re assumed to have read that legalese before attempting to use SST, and thus before getting any ideas about suing anyone if your computer happens to catch fire.
The current BETA version of SST is 0.5, a.k.a. Spectacular Scheduling Triumph. The instructions below cover setting it up with auto-updates on Windows. SST doesn’t currently support Linux, but hopefully will some day.
You can find the list of changes made in v0.5 here.
For Left 4 Dead runners: The old game versions provided within the community have the SST update script bundled in already, so you’ll always have the latest and greatest version of SST without having to do anything else. If, for some odd reason, you need to run the newest Steam version of the game, you can continue following the instructions given for Portal here.
For Portal: The current version of Source Unpack has SST bundled in, so you shouldn't have to do much to get it working. However, if you have some other copy of the game already, you can still manually set up the SST update script (see below).
For other games: For now, you need to manually set up the update script. Download that here, and then extract it into an empty directory (it will splat a couple of other files next to itself when run).
Once you have the auto-update script set up, you can either run it manually to bring SST up to date, or ideally hook it into the launch script for your old game so that it is always up to date whenever you play! That will also cause a changelog to display in the in-game console whenever a new update is downloaded.
A direct link to SST v0.5 is here. Keep in mind that it is strongly recommended to use the auto-update script above for normal use of the plugin.
Older builds are plonked on the download site for now. Note that the old versions have numerous bugs so you really shouldn’t be using these unless you have a very specific reason. They’re mostly kept around as a matter of historical record.
git clone
it from that URL too. If you want to clone over other protocols or get a slightly fancier browser, it’s also mirrored on both GitLab and GitHub. This release is built from Git tag v0.5-BETA
(which points at commit 7893ef46f85eb5a6021d6ab763ca84e382e64954
). In theory, you should be able to produce a bit-for-bit identical copy of the DLL using Clang from LLVM 16.0.5 and version 10.0.22000.0 of the Windows 10 SDK. Good luck!13ad0442a3fde0518ca9133b55796f31652698c9
on top of that, or remove the broken lines from the build script, due to a version control blunder made right before the release. Sorry!Before you do anything else, add -insecure
to your game launch options, and make sure that when you open a map, it says “VAC secure mode disabled” somewhere in the developer console. WARNING: if you skip this step, you may run the risk of getting VAC-banned! Don’t skip this step! Most single player games like Portal are fine, but if you don’t know for sure whether a game is VAC-enabled then please err on the side of caution.
Depending on the game engine version, your game may load plugins from either the mod directory (e.g. hl2
, portal
, or left4dead2
) or the bin
directory that exists alongside the game executable.
To keep things reasonably simple, you can keep SST in a folder outside of both of those, and then the same relative path will just happen to work either way. For example, if you have created a folder named SST
next to your game executable, and set up and run the update script in there, you should then be able to type plugin_load ../SST/sst
in the developer console to load up the plugin.
Autoload setup: after loading the plugin once, type sst_autoload_enable
in the console to quickly register the plugin to start along with the game. Doing this ensures that saved settings for the plugin don’t get lost when the game is next launched, and that certain fixes for game bugs are correctly and reliably applied. If you ever need to revert this, though, typing sst_autoload_disable
will put everything back to normal.
Better demo recording: Once the plugin: Once the plugin is loaded, it becomes possible by default to record a demo (record basefilename
in console) and then have the game keep recording demos until the heat death of the universe (or until you type stop
). This can be turned off with sst_autorecord 0
.
Autojump: Set sst_autojump 1
to get smooth, perfect bunny hops by simply holding down your jump button. Very useful for figuring out new routes that would otherwise be difficult to figure out due to lack of skill (but obviously should not be used for normal speedruns).
Universal raw mouse input: Modern Source games have m_rawinput 1
for proper raw mouse input, but many of the older versions used by speedrunners don’t. SST reimplements this option if required for consistent mouse input across the board. Since it uses the same console variable, your configuration will seamlessly carry over between old and new versions as well.
Raw mouse input scaling: When raw input is enabled, it is possible to use sst_mouse_factor
to increase the number of increments from the hardware mouse sensor neceesary to move by one angle step in-game. This is useful for view-snap tricks which require setting a very high in-game sensitivity but moving the actual mouse by a very small amount.
Alias management: Normally command aliases cannot be removed until the game is restarted. SST adds sst_alias_remove
and sst_alias_clear
in order to make alias management more convenient.
Reinstated missing console commands: A bunch of other handy things have been added back in as well, either by exposing them when hidden or by totally reimplementing things that are missing:
engine_no_focus_sleep
— control the amount of lag while the game window is unfocused. Useful to set to 0 while streaming!snd_mute_nofocus
— similarly, control whether not sound is muted while tabbed out. This is often missing even in current Steam versions of some games.mp_restartgame
— quickly reset a multiplayer map without fully reloading it, as long as a map transition hasn’t been done yet.director_afk_timeout
(Left 4 Dead games) — setting to a high number will prevent AFK auto-idle, useful during testing.demo_
variablescon_filter_enable
and friendsdeveloper
cl_showdemooverlay
Cheats in L4D2 lobbies: Normally, for whatever reason, Left 4 Dead 2 doesn’t let people use sv_cheats
in a self-hosted multiplayer lobby (or a single-player game started from the menu). SST enables this, making it much more convenient to practice in between run attempts, without having to port-forward and send IPs to people.
Warp testing: Type (or bind) sst_l4d_testwarp
to simulate an idle warp to yourself. This allows co-op routes to be found much more quickly.
Fast run resetting: Type (or bind) sst_l4d_quickreset
to immediately return to the start of the current campaign. Optionally, this command can take a campaign ID such as L4D2C2
in order to start the run at that campaign, regardless of which map is currently loaded.
Graphics bug fixes: SST prevents multicore rendering from getting reset in certain situations in older versions of L4D2, as well as fixes the brightness setting not getting saved in L4D1. Also, those playing older builds of L4D2 on Intel graphics hardware will no longer experience the rendering issue where everything appears too dark.
Nag dialog removal: Later versions of Left 4 Dead 2 pop up an annoying message whenever a plugin is loaded. SST does some trickery to avoid this.
Gun/crosshair colour customisation: Use the sst_portal_colourN
cvars to change the colours of the crosshair and the little tube thingy in the front part of the gun when grabbing items and shooting the two different portals. Currently only works in 3420, 5135, and the current Steam version.
Enhanced FOV settings: The player’s FOV can be set anywhere in the range of 75–120 with fov_desired
in any version of the game. Even though that’s dumb. It’s What The People Want!
Thanks, and have fun!