Vish-hands 186887d5b2 Fix: Set ph_office as default map and add map download
- Changed default map from gm_construct to ph_office in start.sh
- Added ph_office to mapcycle.txt as first map
- Added download_prophunt_maps function to install.sh to automatically
  download and extract the ph_office map (Workshop ID: 188818807)
- Maps are extracted using gmad_linux for immediate use

Co-authored-by: openhands <openhands@all-hands.dev>
2026-01-20 09:24:06 +00:00
2026-01-19 06:41:02 +00:00
2026-01-19 06:41:02 +00:00

🎮 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:

  1. Create a collection on Steam Workshop
  2. Update WORKSHOP_COLLECTION_ID in cfg/server.cfg
  3. 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

  1. Go to https://steamcommunity.com/dev/managegameservers
  2. Create a new game server account for App ID 4000 (Garry's Mod)
  3. 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:

  1. Go to https://steamcommunity.com/sharedfiles/filedetails/?id=YOUR_ID
  2. If it shows a single addon (not a "Collection"), you need to create a proper collection
  3. Create a new collection on Steam Workshop containing your desired addons
  4. 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_TOKEN is set
  • Verify ports 27015-27020 are open
  • Check logs in garrysmod/logs/

Workshop content not downloading

  • Verify collection is public
  • Check WORKSHOP_COLLECTION is 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
Readme 58 KiB
Languages
Shell 94.7%
Dockerfile 5.3%