Building a server box...what do I need?

I have an old Alienware M11x R2 laptop that isn’t doing anything much these days:

  • 1.20GHz Intel Core i7 640UM (4MB Cache, max turbo frequency 2.266GHz)
  • 4GB PC3-8500 DDR3 (2 x 2GB)
  • Windows 7 Home Premium 64bit
  • 11.6″ WXGA WideHD LED Backlit display (1366×768)
  • 500GB 7200RPM SATA Hard Drive
  • Nvidia GeForce GT 335M Discrete Graphics (1GB GDDR3) with switchable Intel GMA 4500MHD integrated graphics

My other laptop is an RTX2070…but that is my traveling laptop so I couldn’t leave it at home running a persistent world network.

1 Like

Ah, RAM is probably going to kill that idea then. DCS as @Wes has shown is pretty hungry for it in MP.

1 Like

I’m very curious to see if I can run a whole island persistent battlefield in Arma while also running a cooperative dynamic type campaign in DCS World.

slow2

1 Like

That gif, after the slow step forward, the step back goes really fast in 1 frame to compensate :smiley:

1 Like

I think my UPS man must think I’m building an underground missile bunker with all the crap that has been coming here the last six months. Anyway…after chipping some of the box away to put on crackers with cream cheese (delicious)…

Here we are! Amazing how light this thing is. I guess that is what happens when you don’t have to put a monster PSU and GPU in something.

It is the above mentioned specs:

  • Octa-Core i7-10700 (Up to 4.8Ghz)
  • 32GB RAM
  • 1TB SSD

Hooking up to a monitor and will start updating Windows 10 tonight. Will look at remote desktop capability and figuring out some home networking options tomorrow.

4 Likes

To help with Windows updates on the LAN:

I would also suggest setting the active hours to not be automatic and make it so that the active time leaves the gap between say 3AM and onward, so that it won’t look to automatically restart from updates until after a late night game session.

As well for Dell updates you will have two Dell programs usually:

-Support Assist, which does updates and other cleanup and diagnostics

-Command Update, which does updates only.

I use Command Update at work more as it’s lighter. Current release is version 4, which you can update through itself, support assist, or the Dell website.

Keep the service tag code handy if you have to contact support, they are usually pretty good for us as a business customer.

As for DCS:

The Dedicated Server install is currently 93.1GB once installed. I would install NotePad++ on the server for config file editing and also put a shortcut to the task manager on it’s desktop as remote software doesn’t always pass Ctrl+Alt+Delete (security shortcut) or the direct task manager shortcut of: Ctrl+Shift+Escape.

The DCS server, and SRS server run as normal programs and not as Windows Services - meaning you have to be logged in to run them. I don’t set then to autostart by any means incase of a problem so on a server restart, you’ll have to remote login and get them going. When you are done, from the Start menu just choose LOCK and disconnect. That leaves the user signed in and programs running.

Share the savedgames\dcs.openbetaserver folder to yourself, makes tossing a mission file over easy. You cannot overwrite IF that mission is running. Change mission, update, change back. The share also lets you quickly check the logs from your own machine.

That is all I got at the moment! I’ll be happy to go over more configuration and the like when you get to it.

1 Like

Great info! I probably won’t tackle installing server stuff until my off days in a few days. I would get too bleary eyed to be going on night shift if I start down that path today :rofl:

We have some success! Took the opportunity this morning to download the DCS standalone server software - kind of a nifty thing there without needing paid content or maps. That installed fine and updated this afternoon with the update.

Launched it - which is where I ran into the C++ Redistributable havoc of having to uninstall 2017 to get the older packages that DCS must need to run (or at least…a file out of (msvcp140.dll ??). That went fine. Launched again and got just a plain white screen in the DCS.openbeta_server window (which seems sort of odd to just have…well…nothing there). But launched the Local Web GUI tool and it indicated that the server was there.

Put an all platforms NTTR mission in the missions directory and loaded that just fine - hit PLAY…and joined from my other computer and it looks fine!

Any idea how I change the defaultNickname name to something other than that? I mean…not that I want the server admin name to be “OldManThatSwatsKidsFromTheSkies” or anything…but something a little less generic…

Yes.

In DCS_openbetaserver\config make file called nicknames.lua and the following text:

nicknames =
{
[1] = “Your nickname between the quotes”,
} --end of nicknames

The spacing on the line with [1] I used four spaces for this post (via my phone) which is also what my file has.

Restart server to pickup new config.

I also recommend making autoexec.cfg with the following two lines:

disable_write_track = true
crash_report_mode = “silent”

The first turns of tracks for the server - your client will make it’s own and these tracks for endless runs will be massive so it wastes disk space really fast, hence turning it off. Also lowers resource usage perhaps a tiny bit.

Crash reporting silent means instead of an error dialog, the server will automatically upload the crash dump to ED and exit. This means when you remote to it after a crash DCS will be exited and you can quickly restart. If DCS server crashes but it waiting for the error report prompt to be dealt with it still runs and you can still join sometimes although it’s just frozen - which can be confusing. Better to have it just terminate.

2 Likes

Great info…!

The plan will be to eventually make the server public (or at least Mudspike public) at various times if there is any need for it. During this learning period I don’t want to hassle people with disconnects though…so it may take some time for me to get things squared away.

1 Like

I have further config information that I will share after work for the main serversettings file etc. That’s a bit much to type out from a phone though!

2 Likes

Wes driving while examining server config files on his phone…Was that three spaces or four spaces after the braces key…?

swerve1

2 Likes

I’m glad driving an office chair isn’t that violent!

2 Likes

Oh…duh…it also looks like you can just directly change that name from the DCS Server Dashboard:

servername1

1 Like

If it works, good!
I set mine up before that was an option, and sometimes they don’t take from the UI (or persist on reload) - perhaps past problems by now, so I have just done the files.

1 Like

Oooph…so the Arma 3 server setup is a bit beyond my comprehension…

I got up to Step 5, but customizing the #Arma3server_steamcmd_example.cmd file is making me do the dog look thing…

Confused Dogs GIF by moodman

For some reason after editing the .cmd file it is saying invalid password for my Steam account…even though it is correct. So it fails to pull the install…

I’m not sure what the segment about "Note, the missing quotation marks, these need to be wrapped around the entire “+app_data…”

I’ve changed the variables (server path and steam path are on my C: drive)…entered my login/password in the STEAMLOGIN= field…but it won’t connect…

So we covered:

  • autoexec.cfg
  • nicknames.lua

The remainder in that folder are:

  • network.vault (we don’t need to touch this)
  • options.lua (only need to work in this if you use TacView on the server, which I only do so I can adjust the playback delay time limit down from the default of 10 minutes - TacView clients will check the server for this value)
  • serverSettings.lua (to be covered next)

serverSettings.lua - This is a long file so I trim it down. Don’t copy paste this but rather edit or add the properties to your file manually. Comments on each property will be there after the --double dashes.

cfg = 
{
    ["current"] = 1,
    ["description"] = "This is a string between the quotes. Do new lines with a backslash \ 
like this. You can add empty lines like this too with backslash on it's own line. \
\
This has a gap between it. Note the end quote and comma on the next line.
",
    ["require_pure_textures"] = false, --this allows users to use custom skins.
    ["advanced"] = 
    {
        ["allow_change_tailno"] = true, --this allows you to change the tail numbers
        ["disable_events"] = false, --haven't found solid info on this.
        ["allow_ownship_export"] = true, --exports are needed for tacview
        ["allow_object_export"] = true, --same as above
        ["pause_on_load"] = false, --I set false so the mission runs when the server starts. Otherwise it is paused until the server operator starts the mission - frustrating players.
        ["allow_sensor_export"] = true, --see other export functions.
        ["event_Takeoff"] = false, --hides "Player took off" chat messages, set as you like.
        ["pause_without_clients"] = false, --if set to true, an empty server pauses the mission.
        ["client_outbound_limit"] = 0, --I believe these are network speed limits. Default 0 would be unlimited.
        ["client_inbound_limit"] = 0, --Same as above.
        ["server_can_screenshot"] = false, --Allows server to take a copy of client screenshots. Not needed, wastes disk space.
        ["voice_chat_server"] = true, --If you want the in-game voice chat. We have it on for testing but if you use Discord or SRS you can turn this off. May want later when DCS gets SRS like functionality.
        ["allow_change_skin"] = true, --Allows users to change skins at the rearm panel.
        ["event_Connect"] = true, --Shows "user joined" chat messages, optional
        ["event_Ejecting"] = false, --Hides "player ejected" chat messages, optional
        ["event_Kill"] = false, --Hides "player killed" chat messages. I dont like the chat spam.
        ["event_Crash"] = false, --You can guess this one. Off also is good for PvP so players have to verify kills themselves.
        ["resume_mode"] = 1, --This is also tied to the start mode.
        ["maxPing"] = 0, --Max ping allowed. I usually set this in SLmod.
        ["event_Role"] = false, --Shows "user selected aircraft" messages. Should be off for PvP.
    }, -- end of ["advanced"]
    ["port"] = 10308, --Default network port
    ["mode"] = 0, --Unknown?
    ["bind_address"] = "", --Only needed if you have multiple NICs with different IPs on the host PC.
    ["isPublic"] = true, --Allow to be listed in the DCS browser
    ["listLoop"] = false, --Run missions on the mission list in order and start from the top again, only matters if missions autoload the next one when they are completed.
    ["password"] = "", --Password if you want one
    ["uri"] = "startServer", --Do not change.
    ["name"] = "Server Name", --Server Name
    ["missionList"] = 
    { --The first mission is the one that autoloads. Otherwise the order does not really matter. Keep the list in order if you want to change numbers.
        [1] = "C:\\Users\\username\\Saved Games\\DCS.openbeta_server\\Missions\\missionA.miz",
        [2] = "C:\\Users\\username\\Saved Games\\DCS.openbeta_server\\Missions\\missionB.miz",
    }, -- end of ["missionList"]
    ["listShuffle"] = false, --Shuffle mode, not sure how this would work unless missions can be set to "load next" rather than "load mission file X"
    ["require_pure_clients"] = true, --Integrity check, recommended unless you want to use mods.
    ["require_pure_models"] = true, --Integrity check, same as above.
    ["maxPlayers"] = "24", --Max players, worth setting to something reasonable as missions will have more slots than the server can handle as clients.
} -- end of cfg
1 Like

Never worked with Arma - does this help?

https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Arma3server_steamcmd_example.cmd

Shows the appdata line.

If you want to use SRS or SLmod, I can go over those as well.
SLmod is handy even if just for the ability to load or restart missions while flying by using the chat and the commands:
-admin load (to get a list of missions)
-load # (get a number from the list and replace the # to load that mission)
-admin restart (restarts running mission)