A private Counter-Strike 2 server gives your team somewhere to practise utility, run scrims, host a retake or deathmatch community, or simply play on your own rules with nobody else’s settings in the way. Valve ships the dedicated server for free, and the core of it is simple: a Steam token, a game mode, a map list and a config file. The parts that trip people up are workshop maps and plugins, because CS2 changed how both work compared with CS:GO. This guide covers all of it, then explains how we set a server up for you on GGHOST Cloud.
How a CS2 dedicated server works
A CS2 server is a headless copy of the game that runs the match simulation for everyone connected. It decides where every player, grenade and bullet is, and clients send their inputs to it. CS2 uses Valve’s sub-tick system, so the server’s job is to process those inputs consistently every frame. What players notice as a “bad server” is usually the CPU falling behind during busy moments, not a lack of memory.
Two things are required before the server can be public:
- A Steam Game Server Login Token (GSLT). CS2 servers need one to be reachable over the internet. You create it on Steam’s game server account management page against app ID 730 and set it with
sv_setsteamaccount. Treat it like a password: Valve bans tokens at the account level, so a token tied to a server running banned plugins can affect the rest of your tokens. - A game mode and a starting map, which we come to below.
What drives CPU and memory use
We do not publish a fixed RAM table for CS2, because the numbers depend heavily on what you run. In plain terms:
- Player count is the main load. A 10-player competitive match is light; a 20 to 30-player casual or deathmatch server keeps the CPU busier.
- Bots cost CPU time like players do, so a retake or practice server full of bots is not free.
- Plugins add work on every tick. A small practice plugin is barely noticeable; a large stack of plugins can be.
- Workshop maps vary. Some community maps are far heavier than the official pool.
Tell us your mode, player count and plugin list, and we size the server with you. You pay for memory, not player slots, so maxplayers is a setting you choose rather than something on the invoice.
Server config essentials
Game type and game mode
CS2 picks its rules from two values, game_type and game_mode, set as startup parameters. The two you will use most:
- Casual:
game_type 0andgame_mode 0. - Competitive:
game_type 0andgame_mode 1.
Wingman, deathmatch and other modes use other combinations; check Valve’s dedicated server documentation for the current values before you set them. Each mode then reads its own config on top of server.cfg, which lives in game/csgo/cfg/.
server.cfg
server.cfg is where your own settings go: hostname, sv_password for a private server, rcon_password for remote admin, and round rules such as mp_maxrounds, mp_roundtime and mp_freezetime. Keep a separate cfg for each format you run, for example a practice cfg with infinite ammo and grenade trajectories, and load it with exec from the console when you need it.
Workshop maps and collections
Workshop maps load by ID rather than file name:
host_workshop_map <id>switches to a single workshop map.host_workshop_collection <id>loads a whole collection, which is the easiest way to run a custom map rotation. Collections need a Steam Web API key passed to the server with-authkey.
Start the server on a normal map such as de_dust2 with the collection set, and it downloads the maps on boot.
Plugins: Metamod and CounterStrikeSharp
This is the biggest change from CS:GO. SourceMod does not run on CS2. The CS2 plugin stack is:
- Metamod:Source 2.x, the loader. It is enabled by adding its path to the
SearchPathsblock ingame/csgo/gameinfo.gi. - CounterStrikeSharp, a plugin framework that runs on Metamod. Almost every current CS2 plugin, from practice tools to retakes and admin menus, is built for it.
Type meta list in the console to confirm Metamod is loaded. If it returns “Unknown Command”, it is not.
After a CS2 update, check
gameinfo.gifirst. Updates can overwrite it and silently remove the Metamod line, which is the most common reason plugins “disappear” overnight.
Performance and fair-play tips
- Keep the plugin list lean. Every plugin runs on the server’s frame. Remove the ones you no longer use rather than leaving them loaded.
- Pick the region closest to your players. Ping is distance first. Our live regions today are Singapore and Europe (France–Germany border), with the United States (East, Central and West), the United Kingdom, India, Japan and Australia on demand.
- Restart on a schedule. A daily restart at a quiet hour clears memory and picks up game updates. Set it as a scheduled task in the panel, with a console announcement a few minutes before.
- Lock down admin access. Use a long
rcon_password, give moderators their own panel sub-user instead of sharing your login, and keep Valve’s anti-cheat in place: never run plugins that tamper with it. - Stay on Valve’s side of the rules. Plugins that fake items or skins can get your token banned.
Adding maps and plugins safely
Upload plugin files over SFTP or through the panel’s file manager, restart, then read the console for errors. Two habits save most of the trouble:
- Match the framework version. A CounterStrikeSharp plugin built for an older release is a common cause of load errors after an update.
- Back up before big changes. Take a backup from the panel before updating plugins or reworking your configs, so you can roll back if something breaks.
Backups
Your configs, map groups and plugin settings take hours to get right. On GGHOST Cloud, backups run on a schedule you set and restore from the panel without opening a ticket. A daily backup plus a manual one before every plugin change is a sensible routine. If you are moving from another host, upload your cfg folder and addons over SFTP and you start from the same setup.
Getting a CS2 server on GGHOST Cloud
CS2 is set up on request rather than through instant checkout:
- Tell us what you need. Ask us on Discord (or open a ticket) with the game mode, maps or workshop collection and player count you need.
- We size it and quote. We work out the memory and CPU headroom for that setup and quote a monthly price. There is no setup fee and no contract; billing runs through app.gghost.cloud.
- We set it up on our Pterodactyl panel, usually within a few days, and hand it over.
- Add your token and share the address. Paste your GSLT into the startup settings, start the server, and give players the address and port shown in the panel.
From there you have the full panel at panel.gghost.cloud: live console, file manager, SFTP, scheduled tasks, sub-users and database access. You can change startup flags such as the game mode or map from the panel and restart. Every node is behind DDoS protection from our network providers, and support comes from the people who run the servers, on Discord or at hello@gghost.cloud.
The short version
Create a GSLT for app 730, choose your game_type and game_mode, keep your rules in server.cfg, and load custom maps with host_workshop_collection and an API key. For plugins, use Metamod with CounterStrikeSharp, not SourceMod, and check gameinfo.gi after every update. Back up before changes, restart on a schedule, and ask us on Discord when you want a server set up.