Майже кожен гайд по серверах CS2 в інтернеті насправді є гайдом по MatchZy: повноцінний плагін для змагальних матчів, ножові раунди і купа налаштувань. Тут усе навпаки. Тобі потрібен приватний виділений сервер CS2 для себе й друзів, звичайний, без плагінів. Налаштувати його набагато простіше, ніж здається з інтернету, і все зводиться до однієї речі, яку більшість людей пропускає: токен входу тепер обов'язковий.
Спочатку: токен GSLT (обов'язково)
CS2 не прийматиме підключення на публічній IP-адресі без Game Server Login Token (GSLT). Це найпоширеніша причина, чому свіжий сервер «запускається нормально, але ніхто не може підключитися». Отримай його безкоштовно:
- Перейди на сторінку керування обліковими записами ігрових серверів Steam (steamcommunity.com/dev/managegameservers).
- Створи токен для app ID 730 (Counter-Strike 2). У відповідь отримаєш довгий рядок.
- Він прив'язаний до твого облікового запису Steam. Один токен на сервер. Не передавай його нікому: якщо токен потрапить у чужі руки, сервери твого акаунта можуть забанити.
Встановлення сервера
Виділений сервер CS2 — це app 730 (той самий, що й гра). Встанови його через SteamCMD:
./steamcmd.sh +login anonymous \
+app_update 730 validate \
+quitАнонімний вхід підходить, володіти грою на обліковому записі сервера не обов'язково. Конфіг знаходиться тут:
<install>/game/csgo/cfg/server.cfgЗвичайний (vanilla) server.cfg
Встав це, зміни три значення, позначені CHANGE ME. Без плагінів, без MatchZy.
// --- Identity ---
hostname "My Private CS2 Server" // CHANGE ME
sv_setsteamaccount "YOUR_GSLT_TOKEN" // CHANGE ME - the token from above
// --- Lock it down ---
sv_password "friends-only" // CHANGE ME - join password
rcon_password "pick-a-long-secret" // admin console over RCON
// --- Vanilla behaviour ---
sv_cheats 0
sv_pure 1
sv_lan 0
mp_autoteambalance 1
mp_limitteams 2
// --- A sane private match ---
mp_maxrounds 24
mp_roundtime 1.92
mp_freezetime 15
mp_warmuptime 30
sv_alltalk 0
sv_deadtalk 1Це повноцінний конфіг для приватної змагальної гри. Режиму гри та стартової карти тут немає: CS2 задає їх у рядку запуску, оскільки game_type і game_mode мають бути відомі ще до завантаження карти.
Рядок запуску
Запусти сервер із папки встановлення. Зверни увагу: це бінарник cs2 із -dedicated, а не srcds_run, як раніше:
./game/bin/linuxsteamrt64/cs2 -dedicated \
-ip 0.0.0.0 -port 27015 \
+game_type 0 +game_mode 1 \
+map de_dust2 \
-maxplayers 10 \
+exec server.cfg- game_type 0 + game_mode 1 — це стандартний змагальний режим 5 на 5. Інші режими дивись у таблиці нижче.
- map de_dust2 — це стартова карта. Підійде будь-яка офіційна карта (de_mirage, de_inferno, cs_office…).
- exec server.cfg виконує твої cvars, включно з sv_setsteamaccount, ще до того, як підключаться гравці.
- Порт 27015 використовується для гри та A2S-запитів. Відкрий його у фаєрволі (UDP + TCP).
Пари game_type / game_mode
У CS2 немає єдиного cvar для режиму. Кожен режим — це пара з двох чисел:
game_type game_mode Mode
0 0 Casual
0 1 Competitive (5v5)
0 2 Wingman (2v2)
0 3 Hostage / Casual (cs_ maps)
1 0 Arms Race
1 1 Demolition
1 2 DeathmatchЗміна game_type на працюючому сервері в CS2 нестабільна, тому вибирай режим у рядку запуску, а для зміни перезапускай процес. А от зміна лише карти (changelevel de_mirage) у межах того самого режиму — нормальна практика.
Завантаження карти з Workshop
Карти Steam Workshop не задаються як аргумент запуску. Їх завантажують під час роботи сервера за допомогою host_workshop_map і workshop ID карти, після чого сервер сам завантажує і розміщує її. Спершу додай -disable_workshop_command_filtering у рядок запуску, а потім введи команду в консолі сервера (або через RCON):
host_workshop_map 3070315466Це число — ID зі сторінки Workshop. Перше завантаження підтягує карту зі Steam, тож дай йому трохи часу. Це головна пастка CS2, на якій спотикаються всі: якщо вказати назву карти Workshop після +map у рядку запуску, нічого не станеться — потрібно використовувати host_workshop_map.
Як зробити сервер приватним
Якщо встановити sv_password, підключитися зможуть лише ті, хто введе пароль. Поділись IP-адресою сервера й паролем зі своєю групою і попроси їх ввести в консолі: connect your.server.ip:27015; password friends-only. Пароль також не дає серверу потрапити в публічний пул швидкої гри, а саме це й потрібно для приватної гри.