Jump to content

ChromeSDK

RELEASE: Atlas Server Controller (my program to help setup and run privately, all 225 grids of the official servers for solo players and small groups on average hardware)

Recommended Posts

On 1/20/2019 at 6:06 PM, Bastian Auryn said:

I am loving this tool!  I got it up and running in less than an hour by following your instructions.  I did have a few questions...

1) Is there a way to force a server save prior to shutting down the servers to prevent rollback?

2) How do I make it start in PvE mode?

Glad you are enjoying the tool!!

1. Not to my knowledge, I am not sure how I would be able to get a force save working through the app, unfortunately since it doesn't actually connect to your servers and does everything from the outside to save valuable system resources for you to dedicate to the servers. It saves about every 5 minutes, you can see the last save while playing if you look at your redis window. Also, I think there is an admin command you can run to save? Maybe "cheat saveworld"? I think that's what it is.

2. That too would be a flag you'd have to add to the ini files. I am not sure off the top of my head what it is, but you should be able to find it online somewhere.

On 1/20/2019 at 7:37 PM, icehawk1965 said:

Hopefully someone on here can help me. I have opened all the ports on my router and windows fire wall.

when I run the program the server starts and then I get this after its running .

I have not been able to find my server on the list let as well.

 

Fatal error!

 

VERSION: 15.1
UnknownModule!UnknownFunction (0x0000025ac5b85940) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a2aefbf) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a2b671a) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a94a987) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a2b3d8d) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a2b085e) + 0 bytes [UnknownFile:0]
steamclient64.dll!UnknownFunction (0x00007ffb6a74a4fa) + 0 bytes [UnknownFile:0]
steam_api64.dll!UnknownFunction (0x0000000072f856c4) + 0 bytes [UnknownFile:0]
AtlasGame.exe!FOnlineAsyncTaskManagerSteam::OnlineTick() (0x00007ff7b6d1d449) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\online\onlinesubsystemsteam\private\onlineasynctaskmanagersteam.cpp:130]
AtlasGame.exe!FOnlineAsyncTaskManager::Run() (0x00007ff7b5bebb1a) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\online\onlinesubsystem\private\onlineasynctaskmanager.cpp:61]
AtlasGame.exe!FRunnableThreadWin::Run() (0x00007ff7b57035b6) + 0 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:73]
AtlasGame.exe!FRunnableThreadWin::GuardedRun() (0x00007ff7b5703488) + 8 bytes [h:\yarkupdatelivereal\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:26]
KERNEL32.DLL!UnknownFunction (0x00007ffbc9533034) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ffbc9963691) + 0 bytes [UnknownFile:0]
ntdll.dll!UnknownFunction (0x00007ffbc9963691) + 0 bytes [UnknownFile:0]

Crash in runnable thread OnlineAsyncTaskThreadSteam

Not sure if this has been fixed yet or not, but this was a crash caused by Atlas itself, basically if you searched for an unofficial server and typed literally anything into the search box, it would crash the game, this was regardless of hosting your own servers or not. I think it may have been fixed now? Not sure though. A way to get around it would be to add the freeport server with its ip address and query port to your Steam favorites. So after the server is running go to steam, click view, servers, favorites, add a server and type in the info like this 234.234.234:50234 (but obviously use your actual info).

 

On 1/21/2019 at 1:53 PM, Reese said:

Hi.

@ChromeSDK You are a GENIUS ! and for that i've buied you a coffee.

For the future of your app can you add something like a default game.ini and a default gameusersetting.ini ?

Because at the moment when i launch a server for the first time i have to shut it down to give it the same config than the other one and then turn it ON again before to switch on it. 

I know that i could add the default game.ini with servergrid editor but not the gameusersetting... and with a good editor it take me quite the same time to edit one or two file 🙂 

Thanks !

 

Thank you for that!!! I greatly appreciate the support! 🙂

Yeah, in v2 I am planning on adding those things! Lots of requests for it.

 

 

EDIT: sorry, for some reason when I clicked on the forum thread it only showed me these as new responses. Didn't see the other conversations until after I posted...

 

I updated the original post with the latest version, v1.5.3

Also, I figured I should post it here too! A quick look at the next bigger update, v1.6.

I am removing all restrictions on the number of servers that can be run at once and also allowing you to track more than 1 person at a time!

 

 

incBjbx.gif

Edited by ChromeSDK
  • Like 3

Share this post


Link to post
Share on other sites

You Sir are an absolute Genius, I have tried and tried for days solid to get my server working to no avail, this download has solved all that and the readme file was so helpful. I appreciate all your efforts and cannot thank you enough!

Share this post


Link to post
Share on other sites

wow u deserve more likes this is superb 

 

just finsihed setting up spare box i had ready to set up a server for atlas , this is going to make my life so easy 

Share this post


Link to post
Share on other sites

Dude! 

This app is awesome, we tested it tonight and it works like a charm, you have made the game for us. We were playing on a custom 1x1 grid but now we are playing the official map in all of it's glory. You sir are a legend! This should be an official app IMO.

Share this post


Link to post
Share on other sites

Thank you guys for the kind words! Love reading about how it's helping people play a little easier!

and @Bastian Auryn It's funny that you phrased it that way! Under the "Contact" menu at the top there is an option that literally says "buy me a coffee"! 😄 But its not at all expected or asked for from anyone. Just made this program because this is the way I wanted to play myself!

Share this post


Link to post
Share on other sites

I have figured out how to set up server settings "globally" in conjunction with this tool.  I thought I would share my findings.  Normally there are two files that configure a server; the game.ini file and the gameusersettings.ini file.

For game.ini changes, I have found that you can edit the .json file to add these.  Do this in the servergrideditor under Project->Edit.  There is a table to "Override ShooterGameMode DefaultGame.ini Values".  This is the safest way to make this changes.  The syntax of these changes are different than what you would normally enter in the .ini file.  For example: "PerLevelStatsMultiplier_Player[7]": "5" (quotations included) in the .json file where this would look like PerLevelStatsMultiplier_Player[7]=5 in the game.ini file.

For gameusersettings.ini changes, I have updated the DefaultGameUserSettings.ini file in the shootergame->Config folder.  These settings get applied to all servers so no editing 200+ files.  There is a catch... whenever the game updates it will revert this file to the original defaults.  You will need to rememeber to made these changes again on every game patch.  I personally just create a DefaultGameUserSettings_modified.ini copy and save overwrite the DefaultGameUserSettings.ini after a patch.

There may be other ways to accomplish the same thing but this is what I have found works the best for me.

Share this post


Link to post
Share on other sites
5 hours ago, Bastian Auryn said:

 

There may be other ways to accomplish the same thing but this is what I have found works the best for me.

Anyone who ran ark also knows the command line shares some of the gus ini, and that is another way to do it by putting into the json server/default command line overide section ?param=value in the json or in the gui.   That is a cumbersome format but it did work for harvest amount.

Seems that there is still much ark/cut paste code in atlas and they did not make reuseable code that could be redirected so every parameter works in the json .  for example "bAllowUnlimitedRespecs": true works in the .json whereas "OverridePlayerLevelEngramPoints": 100 must instead be put in each servers .ini.   

Please prove me wrong as I am trapped in the nightmare of trying to get scripting to do that workaround.   But seems if some of it has to go in the servers dir, might as well do it all that way for easier config mgmt - save pulling your hair out wondering why this worked and that did not.

 

 

Edited by krazmuze

Share this post


Link to post
Share on other sites
5 hours ago, Bastian Auryn said:

For game.ini changes, I have found that you can edit the .json file to add these.  Do this in the servergrideditor under Project->Edit.  There is a table to "Override ShooterGameMode DefaultGame.ini Values".  This is the safest way to make this changes.  The syntax of these changes are different than what you would normally enter in the .ini file.  For example: "PerLevelStatsMultiplier_Player[7]": "5" (quotations included) in the .json file where this would look like PerLevelStatsMultiplier_Player[7]=5 in the game.ini file.

Changes to the Game.ini files are relatively easy to handle, since the contents of the Game.ini file is identical for all servers... At least for our setup - but obviously not if you're running with different settings for levels, stat increases, etc., on each server grid. If you do run with identical setups, then all your Game.ini will essentially also be identical, and you can disitribute them using a simple batch file like this:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR /l %%x IN (0, 1, 14) DO (
	FOR /l %%y IN (0, 1, 14) DO (
		IF %%x LSS 10 (SET XNum=0%%x) ELSE (SET XNum=%%x)
		IF %%y LSS 10 (SET YNum=0%%y) ELSE (SET Ynum=%%y)
		SET FileNum=!XNum!!YNum!
		REM MD !FileNum!\Config\WindowsServer
		COPY /y Game.ini !FileNum!\Config\WindowsServer
	)
)

You just put your Game.ini in the ShooterGame\Saved folder along with a .bat file containing this, and run the .bat file - it should distribute the Game.ini in your Saved folder to each of the 225 server save folders, as long as you kept the default naming scheme for the save folders (0000-1414).

If you want to do this before starting the servers, edit the batch and remove the REM and space before the MD !FileNum!\Config\WindowsServer line - this will make the script create all your save folders and then copy the Game.ini to them, overwriting any existing file in the folder. Re-add the REM and space afterwards (or delete the whole line) to use the batch for any later updates to your Game.ini.

This works at my end, because the Game.ini the servers want to create is actually empty, and it seems that it doesn't overwrite the existing contents when it doesn't have anything to replace it with.

Use at your own peril (and by all means, test it first by adding an ECHO to the start of the COPY line so it just outputs the text to the console without doing anything) 🙂

5 hours ago, Bastian Auryn said:

For gameusersettings.ini changes, I have updated the DefaultGameUserSettings.ini file in the shootergame->Config folder.  These settings get applied to all servers so no editing 200+ files.  There is a catch... whenever the game updates it will revert this file to the original defaults.  You will need to rememeber to made these changes again on every game patch.  I personally just create a DefaultGameUserSettings_modified.ini copy and save overwrite the DefaultGameUserSettings.ini after a patch.

Unfortunately, this does not work for me - I always get the same default settings no matter what I do to the DefaultGameUserSettings.ini before starting a new server.

And here, we can't use the same batch trick as we could with Game.ini, because GameUserSettings.ini contains several settings which are unique to that specific server (port settings and session name, to name a few)... I tried to distribute a GameUserSettings.ini ahead of time which only contained the lines I want to add, but it was completely overwritten on server startup - probably because this, unlike the default Game.ini, actually contains data.

This also means that, for servers which haven't run before, you have to start it, shut it down, change the settings, and then restart it, before your changed settings take effect.

But we still have one thing we can do instead: Command line arguments in the launch batch files (i.e., the 225 Start XXYY.bat files).

Since all the batch files are already created before server startup, adding the settings to these instead makes sense - the first-time servers will launch with the your settings the first time around. However, we still can't just replace the entire file contents, because it contains even more server specific settings which must be correct, for example ServerX, ServerY, AltSaveDirectoryName, and query/game/rcon port numbers.

A script for adding what you want to all the .bat files without changing the rest of the contents is a bit more complex, but not much:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET "Insert=UserBaseAlienationFactor=8.000000?NetworkLagInductionMultiplier=15.000000"
FOR /l %%x IN (0, 1, 14) DO (
	FOR /l %%y IN (0, 1, 14) DO (
		IF %%x LSS 10 (SET XNum=0%%x) ELSE (SET XNum=%%x)
		IF %%y LSS 10 (SET YNum=0%%y) ELSE (SET Ynum=%%y)
		SET "FileNum=!XNum!!YNum!"
		SET "FileName=Start !FileNum!.bat"
		ECHO Filename: !FileName!
		REN "!FileName!" temp.txt
		(
			FOR /F "tokens=1-12 delims=?" %%a IN (temp.txt) DO (
				IF NOT "%%b"=="" (
					ECHO %%a?%%b?%%c?%%d?%%e?%%f?%%g?%Insert%?%%h?%%i?%%j?%%k?%%l
					ECHO exit
				)
			)
		) >edited.txt
		REN edited.txt "!FileName!"
		DEL /q temp.txt
		ECHO has been updated
	)
)

You basically place this .bat in the same folder as all your launch files, edit the third line to include your preferred GameUserSettings.ini options divided by question marks (but none at the start or end of the string). Needless to say, UserBaseAlienationFactor and NetworkLagInductionMultiplier don't really exist in the game (at least I seriously hope not), so replace them with the actual game settings you want to change.

Beware that this script CANNOT be used to do running updates directly, unlike the Game.ini script above! This script is pretty much hard-coded to be used on the original start batches, and will not be able to handle anything else - personally, I've taken backups of all 225 files in their original versions... If I want to change something, I change the script and use it on fresh copies of the originals, so the files do not contain anything unexpected.

Please note that even small changes to the Start XXYY.bat file contents will make this script do weird things - for example, the number of settings in the arguments (i.e. the number of expected question marks (delimiters)) is hardcoded to 12 - so ONLY ever use it on unedited start files which has a form similar to this:

start /high ShooterGame\Binaries\Win64\ShooterGameServer.exe Ocean?ServerX=0?ServerY=0?AltSaveDirectoryName=0000?ServerAdminPassword=1234?MaxPlayers=50?ReservedPlayerSlots=25?QueryPort=50002?Port=5002?SeamlessIP=192.168.1.225?RCONEnabled=true?RCONPort=28450 -log -server -NoBattlEye
exit

The number of switches at the end should pose no problem, but add or remove a term in the block separated by question marks, and you will have to recode.

I'm sure someone with more experience writing batch files could do something more general instead of this hard-coded mess, but it might still be useful to someone out there apart from myself (if nothing else, then as an inspiration to go "okay, so I'm definitely not doing that"), so here you all have it.

  • Like 1

Share this post


Link to post
Share on other sites
On 1/26/2019 at 12:12 AM, ChromeSDK said:

I updated the original post with the latest version, v1.5.3

First of all, thanks for creating a tool that makes playing the full map easy for those of us who don't happen to own a server farm! 😀

Second; can you tell us what the changes from v1.5 are?

Share this post


Link to post
Share on other sites
1 hour ago, Vincula said:

First of all, thanks for creating a tool that makes playing the full map easy for those of us who don't happen to own a server farm! 😀

Second; can you tell us what the changes from v1.5 are?

Head on over to his Discord, http://www.discord.gg/YHGWPyd you can see all patch notes there and download any new builds he makes.

Edited by Implicitlee

Share this post


Link to post
Share on other sites
On 1/25/2019 at 11:12 PM, ChromeSDK said:

incBjbx.gif

Hi @ChromeSDK, Loving your app, it's just excellent for managing a small cluster running the full 15x15 map.  I'm also looking forward to the new version pictured above but i have one question, in the current version I am able to lock one server on by activating it using one of the side grids 6-9 and if the tracked player moves out of the area the locked server stays on. Will there be an option or way of achieving the same result with the new 15x15 grid layout? The purpose for this is so one group can go and gather resources of a distant isle while leaving a second group or individual at the main base constructing, It would not be possible with my hardware to maintain two 5 server grids tracking the two separate groups but running 6 servers is possible.

The gif shows you clicking on servers to activate them but i can't see anything regarding locking on home servers or individual servers. Maybe you could include a right click context menu that allows you to lock a server on, so a left click will activate a server and then right click to lock the server on so if a tracked player leaves the area the locked server will remain on. I don't know if you have already considered this issue but from the gif image i can't see any option or way of achieving a locked server but this is just a suggestion of a way it could be achieved.

Thanks again for such a  excellent app, it's pure genius.

Ian

Edited by Ian-C

Share this post


Link to post
Share on other sites

Updated the OP with the latest update, v1.5.4

I will always keep the OP updated, but I may be slow in doing so because my memory is terrible. Builds will always be posted first in the discord though.

Patch Notes:

Fix for Autosaving on exit not functioning properly. I won't say this is 100% working, but it's the most I will be able to do on my side given the program doesn't actually touch the servers, it's still all dependent on Atlas' autosaving on exit code firing off properly, which can be hit or miss, but in my preliminary tests, I was 5 for 5 on not having a slight rollback on exit and reload of entire server like it was happening before. Rollback may still happen on server updates because it seems for some reason the server is programmed to automatically do that?

Fix for slight desync on individual grids, this goes hand in hand on the autosaving not functioning at 100% when switching servers, which may have caused desync, which in turn causes problems reconnecting, problems with the map not updating ship locations, problems with characters not loading.

Fix for grids not shutting down on switch or on exit because another square has the server loaded up even though it was not turned on.

 

12 hours ago, Ian-C said:

Hi @ChromeSDK, Loving your app, it's just excellent for managing a small cluster running the full 15x15 map.  I'm also looking forward to the new version pictured above but i have one question, in the current version I am able to lock one server on by activating it using one of the side grids 6-9 and if the tracked player moves out of the area the locked server stays on. Will there be an option or way of achieving the same result with the new 15x15 grid layout? The purpose for this is so one group can go and gather resources of a distant isle while leaving a second group or individual at the main base constructing, It would not be possible with my hardware to maintain two 5 server grids tracking the two separate groups but running 6 servers is possible.

The gif shows you clicking on servers to activate them but i can't see anything regarding locking on home servers or individual servers. Maybe you could include a right click context menu that allows you to lock a server on, so a left click will activate a server and then right click to lock the server on so if a tracked player leaves the area the locked server will remain on. I don't know if you have already considered this issue but from the gif image i can't see any option or way of achieving a locked server but this is just a suggestion of a way it could be achieved.

Thanks again for such a  excellent app, it's pure genius.

Ian

Yes, 1.6 will include that, if you look on the right side of the gif you will see the "Add New Player to Track" button. The tracking will be in a separate window (will also be able to be represented on the map but will be a different color than the servers that are manually turned on). Functionality will still work the same, if you have a server manually turned on, it won't turn off if a tracked player enters and then exits the zone.

Share this post


Link to post
Share on other sites

Great App, been using for a couple of days now on my private server for me and a couple of friends

Well done mate, looking forward to next release

Share this post


Link to post
Share on other sites

Hiya Chromesdk. Is there any possibility of this software being able to use other maps besides th 15*15? For instance like the 2*2 & 4*4 maps that come with the download?

 My thoughts would be for maybe a 5*5 or 7&7 as its only for my son, grandson & myself

Edited by AntonyVW
Added informatioh
  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, AntonyVW said:

Hiya Chromesdk. Is there any possibility of this software being able to use other maps besides th 15*15? For instance like the 2*2 & 4*4 maps that come with the download?

 My thoughts would be for maybe a 5*5 or 7&7 as its only for my son, grandson & myself

@ChromeSDKI was about to ask this very same question!

Share this post


Link to post
Share on other sites
6 hours ago, Bastian Auryn said:

@ChromeSDKI was about to ask this very same question!

wouldnt really be of any benefit to use smaller maps as this app only starts the server grid as u need it , so no reason to not to use the full map ,it wont use any more or less resources , 

Share this post


Link to post
Share on other sites

The idea of this tool is amazing and a friend and I have been enjoying it.  We have run into a problem though in that my friend was sleeping on the ship and I dc'd changing zones.  I keep a freeport open as a server six and I can't get back into any of them. It is always that freeport that shows in the server list. When selecting, show maps, it is the node north of where I dc'd trying to get into. I'm guessing because I am stuck in transition so that makes me think I am not dead but the server to and from do not show to join.  Anyone experience this? Portchecking shows the servers are reachable.

Edit : Interestingly enough, I rebooted the box and the node I crashed it was now appearing.

 

Edited by Cyrus Decco

Share this post


Link to post
Share on other sites
On 2/9/2019 at 6:20 AM, Cyrus Decco said:

The idea of this tool is amazing and a friend and I have been enjoying it.  We have run into a problem though in that my friend was sleeping on the ship and I dc'd changing zones.  I keep a freeport open as a server six and I can't get back into any of them. It is always that freeport that shows in the server list. When selecting, show maps, it is the node north of where I dc'd trying to get into. I'm guessing because I am stuck in transition so that makes me think I am not dead but the server to and from do not show to join.  Anyone experience this? Portchecking shows the servers are reachable.

Edit : Interestingly enough, I rebooted the box and the node I crashed it was now appearing.

 

This is something i have come across several times and from my limited probing i found if you restart the servers you will find some of them report "CreateBoundSocket: ::bind couldn't find an open port between 60076 and 60076" in the server console window" and the port is being blocked by something. The only solution i have found so far is to reboot the sever PC and then everything works fine but i can't get any further finding out why the ports are being blocked.

The last time this happened i was traversing south across a server border and i found two of the servers had blocked ports, the one i was traveling too and the second one was the server to the east of the server i was moving too, which i could not understand as that was just a clean start server.

I have posted information about this on the bug forum here but i think that is bugged as i cannot find my post other than through the fact i followed the thread and you can also find it with a search but i can't see it anywhere just browsing the bug forum.

Share this post


Link to post
Share on other sites
On 1/17/2019 at 6:00 PM, Malecos said:

This is amazing - I did get it up and running in about 1/2 hour. I'm using internal IP only on my local network. Did a few test runs between grids using admin cheats and all is working as expected. I'm running a i5 3.4ghz (4cpu) dedicated server with 16 gb ram. Running 5 servers I'm at 12.9gb ram and 47% CPU with the line below added to the defaultengine.ini (before the initial launch of the server).

[/script/onlinesubsystemutils.ipnetdriver]
NetServerMaxTickRate=15

A few things that had me stumped:

--You need to add your Steam username and select the tracking check box.

--Running on a local network, I need to know the box IP address and port of the starting server. The starting server port is a bit annoying so it would be amazing if the port could be displayed in the server controller boxes. To run on a local network I need to generate a new "Favorite" in the Steam server list. Only reason I run lan is that I have some kind of blocking port problem with my router (likely because I am actually running a wireless network). I'll do some tests connecting a server directly to my gateway over the weekend.

Anyway - just amazing and thank you for this.

 

Mate, can you mash a screenshot of where "NetServerMaxTickRate=15" goes.  I've tried a few different place but still showing 27% cpu per grid/server

Share this post


Link to post
Share on other sites
7 hours ago, RogerRoger101 said:

Mate, can you mash a screenshot of where "NetServerMaxTickRate=15" goes.  I've tried a few different place but still showing 27% cpu per grid/server

That would be the Engine.ini in the config of the save i.e. "C:\AtlasServer15x15\ShooterGame\Saved\0403\Config\WindowsServer" The DefaultEngine.ini is in "U:\AtlasServer15x15\ShooterGame\Config" and supposedly should be used for any save that does not already have a config but that seems sketchy weather it works or not.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...