gigantic, obese SourceMod extension library of sigsegv's and rafradek's TF2/Source mods (mostly MvM related) For other Source games, only optimize-only package is provided
How to run a TF2 server on Windows using WSL: https://github.com/rafradek/sigsegv-mvm/wiki/Installing-on-Windows-with-WSL
- Reduce server cpu usage by ~50%
- A list of all configurable features
- Reduce server cpu usage by ~50%
- Extra player slots
- Interact with SourceTV spectators
- Reduce the amount of networked entities and automatically remove disposable entities when the entity limit is met
- Hundreds of new attributes
- New entity inputs, outputs and keyvalues
- A list of all configurable features
- All features from above
- More popfile features documented in demonstrative popfile and wiki
- A list of all configurable features
Download a package (optimize-only, no-mvm, or full) from releases and extract it into server tf directory. Edit cfg/sigsegv_convars.cfg to enable or disable features
This extension requires gcc 13 to build. For TF2, special modified hl2sdk-tf2 is used from https://github.com/rafradek/hl2sdk-tf2
Ubuntu 20.04 docker image with gcc 13 and other dependencies already installed (skip to step 3): rafradek/ubuntu2004dev:latest
On Ubuntu 24.04:
- Add x86 architecture if not installed yet
dpkg --add-architecture i386
apt update
- Install packages:
autoconf libtool pip nasm libiberty-dev libiberty-dev:i386 libelf-dev:i386 libboost-dev:i386 libbsd-dev:i386 libunwind-dev:i386 lib32z1-dev libc6-dev-i386 linux-libc-dev:i386 g++-multilib
- Clone Sourcemod, Metamod, SDK repositories, and AMBuild
cd ..
mkdir -p alliedmodders
cd alliedmodders
git clone --recursive https://github.com/alliedmodders/sourcemod --depth 1 -b 1.11-dev
git clone https://github.com/alliedmodders/hl2sdk --depth 1 -b sdk2013 hl2sdk-sdk2013
git clone https://github.com/rafradek/hl2sdk-tf2 --depth 1 hl2sdk-tf2
git clone https://github.com/alliedmodders/hl2sdk --depth 1 -b css hl2sdk-css
git clone https://github.com/alliedmodders/metamod-source --depth 1 -b 1.11-dev
git clone https://github.com/alliedmodders/ambuild --depth 1
- Install AMBuild. Also add ~/.local/bin to PATH variable (Not needed if ambuild is installed as root)
pip install ./ambuild
echo 'export PATH=~/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
- Init submodules:
cd ../sigsegv-mvm
git submodule init
git submodule update --depth 1
cd libs/udis86
./autogen.sh
./configure --enable-static=yes
make CFLAGS="-m32" LDFLAGS="-m32"
mv libudis86/.libs/libudis86.a ../libudis86.a
make clean
make CFLAGS="-fPIC"
mv libudis86/.libs/libudis86.a ../libudis86x64.a
cd ../..
- Install lua:
cd libs
wget https://www.lua.org/ftp/lua-5.4.4.tar.gz
tar -xf lua-*.tar.gz
rm lua-*.tar.gz
mv lua-* lua
cd lua
make CC=g++ MYCFLAGS='-m32' MYLDFLAGS='-m32'
mv src/liblua.a ../liblua.a
make clean
make CC=g++ MYCFLAGS="-fPIC"
mv src/liblua.a ../libluax64.a
cd ../..
-
If hl2sdk, metamod, sourcemod directory is placed in a custom location, Update autoconfig.sh with correct paths
-
Run autoconfig.sh
-
Build
Release:
mkdir -p build/release
cd build/release
ambuild
Debug (libbsd-dev:i386 libunwind-dev:i386 is required to load the extension):
mkdir -p build
cd build
ambuild
Build output is created in the current directory
Build and create full, no-mvm, optimize-only packages (they can be found in build/release):
./multibuild.sh