Repository files navigation

sigsegv-mvm

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

Features

Optimize-Only Package

  • Reduce server cpu usage by ~50%
  • A list of all configurable features
  • No-MvM Package

  • 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
  • Full Package

  • All features from above
  • More popfile features documented in demonstrative popfile and wiki
  • A list of all configurable features
  • Installing

    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

    How to build

    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 MYCFLAGS='-m32' MYLDFLAGS='-m32'
    mv src/liblua.a ../liblua.a
    make clean
    make 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