Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Astroneer #2153

Merged
merged 4 commits into from
Feb 20, 2023
Merged

Astroneer #2153

merged 4 commits into from
Feb 20, 2023

Conversation

Melethainiel
Copy link
Contributor

@Melethainiel Melethainiel commented Feb 20, 2023

Description

The PR add Astroneer Dedicated Server egg based on steamcmd:proton yolk.

Checklist for all submissions

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

New egg Submissions

  1. Does your submission pass tests (server is connectable)?
  2. 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. 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. Have you added a unique README.md for the egg you are adding according to the alphabetical order?
  5. 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. The egg was exported from the panel

@Northwave
Copy link
Contributor

Isn't it possible to use domain names instead of IPs ? otherwise server installs fine

@Melethainiel
Copy link
Contributor Author

Melethainiel commented Feb 20, 2023

@Northwave saddly not... it seems that if it's not a valid IP it will not work. 0.0.0.0 isn't valid too.

@parkervcp
Copy link
Collaborator

I have the server up and running but cannot connect. I allocated 7778 with is forwarded as UDP from the docs I can find. I can connect and I see traffic in the panel but it times out for me while loading the system

@QuintenQVD0
Copy link
Collaborator

The configs should be downloaded in the install script. as else the file parser will generate them / faild

@QuintenQVD0
Copy link
Collaborator

QuintenQVD0 commented Feb 20, 2023

+ you need to enable puls audio

@Melethainiel
Copy link
Contributor Author

The configs should be downloaded in the install script. as else the file parser will generate them / faild

The settings files are generated by the game installer itself. I've redone a fully new installation without any issue for the settings files

@Melethainiel
Copy link
Contributor Author

+ you need to enable puls audio

Yes I'll had that (even if not mandatory to run the server)

@QuintenQVD0
Copy link
Collaborator

The configs should be downloaded in the install script. as else the file parser will generate them / faild

The settings files are generated by the game installer itself. I've redone a fully new installation without any issue for the settings files

I have seen many cases of half configs as the file parser generates the file if it is done there as it runs before the game binary and then the config file is incomplete. Please use something like this: (added all needed changes)

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-02-20T16:48:25+01:00",
    "name": "Astroneer Dedicated Server",
    "author": "melethainiel.aerin@gmail.com",
    "description": "A game of aerospace industry and interplanetary exploration.",
    "features": null,
    "docker_images": {
        "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton"
    },
    "file_denylist": [],
    "startup": "pulseaudio --daemonize=true; proton run .\/Astro\/Binaries\/Win64\/AstroServer-Win64-Shipping.exe",
    "config": {
        "files": "{\r\n    \"Astro\/Saved\/Config\/WindowsServer\/Engine.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"url.Port\": \"{{server.build.default.port}}\",\r\n            \"[SystemSettings].net.AllowEncryption\": \"false\"\r\n        }\r\n    },\r\n    \"Astro\/Saved\/Config\/WindowsServer\/AstroServerSettings.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"[\/Script\/Astro.AstroServerSettings].PublicIP\": \"{{env.PUBLIC_IP}}\",\r\n            \"[\/Script\/Astro.AstroServerSettings].OwnerName\": \"{{env.OWNER_NAME}}\",\r\n            \"[\/Script\/Astro.AstroServerSettings].OwnerGuid\": \"{{env.OWNER_GUID}}\",\r\n            \"[\/Script\/Astro.AstroServerSettings].PlayerProperties\": \"(PlayerFirstJoinName=\\\"{{env.OWNER_NAME}}\\\",PlayerCategory=Admin,PlayerGuid=\\\"{{env.OWNER_GUID}}\\\",PlayerRecentJoinName=\\\"\\\")\",\r\n            \"[\/Script\/Astro.AstroServerSettings].ServerPassword\": \"{{env.SERVER_PWD}}\",\r\n            \"[\/Script\/Astro.AstroServerSettings].ServerName\": \"{{env.SERVER_NAME}}\"\r\n        }\r\n    }\r\n}",
        "startup": "{\r\n    \"done\": \"nable to use setpriority safely\"\r\n}",
        "logs": "{}",
        "stop": "^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Install steamcmd\"\r\necho \"-----------------------------------------\"\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n## install game using steamcmd\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Install game\"\r\necho \"-----------------------------------------\"\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## make and download needed config files\r\nmkdir -p \/mnt\/server\/Astro\/Saved\/Config\/WindowsServer\/\r\n\r\ncd \/mnt\/server\/Astro\/Saved\/Config\/WindowsServer\/\r\nENGINE=Engine.ini\r\nif [ ! -f \"$ENGINE\" ]; then\r\n    echo \"Generating an engine file\"\r\n    curl -SsL -o Engine.ini https:\/\/pteropaste.com\/4yklzx\r\nfi\r\n\r\nCONFIG=AstroServerSettings.ini\r\nif [ ! -f \"$CONFIG\" ]; then\r\n    echo \"Generating a config file\"\r\n    curl -SsL -o AstroServerSettings.ini https:\/\/pteropaste.com\/y6mohq\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
            "container": "ghcr.io\/parkervcp\/installers:debian",
            "entrypoint": "bash"
        }
    },
    "variables": [
        {
            "name": "Public IP",
            "description": "Public IP to connect to the server.",
            "env_variable": "PUBLIC_IP",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "Server Owner Name",
            "description": "Steam username of the server owner",
            "env_variable": "OWNER_NAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "Server Owner Guid",
            "description": "Steam id of the server owner",
            "env_variable": "OWNER_GUID",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "Server Password",
            "description": "If specified, players must provide this password to join the server.",
            "env_variable": "SERVER_PWD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|alpha_dash|between:1,100",
            "field_type": "text"
        },
        {
            "name": "Automatic Updates",
            "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)",
            "env_variable": "AUTO_UPDATE",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|boolean",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Windows Install",
            "description": "Windows Install",
            "env_variable": "WINDOWS_INSTALL",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Steam App ID",
            "description": "",
            "env_variable": "SRCDS_APPID",
            "default_value": "728470",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "PROTON_LOG",
            "description": "",
            "env_variable": "PROTON_LOG",
            "default_value": "1",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|boolean",
            "field_type": "text"
        },
        {
            "name": "Server Name",
            "description": "",
            "env_variable": "SERVER_NAME",
            "default_value": "Pterodactyl hosted Server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:60",
            "field_type": "text"
        }
    ]
}

@QuintenQVD0
Copy link
Collaborator

  • you need to enable puls audio

Yes I'll had that (even if not mandatory to run the server)

user will complain because there is 1 error

@QuintenQVD0
Copy link
Collaborator

also, please manually add the steam_disk_space feature to the egg .json file

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

The configs should be downloaded in the install script. as else the file parser will generate them / faild

configs are fine and created after install

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

  • you need to enable puls audio

No need to enable it; i was able to run it without

simple: proton run ./blablub.exe

@QuintenQVD0
Copy link
Collaborator

  • you need to enable puls audio

No need to enable it; i was able to run it without

indeed it will start, but then we will get issue it does not work and this is the error and then related to the audio driver. while it is not related to that. and pulsaudio is installed in the image

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

  • you need to enable puls audio

No need to enable it; i was able to run it without

indeed it will start, but then we will get issue it does not work and this is the error and then related to the audio driver. while it is not related to that. and pulsaudio is installed in the image

run now since 1 week a server and had never any issue.

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

@parkervcp add to the \AppData\Local\Astro\Saved\Config\WindowsNoEditor\Engine.ini

[SystemSettings]
net.AllowEncryption=False 

and restart the game. Then you should be able to connect

@QuintenQVD0
Copy link
Collaborator

if you add the audio on startup and someone confirms you can join then it is fine for me

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

if you add the audio on startup and someone confirms you can join then it is fine for me

again, its NOT needed pulseaudio

proton run ./Astro/Binaries/Win64/AstroServer-Win64-Shipping.exe
thats my startup ;) without any pulseaudio

chrome_oxsGJ2shFC
chrome_jWFPpFKSHK

Video of login:
https://www.youtube.com/watch?v=znd5VSYc62A

Server Check:
https://servercheck.spycibot.com/?url=5.199.133.230:27013

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

@Melethainiel found a problem; you must add

[SystemSettings]
net.AllowEncryption=False

also on serverside

@QuintenQVD0
Copy link
Collaborator

@Melethainiel found a problem; you must add

[SystemSettings]
net.AllowEncryption=False

also on serverside

That was automaticly done if you used my egg that downloaded the config. As i included that

@Melethainiel
Copy link
Contributor Author

Melethainiel commented Feb 20, 2023

@QuintenQVD0 @gOOvER I've already added the fix in the ini parser
image

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

@QuintenQVD0 @gOOvER I've already added the fix in the ini parser image

Fix works fine :)

@gOOvER
Copy link
Contributor

gOOvER commented Feb 20, 2023

That was automaticly done if you used my egg that downloaded the config. As i included that

Why do you want him to use your egg all the time? Somehow I don't understand that. He wrote the Astroneer egg that worked and yours was in large parts from him anyway.

You don't have to download the whole config every time, if one line in the parser does it too.

Just my 2 cents

Copy link
Contributor

@gOOvER gOOvER left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Egg works fine.
Proof of working:
#2153 (comment)

@QuintenQVD0
Copy link
Collaborator

I just pointed it out. Normaly the file parser should not be used to add lines to a config file but fine. If we ever get a issue with i have a error about the sound then i just ping both of you.

@QuintenQVD0
Copy link
Collaborator

@Melethainiel i merge it but you forgot the main readme

@Melethainiel
Copy link
Contributor Author

@Melethainiel i merge it but you forgot the main readme

my bad, I've just added it

@QuintenQVD0 QuintenQVD0 merged commit c7d56db into pelican-eggs:master Feb 20, 2023
@AeonLucid
Copy link

AeonLucid commented Jun 7, 2023

I can not connect to the server created from this egg. I saw an audio error so I tried the startup command pulseaudio --daemonize=true; proton run .\/Astro\/Binaries\/Win64\/AstroServer-Win64-Shipping.exe but that did not work either. I do see a spike in the network traffic graph on the pterodactyl panel when attempting to connect, both inbound and outbound. But it still times out.

@Melethainiel
Copy link
Contributor Author

@AeonLucid have you edit the config file on your computer too ?

\AppData\Local\Astro\Saved\Config\WindowsNoEditor\Engine.ini

[SystemSettings]
net.AllowEncryption=False 

@gOOvER
Copy link
Contributor

gOOvER commented Jun 7, 2023

I can not connect to the server created from this egg. I saw an audio error so I tried the startup command pulseaudio --daemonize=true; proton run .\/Astro\/Binaries\/Win64\/AstroServer-Win64-Shipping.exe but that did not work either. I do see a spike in the network traffic graph on the pterodactyl panel when attempting to connect, both inbound and outbound. But it still times out.

Egg works fine. Please read the readme before commenting

@QuintenQVD0
Copy link
Collaborator

QuintenQVD0 commented Jun 7, 2023

also don't use this for help, come to the discord for that.

@pelican-eggs pelican-eggs locked and limited conversation to collaborators Jun 7, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants