DarklightGames / DarkestHour

Darkest Hour: Europe '44-'45
https://store.steampowered.com/app/1280/Darkest_Hour_Europe_4445/
68 stars 21 forks source link

Issues with latest windows dedicated server #1121

Open boristsr opened 4 years ago

boristsr commented 4 years ago

I'm having issues starting a dedicated server up from a fresh windows installation with VAC enabled. VAC fails to validate files and I can't get web admin working.

I'm writing an AWS Cloud formation script to spin up a server from scratch, so it's all repeatable. I've added plenty of information below to walk through the steps I'm performing in the script if that helps.

I've copied an existing AWS CF script I've used for Red Orchestra in recent weeks, and modified it using instructions from here and here.

The Issue

When VAC is enabled I get these issues in the log:

STEAMAUTH : Sending updated server details - AusLockdown-DHTest 0 | 20
STEAMAUTH : Connected to Steam Servers
STEAMAUTH : VAC Security Enabled
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/Maps/DH-Brecourt_Push.rom
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Engine.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/UCore.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Effects.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/Sounds/DH_SundrySounds.uax
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_LevelActors.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_USPlayers.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Weapons.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Game.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Equipment.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_GerPlayers.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Artillery.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_BritishPlayers.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Construction.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Guns.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Vehicles.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_Interface.u
STEAMSTATS: SECURITY CHECK FAILED - ../DarkestHour/System/DH_AdminMenuMutator.u

At this point the server IS visible in the server browser, but the server health is reported as abysmal but that seems to turn to healthy after some time.

Web admin however, doesn't work. I can connect to the web admin interface but it rejects my username and password. (admin/ComplexPassword3)

I was wondering if there was any advice for how to correct these issues, or if you have seen this before?

My UWeb.WebServer section looks like:

[UWeb.WebServer]
Applications[0]=DH_Engine.DHWebServerAdmin
ApplicationPaths[0]=/DHServerAdmin
Applications[1]=DH_Engine.DHImageServer
ApplicationPaths[1]=/DHImages
bEnabled=True
ListenPort=8075

I've tried copying and pasting the webserver section from the wiki but that doesn't seem to help.

and my access control section looks like:

[Engine.AccessControl]
AdminPassword=ComplexPassword3
GamePassword=
bBanByID=True
BannedIDs=76561198136036249 GlobalBan

Automated install

1) Install SteamCMD 2) Download desktop steam version 3) Write a batch file called update_dh.bat containing:

cd /d c:\games\steam
set STEAMUSER=${SteamUsername}
set STEAMPASS=${SteamPassword}
steamcmd.exe +login %STEAMUSER% %STEAMPASS% +force_install_dir c:\games\redorchestra +app_update 223240 validate +app_update 1290 verify +quit
exit /b 0

4) Write a batch file called start_dh.bat

echo 1280 > c:\games\redorchestra\System\steam_appid.txt
cd /d c:\games\redorchestra\system
ucc.exe server DH-Brecourt_Push.rom?game=DH_Engine.DarkestHourGame?Mutator=DH_AdminMenuMutator.DHAdminMenuMutator?VACSecured=True? -log=DHServerLog_%RANDOM%.log -mod=DarkestHour -ini=DarkestHour.ini

5) Execute update_dh.bat 3 times (attempt to accommodate a failed update, and re-validates it)

6) Disable windows firewall (since there is one provided by AWS)

7) Install desktop steam (I found with vanilla RO, having this running logged in solved issues related to VAC authentication)

Manual steps to run DH

Then manually I log on via RDP, log into desktop steam, and execute start_dh.bat

AndrewTheel commented 4 years ago

I can help with some of these things.

Don't bother with VAC, its useless and doesn't actually do anything anyways. So just disable it. Haha even if someone is VAC banned, they can still play games they aren't banned for! How retarded is that. And 99% of the time the ban is temp. Not only that its extremely hard to get VAC banned, making the entire system pointless IMO.

As for server performance on startup, it's going to report garbage health upon start up. The system begins reporting the server's tick rate and takes an average, that amount is going to be very low at start. However, confirm the server is running at the desired tickrate (getcurrenttick) in webadmin console or as admin loggged into server. I think we run the official servers at 32 tick, though it'll report ~28. I think a few "ticks" are reserved so it seems to report ~4 less than what you set the max to. Don't go above 32, no server can handle 64 players shooting, no matter the hardware. If you go above 32 and shit hits the fan, the dramatic change from high tick to shit tick will be extremely noticeable to players. Better to have a low-cap to keep performance consistent as possible.

We also run a few other custom settings for the official servers, but I'll have to check into that later.

[Engine.AccessControl]
AdminPassword=ComplexPassword3

^ that is not where you define admin passwords. We used to have it setup that way until we decided to go with another way. Admins are defined in: red orchestra\System\XAdmin.ini

Example code:

[XAdmin.xAdminConfigIni]
AdminUsers=(AdminName="Theel",Password="BobFish",Privileges=,Groups=("Admin"),ManagedGroups=("CommunityAdmin"))
AdminUsers=(AdminName="Basnett",Password="SmokeOnThis",Privileges=,Groups=("Admin"),ManagedGroups=)
AdminUsers=(AdminName="Patison",Password="GetSomeMarvin",Privileges=,Groups=("CommunityAdmin"),ManagedGroups=)
AdminGroups=(GroupName="Admin",Privileges=,GameSecLevel=255)
AdminGroups=(GroupName="MatchSetup",Privileges="Xm",GameSecLevel=240)
AdminGroups=(GroupName="CommunityAdmin",Privileges="K|Mr|Mm|Xp|Xi",GameSecLevel=0)
boristsr commented 4 years ago

Hi Andrew, Thanks so much for the response. I'll give the new admin setup a try tonight. That means the admin instructions on the wiki are out of date.

Is 32 ticks a significantly improved experience from the default tickrate? (RO is 20 default right?) What sort of hardware does a 32tick 64player server require? I'm running the event server on a C5.2xlarge instance which is pretty damn powerful, but I don't have a direct CPU comparison.

Also is there a guide or forum thread on setting server location? This one will be in Australia.

Thanks again for the information!