Source Speedrun ToolsBETA!

SST is a sorta-still-in-development general purpose plugin for Source Engine games, currently mainly Left 4 Dead 1 and 2 and Portal 1.

We've sorta-kinda-rushed out a handful of releases so that people can enjoy reasonably convenient demo recording and other nice features for their speedruns. A full release ought to have way more cool stuff and should happen Eventually™.

Obligatory copyright notice and disclaimer!

This software, which is the work of a few different people, has certain conditions for being able to redistribute copies. These terms don't affect your right to run the software yourself, but they DO affect your right to send copies to other people. In that case, please read the included LICENCE file in the upcoming download!

Also, keep in mind that this software has absolutely NO WARRANTY! There's no way 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.

Give me the plugin already!

You can get the current BETA version 0.4 a.k.a. Small Subtle Tweaks here (for Windows).

You can find a list of changes made in v0.4 here.

Older builds are plonked on the download site for now. It's not really advised that you use these unless you have a very specific reason.

For techie people: If you want to build it from source code, or fiddle with the code yourself, the development repository is published here. You can 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 GitLab and on GitHub. This release is built from Git tag v0.4-BETA (which points at commit 74563bfb8c506150172b9bbf73d828372add3394). In theory, you should be able to produce a bit-for-bit identical copy of the DLL using Clang from LLVM 14.0.0 and version 10.0.20348.0 of the Windows 10 SDK. Good luck!

Auto updates!

Note that the old version downloads provided by the Left 4 Dead speedrunning community include SST auto update scripts, so you'll always have the latest plugin version out of the box. For Portal and other games, there's a standalone auto update script package that can be integrated into mostly any supported Source game. Grab it here! Extract it to its own subfolder, as it'll splat a few files next to itself when run. You can double click it manually, or add a call to your existing game launch batch files to always have an up-to-date version.

How to install manually

Put the extracted sst.dll into your game's top-level bin folder (the one that exists in the same place as the .exe file to launch the game).

Add -insecure to your launch options, and make sure that when you launch 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!

To load the plugin, simply type plugin_load ../bin/sst in the console. Feel free to add that to an alias or config to make it easier to type.

By the way, the dot-dot-slash magic is just there so that the same path works in various versions of Source, including both Left 4 Dead 1 and 2. If you understand how file paths work, feel free to adjust your use of these instructions as you see fit.

Features and usage

Autoload setup: After loading the plugin once, type sst_autoload_enable to quickly register the plugin to start along with the game. Doing this is required to ensure that plugin-specific settings don't get lost next time you start the game, and that certain game bugfixes get properly and reliably applied. If you ever want out, though, you can type sst_autoload_disable to revert your game to vanilla behaviour next launch.

Better demo recording: Once the plugin is loaded, sst_autorecord 1 will already be set by default for supported games. This allows you to start recording a demo (record demofilename) and then have the game keep recording demos until the heat death of the universe (or until you type stop). If you don't want to record too many demos, you can stick stop; record demoname; in front of your reset bind to replace old attempts with new attempts. Just remember to stop and save all the demos you got at the end of a successful run.

Autojump: Type sst_autojump 1 to allow yourself to simply hold down your jump button and get perfectly timed hops. This can't be used in regular speedruns; demos will make it obvious, so don't even try. But, it's fun for scripted runs or just messing around.

Cheats in L4D2 lobbies: After loading this plugin, it will be possible to use sv_cheats 1 in a self-hosted multiplayer lobby (or a single-player game launched from the menu). Normally, for whatever reason, Left 4 Dead 2 doesn't let people do this. With this feature, it is no longer necessary to host listen servers, forward ports and send IPs to people. It's also much easier to quickly stop for practice in the middle of a run session.

Nag dialog removal: Later versions of Left 4 Dead 2 pop up an annoying message every time a plugin is loaded. Not any more, thanks to some trickery done in SST.

L4D warp testing: Type sst_l4d_testwarp to simulate an idle warp to yourself. This makes co-op routing a lot easier!

Universal raw mouse input: You can now use m_rawinput 1 in any version of any supported game and get consistent raw input without any external tools or injectors. If the option is already built in, you get that. If not, SST fills it in for a consistent experience across the board.

Enhanced Portal FOV settings: Portal 1 runners can enjoy the full range of fov_desired values from 75 to 120, regardless of game version. Even though that's dumb. It's What The People Want!

Portal colour customisation: Use the sst_portal_colourN cvars to change the grabbed item, left click portal and right click portal colours on your crosshair and the little tube at the front of the gun, without having to patch your client DLL. Currently works on 5135, 3420, and the latest Steam build.

Left 4 Dead series video fixes: Older versins of Left 4 Dead 2 like to reset mat_queue_mode (multicore rendering) sometimes, and Left 4 Dead 1 doesn't bother saving your mat_monitorgamma (brightness) setting. SST fixes these issues. Also, those playing older L4D2 builds on Intel graphics hardware may have experienced rendering issues causing everything to be too dark. SST fixes this too.

A number of handy console variables are also made visible on games that hide them (such as, funnily enough, the Left 4 Dead series):

Oh, and you can use engine_no_focus_sleep to either prevent or increase lag when the game window is inactive, in games that wouldn't otherwise have this option built in.

All of that in a 50 kilobyte DLL. Not bad, eh?