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™.
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.
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.
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!
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.
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):
director_afk_timeout
: set this to a large number to
avoid auto-idling in your routing or testing sessionsmp_restartgame
: quickly reset the map without
waiting for a vote or death (only works if loaded directly into a
map, not following a transition)demo_
variablescon_filter_enable
and friendsdeveloper
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?