Hey! This README is for those looking to work on the code. For actual plugin documentation, you’ll want to look at the website at https://mikes.software/sst/ or ask for help in a relevant speedrunning community. NOTE: Please read and understand LICENCE before redistributing this software! ════ Compiling ════ Windows: • Install the Windows 10 SDK and MSVC toolset via the Visual Studio Installer (if you don’t care what else gets installed, installing the C++ Desktop workload should be fine). • Install native Clang from the LLVM GitHub releases page. (NOT MinGW/MSYS2 Clang!). C23 support is required; at the time of writing Clang 16 worked, but Clang 20 is being used now. If you get syntax errors or unexpected keywords or something, your compiler is probably too old. • Run compile.bat (in lieu of a better build tool, to be added later). Linux: • Install Clang (and LLD) via your system package manager. Technically, GCC should be able to compile most of this too, but we are currently relying on a Clang-specific extension or two, and GCC in general doesn't get tested nor used for binary releases, so it's probably not worth wasting time on. • Install 32-bit glibc and libstdc++ libraries and associated C headers if they’re not already installed. • Run ./compile (in lieu of a better build tool, to be added later). NOTE: Linux code should maybe compile now but still crashes on cvar registration and almost none of the features usefully work. In other words, it needs quite a lot more development before it's of use to anyone. It's also not actively tested really so don't be surprised if it doesn't compile at all again at some point. ════ How and where to install ════ IMPORTANT: If your game supports multiplayer, always launch with -insecure as a launch option before loading this plugin! Newer Source builds shouldn’t let you connect to a server with plugins loaded or even let you load plugins without insecure mode at all, but older ones do, at which point you might still get VAC banned. ALWAYS launch with -insecure or load the plugin AT YOUR OWN RISK OF BEING BANNED! Very old Source builds load plugins from the top-level bin/ folder, while relatively modern builds load them from the mod-specific directory, e.g. left4dead2/, hl2/. Left 4 Dead and later branches *ALSO* try to load from the top-level game directory where the EXE is, if other paths don’t work. Since this plugin is designed to be universal, a reasonable recommendation is to make a directory for SST in the top-level engine directory and do for instance `plugin_load ../SST/sst`. The way the paths work out, that always works no matter what, and also avoids cluttering up your game files. When actively developing the plugin, it's possible to back out of the game installation with `../../` etcetera and load from anywhere you want, as long as it’s not on a different Windows drive letter. This is essentially the best way to work with SST built from source as it avoids the need to copy it to different games. The way the build scripts are written, you can rebuild the plugin in-place before reloading it from the game console. It can be helpful to write some console aliases or set up a bind to reload the plugin quickly on-the-fly. Note: some very old (and very new) Source builds don’t have a plugin_load command. For the time being, these versions are unsupported. Thanks, and have fun! - Michael Smith