Dark and Light Headless Server Setup (Basic Guide)
Updated: Jun 16, 2020
It took us a little research to get the Dark and Light Headless Server up and Running. We are documenting a build guide for future reference and to help out anyone else that wants to know more about how to run it themselves. There is an Advanced Guide with only the basic information if you are already familiar with server hosting.
Here are the basic steps we need to accomplish:
Setup the Host Machine
Install the Required Software
Visual C++ 2013 x86
Visual C++ 2013 x64
Download the game files
Update the Server Configuration Files
Build the Startup BAT File
HOWTO: Run the Server
HOWTO: Shutdown the Server
(NOTE: steamcmd is an executable file referenced below and you will need to add .exe to the file name when you see it in scripts and examples, wix does not allow us to put in the full name of an executable file)
Setup the Host Machine
We used a fresh Windows 10 Creators Update VM on a VMWare ESXi 6.5 (free version) Hypervisor. The VM Build guide isn't really covered in this setup guide but we can do one if there is interest. Our VM has the follow specs:
16 GB RAM
Install Required Software:
There were a number of errors that arose while trying to run the server after download the files and double clicking the .EXE. It was discovered that a fresh install of Windows will require DirectX and Visual C++ to be installed/updated.
Setup is fairly easy. Follow the links to download and install the software before continuing on.
Lastly, you need to install SteamCMD. This is the command line interface into the steam network and it is often used to perform various tasks. We will use it to manage our headless client.
Download the Client in .ZIP format here
Extract the contents to c:\Program Files(x86)\SteamCMD (or a folder of your choice). Further referenced as .\steamcmd in this article.
Browse to the directory run the steamcmd file
Allow the download to complete before continuing to the next step
Download the Game Files
Update the below line with your steam username and your install directory. I've used .\dnlserver which will create a folder under steamcmd called dnlserver and install the game files there. You can copy the file and past it into an Administrator CMD Prompt, or create a BAT file and run it as an administrator by right clicking on it and selecting "run as administrator"
start "C:\Program Files (x86)\SteamCMD\steamcmd" +login YOURSTEAMNAME +force_install_dir .\dnlserver +app_update 529180 +quit
The Server is currently 60'ish GB in size. This will take a little bit to download.
Update the Server Configuration Files
There is a configuration file that you can modify for the headless client. It is designed for the full GUI version of the game when hosting a 'local' server but the config file is still used. You can manually modify the file, or startup the full client and go through the steps of creating a local server. If you perform the latter option, copy the newly updated GameUserSetting.ini file from the Full Client to the headless server game folder:
Below is an example of our GameUserSettings.ini with update taming values. Passwords have been removed:
[ServerSettings] ShowMapPlayerLocation=True GlobalVoiceChat=True ProximityChat=True NoTributeDownloads=False AllowThirdPersonPlayer=False AlwaysNotifyPlayerLeft=True DontAlwaysNotifyPlayerJoined=False ServerHardcore=False ServerPVE=True ServerForceNoHUD=False EnablePvPGamma=False RCONPort=27020 PvEDinoDecayPeriodMultiplier=1.000000 KickIdlePlayersPeriod=2400.000000 PerPlatformMaxStructuresMultiplier=1.000000 AutoSavePeriodMinutes=30.000000 ListenServerTetherDistanceMultiplier=1.000000 MaxTamedDinos=5000.000000 RCONServerGameLogBuffer=600.000000 AllowFlyerCarryPvE=True DisableStructureDecayPvE=True
[/Script/DNL.ShooterGameUserSettings] MasterAudioVolume=1.000000 MusicAudioVolume=1.000000 SFXAudioVolume=1.000000 VoiceAudioVolume=1.000000 UIScaling=1.000000 CameraShakeScale=1.000000 bFirstPersonRiding=False bDoubleClickToEvade=True bShowStatusNotificationMessages=True TrueSkyQuality=0.700000 FOVMultiplier=1.000000 GroundClutterDensity=1.000000 bFilmGrain=False bAllowHDR=False bMotionBlur=False bUseDFAO=False bUseSSAO=True bShowChatBox=True bCameraViewBob=True bInvertLookY=False bFloatingNames=True bChatBubbles=True bHideServerInfo=False bJoinNotifications=False bCraftablesShowAllItems=True bLocalInventoryShowAllItems=False bRemoteInventoryShowAllItems=False LookLeftRightSensitivity=1.000000 LookUpDownSensitivity=1.000000 GraphicsQuality=1 ActiveLingeringWorldTiles=10 ClientNetQuality=3 LastServerSearchType=0 LastServerSearchHideFull=False LastServerSearchProtected=False HideItemTextOverlay=False bDistanceFieldShadowing=True LODScalar=1.000000 bToggleToTalk=False HighQualityMaterials=True HighQualitySurfaces=True bTemperatureF=False bDisableTorporEffect=False bChatShowSteamName=False bChatShowTribeName=True EmoteKeyBind1=0 EmoteKeyBind2=0 EmoteKeyBindLaughing=0 EmoteKeyBindSorry=0 bNoBloodEffects=False bLowQualityVFX=False bSpectatorManualFloatingNames=False bSuppressAdminIcon=False bUseSimpleDistanceMovement=False bDisableMeleeCameraSwingAnims=False LastPVESearchType=-1 LastDLCTypeSearchType=-1 bUseVSync=False MacroCtrl0= MacroCtrl1= MacroCtrl2= MacroCtrl3= MacroCtrl4= MacroCtrl5= MacroCtrl6= MacroCtrl7= MacroCtrl8= MacroCtrl9= ResolutionSizeX=1280 ResolutionSizeY=720 LastUserConfirmedResolutionSizeX=1280 LastUserConfirmedResolutionSizeY=720 WindowPosX=-1 WindowPosY=-1 bUseDesktopResolutionForFullscreen=False LastConfirmedFullscreenMode=0 Version=5
[ScalabilityGroups] sg.ResolutionQuality=100 sg.ViewDistanceQuality=3 sg.AntiAliasingQuality=3 sg.ShadowQuality=3 sg.PostProcessQuality=3 sg.TextureQuality=3 sg.EffectsQuality=3 sg.TrueSkyQuality=3 sg.GroundClutterQuality=3 sg.IBLQuality=1 sg.HeightFieldShadowQuality=3
Build the Startup BAT Files
Similar to the Download BAT File, we want to create a BAT File for automating the startup of our server. The system uses a lot of variables to control several aspects of the server. Our file was created by using the Full GUI Client to start a dedicated server where we copied the 'parameters' out of the headless client screen. Those were pasted into our new headless server. You can copy the below item, update the ports and Passwords (there's 2 references each) and past it into a BAT file. Just run the bat file as an Administrator to startup your server.
start "C:\Program Files (x86)\SteamCMD\dnlserver\DNL\Binaries\Win64\DNLServer.exe" "DNL_ALL?QueryPort=27015?Port=7777?SessionName=FailPireCommunity?MaxPlayers=30?ServerPVE=true?ServerCrosshair=true?ShowMapPlayerLocation=true?DisableStructureDecayPvE=true?AllowFlyerCarryPvE=true?listen?ServerPassword=JOINPASSWORD?ServerAdminPassword=RCONPASSWORD" -nosteamclient -game -server -log
Shutdown the Server
There are two methods for shutting down the server. First, you can select the headless client window and enter: CTRL + C. Secondly, you can download an RCON Client to remotely connect to the server and perform a shutdown. We recommend finding a RCON client and using that for server administration.
Final Notes: Our server was not join-able unless we were logged into the steam client on the same machine but it would start up without issue. It did not prevent the same account from running the game on another computer. For our instance, we installed the steam client and logged into the steam network prior to running the server.