[Support] ich777 - Gameserver Dockers


Recommended Posts

21 minutes ago, CyberDev said:

Thanks! Actually I'm trying to understand how saving in multiplayer with 'The Forest' works and it seems to be more complicated than I thought. 

AFAIK If you connect to a server everything is saved on there with your UUID, but that differs a bit from the single player saves where it is assuming that only one player is playing on the server and there is no UUID attached to your save file.

 

21 minutes ago, CyberDev said:

If I replace the server files with the existing ones I can't continue the game (the button for continuing when joining the server is greyed out).

This is changing when you made some progress on the server and have a few things in the inventory, after you connecting again your inventory will be back as it was <- because of the reasons explained above.

 

21 minutes ago, CyberDev said:

Is there any configuration to force all players to save their game when the server saves the game?

It should be possible to load into single player mode, drop everything from the inventory to the ground, leave the game, transfer the save file over to the server and then pick up everything on the server <- maybe this isn't possible, I haven't played The Forest in a long time but it is pretty much fun (actually frightening) playing with friends on the server and maybe in VR (yes, you can also connect with VR to the server... :) ).

 

Save your single player save game somewhere safe first before trying anything!

Link to comment
2 hours ago, ich777 said:

AFAIK If you connect to a server everything is saved on there with your UUID, but that differs a bit from the single player saves where it is assuming that only one player is playing on the server and there is no UUID attached to your save file.

 

This is changing when you made some progress on the server and have a few things in the inventory, after you connecting again your inventory will be back as it was <- because of the reasons explained above.

 

It should be possible to load into single player mode, drop everything from the inventory to the ground, leave the game, transfer the save file over to the server and then pick up everything on the server

Alright, thanks for the information. I think after some research I actually figured out how it works (at least as far as I understand it):

 

General:

1. The host saves the world (buildings, cut trees, ...) and it's own inventory. That's what the server is doing regularly (like specified in the configuration file). 

2. The client / guest saves their own inventory and location in the world in a file that will be stored on their local machine.

 

Unfortunately, when moving from a p2p-coop-server to a dedicated server, the former host will loose all his inventory stuff (besides the items he eventually got dropped in single player - as you described; I wasn't able to drop my whole inventory, only a few items; This could be solved with different kinds of a shelf) as these new files will be used by the new host (server / docker).

 

That means that for every former normal client / guest nothing changes (maybe except some buildings that are lost because they were not saved for any reason).

 

More detailed paths and explanation

The paths to the save files explains this more "complex" save system as followed:

1. The host / docker has it's save files in 'saves/Multiplayer/SlotX/' storing world attributes and its "own inventory". There is a guid-file which will be created if not existed. This file seems to contain a UUID for the server.

2. The clients / guests will store the save files in 'C:\Users\<user>\AppData\LocalLow\SKS\TheForest\<steamID>'. This folder contains one folder for SinglePlayer and one for MultiPlayer.

 

The SinglePlayer folder contains (as obvious) all Slots from SinglePlayer games. The structure of this Slot-folders (containing __RESUME__, guid, info, ...) is nearly the same as the one on the server / docker (except some files e.g. thumbnail). That's why it's possible to move a multiplayer game with it's saves to a singleplayer game and vice versa. When moving from MP to SP the game will contain the world and inventory of the host. When moving from SP to MP the world will be the same but the user will loose his inventory (as described above). 

 

The Multiplayer-folder contains two other folders: cs (maybe abbr. for ClientSave) and SlotX.

- The SlotX folders are for every Multiplayer game that is hosted on this machine (e.g. coop with friends). As this is a host the folder structure will be again the same as the one on the server / docker. Now, when moving the save files from this local machine to a dedicated server (as it was in my case) the world attributes will remain but the former host will loose his inventory (again as described above). This works also vice versa, but with moving save files from the dedicated server to the new local machine nothing will get lost. The only difference this new local machine as the new host will have the former hosts inventory. 

- The cs folder contains files named after the guid of the host server the client is playing on. E.g. if one host with guid 1 (just theoretically) and another host with guid 2 exist and the user is playing on both (and has saved the game on both) the cs-folder will contain the two files: 1 and 2. These files contain finally the inventory data and location in the world on the according server.

 

I hope that I didn't explain it too confusing.

 

2 hours ago, ich777 said:

I haven't played The Forest in a long time but it is pretty much fun (actually frightening) playing with friends on the server and maybe in VR (yes, you can also connect with VR to the server... :) ).

I absolutely confirm this.  It's really funny, especially with friends. And really cool that you can play it with VR, I think, as you already said, it's extra scary with it. ;) 

 

 

UPDATE

The paths described above are not completely correct. When running "The Forest" on a Dedicated Server the paths on the local machines (for the clients / guests) change as follows:

As soon as playing on a dedicated server and creating a save, a new folder (if it not already exists) will be created inside the "TheForest" folder, named: ds (I think it stands for Dedicated Servers).

From now on the paths will be the same, so you'll find a "Multiplayer" folder inside of the ds folder and then the "cs" folder for all clientsaves. As already written above this cs folder will then contain every save file for all the dedicated servers on which you have already played.

Edited by CyberDev
Wrong paths / information
  • Like 1
Link to comment

Hi @ich777,

 

My Terraria docker is on version 1.4.4.5, but my client is on 1.4.4.9. I have tried force update but it is not working?

 

Can the latest version be pushed to Docker please?

 

Thanks

 

Edit: I edited the version in the unraid config manually to 1.4.4.9 and it seemed to work. Just flagging it didn't update automatically with the docker update and seemed to be stuck on 1.4.4.5 in the config which prevented me from joining.

 

 

Edited by Zee-Unraid
Link to comment
On 1/5/2023 at 11:36 PM, DBone-Unraid said:

 

Hello @KyrVorga, yes, you are able to use mods with this container.  It has been quite a while since I set this up so please bare with me, there is more detail somewhere within this forum topic which is how I was able to get this working, if I come across the posts, I will be sure to share them.  In the meantime, here is some information on my current setup that has been working for quite some time.

 

Within the Docker setup in the "Extra Game Parameters" you need to make sure to include "-automanagemods", if you are setting up a cluster you will want to make sure this is only on the first map to startup within the cluster, also make sure that you give the first map plenty of time to startup before the next map in the cluster starts to give the mods enough time to update. 

1335377406_ExtraGameParam.thumb.png.15252ee48ff069411c26331615b7c339.png

 

You will also need to add extra parameters to the Docker template for the steam workshop, again, this will only be setup on the first map that starts up in the cluster if applicable.

1212209538_ExtraParameters.thumb.png.0b125a3351038654096021f2ec5e55c9.png

 

image.png.36c46e7ca5a947ca122bc24f462481a1.png

 

Full container path in the below screenshot is:  /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps

image.png.30e6d05fe0884a0b49f2862c6a9b1eb6.png

 

Full container path in the below screenshot is:  /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux

image.png.30843cc6baf0df882a99283b754a4b30.png

 

I hope this information is useful and is able to get you up an running with mods.

 

 

 

Thanks for this btw...

 

Do you (or anyone for that matter) know what game parameters and extra game parameters are possible to add in these two sections?  I see a few that you have listed in the picture but I don't know what any of them mean.

 

I'd be happy if there was a list so I could pick and choose the startup commands/parameters to tailor my container to what I want it to be.

 

 

UPDATE:  Answered my own question...I thought these would be docker specific variables/parameters but they are ARK specific.  Found here:  https://ark.fandom.com/wiki/Server_configuration

Edited by devnet
Link to comment

BTW,

 

I was unable to mount to the path for engineapps...Error message was as follows:

 

Error response from daemon: invalid volume specification: '/mnt/smbcache/appdata/ark-se/steamapps/: /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps :rw': invalid mount config for type "bind": invalid mount path: ' /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps ' mount path must be absolute

 

 

Here's the issue once I connected to the docker console:

 

#

# ls
'Linux '   Win64
# cd Linux
sh: 7: cd: can't cd to Linux
# cd 'Linux '
# pwd
/serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux 
# ls -lrt
total 4
-rwxrwx--- 1 steam users 1212 Oct  6  2021 steamcmd.sh
drwxrwx--- 1 steam users   14 Nov 25 16:23 siteserverui
drwxrwx--- 1 steam users 1690 Nov 25 16:23 public
drwxrwx--- 1 steam users   28 Dec  2 18:42 linux64
drwxrwx--- 1 steam users  224 Dec  2 18:42 linux32
drwxrwx--- 1 steam users  728 Jan  7 20:32 package
# 

 

So it seems there is a space in the name for this path.  This prevents the volume from being mounted as the volume path has to be absolute.

 

Not sure where the name Linux is set nor by what or how but it will change how we have to map the volume.

 

/mnt/YOURCACHE/appdata/ark-se/steamapps/ will now have to be mapped to /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux /steamapps

Edited by devnet
Link to comment
10 hours ago, ich777 said:

What OS are you running on that Server? Keep in mind that you need to run something recent like Debian 11 or on of the newer Ubuntu releases.

1 Core and 2GB of memory are way too less resources for Valheim and I think that it crashes because of too less RAM.

 

Thanks for the info. I am on Debian 10 and it also makes sense re: lack of resources... Will try and find another VPS to use...

 

Edit: migrated over the binarylane VPS [AU], debian 11 2core 4gb memory and all working 😃 Thank you

Edited by bamtan
  • Like 1
Link to comment
8 hours ago, Zee-Unraid said:

Edit: I edited the version in the unraid config manually to 1.4.4.9 and it seemed to work. Just flagging it didn't update automatically with the docker update and seemed to be stuck on 1.4.4.5 in the config which prevented me from joining.

That's now necessary because the developers changed how the download from the version works and I have no longer a way to pull it automatically.

 

I changed the default version in the template now to 1.4.4.9 so that for new installations it will work just fine.

  • Thanks 1
Link to comment
9 minutes ago, ich777 said:

So I assume everything is now working for you correct?

 

Indeed.  The only thing I'm not clear on is the steps to install the mods on an Ark server...I list them in the GameUserSettings.ini and then....not sure.

 

There may be more steps to it...like creating a folder inside the mods directory, and then putting the .mod file in there...but I can't seem to find a proper page of documentation that tells me the proper way to do so.

 

Anyways, thanks again.

Link to comment
4 minutes ago, devnet said:

Indeed.  The only thing I'm not clear on is the steps to install the mods on an Ark server...I list them in the GameUserSettings.ini and then....not sure.

Please read this post over here:

 

I think you also need -automanagemods if I'm not mistaken, after a server restart the server should pull the mods all automatically from my understanding.

Link to comment
10 hours ago, ich777 said:

Please read this post over here:

 

I think you also need -automanagemods if I'm not mistaken, after a server restart the server should pull the mods all automatically from my understanding.

 

 

Yep, I did all those things in that post.  But I'm not seeing folders for each of my mods inside the mod directory after the server starts...so I'm not sure they're downloading and loading server side. 

 

I saw other posts in steamcommunity about installing mods on Linux servers and some folks had to create the mod folder (mod number is the name) and then they had to manually drop the .mod file in there...and I'd rather avoid having to do that.  I'll do some more testing here and report back what happens.

Link to comment

Just a quick update.  Figured out the issue...in the post referenced there is a typo.  It's -automanagedmods and not -automanagemods.

 

Replaced that in my extra game parameters and tried this again....it seems to be doing something because now the container reboots every 11 seconds...trying to trace down logs to see what is going on.

Link to comment

Well I'm not sure what's up...it's stuck in a loop and won't boot and I can't find logs that tell me what's going on.  Just keeps on restarting...

 

Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
---Update Server---
Redirecting stderr to '/serverdata/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1669935972
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Success! App '376030' already up to date.
---Prepare Server---
---Server ready---
---Start Server---
---Ensuring UID: 99 matches user---
usermod: no changes
---Ensuring GID: 100 matches user---
usermod: no changes
---Setting umask to 000---
---Checking for optional scripts---
---No optional script found, continuing---
---Taking ownership of data...---
---Starting...---
---Update SteamCMD---
Redirecting stderr to '/serverdata/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1669935972
-- type 'quit' to exit --
Loading Steam API...OK

 

Link to comment

I think this has to do with the extra space that I found previously in the path for the 'Linux ' directory.  If we mount the automods directory with the instructions from DBone-Unraid, we do the following:

 

image.thumb.png.db4c0006f6e030a9fc94ee247bc57bd2.png

 

But that of course, doesn't exist...because the last part is 'Linux ' with the extra space on the end and that's not what is mounted...so we're installing or looking inside a different directory or one that doesn't exist.

 

@ich777 where is that path set?  Do you think if I rename it and remove the space and correct all the paths it will start working or will it pull down a fresh copy with the space if it's set by Steam?  Is this a bug?

Edited by devnet
Link to comment
7 hours ago, devnet said:

I'm finding posts on this inside steamcommunity and they're saying in Linux servers you do not need to use -automanagedmods for extra parameters?

This can be actually be true but I'm not that familiar with modding the containers exspecially not with Ark.

 

I only provide the base functionality because I can't know how to mod every server and I can't know every mod.

 

Please look into the 2nd recommended post from this thread from @Cyd he has a Github Repo where he describes how to set up a cluster and I'm pretty sure he mentions mods there too. I could be wrong about that but it's worth a try.

Link to comment
7 hours ago, devnet said:

I think this has to do with the extra space that I found previously in the path for the 'Linux ' directory.

This is definitely unexpected that this path has a space in it and I really don't know how to solve that.

Will try that later on my machine.

 

7 hours ago, devnet said:

If we mount the automods directory with the instructions from DBone-Unraid, we do the following:

I can't help here because I simply never done it like that. I can only try if it's the same with the Linux directory if I also have a space at the end.

Please also keep in mind that the path /mnt/cache/appdata/... is not done by accident and you also should use /mnt/cache/appdata/... instead of /mnt/user/appdata/... <- some games won't run on that path because it's a FUSE file path and it is set to /mnt/cache/appdata/... to avoid other weird behavior (please also make sure that you've set your appdata share in the Share settings to Use Cache "Only" or "Prefer".

 

7 hours ago, devnet said:

@ich777 where is that path set?  Do you think if I rename it and remove the space and correct all the paths it will start working or will it pull down a fresh copy with the space if it's set by Steam?  Is this a bug?

This path is set by the developers and nothing I can do about.

Basically this container will do the same as you run the dedicated server on bare metal and install everything by hand but everything is automated.

  • Like 1
Link to comment
44 minutes ago, robertpaolella said:

Does your MinecraftBasicServer docker container allow a BungeeCord proxy and multiple child servers tied to it? I'm not sure if this is a single-server setup or it allows a network as well.

Sorry I'm not into modding Minecraft whatsoever, you can try.

 

You can usa a complete custom startup command, you can use your own specific Minecraft versions and so on.

I think it should be possible but as said, not really into modding Minecraft.

Link to comment
2 minutes ago, ich777 said:

Sorry I'm not into modding Minecraft whatsoever, you can try.

 

You can usa a complete custom startup command, you can use your own specific Minecraft versions and so on.

I think it should be possible but as said, not really into modding Minecraft.

 

No problem! The only real requirement for the docker container is the ability to run multiple servers at once. Do you know if that is possible?

Link to comment
1 minute ago, robertpaolella said:

No problem! The only real requirement for the docker container is the ability to run multiple servers at once. Do you know if that is possible?

Why is that needed? You can run multiple containers each with it's own server and link the networks together that it seems to the containers that they are running on one machen, hope that makes sense.

 

This is basically the same as if you route the traffic from a container through another VPN container.

Link to comment
On 1/7/2023 at 7:38 PM, devnet said:

BTW,

 

I was unable to mount to the path for engineapps...Error message was as follows:

 

Error response from daemon: invalid volume specification: '/mnt/smbcache/appdata/ark-se/steamapps/: /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps :rw': invalid mount config for type "bind": invalid mount path: ' /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps ' mount path must be absolute

 

 

Here's the issue once I connected to the docker console:

 

#

# ls
'Linux '   Win64
# cd Linux
sh: 7: cd: can't cd to Linux
# cd 'Linux '
# pwd
/serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux 
# ls -lrt
total 4
-rwxrwx--- 1 steam users 1212 Oct  6  2021 steamcmd.sh
drwxrwx--- 1 steam users   14 Nov 25 16:23 siteserverui
drwxrwx--- 1 steam users 1690 Nov 25 16:23 public
drwxrwx--- 1 steam users   28 Dec  2 18:42 linux64
drwxrwx--- 1 steam users  224 Dec  2 18:42 linux32
drwxrwx--- 1 steam users  728 Jan  7 20:32 package
# 

 

So it seems there is a space in the name for this path.  This prevents the volume from being mounted as the volume path has to be absolute.

 

Not sure where the name Linux is set nor by what or how but it will change how we have to map the volume.

 

/mnt/YOURCACHE/appdata/ark-se/steamapps/ will now have to be mapped to /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux /steamapps

 

@devnet When you did the mappings for the engineapps, did you accidentally include a space after Linux?

The container path should be:  /serverdata/serverfiles/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps

 

From what I can tell that is the only place where the space could have been added that would cause this issue.

image.thumb.png.6e8181c29dfb36c91cf53b7ce86cbc5e.png

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.