eggs icon indicating copy to clipboard operation
eggs copied to clipboard

add palworld egg

Open Ballaual opened this issue 7 months ago • 55 comments

Description

This PR is adding the dedicated server egg for Palworld fixing #2669. Also "hopefully" adding all contributors from the metioned issue for helping out creating and testing this egg. @QuintenQVD0

Checklist for all submissions

  • [x] Have you followed the guidelines in our Contributing document?
  • [x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • [x] Have you tested and reviewed your changes with confidence that everything works?
  • [x] Did you branch your changes and PR from that branch and not from your master branch?
    • If not, why?:

New egg Submissions

  1. [x] Does your submission pass tests (server is connectable)?
  2. [x] Does your egg use a custom docker image?
    • [ ] Have you tried to use a generic image?
    • [ ] Did you PR the necessary changes to make it work?
  3. [x] Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order?
  4. [x] Have you added a unique README.md for the egg you are adding according to the alphabetical order?
  5. [x] You verify that the start command applied does not use a shell script
    • [ ] If some script is needed then it is part of a current yolk or a PR to add one
  6. [x] The egg was exported from the panel

Ballaual avatar Jan 19 '24 15:01 Ballaual

Does the game work so far? Unfortunately, I haven't been able to test it yet.

HerrSammyDE avatar Jan 19 '24 20:01 HerrSammyDE

Does the game work so far? Unfortunately, I haven't been able to test it yet.

I have it running in my environment, works like a charm! there's some minor hiccups but that is mostly due to the nature of the game and not the server itself.

wedemmoez avatar Jan 19 '24 20:01 wedemmoez

I have found after some testing (this egg specifically) doesn't seem to work on any proxmox vm ( either kvm or non kvm) or unraid and only works in a lxc container via proxmox (which is of-course not recommended by pterodactyl) or on a bare metal os like debian or ubuntu.

Not sure if this is relevant to this or not?

danymo1221 avatar Jan 19 '24 22:01 danymo1221

I have found after some testing (this egg specifically) doesn't seem to work on any proxmox vm ( either kvm or non kvm) or unraid and only works in a lxc container via proxmox (which is of-course not recommended by pterodactyl) or on a bare metal os like debian or ubuntu.

Not sure if this is relevant to this or not?

I have just tested the Egg and it starts without any problems. We virtualize via Proxmox with KVM and it runs without any problems.

-- Thanks for the work guys!

HerrSammyDE avatar Jan 19 '24 22:01 HerrSammyDE

I have found after some testing (this egg specifically) doesn't seem to work on any proxmox vm ( either kvm or non kvm) or unraid and only works in a lxc container via proxmox (which is of-course not recommended by pterodactyl) or on a bare metal os like debian or ubuntu. Not sure if this is relevant to this or not?

I have just tested the Egg and it starts without any problems. We virtualize via Proxmox with KVM and it runs without any problems.

-- Thanks for the work guys!

Hmm strange @QuintenQVD0 said it wouldn't. https://gist.github.com/QuintenQVD0/8d7af6f08d716872ee609e9a203d696a?permalink_comment_id=4839855#gistcomment-4839855

Unless it's fixed.

danymo1221 avatar Jan 19 '24 22:01 danymo1221

@danymo1221 I don't see any reason why it wouldn't work on proxmox, the issue may actually be with lxc containers, proxmox itself doesn't do docker on the host machine, and that is known to have quirks with proxmox/kvm in some instances, but it should work just fine running on any system that has a proper docker/wings install.

Destreyf avatar Jan 19 '24 22:01 Destreyf

actually another issue i ran into is that the server takes a huge amount of RAM after a while. currently after running for about 4h with 6 players on its on 16GB..... also cpu load is permanent about 100% in spikes up to 200% dont know if thats egg / their file or maybe a missconfiguration on my side related.. does anyone else have same problem?

Ballaual avatar Jan 19 '24 23:01 Ballaual

actually another issue i ran into is that the server takes a huge amount of RAM after a while. currently after running for about 4h with 6 players on its on 16GB..... also cpu load is permanent about 100% in spikes up to 200% dont know if thats egg / their file or maybe a missconfiguration on my side related.. does anyone else have same problem?

I can see that the server is slowly using more ram as time goes on. Even when no one is on the server. Over the past 2 hours with no one in the server it has slowly crept from 4GB to 4.5GB

mattman107 avatar Jan 20 '24 05:01 mattman107

actually another issue i ran into is that the server takes a huge amount of RAM after a while. currently after running for about 4h with 6 players on its on 16GB..... also cpu load is permanent about 100% in spikes up to 200% don't know if that's egg / their file or maybe a misconfiguration on my side related.. does anyone else have same problem?

Yes... I'm not sure if its a memory leak from within the game itself or a configuration problem. It starts out relatively small even with 10-12 people online and after about 7-8 hours I'm at 15gb and after a few more hours I am at 20gb with the same number of players as before. My current solution is just restarting server every 12 hours in the hopes that it doesn't break before then but I've already had one "out of memory" crash when I had a hard limit set at 8gb's.

EDIT: Not that it means much but this person is running a dedicated windows 2019 server and the provided software without virtualization and hasn't crossed 8gb's in over 24 hours:

XANKmU

More than a few other people running PalWorld servers have confirmed the same, memory bloats over time (within a docker container) and ones running the server with just the provided GUI/SteamCMD aren't experiencing the same bloat. Not sure how to figure out the root cause beyond this.

Simsz avatar Jan 20 '24 08:01 Simsz

@Ballaual I pushed some changed to this pr:

  • add the steamcmd feature
  • right validation for max players
  • force the admin to self set the admin password
  • remove the default value from the admin password
  • Do not append -serverpassword= if no password is set for the users
  • On reinstall the config will not just be overwritten but first backed up and then the new one is coppyed in placed
  • removed an extra space before the -port
  • removed an extra space before the EpicApp

Please or anyone else here test those latest changed (most important the password logic)

QuintenQVD0 avatar Jan 20 '24 08:01 QuintenQVD0

@Ballaual I pushed some changed to this pr:

* add the steamcmd feature

* right validation for max players

* force the admin to self set the admin password

* remove the default value from the admin password

* Do not append -serverpassword= if no password is set for the users

* On reinstall the config will not just be overwritten but first backed up and then the new one is coppyed in placed

* removed an extra space before the -port

* removed an extra space before the EpicApp

Please or anyone else here test those latest changed (most important the password logic)

I believe you touched on this, but this is safe to use if we already have an existing server and setup? We won't lose our config?

Kickbut101 avatar Jan 20 '24 09:01 Kickbut101

Please or anyone else here test those latest changed (most important the password logic)

just woke up. will test it in a few minutes!

believe you touched on this, but this is safe to use if we already have an existing server and setup? We won't lose our config?

backup your Saved/SaveGames should be fine

Ballaual avatar Jan 20 '24 09:01 Ballaual

@Ballaual I pushed some changed to this pr:

* add the steamcmd feature

* right validation for max players

* force the admin to self set the admin password

* remove the default value from the admin password

* Do not append -serverpassword= if no password is set for the users

* On reinstall the config will not just be overwritten but first backed up and then the new one is coppyed in placed

* removed an extra space before the -port

* removed an extra space before the EpicApp

Please or anyone else here test those latest changed (most important the password logic)

I believe you touched on this, but this is safe to use if we already have an existing server and setup? We won't lose our config?

It should not brake anything, and the startup change wont even apply to already made servers.

Keep in mind that the update from the game itself broke some savegames

QuintenQVD0 avatar Jan 20 '24 09:01 QuintenQVD0

Please or anyone else here test those latest changed (most important the password logic)

just woke up. will test it in a few minutes!

believe you touched on this, but this is safe to use if we already have an existing server and setup? We won't lose our config?

backup your Saved/SaveGames should be fine

So if you test this please make a new server or update the startup of an already made one.

QuintenQVD0 avatar Jan 20 '24 09:01 QuintenQVD0

  • force the admin to self set the admin password

works

  • remove the default value from the admin password

works

  • Do not append -serverpassword= if no password is set for the users

does not work as intended enter no pw = not asked to enter a pw enter a pw = asked to enter a pw but says they do not match

without pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

with pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

edit: should't be the startup line sth like this?

/home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port={{SERVER_PORT}} -players={{MAX_PLAYERS}} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip {{SERVER_IP}} -publicport {{SERVER_PORT}} EpicApp=PalServer -servername="{{SRV_NAME}}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword="{{SRV_PASSWORD}}""; fi) -adminpassword="{{ADMIN_PASSWORD}}"

Ballaual avatar Jan 20 '24 10:01 Ballaual

  • force the admin to self set the admin password

works

  • remove the default value from the admin password

works

  • Do not append -serverpassword= if no password is set for the users

does not work as intended enter no pw = not asked to enter a pw enter a pw = asked to enter a pw but says they do not match

without pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

with pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

edit: should't be the startup line sth like this?

/home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port={{SERVER_PORT}} -players={{MAX_PLAYERS}} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip {{SERVER_IP}} -publicport {{SERVER_PORT}} EpicApp=PalServer -servername="{{SRV_NAME}}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword="{{SRV_PASSWORD}}""; fi) -adminpassword="{{ADMIN_PASSWORD}}"

No you have to escape the "" arround the password else they terminate the ones around the echo and you get a fault

QuintenQVD0 avatar Jan 20 '24 10:01 QuintenQVD0

  • force the admin to self set the admin password

works

  • remove the default value from the admin password

works

  • Do not append -serverpassword= if no password is set for the users

does not work as intended enter no pw = not asked to enter a pw enter a pw = asked to enter a pw but says they do not match

without pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

with pw :/home/container$ /home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port=${SERVER_PORT} -players=${MAX_PLAYERS} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip ${SERVER_IP} -publicport ${SERVER_PORT} EpicApp=PalServer -servername="${SRV_NAME}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword=\"${SRV_PASSWORD}\""; fi) -adminpassword="${ADMIN_PASSWORD}"

edit: should't be the startup line sth like this?

/home/container/Pal/Binaries/Linux/PalServer-Linux-Test Pal -port={{SERVER_PORT}} -players={{MAX_PLAYERS}} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicip {{SERVER_IP}} -publicport {{SERVER_PORT}} EpicApp=PalServer -servername="{{SRV_NAME}}" $(if [ -n "$SRV_PASSWORD" ]; then echo "-serverpassword="{{SRV_PASSWORD}}""; fi) -adminpassword="{{ADMIN_PASSWORD}}"

I just reverted the startup, should be fine. Somethine else I saw someone add -Unatended does it improve / add more logging to something?

QuintenQVD0 avatar Jan 20 '24 10:01 QuintenQVD0

Somethine else I saw someone add -Unatended does it improve / add more logging to something?

will test it out!

btw.. they just did updated their docs requiring min RAM of 16GB better 32GB.....

Ballaual avatar Jan 20 '24 10:01 Ballaual

Somethine else I saw someone add -Unatended does it improve / add more logging to something?

will test it out!

btw.. they just did updated their docs requiring min RAM of 16GB better 32GB.....

also pleasy try appending -log at the end, it should print out way more to the console (default unity server flag)

QuintenQVD0 avatar Jan 20 '24 10:01 QuintenQVD0

also pleasy try appending -log at the end, it should print out way more to the console (default unity server flag)

its unreal engine isnt it?

edit: can't confirm that any of both parameters bring up more logging. neither inside the console or as standalone file

Ballaual avatar Jan 20 '24 10:01 Ballaual

also pleasy try appending -log at the end, it should print out way more to the console (default unity server flag)

its unreal engine isnt it?

edit: can't confirm that any of both parameters bring up more logging. neither inside the console or as standalone file

Yea I meant unreal and typed unity

QuintenQVD0 avatar Jan 20 '24 10:01 QuintenQVD0

oh wow... you know what i've just figured out!?... the server browser (recent tab) is buggy af too....... it shows the recent server i joined yea but connects with the other server i played yesterday... that was the reason why i your password logic might not worked because the game tried to connect me with the wrong server... unfortunately its not really possible to test that through the server browser tab anymore as there as soo many servers right now that you need to load so much servers in there that the game literally crashed my pc -.-

Ballaual avatar Jan 20 '24 10:01 Ballaual

the server browser (recent tab) is buggy af too.......

The we need to test this later when they fix there shit

QuintenQVD0 avatar Jan 20 '24 11:01 QuintenQVD0

@Ballaual Needs -publicport=xxxx and -publicip=X.X.X.X

afbeelding If you follow there docs, and this seems to be confirmed in the dc

QuintenQVD0 avatar Jan 20 '24 12:01 QuintenQVD0

@Ballaual Needs -publicport=xxxx and -publicip=X.X.X.X

afbeelding If you follow there docs, and this seems to be confirmed in the dc

i dont understand what you mean? .... nevermind .... i see what you talking about.. the missing "="

Ballaual avatar Jan 20 '24 12:01 Ballaual

@Ballaual Needs -publicport=xxxx and -publicip=X.X.X.X afbeelding If you follow there docs, and this seems to be confirmed in the dc

i dont understand what you mean? we already include this 2 params also the EpicApp=PalServer

the egg has -publicip ip and it should be -publicip=ip

QuintenQVD0 avatar Jan 20 '24 13:01 QuintenQVD0

changed it with 828dd72 but still not able to properly test the password logic with the buggy serverlists.

Ballaual avatar Jan 20 '24 13:01 Ballaual

Any way to get logs and/or RCON through the console?

Gangoke avatar Jan 20 '24 14:01 Gangoke

Any way to get logs and/or RCON through the console?

That's going to be a pain

QuintenQVD0 avatar Jan 20 '24 14:01 QuintenQVD0

Any way to get logs and/or RCON through the console?

currently no idea. already tried different logging params not doing anything..

another problem is that the copied config after a restart (press restart in panel) gets emptied -> no idea why it is doing this

edit: might be an issue by parsing the variables through the start command

  • publicip
  • publicport
  • serverpassword
  • adminpassword
  • servername

will check this out later if you remove them from the startup if the file still gets deleted.

Ballaual avatar Jan 20 '24 14:01 Ballaual