Sandbot
GoldSource engine multiplayer bot
Install / Use
/learn @tschumann/SandbotREADME
Sandbot
Sandbot is a GoldSource engine bot based off HPB_Bot by botman (see docs/ReadMe.txt), specifically HPB bot template version 4 (hpb_bot_template_4.zip) with navigation code from HPB bot version 4 (hpb_bot_plugin.zip).
Building
git clone https://github.com/tschumann/sandbot
git submodule init
git submodule update --recursive
Windows
Open sandbot.sln
Linux
sudo apt-get install gcc gcc-multilib g++-multilib
cd dlls
make
Running tests
From Developer Powershell for VS:
./test.ps1
Debugging
gdb -s sandbot.so.debug -e sandbot.so to load Sandbot into gdb with debug symbols (if you "info functions" you'll get a per-file breakdown whereas if you do the same with gdb -e sandbot.so you won't).
Core dumps on Ubuntu
Enable core dumps:
ulimit -c unlimited
See what generates core dumps:
sysctl kernel.core_pattern
Start Steam in debug mode:
STEAM_DEBUGGER=gdb ~/.steam/steam/steam.sh
Note that Steam games don't seem to generate core dumps, but rather generates breakpad minidumps.
Steam generates minidumps at /tmp/dumps/
Debugging minidumps
Clone and build Google Breakpad:
git clone https://github.com/google/breakpad
cd breakpad
git clone https://chromium.googlesource.com/linux-syscall-support src/third_party/lss
./configure CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 && make
If you want to recompile for 64-bit you'll need to make distclean first.
If you can an error about N_UNDF being undefined see https://stackoverflow.com/a/36455846
(in src/common/stabs_reader.h change #include <a.out.h> to #include <linux/a.out.h> and run env ac_cv_header_a_out_h=yes CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure)
Convert the minidump to a core dump:
~/Documents/breakpad/src/tools/linux/md2core/minidump-2-core /tmp/dumps/assert_*_1.dmp > out.core
Load it all up in gdb:
gdb -s ~/Documents/sandbot/symbols/sandbot.so.debug -e ~/.steam/steam/steamapps/common/Half-Life/hl_linux -c out.core
TODO: figure out loading sandbot symbols into gdb
Metamod
Modify liblist.gam to test Metamod.
Releasing
git tag -a v0.x -m "Sandbot v0.x"
On Linux run make, git add the .so files, make symbols then git add the .so.debug file.
License
GPL v2 because MetaMod is GPL v2.
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
