Insurgency - serwer, konfiguracja

Insurgency - serwer, konfiguracja

Insurgency - gra działająca na silniku source.
Poradnik opisuje stan na dzień 11.12.2014.
Zabrania się kopiowania całości, bądź części poradnika bez zgody autora. Można za to bez ograniczeń linkować do tego materiału.
Poradnik, mam nadzieję pomoże wyjaśnić, jak uruchomić swój pierwszy serwer Insurgencym, bez zbędnego marnowania czasu na szukanie przyczyny, "dlaczego to ustawienie nie działa". Zapraszam do lektury tych którzy chcą się pobawić w Insurgency.
Podziękowania: MrEvilRobot, za cierpliwość, nieustępliwość i pozytywny wkład w G4G.pl

Spis treści


Pobieranie plików serwera

Instalacja serwera przebiega podobnie jak inne serwery gier, dystrybuowane za pomocą platformy steam. Z pomocą przychodzi nam narzędzie steamcmd o którym więcej możecie poczytać we fragmencie tego poradnika dotyczącego stawiania serwera CS GO.
Jedno co musimy wiedzieć to to, że numer SteamApp serwera Insurgency to:
237410
Zatem zawartość przykładowego pliku insurgency.txt (analogicznie do csgo.txt) będzie wyglądała następująco:

login anonymous
force_install_dir ..\
app_update 237410 validate
logout
exit

a wywołanie narzędzia steamcmd będzie miało postać.
steamcmd\SteamCmd.exe +runscript insurgency.txt

Pozostały tryb postępowania, jest taki sam jak w przypadku serwera CSGO.

Mapki, tryby gry

Lista mapek w Insurgency

Dla trybu PVP (typowy publik, walka przeciwko ludziom)

buhriz
buhriz_night
buhriz_occupy
contact
district
district_night
heights
heights_night
market
market_night
ministry
ministry_night
panj
panj_night
peak
peak_night
revolt
revolt_night
siege
sinjar
sinjar_night
uprising
uprising_night
verticality
verticality_night

Lista mapek dla trybu kooperacji (walka przeciwko botom)
buhriz_coop
buhriz_hunt
contact_coop
contact_hunt
district_coop
district_hunt
district_survival
heights_coop
heights_hunt
heights_survival
market_coop
market_survival
ministry_coop
ministry_hunt
panj_hunt
revolt_coop
revolt_hunt
siege_coop
sinjar_coop
sinjar_survival
uprising_hunt
verticality_survival

Mapki te występują w różnych scenariuszach.
Scenariusze dostępne dla gier w trybie PvP

Ambush
Firefight
Flashpoint
Infiltrate
Occupy
Push
Skirmish
Strike

Scenariusze dostępne dla trybu COOP
Checkpoint
Hunt
Survival

Listy mapek, pogrupowane są w plikach w zależności od scenariusza.
Domyślnie otrzymujemy następujące presety mapek
"mapcycle.txt" - plik domyślny z popularnymi scenariuszami i mapami
"mapcycle_all.txt"  - wszystkie mapki i trybu dla PvP
"mapcycle_ambush.txt" - tylko scenariusz ambush (VIP)
"mapcycle_attackdefend.txt" - mix of attack/defend modes
"mapcycle_cooperative.txt" - checkpoint, outpost, hunt
"mapcycle_firefight.txt" - wszystkie mapki firefight
"mapcycle_flashpoint.txt" - wszystkie mapki flashpoint
"mapcycle_infiltrate.txt" - mapki infiltracja (CTF)
"mapcycle_objrespawn.txt" - wszystkie mapki z elementami scenariusza Objectives
"mapcycle_occupy.txt" - wszystkie mapki w scenariuszu Occupy
"mapcycle_push.txt" - wszystkie mapki push
"mapcycle_singlelife.txt" - Mapki ze scenariuszami bez respawnu
"mapcycle_skirmish.txt" - Wszystkie mapki skirmish
"mapcycle_workshop.txt" - używane przez Workshopa

W powyższych plikach zawarto listę map, rozgrywanych w wybranym scenariuszu.
Pliki te nie znajdują się w katalogu cfg, tylko w katalogu nadrzędnym. Dla ciekawości otwórzmy sobie plik mapcycle_push.txt. Zobaczymy taką zawartość:

panj push
market push
sinjar push
peak push
heights push
buhriz push
district push
siege push
revolt push

Są to pliki domyślne, dostarczane z serwerem. Nie edytujmy ich!. Niech te pliki będą wzorcem, dzięki któremu zbudujemy swój własny plik z mapkami.

Jeśli chcesz ustawić własne mapki w w danym trybie utwórz własny plik z mapkami i nazwij go po swojemu!

Dla naszego przypadku takim plikiem jest plik mapcycle_pvp_push.txt.
W pliku tym będą mapki:

peak push
heights push
buhriz push
district push

Różni się nieco od tego co proponuje nam domyślnie serwer ?!
O tym jak zainicjować daną listę mapek (scenariusz) dowiemy się w następnym paragrafie. Czyli przechodzimy do sekcji plików konfiguracyjnych.

Pliki konfiguracyjne, czyli co z czym i dlaczego

Wszystkie pliki konfiguracyjne odpowiedzialne za gameplay w Insurgency znajdują się w katalogu cfg.
Plikiem bazowym, i wyjściowym który ZAWSZE jest wykonywany podczas uruchomienia, jest plik server.cfg. Nie trzeba deklarować podczas startu serwera, konieczności wykonania dyrektyw zawartych w tym pliku. Serwer zawsze wie, gdzie ten plik się znajduje. Istnieje oczywiście możliwość wskazania własnego pliku konfiguracyjnego. Ale o tym później, przy okazji opisu startowej linii komend serwera.

Kiedy spójrzmy na zawartość katalogu insurgency/cfg, możemy poczuć się niepewnie.
Tych plików cfg jest nieco więcej niż ustawa przewiduje.
Czy one się ładują? Odpowiedź brzmi: TAK, ale w określonej kolejności.
Kolejność ładowania jest bardzo ważna, bowiem to co zdeklarowaliśmy w 1 pliku cfg, może być nadpisane w kolejnym ładującym się do pamięci serwera.
Kolejność ładowania się plików konfiguracyjnych:

server.cfg
server_< scenariusz >.cfg
server_< mapa >.cfg
server_< mapa >_< scenariusz >.cfg

Legenda z uwzględnieniem konkretnego trybu i mapki (dla przykładu scenariusz push i mapka peak :
server.cfg - pierwsze ładowanie zmiennych, ustawiasz to co ogólne dla serwera
server_push.cfg - określenie parametrów dla scenariusza push dla dowolnej mapki
server_peak.cfg - określenie ogólnych parametrów dla mapki peak scenariuszu dowolnym
server_ peak_push.cfg - określenie parametrów dla mapki peak w trybie push
I tak np jeśli w pliku server.cfg ustawimy winlimit 5, a w pliku server_peak_push.cfg pojawi się zmienna winlimit 3 to wiadomo że dla mapki peak w scenariuszu push będziemy mieli winlilmit 3 a na pozostałych mapkach winlimit 5.
Mam nadzieję że powyżysze wyjaśnienie, nie zasnuło wam pola walki i nie zrazicie się do konfiguracji serwera Insurgency.

Domyślne pliki server_.cfg znajdują się w katalogu cfg. Pliki server_.cfg oraz server__.cfg o ile zajdzie taka potrzeba, musimy stworzyć sobie sami.

Na g4g.pl wyjściowy domyślny plik server.cfg wygląda jak w kodzie poniżej. Zauważmy, że w pliku tym ustawiamy serwer w trybie PvP z ograniczeniem mapek ze scenariusza PUSH. Z tego też tytułu, ważne są komendy:
"mapcyclefile" "mapcycle_pvp_push.txt"
ten plik utworzyliśmy sobie w sekcji wyżej,
oraz
sv_playlist pvp
W pierwszej linijce informujemy serwer jakie mapki w jakim trybie ładujemy.
W drugiej zaś, podłączamy serwer pod system matchmakingu. Jeśli gracz wybierze szybką grę, w wybranym przez siebie trybie( push PvP), będzie miał szansę znaleźć się na naszym serwerze który odpalany jest w trybie PvP Push.
Do wyboru mamy jeszcze coop, tacticalop, oraz sustained.

W sekcji Game PvP settings pliku server.cfg ustawiamy zmienne odpowiedzialne za ustawienia PvP.

// ---------------------------------------------------------------
// Server Info Options
// ---------------------------------------------------------------
// hostname "< YourServerName >" // Na G4G.pl ustawiasz przez panel
// rcon_password "< twojeHasłoRcona >" //Na G4G.pl ustawiasz przez panel
sv_password "" // HASLO NA SERWER
sv_minrate 30000
// ---------------------------------------------------------------
// Server Download Options (Community made maps)
// ---------------------------------------------------------------
// sv_downloadurl "<type-url-here>"
// sv_allowdownload 1
// sv_allowupload 1
// ---------------------------------------------------------------
// Server Logging Options
// ---------------------------------------------------------------
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
// logaddress_add xxx.xxx.xxx.xxx:27500 //jeśli masz HLSTATS CE
// ---------------------------------------------------------------
// Game Mode Options
// ---------------------------------------------------------------
<span style="color:yellow;">"mapcyclefile" "mapcycle_pvp_push.txt"</span> //tutaj ustawiasz preset mapek
// ---------------------------------------------------------------
// Game PvP settings
// ---------------------------------------------------------------
"sv_map_voting" "1"
"sv_vote_issue_kick_allowed" "0"
"sv_maxrate" "0"
"sv_maxupdaterate" "64"
"sv_maxcmdrate" "64"
"sv_client_cmdrate_difference" "1"
"sv_client_max_interp_ratio" "2.0"
"sv_client_min_interp_ratio" "1.0"
"sv_vote_allow_spectators" "0"
"sv_lan" "0"
"sv_region" "3"
"mp_forcecamera" "1"
"mp_spectator_allow_chase" "0"
//"ins_bot_quota" "8"
mp_round_freezetime "2"
mp_round_lobbytime "10"
//mp_spawnprotectontime "5"
mp_autoteambalance "1"
mp_scrambleteams_auto "1"
mp_scrambleteams_auto_windifference "2"
mp_maxrounds "6"
mp_winlimit "3"
sv_tags "G4G.pl,SMACBans,PL,pvp"
mp_voice_use_3d_voip  "0"
"sv_deadvoice" "1"
"sv_deadchat" "1"
"sv_deadchat_team" "0"
// ---------------------------------------------------------------
// Wczytujemy listę banów.
// ---------------------------------------------------------------
exec banned_user.cfg
writeid
// ---------------------------------------------------------------
// Włączenie matchmakingu dla serwera
// More info: http://steamcommunity.com/app/222880/discussions/2/558746089590579609/
// ---------------------------------------------------------------
// "tacticalop" (Tactical Operations)
// "sustained" (Sustained Combat)
// "coop" (Cooperative)
<span style="color:yellow;">sv_playlist pvp</span>

CVARY - A skąd wziąć listę wszystkich zmiennych?

Zmiennych, (CVARÓW) jest naprawdę sporo. Jest ich tak dużo że trudno je tutaj opisać.
Pełną zawsze aktualną listę CVARÓW uzyskasz logując się na serwerze do rcona (poprzez konsolę - tylda) i wydając komendę
cvarlist log listacvarow.txt
Następnie logujemy się przez FTP na konto gry, i szukamy w katalogu głównym pliku listacvarow.txt.
Pobieramy na swój komputer i ... chwytamy się za głowę (tyle tego jest).
Generalnie cvary poprzedzone przerostkiem sv_ dotyczą ustawień działania serwera gry (silnik Source) a cvary poprzedzone przerostkiem mp_ dotyczą samego gameplaya.

Konkluzja - kroki dla konfiguracji serwera Insurgency w G4G.pl

Zadanie: checesz serwer COOP z mapkami coop, 6 graczy 18 botów i listą rund na 3 i 1 zwycięską rundą.

  1. Wykupujesz serwer na 24 sloty (boty zajmują slota gry!)
  2. Ustawiasz hasło rcon i nazwę serwera przez panel G4G.pl
  3. Logujesz się przez ftp na konto gry
  4. Tworzysz plik z mapkami o nazwie mapcycle_coop_moje.txt
  5. W powyższym pliku wpisujesz mapki:
    sinjar_coop
    revolt_coop
    buhriz_coop
    market_coop
    heights_coop
    contact_coop
    district_coop
    ministry_coop
    siege_coop
  6. W pliku server.cfg wpisujesz odpowiednie cvary odpowiedzialne za ogólne działanie serwera oraz wpisujesz komendę bot_quota 16
  7. W pliku server_cooperative.cfg ustawiasz komendy
    "mapcyclefile" "mapcycle_coop_moje.txt"
    "mp_coop_min_bots" "8" // liczba botów kiedy jest 1 gracz na serwerze
    "mp_coop_max_bots" "16" // liczba botów kiedy jest 6 graczy na serwerze
    "mp_coop_min_bot_difficulty" "2" // trudność botów na początku misji
    "mp_coop_max_bot_difficulty" "3"  // trudność botów na końcu misji
  8. Jako że gramy na mapkach _coop, to oznacza że są to mapki w sceanriuszu checkpoint. Zatem edytujemy plik server_checkpoint.cfg i ustawiamy
    "mp_maxgames" "1" // kiedy wygramy 1 rudnę zmiana mapki
    "mp_maxrounds" "3" //max 3 rundy
  9. Uruchamiamy/restartujemy serwer

Start serwera Insurgency - linia komend

Przykładowa linia komend która uruchamiamy serwer Insurgency na windows server wygląda tak:

srcds.exe -game insurgency -console -usercon -secure -debug +ip {IP serwera} -port {Port serwera} -maxplayers {Ilość slotów} +hostname "{Nazwa serwera}" +rcon_password {Twoje hasło rcon} +map "district"

Linię tę można maksymalnie uprościć w sposób następujący
srcds.exe -game insurgency -console -usercon -secure -debug +ip {IP serwera} -port {Port serwera} +map "district"

Ważny jest przełącznik +map {nazwa_mapki}. Bez niego serwer nie załaduje domyślnej mapki. I praktycznie nie będzie można na niego wejść. To częsty bład osób które konfigurują swój pierwszy serwer Insurgency.
Jak wspomniałem wcześniej serwer gry odpala w pierwszej kolejności plik server.cfg w celu odczytu danych konfiguracyjnych w niem zawartych. Jeśli jesteś fanem daleko idących modyfikacji (lubisz grzebać... prawda?) można nieco zmodyfikować linię startową
srcds.exe -game insurgency -console -usercon -secure -debug +ip {IP serwera} -port {Port serwera} +map "district" + exec moj_plik.cfg

Serwer wykona plik konfiguracyjny moj_plik.cfg