cs2server handout
installation
cs2server:
image: joedwards32/cs2:latest
container_name: cs2server
restart: unless-stopped
networks:
- cs2net
environment:
# Server configuration
- SRCDS_TOKEN=<token> ## Game Server Token from https://steamcommunity.com/dev/managegameservers
- STEAMAPPVALIDATE=0 ## (If you break the game through your customisations and want steamcmd to validate and redownload then set the STEAMAPPVALIDATE environment variable to 1)
- CS2_SERVERNAME=cs2server ## (Set the visible name for your private server)
- CS2_CHEATS=0 ## (0 - disable cheats, 1 - enable cheats)
# CS2_IP="" ## (Allows the server IP to be set. Useful if a CS2 server needs to be bound to a specific IP address.)
- CS2_PORT=27015 ## (CS2 server listen port tcp_udp)
- CS2_SERVER_HIBERNATE=0 ## (Put server in a low CPU state when there are no players. 0 - hibernation disabled, 1 - hibernation enabled)
- CS2_RCON_PORT ## (Optional, use a simple TCP proxy to have RCON listen on an alternative port. Useful for services like AWS Fargate which do not support mixed protocol ports.)
- CS2_LAN=0 ## (0 - LAN mode disabled, 1 - LAN Mode enabled)
- CS2_RCONPW=<rcon> ## (RCON password)
- CS2_PW=<serverpassword> ## (CS2 server password)
- CS2_MAXPLAYERS=12 ## (Max players)
- CS2_ADDITIONAL_ARGS ## (Optional additional arguments to pass into cs2)
- CS2_CFG_URL ## The container can be instructed to download a extract a Tar Gzip of configuration files and other customisations from a given HTTP/HTTPS URL for example https://github.com/joedwards32/CS2/raw/main/examples/cs2.cfg.tgz
## Game modes
- CS2_GAMEALIA ## (Game type, e.g. casual, competitive, deathmatch. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_GAMETYPE=0 ## (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_GAMEMODE=1 ## (Used if CS2_GAMEALIAS not defined. See https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers)
- CS2_MAPGROUP=mg_active ## (Map pool)
- CS2_STARTMAP=de_dust2 ## (Start map)
# Mappool
# CS2_HOST_WORKSHOP_MAP=xxxxxx (not tested yet. i guess its removed by dev)
# CS2_HOST_WORKSHOP_COLLECTION=xxxxx (not tested yet. i guess its removed by dev)
# Bots
- CS2_BOT_DIFFICULTY=3 ## (0 - easy, 1 - normal, 2 - hard, 3 - expert)
- CS2_BOT_QUOTA=0 ## (Number of bots)
- CS2_BOT_QUOTA_MODE=competitive ## (fill, competitive)
# TV
- TV_AUTORECORD=0 ## Automatically records all games as CSTV demos: 0=off, 1=on.
- TV_ENABLE=0 ## Activates CSTV on server: 0=off, 1=on.
- TV_PORT=27020 ## Host SourceTV port
- TV_PW=<pw> ## CSTV password for clients
- TV_RELAY_PW=sick ## CSTV password for relay proxies
- TV_DELAY=0 ## CSTV broadcast delay in seconds
- TV_MAXRATE=0 ## World snapshots to broadcast per second. Affects camera tickrate.
# Logs
- CS2_LOG=on ## 'on'/'off'
- CS2_LOG_MONEY=0 ## Turns money logging on/off: (0=off, 1=on)
- CS2_LOG_DETAIL=0 ## Combat damage logging: (0=disabled, 1=enemy, 2=friendly, 3=all)
- CS2_LOG_ITEMS=0 ## Turns item logging on/off: (0=off, 1=on)
volumes:
- ./cs2:/home/steam/cs2-dedicated/ # Persistent data volume mount point inside container
ports:
- "27015:27015/tcp" ## TCP HLDS
- "27015:27015/udp" ## UDP HLDS
# #- "27020:27020/udp" ## UDP CSTV
stdin_open: true # Add local console for docker attach, docker attach --sig-proxy=false cs2server
tty: true # Add local console for docker attach, docker attach --sig-proxy=false cs2server host_workshop_map 3253703883 nuke host_workshop_map 3124567099 inferno host_workshop_map 3070960099 aztec
## stin > docker run -i to keep STDIN attached, allowing you to interact with the running process
## tty > docker run -t to attach a tty to the container
## "docker compose exec SERVER bash" with stdin and tty
## "docker compose exec -it SERVER /bin/sh" doesnt work
# deploy:
# resources:
# limits:
# cpus: '3.5'
# # memory: 50M
## The default configurations for each game mode are stored in /home/steam/cs2-dedicated/game/csgo/cfg/. For example, the Competitive mode defaults are set by gamemode_competitive.cfg
## /home/steam/cs2-dedicated/pre.sh is executed before the CS2 server starts
## /home/steam/cs2-dedicated/post.sh is executed after the CS2 server stops
## Makes sure the directory is writeable by the unprivileged container user with uid 1000, known as steam
configuration
plugins
metamod
installation
Download the latest dev build 2.X from the releases page
Move the addons folder to your game/csgo folder
Edit gameinfo.gi in game/csgo and add Game csgo/addons/metamod to the SearchPaths section
"GameInfo"
{
game "Counter-Strike 2"
title "Counter-Strike 2"
title_pw "..."
LayeredOnMod csgo_imported // Inherits the gameinfo.gi data from csgo_imported (which itself inherits from csgo_core)
FileSystem
{
SearchPaths
{
Game_LowViolence csgo_lv // Perfect World content override
+ Game csgo/addons/metamod
Game csgo
Game csgo_imported
Game csgo_core
Game core
counterstrikesharp
installation
download the latest runtime release
Extract CounterStrikeSharp and copy the /addons/ directory to /game/csgo/.
- Restart your game server.
- Running the command
meta list
in the console should show 1 plugin loaded
configuration
matchzy
installation
Warning
prerequisite: metamod and counterstrikesharp should be already installed on the server
Note
download standalone version not the combined one with counterstrikeshare bc there is a known bug with the verification line in one of the plugin which doesnt work when not installed separately
download the latest MatchZy release and extract the files to the csgo/ directory of the dedicated server.
.
└─ game/
└─ csgo/
├─ addons /
│ └─ counterstrikesharp /
│ └─ plugins /
│ └─ MatchZy /
└─ cfg /
└─ MatchZy /
verify the installation by typing css_plugins list
and you should see MatchZy by WD- listed ther