Custom HLDS Engine Game
This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel.
egg-custom-hlds-engine-game.json
updated
Ports
Add an allocation on the node for each port.
- Game/rcon 27015
- HLTV 27020
- VAC 26900
Image
- source image ghcr.io/ptero-eggs/games:source
Panel features
- steam_disk_space
The Panel tells the user when SteamCMD does not have enough disk space.
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
9 variables
The ID corresponding to the game to download and run using HLDS. The HLDS server ID is 90. This should not be changed.
SRCDS_APPIDUsers cannot see
required|numeric|in:90
The name corresponding to the game to download and run using HLDS. all the HLDS server names are here - https://developer.valvesoftware.com/wiki/Dedicated_Server_Name_Enumeration
HLDS_GAMEUsers can edit
required|alpha_dash|between:1,100
The default map for the server.
SRCDS_MAPUsers can edit
required|string|alpha_dash
Specifies the VAC port the server should use. Default is 26900.
VAC_PORTUsers can see
required|numeric|digits_between:1,5
Steam account used to download files (Defaults to anonymous)
STEAM_USERUsers cannot see
nullable|string|max:32
Password for Steam account
STEAM_PASSUsers cannot see
nullable|string|max:64
Steam Guard 2FA code for account
STEAM_AUTHUsers cannot see
nullable|string|max:20
Leave empty for the public branch, for the legacy version select steam_legacy.
SRCDS_BETAIDUsers can edit
nullable|string|in:,steam_legacy
Auto update on restart
AUTO_UPDATEUsers can edit
required|boolean
Wings
- Stop command
- quit
- Running when the console shows
- Connection to Steam servers successful
Readme
HLDS Servers
This is for older games like CS 1.6 (default game) and other servers that still run on the older HLDS server under id 90
Server Ports
HLDS servers require up to 6 ports
| Port | default |
|---|---|
| Game/rcon | 27015 |
| HLTV | 27020 |
| VAC | 26900 |
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 46 lines bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/bin/bash
# SRCDS Base Installation Script
#
# Server Files: /mnt/server
# just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd
# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server
## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"