QuintenQVD0 / Q_eggs

Some special https://pterodactyl.io eggs made for ARM64
Other
89 stars 14 forks source link

[Egg Request]: Palworld #82

Closed r3ps4J closed 7 months ago

r3ps4J commented 7 months ago

Does this expand an already existing service

No

Link to a game or software

https://store.steampowered.com/app/1623730/Palworld/

Links for the download

It uses SteamCMD to download. It's described in the installation docs linked below. Command: steamcmd +login anonymous +app_update 2394010 validate +quit

Links for the install docs

https://tech.palworldgame.com/dedicated-server-guide#linux

Does this app work on ARM?

No

QuintenQVD0 commented 7 months ago

I can try this ones rhe offical one gets merged.

Weatwagon commented 7 months ago

@QuintenQVD0, I just found your Q_eggs and thank you for your hard work for making these work for pterodactyl on ARM. I apologize for bringing up another container image for FEX on your PalWolrd egg gist.

I'm going to give PalWorld on steamcmd a try using one of you Q_eggs as an example. Again, great work putting these together.

QuintenQVD0 commented 7 months ago

@QuintenQVD0, I just found your Q_eggs and thank you for your hard work for making these work for pterodactyl on ARM. I apologize for bringing up another container image for FEX on your PalWolrd egg gist.

I'm going to give PalWorld on steamcmd a try using one of you Q_eggs as an example. Again, great work putting these together.

Thanks for the help. And if you have it working feel free to pr it.

VirusLauncher commented 7 months ago

Using Oracle Cloud Free Tier: 4 Cores, 24gb ram.

I had made an attempt using box64/86 but the CPU usage was about 330%-350% idle with fluctuating server 50 - 60 fps and its glitching. So i had changed over to the fex-emu docker with the files already downloaded the idle server load reduce to 40% and with 1 player around 80-120% constant server 60fps stable. Will test later with some friends how the load will affect the server.

Config too messy to make a pr atm.

Weatwagon commented 7 months ago

Same platform here, I have it running with fex I'll post the gist when I get home.

VirusLauncher commented 7 months ago

This is my current egg for Palworld. Using SteamCMD to download the files and Fex-Emu docker to run.

Notes:

egg-palworld-a-r-m64.json

Weatwagon commented 7 months ago

Yours is pretty much same as mine except I have the part in the installer script that fixes that error. Still not at my computer to post.

Weatwagon commented 7 months ago

egg-palworld-a-r-m64.json

Honestly not much needed to be changed from the main PR. But I have not had the chance to test.

PR 2671

VirusLauncher commented 7 months ago

egg-palworld-a-r-m64.json

Honestly not much needed to be changed from the main PR. But I have not had the chance to test.

PR 2671

It is the same except the startup config. For testing, I had used my egg (slightly different variables)

But I had notice when using my startup config FEXBash ./PalServer.sh -port={{SERVER_PORT}} -players={{MAX_PLAYERS}} {{FLAGS}} : FLAGS VARIABLE = -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS Idle CPU Load is 43 - 48% 1 Player Load is 80 - 120%

When i had used yours (removed some flags) export FEX_APP_DATA_LOCATION=/home/container/rootfs/; export FEX_APP_CONFIG_LOCATION=/home/container/; export XDG_DATA_HOME=/home/container; export HOME=/home/container; FEXInterpreter /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port={{SERVER_PORT}} -players={{MAX_PLAYERS}} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS: Idle CPU Load is 81 - 87% 1 Player Load is 160 - 210% which causes some server fps stuttering down to 58 fps

Weatwagon commented 7 months ago

Good catch. The install script with the step for setting up the binaries should be what fixes your error. Did that work?

QuintenQVD0 commented 7 months ago

All the exports can be removed. The image takes care of that. Exept the the home one. And use fexinterperter and not fexbash as a shell will not work. Look at the fivem does this.

wraithy commented 7 months ago

egg-palworld-a-r-m64.json

Honestly not much needed to be changed from the main PR. But I have not had the chance to test.

PR 2671

I tried installing the Palworld server using this egg and this is the output from it. It looks like the directory that is specified in the install script /mnt/server should be /home/container instead (unless that isn't how it works idk).

Success! App '2394010' fully installed.
Work thread 'CJobMgr::m_WorkThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
'linux32/steamclient.so' -> '../.steam/sdk32/steamclient.so'
'linux64/steamclient.so' -> '../.steam/sdk64/steamclient.so'
Copy template config file into config folder!
Creating new config file
cp: cannot create regular file '/mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
Pulling from quintenqvd/pterodactyl_images 
Status: Image is up to date for quintenqvd/pterodactyl_images:dev_fex 
Digest: sha256:70658f705bd52842c9b46a6dfce87f7ec5ddc42d2a764641236821e7901a6b75 
[Pterodactyl Daemon]: Finished pulling Docker container image
:/home/container$ export FEX_APP_DATA_LOCATION=/home/container/rootfs/; export FEX_APP_CONFIG_LOCATION=/home/container/; export XDG_DATA_HOME=/home/container; export HOME=/home/container; FEXInterpreter /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip=${PUBLIC_IP} -publicport=${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" -serverpassword="${SRV_PASSWORD}" -adminpassword="${ADMIN_PASSWORD}"
This server will need at least 9GB of disk space!
Selected Rootfs: Ubuntu 20.04 (SquashFS)
        URL: https://rootfs.fex-emu.gg/Ubuntu_20_04/2023-10-01/Ubuntu_20_04.sqsh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  811M  100  811M    0     0   242M      0  0:00:03  0:00:03 --:--:--  242M
Parallel unsquashfs: Using 2 processors
52890 inodes (71286 blocks) to write
created 42340 files
created 5178 directories
created 10333 symlinks
created 0 devices
created 0 fifos
created 0 sockets
Ubuntu_20_04 set as default RootFS
Needed config file exists, skipping
Shutdown handler: initalize.
- Existing per-process limit (soft=1048576, hard=1048576) is enough for us (need only 1048576)
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 264 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
container@pterodactyl~ Server marked as running...
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
QuintenQVD0 commented 7 months ago

egg-palworld-a-r-m64.json Honestly not much needed to be changed from the main PR. But I have not had the chance to test. PR 2671

I tried installing the Palworld server using this egg and this is the output from it. It looks like the directory that is specified in the install script /mnt/server should be /home/container instead (unless that isn't how it works idk).

Success! App '2394010' fully installed.
Work thread 'CJobMgr::m_WorkThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
'linux32/steamclient.so' -> '../.steam/sdk32/steamclient.so'
'linux64/steamclient.so' -> '../.steam/sdk64/steamclient.so'
Copy template config file into config folder!
Creating new config file
cp: cannot create regular file '/mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
Pulling from quintenqvd/pterodactyl_images 
Status: Image is up to date for quintenqvd/pterodactyl_images:dev_fex 
Digest: sha256:70658f705bd52842c9b46a6dfce87f7ec5ddc42d2a764641236821e7901a6b75 
[Pterodactyl Daemon]: Finished pulling Docker container image
:/home/container$ export FEX_APP_DATA_LOCATION=/home/container/rootfs/; export FEX_APP_CONFIG_LOCATION=/home/container/; export XDG_DATA_HOME=/home/container; export HOME=/home/container; FEXInterpreter /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip=${PUBLIC_IP} -publicport=${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" -serverpassword="${SRV_PASSWORD}" -adminpassword="${ADMIN_PASSWORD}"
This server will need at least 9GB of disk space!
Selected Rootfs: Ubuntu 20.04 (SquashFS)
        URL: https://rootfs.fex-emu.gg/Ubuntu_20_04/2023-10-01/Ubuntu_20_04.sqsh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  811M  100  811M    0     0   242M      0  0:00:03  0:00:03 --:--:--  242M
Parallel unsquashfs: Using 2 processors
52890 inodes (71286 blocks) to write
created 42340 files
created 5178 directories
created 10333 symlinks
created 0 devices
created 0 fifos
created 0 sockets
Ubuntu_20_04 set as default RootFS
Needed config file exists, skipping
Shutdown handler: initalize.
- Existing per-process limit (soft=1048576, hard=1048576) is enough for us (need only 1048576)
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 264 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
container@pterodactyl~ Server marked as running...
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

No. In the install container it is /mnt/server.

VirusLauncher commented 7 months ago

Good catch. The install script with the step for setting up the binaries should be what fixes your error. Did that work?

It did not work, but the use of home exports work.

Updated Egg:

egg-palworld-a-r-m64.json

QuintenQVD0 commented 7 months ago

Good catch. The install script with the step for setting up the binaries should be what fixes your error. Did that work?

It did not work, but the use of home exports work.

Updated Egg:

* Allow Updates (will have to switch to emulation docker to update since fex-emu skips this).

* The use of Home Exports allows the steamclient.so to work.

egg-palworld-a-r-m64.json

an egg can not have a script as startup so please directly talks to the binary, export XDG_DATA_HOME=\/home\/container; export HOME=\/home\/container; should not be needed just export HOME=/home/container and use FEXInterpreter instead of FEXBash

VirusLauncher commented 7 months ago

just export HOME=/home/container

This works.

use FEXInterpreter instead of FEXBash

I'm relatively new to Fex-Emu, what's the difference with FEXInterpreter and FEXBash? Also, when I'm using FEXInterpreter its uses a lot more CPU and causes the server to be unstable unlike FEXBash. Currently not home to re-test with a load on the server.

Using FEXInterpreter Using FEXBash

Weatwagon commented 7 months ago

According to their wiki

FEXBash is a wrapper program that executes FEXInterpreter to run x86-64 /bin/sh or /bin/bash. Which application is executed depends on the number of arguments passed in

so if it's just a wrapper for FEXInterpreter and it has better performace I would say use FEXBash instead. I'm also new with Fex-Emu so idk if there are other pros and cons to it.

QuintenQVD0 commented 7 months ago

According to their wiki

FEXBash is a wrapper program that executes FEXInterpreter to run x86-64 /bin/sh or /bin/bash. Which application is executed depends on the number of arguments passed in

so if it's just a wrapper for FEXInterpreter and it has better performace I would say use FEXBash instead. I'm also new with Fex-Emu so idk if there are other pros and cons to it.

Fexbash is normaly a full emulation shell. While FEXInterpreter is just to emulate a single binary. Last time (what was a will ago) i tryed fexbash. It would just crash. If it does the trick and preformcf better then I guess is fine? I will test it.

r3ps4J commented 7 months ago

I noticed while using the fivem egg that the console in pterodactyl doesn't do anything. I can type commands and it shows that it sends them, but they aren't actually executed in the server or sent to the actual server console. Might be a related issue, since that egg uses FEXInterpreter as well.

QuintenQVD0 commented 7 months ago

I noticed while using the fivem egg that the console in pterodactyl doesn't do anything. I can type commands and it shows that it sends them, but they aren't actually executed in the server or sent to the actual server console. Might be a related issue, since that egg uses FEXInterpreter as well.

Thats a fivem bug. That is also the issue with Pterodactyl egg.

r3ps4J commented 7 months ago

Ah well forget I said anything then!

wraithy commented 7 months ago

egg-palworld-a-r-m64.json Honestly not much needed to be changed from the main PR. But I have not had the chance to test. PR 2671

I tried installing the Palworld server using this egg and this is the output from it. It looks like the directory that is specified in the install script /mnt/server should be /home/container instead (unless that isn't how it works idk).

Success! App '2394010' fully installed.
Work thread 'CJobMgr::m_WorkThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
'linux32/steamclient.so' -> '../.steam/sdk32/steamclient.so'
'linux64/steamclient.so' -> '../.steam/sdk64/steamclient.so'
Copy template config file into config folder!
Creating new config file
cp: cannot create regular file '/mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
Pulling from quintenqvd/pterodactyl_images 
Status: Image is up to date for quintenqvd/pterodactyl_images:dev_fex 
Digest: sha256:70658f705bd52842c9b46a6dfce87f7ec5ddc42d2a764641236821e7901a6b75 
[Pterodactyl Daemon]: Finished pulling Docker container image
:/home/container$ export FEX_APP_DATA_LOCATION=/home/container/rootfs/; export FEX_APP_CONFIG_LOCATION=/home/container/; export XDG_DATA_HOME=/home/container; export HOME=/home/container; FEXInterpreter /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip=${PUBLIC_IP} -publicport=${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" -serverpassword="${SRV_PASSWORD}" -adminpassword="${ADMIN_PASSWORD}"
This server will need at least 9GB of disk space!
Selected Rootfs: Ubuntu 20.04 (SquashFS)
        URL: https://rootfs.fex-emu.gg/Ubuntu_20_04/2023-10-01/Ubuntu_20_04.sqsh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  811M  100  811M    0     0   242M      0  0:00:03  0:00:03 --:--:--  242M
Parallel unsquashfs: Using 2 processors
52890 inodes (71286 blocks) to write
created 42340 files
created 5178 directories
created 10333 symlinks
created 0 devices
created 0 fifos
created 0 sockets
Ubuntu_20_04 set as default RootFS
Needed config file exists, skipping
Shutdown handler: initalize.
- Existing per-process limit (soft=1048576, hard=1048576) is enough for us (need only 1048576)
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 264 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
container@pterodactyl~ Server marked as running...
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

No. In the install container it is /mnt/server.

I see, am I missing something then because it seems to work for others?

QuintenQVD0 commented 7 months ago

egg-palworld-a-r-m64.json Honestly not much needed to be changed from the main PR. But I have not had the chance to test. PR 2671

I tried installing the Palworld server using this egg and this is the output from it. It looks like the directory that is specified in the install script /mnt/server should be /home/container instead (unless that isn't how it works idk).

Success! App '2394010' fully installed.
Work thread 'CJobMgr::m_WorkThreadPool:1' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
'linux32/steamclient.so' -> '../.steam/sdk32/steamclient.so'
'linux64/steamclient.so' -> '../.steam/sdk64/steamclient.so'
Copy template config file into config folder!
Creating new config file
cp: cannot create regular file '/mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini': No such file or directory
-----------------------------------------
Installation completed...
-----------------------------------------
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
Pulling from quintenqvd/pterodactyl_images 
Status: Image is up to date for quintenqvd/pterodactyl_images:dev_fex 
Digest: sha256:70658f705bd52842c9b46a6dfce87f7ec5ddc42d2a764641236821e7901a6b75 
[Pterodactyl Daemon]: Finished pulling Docker container image
:/home/container$ export FEX_APP_DATA_LOCATION=/home/container/rootfs/; export FEX_APP_CONFIG_LOCATION=/home/container/; export XDG_DATA_HOME=/home/container; export HOME=/home/container; FEXInterpreter /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip=${PUBLIC_IP} -publicport=${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" -serverpassword="${SRV_PASSWORD}" -adminpassword="${ADMIN_PASSWORD}"
This server will need at least 9GB of disk space!
Selected Rootfs: Ubuntu 20.04 (SquashFS)
        URL: https://rootfs.fex-emu.gg/Ubuntu_20_04/2023-10-01/Ubuntu_20_04.sqsh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  811M  100  811M    0     0   242M      0  0:00:03  0:00:03 --:--:--  242M
Parallel unsquashfs: Using 2 processors
52890 inodes (71286 blocks) to write
created 42340 files
created 5178 directories
created 10333 symlinks
created 0 devices
created 0 fifos
created 0 sockets
Ubuntu_20_04 set as default RootFS
Needed config file exists, skipping
Shutdown handler: initalize.
- Existing per-process limit (soft=1048576, hard=1048576) is enough for us (need only 1048576)
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
dlopen failed trying to load:
steamclient.so
with error:
steamclient.so: cannot open shared object file: No such file or directory
[S_API] SteamAPI_Init(): Loaded '/home/container/.steam/sdk64/steamclient.so' OK.  (First tried local 'steamclient.so')
CAppInfoCacheReadFromDiskThread took 264 milliseconds to initialize
dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
Setting breakpad minidump AppID = 2394010
container@pterodactyl~ Server marked as running...
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

No. In the install container it is /mnt/server.

I see, am I missing something then because it seems to work for others?

For many that means running (it normaly should)

wraithy commented 7 months ago

For many that means running (it normaly should)

Ah yes, it does indeed work, I just had to open the port.

Thank you!

frsqn commented 7 months ago

Thx guys for your time and your incredible work 👍

Weatwagon commented 7 months ago

@VirusLauncher @QuintenQVD0

If you use FEXBash instead of FEXInterpreter then the rest of the flags (server name, port, passwords, etc.) are not being passed to the Pal binary. I believe the difference in performance you are seeing is because when using FEXBash the -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS performance flags are not getting passed and when you use FEXInterpreter they are passed. I can duplicate the performance difference with using FEXInterpreter and including and not including the performance flags.

It does seem the ARM architecture runs better without them. But I have not tried different combinations other then turning them off. Some of them may be a benefit.

r3ps4J commented 7 months ago

This just got merged: https://github.com/parkervcp/eggs/pull/2671

Would it be difficult to port this to arm?

QuintenQVD0 commented 7 months ago

Not that hard as fex can handle it just fine it seems

Weatwagon commented 7 months ago

I went to go fix the issue with the installer script not being able to find config path on first install because it doesn't exist yet. But now steamcmd is failing to run now.

steamcmd.sh
linux32/steamcmd
linux32/steamerrorreporter
linux32/libstdc++.so.6
linux32/crashhandler.so
/usr/bin/FEXInterpreter: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /usr/bin/FEXInterpreter)
/usr/bin/FEXInterpreter: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /usr/bin/FEXInterpreter)
/usr/bin/FEXInterpreter: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/bin/FEXInterpreter)
/usr/bin/FEXInterpreter: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/bin/FEXInterpreter)
/usr/bin/FEXInterpreter: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/bin/FEXInterpreter)
QuintenQVD0 commented 7 months ago

dc++.so.6: version `GLIBCXX_3.4.

is this in the install container or the main game container?

Weatwagon commented 7 months ago

The install container

QuintenQVD0 commented 7 months ago

The install container

YOu can not use FEXInterpreter in the install container, you must use box86 what will have to be installed on the host

Weatwagon commented 7 months ago

I have not made changes to the install script from when it was working until now. It was actually working before without specifying box86 or FEXInterpreter.

QuintenQVD0 commented 7 months ago

I have not made changes to the install script from when it was working until now. It was actually working before without specifying box86 or FEXInterpreter.

it should, turn of auto update variable if you have one for now.

Weatwagon commented 7 months ago

I got it fixed, I had rebooted the host. I had to run your setup script again curl -sSL https://raw.githubusercontent.com/QuintenQVD0/Q_eggs/main/steamgames.sh | bash

is there a way to make this persist with reboots of the host?

QuintenQVD0 commented 7 months ago

I got it fixed, I had rebooted the host. I had to run your setup script again curl -sSL https://raw.githubusercontent.com/QuintenQVD0/Q_eggs/main/steamgames.sh | bash

is there a way to make this persist with reboots of the host?

it should just do that as it does a package install so that should stay.

Weatwagon commented 7 months ago

I was running FEX locally on the host to compare the performance with the docker container. Do you think that would have caused the issue?

QuintenQVD0 commented 7 months ago

I was running FEX locally on the host to compare the performance with the docker container. Do you think that would have caused the issue?

yes as it will try to atach to docker. Don't do that.

QuintenQVD0 commented 7 months ago

Something else (good news) I implemented a very basic auto update for steamcmd in the fex image. It seems to work just fine for now

r3ps4J commented 7 months ago

Oh that's nice!

Are you going to port the Palworld egg from parker's repo? If so, I can help you test.

QuintenQVD0 commented 7 months ago

Oh that's nice!

Are you going to port the Palworld egg from parker's repo? If so, I can help you test.

I am trying to do that rn yes.

Weatwagon commented 7 months ago

This is what i got added to the install script for the first run config file changes to take

# pre-create directory path 
if [ ! -d "/mnt/server/Pal/Saved/Config/LinuxServer" ]; then
    echo "/mnt/server/Pal/Saved/Config/LinuxServer does not exist. Running mkdir to create config file path."
    mkdir -p /mnt/server/Pal/Saved/Config/LinuxServer
fi

and after the copy

# add variable values to config file
sed -i 's/\(RCONEnabled=\)\"*\([^",]*\)\"*,/\1'"${SERVER_RCONENABLE}"',/' /mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini && 
sed -i 's/\(RCONPort=\)\"*\([^",]*\)\"*,/\1'"${SERVER_RCONPORT}"',/' /mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini && 
sed -i 's/\(PublicPort=\)\"*\([^",]*\)\"*,/\1'"${SERVER_PORT}"',/' /mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini && 
sed -i 's/\(PublicIP=\)"\([^"]*\)"/\1"'${PUBLIC_IP}'"/' /mnt/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini &&
r3ps4J commented 7 months ago

Oh that's nice! Are you going to port the Palworld egg from parker's repo? If so, I can help you test.

I am trying to do that rn yes.

Awesome, let me know if you need help!

QuintenQVD0 commented 7 months ago

@r3ps4J @Weatwagon I got it to run myself and linked it here in PR, feel free to try it and let me know

Weatwagon commented 7 months ago

Test was successful.

The extra flags for me still seem to increase the cpu load whether or not the equates to better or worse server performance I'm not sure. The frame rate dips seem to have not come back with the extra flags but I didn't run the game very long. I'm not able to test with multiple users.

What is the best method for testing RCON?

QuintenQVD0 commented 7 months ago

Test was successful.

The extra flags for me still seem to increase the cpu load whether or not the equates to better or worse server performance I'm not sure. The frame rate dips seem to have not come back with the extra flags but I didn't run the game very long. I'm not able to test with multiple users.

What is the best method for testing RCON?

Currently not as there is not rcon binary in the fex image, maybe I should fix that 😂

Weatwagon commented 7 months ago

@QuintenQVD0, I see you updated the Fex image again to include RCON. How does one utilize it with a running egg?

I tested it externally using ARRCON and was able to connect and run commands against the server. I did notice that if you send the shutdown command(in game or with rcon) the egg will not stay down it will auto-restart.

Weatwagon commented 7 months ago

I was able to use rcon attached to the container process from the host. It seems when I send commands via the web console the commands are ignored.

Is it the normal behavior that the game process is running in the background and you can still send commands via the web console? Because I don't think that is happening.