myself, with a lot of help from bill, and other code contributions and helpful testing done by aciidz and wozniak. Additionally, it builds on countless hours of reverse engineering work done by many other smart people who hang out in various communities:
We’re a few beta versions in and still want to add some stuff before calling it a full release, but SST is already very stable and packed with many useful features for speedrunners.
SST was made by several people, all of whom deserve credit for their work. If you want to send copies of SST to others or reuse any of its code, please refer to 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 for any purpose!
The current BETA version of SST is 0.8, a.k.a. Seldom Sufficiently Tested. 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.8 here.
For Left 4 Dead series: The old game versions provided within the community have SST already bundled in, so you’ll always have the latest updated version of SST. If, for some reason, you need to run the newest Steam version of the game, you can follow the manual auto-update instructions below.
For Portal 1: The current Source Unpack (build 5135) download used by the speedrunning community has SST bundled in, so you don't need to do anything unless you have a different copy of the game (such as 3420), or want to run on the Steam version for some reason. In those cases, see the manual instructions below.
For other games (manual setup): For now, you need to set up the update script yourself. 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 that is set up, you can either run it manually to bring SST up-to-date, or hook it into the launch script for your game. How exactly to do that depends on the game; you will be best asking myself or another technical person for help. That is the best way to set it up though because it ensures you always have the latest version of SST, and shows a changelog in console whenever an update is downloaded so you won't miss out on new stuff.
A direct link to SST v0.8 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 . 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.8-BETA
(which points at commit 33582641a9c01a6a3d62ae232f96c74299182885
). Important: you must be sure to set up Git correctly with git config --global core.eol lf
and git config --global core.autocrlf false
prior to cloning on Windows, or stuff will break. The default Windows Git configuration is simply completely broken. Once you have the code on your machine, 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!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 necessary 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.
Custom crosshair overlay: It is possible in several supported games, including mostusefully the Left 4 Dead series, to set sst_xhair 1
(and most likely crosshair 0
) and get a custom crosshair which is much more configurable in appearance than the standard one. Use sst_xhair_colour RRGGBB[AA]
to set any hex colour code you want, and sst_xhair_size
, sst_xhair_thickness
, sst_xhair_gap
, sst_xhair_dot
, and sst_xhair_outline
to control its dimensions, similar to CS:GO and CS2.
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. This feature will also fast-forward past cutscenes by default; this is configured using sst_l4d_quickreset_fastfwd
. On campaigns with item spawns visible during cutscenes, such as Swamp Fever, the fast-forward will briefly slow down to show those spots. The duration of this slowdown can be configured using sst_l4d_quickreset_peektime
. It is also possible to skip the remainder of a cutscene without stopping by binding a key to the sst_l4d_quickreset_continue
command.
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 some older Steam version — the current Steam version is on the to-do list.
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 commonly used by runners. Even though that’s dumb. It’s What The People Want!
Build 4104 demo playback fix: for some reason view angles in demo playback are rather wonky in this version, so SST applies a simple code patch to fix this issue, allowing you to watch back your demos without getting a headache.
Thanks, and have fun!