Sätta upp egna CS:GO-servrar

Posted: 2014-05-17 by Alvmarken in Etiketter: , , ,
0

Häromsistens kom jag och en kollega på att vi skulle sätta upp egna CS:GO-servrar.
Det skulle väl vara enkelt trodde vi. Men, det var en felaktig uppfattning skulle det visa sig.
Att få servern att starta var inte så svårt, men att kunna ansluta till den var en annan femma.

Så, efter att ha tillbringat några timmar på Google och diverse forum tänkte jag att jag ska dela med mig av mina resultat.

Först och främst behöver man få fart på Steam CMD.
Guiden jag länkat till funkade utan problem för mig.
Vi kör Windows på vår server ska jag tillägga så jag har bara följt de instruktioner som rör Windows, har inte provat de övriga operativen.
Ett kort sammandrag över installtionsförfarandet för Steam CMD:

1. Skapa en katalog på servern (typ C:\steamcmd)
2. Tanka hem http://media.steampowered.com/installer/steamcmd.zip
3. Zippa upp filen i katalogen du skapade i steg 1.
4. Öppna en kommandoprompt och gå till C:\steamcmd (cd c:\steamcmd).
5. Skriv steamcmd i prompten
6. Logga in på Steam. Enklast är att köra anonymt, men vill man kan man logga in med sitt eget Steam-ID. Jag valde att köra anonymt. Så, skriv kommandot login anonymous.
7. Så, bestäm var du vill att CS:GO-servern ska läggas, genom att sätta en installationskatalog:
force_install_dir
I mitt fall blev det force_install_dir C:\csgo

8. Sen är det bara att tanka hem serverfilerna. För att ta hem, installera och validera filerna skriver man:
app_update 740 validate
740 är app-id't för CS:GO. Man kan ta hem andra servrar om man vill genom att välja ett annat app-id enligt listan här: https://developer.valvesoftware.com/wiki/Steam_Application_IDs
9. När man är klar kan man skriva quit för att gå ur Steam CMD.

Så, nu är det dags att börja pilla med server-konfigfilerna.
Beroende på vad man vill köra för game type och game mode så är det lite olika som behöver göras.
Vi kör en server med Classic Casual och en med Deathmatch.
De game types som finns är:
Classic
Gungame

I game type classic finns game mode Casual och Competitive.
I game type gungame finns game mode Deathmatch, Arms Race och Demolition.

Det finns total 6 olika game modes:
Casual
Competitive
Arms Race
Demolition
Deathmatch
Custom

För att få fart på en Casual behövs 3 filer: server.cfg, gamemodes_server.txt och gamemode_casual_server.cfg
server.cfg och gamemode_casual_server.cfg ligger i cfg-katalogen medan gamemodes_server.txt ligger direkt i csgo-katalogen.
Man ska INTE pilla på filen gamemodes.txt eftersom den skrivs över varje gång man uppdaterar serverinstallationen. Detsamma gäller filerna gamemode_speltyp.cfg som ligger i cfg-katalogen.

Så, server.cfg bör innehålla följande (åtminstone för att starta med bot:ar, gå att ansluta till via community server-listan i Steam och funka rent allmänt. Hade en del strul innan jag fick med alla parametrar. Ursäkta blandningen av svenska och engelska i kommentarerna.
Här kan du kolla vår server.cfg

hostname "Whatever du vill att din server ska heta"
host_name_store 1 //**Visa i Steams masterlista över community servrar och GOTV
host_info_show 2 //** Visa info när man väljer Show Info
host_players_show 2 //**Visa vilka spelare som är online
rcon_password "SkrivnåtvettigtlösenordförRCON"
sv_password "" //**Only set this if you intend to have a private server!
sv_region "3" //** Sätter regionen till Europe

mp_freezetime "5" //**The amount of time players are frozen to buy items
mp_join_grace_time "15" //**The amount of time players can join teams after a round has started
mp_match_end_restart "0" //**Defines whether a map should be restarted after a game has ended
sv_cheats "0" //**This should always be set, so you know it's not on
sv_lan "0" //**This should always be set, so you know it's not on

//**Bot settings
bot_join_after_player "0" //**Om denna sätts till 1 kommer bottarna att ansluta EFTER att det finns riktiga spelare online. Rekommenderat att ha den satt till 1. Jag kör med 0 för test av serverprestanda.

sv_allow_lobby_connect_only "0" //**Betyder att man kan ansluta via konsolen OCH lobbyn.
sv_dc_friends_reqd "0" //**Betyder att man kan ansluta till pågående spel även om inga Steam-vänner är inne och spelar
sv_hibernate_postgame_delay "0" //**Number of seconds to wait after final client leaves before hibernating.
sv_reservation_timeout "45" //**Time in seconds before lobby reservation expires

//**The following commands manage kicks and bans
exec banned_user.cfg
exec banned_ip.cfg

writeid
writeip

//Others
sv_pure "1"  //**Betyder att man som serveradmin kan styra vad som är tillåtet att ändra på klientsidan och inte via filen pure_server_whitelist.txt. Tex att det är ok att ändra ljudfiler men inte material och modeller
sv_allowupload "0"  //**Tillåt inte uppladdningar till servern
sv_allowdownload "1"  //**Tillåt nedladdning av kartor till klienter
sv_hibernate_when_empty "0"  //**Sätt till 0 om man inte vill att servern går ner i hibernate-läge när den är tom.
sv_forcepreload "1" //**Ska enligt uppgift göra att spelupplevelsen blir behagligare för klienterna.


gamemodes_server.txt innehåller info och inställningar om alla game modes och framförallt vilka konfig-filer som ska köras när respektive game mode startas. I vårt fall är det gamemode_casual.cfg för Casual och
Jag har länkat till den vi använder och där saknas Arms Race och Demolition eftersom vi inte använder dessa game modes.

gamemode_speltyp_server.cfg innehåller inställningar för den specifika speltypen. Ex.vis hur många bottar som ska användas, hur lång tid en runda ska ta, hur mycket pengar man börjar spelet med, hur mycket pengar som ska ges när man uppfyller olika uppdrag (såsom att defusa bomb, planta bomb, eliminiera motståndare med olika vapen osv). I standardinställningarna ges hälften så mycket som i Competetive-läget.

Våra gamemode-filer finns här:
gamemode_casual_server.cfg
gamemode_deathmatch_server.cfg

Våra är helt oredigerade så jag startar servrarna med originalfilerna genom att köra en bypass på ovanstående filer genom att lägga till +exec gamemode_casual.cfg för Casual-server och +exec gamemode_deathmatch.cfg. Detta är bara tillfälligt tills jag gjort de förändringar vi vill ha in i respektive spelstilskonfig.

Om man lagt till custom maps eller vill ändra i vilka kartor som ska vara spelbara behöver man se över inställningarna i filen gamemodes_server.txt
Specifikt ska man kika i blocket mapgroupsMP för respektive game mode:
T ex, i vår gamemodes_server.txt står följande för game mode Deathmatch:
"gungame"
{
"value" "1"
"nameID" "#SFUI_GameTypeGungame"

// This is the list of game modes supported by this game type.
"gameModes"
{
"deathmatch"
{
"value" "2"
"nameID" "#SFUI_Deathmatch"
"descID"         "#SFUI_DeathmatchDesc"
"matchmakingvalue" "competitive"
"uid" "13"
"maxplayers"         "12"

// These are the descriptive ui elements to display in the information box on.
// These key/values should be pairs of strings.  The "key" will appear in the left
// column, the "value" will appear in the right column.
"ui"
{

"0" { "label" "#SFUI_WinMatchColon" "value" "10 #SFUI_Rounds" }
"1" { "label" "#SFUI_TimePerRoundColon" "value" "90 #SFUI_Seconds" }
"2" { "label" "#SFUI_SpectateColon" "value" "#SFUI_SpectateTeamOnly" }
"3" { "label" "#SFUI_BotsColon" "value" "#SFUI_BotDifficulty3" }
}

// These are the configs that get executed when a game mode of this type is created
"exec"
{
"exec" "deathserver.cfg"
"exec" "gamemode_deathmatch_server.cfg"
}

"mapgroupsMP" // List of mapgroups valid for this game mode
{
"mg_allclassic" "0"
"mg_deathmatch" "1"

}
}
}
}

Lite längre ner i samma fil står:
"mg_deathmatch"
{
"name" "mg_deathmatch"
"maps"
{
"aim_map" ""
"aim_map_csgo" ""
"awp_mapz" ""
"csgo_awp_map" ""
}
}


Detta gör att man kan välja nån av kartorna Aim_map, aim_map_csgo (som jag för övrigt tror är samma som aim_map), awp_mapz och csgo_awp_map.

Men, eftersom jag också skrivit med "mg_allclassic" "0" i mapgroupsMP så är även de vanliga classic-kartorna valbara vid kartröstning.

Man bör också uppdatera filerna mapcycle.txt och maplist.txt så att de kartor som ska vara tillgängliga finns med där.

Filen motd.txt kan man använda för att informera om serveradmins osv.

Så, nu är filerna preppade och förhoppningsvis rätt konfigurerade.
Just ja, använd inte den exempelfil gamemodes_server_txt.example som kommer med från Steam för den innehåller fel som gör att den inte blir inläst korrekt när man startar sin server.

För att starta en server gör man antingen en genväg som pekar på C:\csgo\srcds.exe och lägger till konsolkommandon i genvägen eller så använder man Server Checker för Windows (kan hämtas här http://www.dumbclan.co.uk/forum/topic/15362-releasedserver-checker-304-mod-with-support-for-vista-and-newer/page__hl__%2Bserver+%2Bchecker)

Vi kör med Server Checker och där är kommandoraden för Casual-servern som följer:
C:\csgo\srcds.exe rcds -game csgo -console +net_public_adr 217.209.99.11 +hostport 27060 -maxplayers_override 12 -usercon +exec gamemode_casual.cfg +game_type 0 +game_mode 0 +mapgroup mg_bomb +map de_dust2 -tickrate 64 +sv_pure 1

Vad gör kommandoraden?
1. Startar srcds
2. Talar om att spelet är csgo (-game csgo)
3. sen tillåter vi RCON (-console)
4. Sätter den publika IP'n till 217.209.99.11 (+net_public_adr 217.209.99.11)
5. Sätter hostporten till 27060 (+hostport 27060). Standard är för övrigt 27015.
6. Sätter max antal spelare till 12 (-maxplayers_override 12)
7. Tillåter att spelare använder konsolen (-usercon)
8. Overridar att köra gamemode_casual_server.cfg (+exec gamemode_casual.cfg)
9. Sätter speltyp till classic (+game_type 0)
10. Sätter spelstil till Casual (+game_mode 0)
11. Väljer kartgrupp (+mapgroup mg_bomb)
12. Sätter startkarta till de_dust2 (+map de_dust2)
13. Sätter tickrate (-tickrate 64)
14. Sätter sv_pure till 1.

Man skulle vilja köra tickrate 128 men det verkar inte vår server orka med tyvärr.
Lite info om tickrate.

Deathmatch-servern startas med:
C:\csgo\srcds.exe rcds -game csgo -console +ip 0.0.0.0 +net_public_adr 217.209.99.11 +hostport 27070 -maxplayers_override 12 -usercon +exec gamemode_deathmatch.cfg +game_type 1 +game_mode 2 +mapgroup mg_deathmatch +map aim_map_csgo -tickrate 64

Det viktiga här är att lägga till +ip 0.0.0.0 annars står klienten och väntar på att få ansluta i en evighet.

En viktigt detalj som inte var helt lätt att hitta info om är att om ni får meddelanden i serverprompten om att er server är "out of date" så måste ni uppdatera serverfilerna. Det viktiga är då att man måste komma ihåg att sätta installationskatalogen lika som när man installerade servern första gången.
I vårt fall: starta steamcmd och logga in anonymt.
Skriv force_install_dir C:\csgo
Skriv app_update 740
Uppdateringar tankas hem och installeras.
Klart!

Hoppas nån får nytta av detta inlägg så att ni slipper tillbringa timmar letandes efter info när era servrar inte vill starta.

Här är en lista med server cvars som kan vara bra att ha när man kör RCON:
http://www.hostedgameservers.com/csgo-cvarlist

Om jag skrivit fel nånstans kan ni höra av er genom att kommentera på inlägget.


Twittra om detta

0 kommentarer: