- Add automatic tcmalloc disable in start scripts to prevent 'large alloc' segfaults - Add warnings and documentation about workshop COLLECTION vs addon IDs - Expand troubleshooting section with solutions for common crashes - Document that -authkey deprecation warning can be safely ignored Fixes: - tcmalloc: large alloc XXXXXXX bytes == (nil) followed by Segmentation fault - Item is not a collection! error when using addon ID instead of collection ID - Missing 32-bit libraries warning with installation instructions
🎮 Garry's Mod PropHunt Server
A complete, production-ready PropHunt server setup with automated installation, updates, and Docker support.
🚀 Quick Start
One-Liner Docker Install
curl -fsSL https://git.vish.gg/Vish/gmod-prophunt-server/raw/branch/main/install-docker.sh | bash
Bare Metal Install
curl -fsSL https://git.vish.gg/Vish/gmod-prophunt-server/raw/branch/main/install.sh | bash
📦 What's Included
- Garry's Mod Server (via SteamCMD)
- MetaMod:Source - Latest stable version
- SourceMod - Latest stable version
- PropHunt Gamemode - Pre-configured
- Essential Plugins:
- ULX Admin Mod
- ULib
- PropHunt Enhanced
- Anti-Cheat basics
- Workshop Collection Downloader
📁 Directory Structure
gmod-prophunt-server/
├── cfg/ # Server configuration files
│ ├── server.cfg # Main server config
│ ├── autoexec.cfg # Auto-execute commands
│ └── mount.cfg # Content mounting
├── scripts/ # Management scripts
│ ├── install.sh # Full installation
│ ├── update.sh # Update server & addons
│ ├── start.sh # Start server
│ └── backup.sh # Backup script
├── docker/ # Docker files
│ ├── Dockerfile # Container definition
│ └── docker-compose.yml # Compose setup
├── sourcemod/ # SourceMod configuration
├── workshop/ # Workshop collection config
└── metamod/ # MetaMod configuration
⚙️ Configuration
Server Settings
Edit cfg/server.cfg to customize:
- Server name
- RCON password
- Max players
- Map rotation
- Workshop collection ID
Workshop Collection
The default workshop collection includes essential PropHunt content. To use your own:
- Create a collection on Steam Workshop
- Update
WORKSHOP_COLLECTION_IDincfg/server.cfg - Run
./scripts/update.sh
🔧 Management Commands
# Start server
./scripts/start.sh
# Update everything (server, addons, plugins)
./scripts/update.sh
# Backup server data
./scripts/backup.sh
# View logs
tail -f /home/gmod/serverfiles/garrysmod/logs/console.log
🐳 Docker Management
# Start with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f
# Stop
docker-compose down
# Update
docker-compose pull && docker-compose up -d
🔒 Default Ports
| Port | Protocol | Purpose |
|---|---|---|
| 27015 | UDP/TCP | Game server |
| 27005 | UDP | Client port |
| 27020 | UDP | SourceTV |
📝 Environment Variables
| Variable | Default | Description |
|---|---|---|
SRCDS_TOKEN |
- | Steam Game Server Token (required) |
SERVER_NAME |
PropHunt Server | Server name |
RCON_PASSWORD |
changeme | RCON password |
MAX_PLAYERS |
24 | Maximum players |
MAP |
ph_office | Starting map |
WORKSHOP_COLLECTION |
- | Workshop collection ID |
🔑 Getting a Server Token
- Go to https://steamcommunity.com/dev/managegameservers
- Create a new game server account for App ID
4000(Garry's Mod) - Copy the token and set it as
SRCDS_TOKEN
🛠️ Troubleshooting
Server crashes with "tcmalloc: large alloc" error
This is a memory allocation failure in Google's tcmalloc library. The fix is applied automatically by our start scripts, which disable tcmalloc. If you still see this error:
# Manually disable tcmalloc
mv /home/gmod/serverfiles/bin/libtcmalloc_minimal.so.4 /home/gmod/serverfiles/bin/libtcmalloc_minimal.so.4.disabled
"Item is not a collection!" error
Processing collection XXXXX...
Item is not a collection!
Cause: You're using an individual addon ID instead of a collection ID.
Fix:
- Go to
https://steamcommunity.com/sharedfiles/filedetails/?id=YOUR_ID - If it shows a single addon (not a "Collection"), you need to create a proper collection
- Create a new collection on Steam Workshop containing your desired addons
- Use that collection's ID instead
"-authkey is no longer required" warning
This warning can be safely ignored. The -authkey parameter was deprecated by Garry's Mod and is no longer needed for workshop content.
Server won't start
- Check that
SRCDS_TOKENis set - Verify ports 27015-27020 are open
- Check logs in
garrysmod/logs/
Workshop content not downloading
- Verify collection is public
- Check
WORKSHOP_COLLECTIONis set correctly (must be a Collection ID, not an addon ID!) - Ensure server has internet access
Players can't connect
- Ensure firewall allows UDP/TCP 27015
- Verify server is properly registered with Steam
Missing 32-bit libraries warning
WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5.
Install the required libraries:
# Debian/Ubuntu
sudo apt-get install lib32tinfo5 libncurses5:i386
# CentOS/RHEL
sudo yum install ncurses-libs.i686
📜 License
MIT License - Free to use and modify.
🤝 Contributing
Pull requests welcome! Please read the contribution guidelines first.
Description
Garry's Mod PropHunt Server Setup - Complete with MetaMod, SourceMod, plugins, Docker & bare metal installers
Languages
Shell
94.7%
Dockerfile
5.3%