diff --git a/game_eggs/steamcmd_servers/space_engineers/README.md b/game_eggs/steamcmd_servers/space_engineers/README.md index 6994bec6..ada8b0f8 100644 --- a/game_eggs/steamcmd_servers/space_engineers/README.md +++ b/game_eggs/steamcmd_servers/space_engineers/README.md @@ -1,14 +1,30 @@ # Space Engineers -Space Engineers is a voxel-based sandbox game set in space and on planets. +### Author & Contributers +| Name | Github Profile | +| ------------- |-------------| +| TuEye | https://github.com/TuEye | +| gOOvER | https://github.com/gOOvER | -Many parts of this egg are based on the work of [mmmaxwwwell](https://github.com/mmmaxwwwell/space-engineers-dedicated-docker-linux). A thank you therefore goes to him. + +## Description +Space Engineers is a voxel-based sandbox game set in space and on planets. **NOTE** Because of the winetricks installation, the install process could take some time. Likewise, the first start of the server takes its time. When installed, the Server loads a base World and config from this repo. New world must be generated with the Windows Dedicated Server and then uploaded to the /config/Saves folder. -Everything which is not defined in a variable could be edited directy in the config file /config/SpaceEngineers-Dedicated.cfg. +Everything which is not defined in a variable could be edited directy in the config file /config/SpaceEngineers-Dedicated.cfg and config/Saves/{{WORLD}}/Sandbox.sbc + +## Server Ports + +Default server ports are listed below, but the Main, STEAm and API port can be any port. + +| Port | default | +|-------|---------| +| Game | 27016 | +| Steam | 8766 | +| API | 8081 | ## Minumum server settings @@ -22,10 +38,6 @@ Based on the information provided by the developer: [See here](https://www.space This server uses about 7GB of diskspace. -## Server Ports +## Credits -| Port | default | -|-------|---------| -| Game | 27016 | -| Steam | 8766 | -| API | 8081 | +Many parts of this egg are based on the work of [mmmaxwwwell](https://github.com/mmmaxwwwell/space-engineers-dedicated-docker-linux). A thank you therefore goes to him. \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/space_engineers/SpaceEngineers-Dedicated.cfg b/game_eggs/steamcmd_servers/space_engineers/SpaceEngineers-Dedicated.cfg index 1679bc81..2c5b4bdf 100644 --- a/game_eggs/steamcmd_servers/space_engineers/SpaceEngineers-Dedicated.cfg +++ b/game_eggs/steamcmd_servers/space_engineers/SpaceEngineers-Dedicated.cfg @@ -10,6 +10,7 @@ PUBLIC 4 56 + 32 5 0 0 @@ -122,8 +123,21 @@ 99 false true + false + 0 + 0 + 0 + true + false + 1 + true + 1 + false + 5 + false + true - C:\Users\USERNAME\AppData\Roaming\SpaceEngineersDedicated\Saves\World + C:\Users\USERNAME\AppData\Roaming\SpaceEngineersDedicated\Saves\World\Sandbox.sbc 0.0.0.0 8766 27016 @@ -131,7 +145,7 @@ 0 - + /> World false false @@ -149,10 +163,10 @@ - O+61kcmfFdESpxZr3sQdYQ== + cIflzwuTl3iy1jYulTRNgw== false - fw8j74YGyC9HnbVWwuyRSA== + jrVRQIvlBI8OSsuzwZNzVw== 8080 30 @@ -164,4 +178,8 @@ steam false + true + 30 + 0.5 + 60 \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/space_engineers/World.zip b/game_eggs/steamcmd_servers/space_engineers/World.zip index 4925919a..2c99489d 100644 Binary files a/game_eggs/steamcmd_servers/space_engineers/World.zip and b/game_eggs/steamcmd_servers/space_engineers/World.zip differ diff --git a/game_eggs/steamcmd_servers/space_engineers/egg-space-engineers.json b/game_eggs/steamcmd_servers/space_engineers/egg-space-engineers.json index c0cac4fa..970ad404 100644 --- a/game_eggs/steamcmd_servers/space_engineers/egg-space-engineers.json +++ b/game_eggs/steamcmd_servers/space_engineers/egg-space-engineers.json @@ -1,21 +1,21 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-09-15T18:24:11-04:00", + "exported_at": "2022-11-05T17:28:33+01:00", "name": "Space Engineers", "author": "tueye@tuworld.de", "description": "Space Engineers is a voxel-based sandbox game set in space and on planets.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_wine-5" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, "file_denylist": [], - "startup": "cd \/home\/container\/DedicatedServer64\/; wine \/home\/container\/DedicatedServer64\/SpaceEngineersDedicated.exe -path Z:\\\\home\\\\container\\\\config -noconsole -ignorelastsession", + "startup": "winetricks sound=disabled; export WINEARCH=\"win64\"; export WINEDLLOVERRIDES=\"mscoree=n,b;mshtml=n,b\"; wine \/home\/container\/DedicatedServer64\/SpaceEngineersDedicated.exe -path Z:\\\\home\\\\container\\\\config -noconsole -ignorelastsession", "config": { "files": "{\r\n \"config\/SpaceEngineers-Dedicated.cfg\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyConfigDedicated.SessionSettings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyConfigDedicated.SessionSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyConfigDedicated.SessionSettings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyConfigDedicated.LoadWorld\": \"Z:\\\\home\\\\container\\\\config\\\\Saves\\\\{{server.build.env.WORLD_NAME}}\\\\Sandbox.sbc\",\r\n \"MyConfigDedicated.ServerPort\": \"{{server.build.default.port}}\",\r\n \"MyConfigDedicated.SteamPort\": \"{{server.build.env.STEAM_PORT}}\",\r\n \"MyConfigDedicated.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"MyConfigDedicated.WorldName\": \"{{server.build.env.WORLD_NAME}}\",\r\n \"MyConfigDedicated.ServerDescription\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"MyConfigDedicated.RemoteApiEnabled\": \"{{server.build.env.REMOTEAPI_ENABLE}}\",\r\n \"MyConfigDedicated.RemoteApiPort\": \"{{server.build.env.REMOTEAPI_PORT}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Game ready...\"\r\n}", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n## Define variables\r\ndlurl=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/space_engineers\"\r\nexport HOME=\/mnt\/server\r\n\r\n## Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates libsdl2-2.0-0:i386 cabextract\r\napt install -y --install-recommends wine wine64 xvfb\r\n\r\n## download and install steamcmd\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\r\nchown -R root:root \/mnt\r\n\r\n## Install game using steamcmd\r\n.\/steamcmd.sh +login anonymous +@sSteamCmdForcePlatformType windows +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Create world and config\r\nmkdir -p $HOME\/config\/Saves\r\nif [ ! -d $HOME\/config\/Saves\/World ]\r\nthen\r\n curl $dlurl\/World.zip -o \/tmp\/World.zip\r\n unzip \/tmp\/World.zip -d $HOME\/config\/Saves\/\r\nfi\r\nif [ ! -f $HOME\/config\/SpaceEngineers-Dedicated.cfg ]; then curl $dlurl\/SpaceEngineers-Dedicated.cfg -o $HOME\/config\/SpaceEngineers-Dedicated.cfg; fi\r\n\r\n## Install WineTricks\r\nexport DISPLAY=:0.0\r\nexport WINEPREFIX=$HOME\/.wine\r\nrm -r $HOME\/.wine\r\nrm -r $HOME\/.cache\r\nmkdir -p $HOME\/.wine\r\nmkdir \/tmp\/winetricks\r\ncurl https:\/\/raw.githubusercontent.com\/Winetricks\/winetricks\/master\/src\/winetricks -o \/tmp\/winetricks\/winetricks\r\nchmod +x \/tmp\/winetricks\/winetricks\r\nXvfb :0 -screen 0 1024x768x16 &\r\nenv WINEDLLOVERRIDES=\"mscoree=d;mshtml=d\" wineboot --init --force \/nogui\r\nenv \/tmp\/winetricks\/winetricks -q vcrun2017 \r\nenv \/tmp\/winetricks\/winetricks -q vcrun2013 \r\nenv \/tmp\/winetricks\/winetricks -q sound=disabled \r\nenv \/tmp\/winetricks\/winetricks -q corefonts\r\nenv \/tmp\/winetricks\/winetricks -q --force dotnet48", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n## Define variables\r\ndlurl=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/space_engineers\"\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\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\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\r\n## install game using steamcmd\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\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\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## Create world and config\r\nmkdir -p $HOME\/config\/Saves\r\nif [ ! -d $HOME\/config\/Saves\/World ]\r\nthen\r\n curl $dlurl\/World.zip -o World.zip\r\n unzip World.zip -d $HOME\/config\/Saves\/\r\nfi\r\nif [ ! -f $HOME\/config\/SpaceEngineers-Dedicated.cfg ]; then curl $dlurl\/SpaceEngineers-Dedicated.cfg -o $HOME\/config\/SpaceEngineers-Dedicated.cfg; fi\r\n\r\nrm -fR $HOME\/World.zip\r\n\r\n# copy libs for mod support\r\ncp -v $HOME\/steamclient.dll ..\/DedicatedServer64\/\r\ncp -v $HOME\/steamclient64.dll ..\/DedicatedServer64\/\r\ncp -v $HOME\/tier0_s.dll ..\/DedicatedServer64\/\r\ncp -v $HOME\/tier0_s64.dll ..\/DedicatedServer64\/\r\ncp -v $HOME\/vstdlib_s.dll ..\/DedicatedServer64\/\r\ncp -v $HOME\/vstdlib_s64.dll ..\/DedicatedServer64\/\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -37,7 +37,8 @@ "default_value": "298740", "user_viewable": false, "user_editable": false, - "rules": "required|numeric|digits_between:1,6" + "rules": "required|numeric|digits_between:1,6", + "field_type": "text" }, { "name": "Server Name", @@ -46,7 +47,8 @@ "default_value": "Pterodactyl Space Engineer Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64" + "rules": "required|string|max:64", + "field_type": "text" }, { "name": "World Name", @@ -55,7 +57,8 @@ "default_value": "World", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Description", @@ -64,7 +67,8 @@ "default_value": "Pterodactyl Space Engineer Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:200" + "rules": "required|string|max:200", + "field_type": "text" }, { "name": "Game Mode", @@ -73,7 +77,8 @@ "default_value": "Survival", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:Survival,Creative" + "rules": "required|string|in:Survival,Creative", + "field_type": "text" }, { "name": "Maximum Players", @@ -82,7 +87,8 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|digits_between:1,3" + "rules": "required|numeric|digits_between:1,16", + "field_type": "text" }, { "name": "Enable Saving", @@ -91,7 +97,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "Auto Save Interval", @@ -100,7 +107,8 @@ "default_value": "5", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|digits_between:1,3" + "rules": "required|numeric|digits_between:1,3", + "field_type": "text" }, { "name": "Steam Port", @@ -109,7 +117,8 @@ "default_value": "8766", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|max:65535" + "rules": "required|numeric|max:65535", + "field_type": "text" }, { "name": "Enable Remote Api", @@ -118,7 +127,8 @@ "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "Remote Api Port", @@ -127,25 +137,8 @@ "default_value": "8081", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|max:65535" - }, - { - "name": "WINEARCH", - "description": "WINEARCH. win32 or win64", - "env_variable": "WINEARCH", - "default_value": "win64", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|in:win32,win64" - }, - { - "name": "WINEPREFIX", - "description": "WINEPREFIX", - "env_variable": "WINEPREFIX", - "default_value": "\/home\/container\/.wine", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:64" + "rules": "required|numeric|max:65535", + "field_type": "text" }, { "name": "WINEDEBUG", @@ -154,7 +147,8 @@ "default_value": "-all", "user_viewable": false, "user_editable": false, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Windows Install", @@ -163,7 +157,28 @@ "default_value": "1", "user_viewable": false, "user_editable": false, - "rules": "required|string|in:1" + "rules": "required|string|in:1", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2013 vcrun2017 corefonts dotnet48", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] -} +} \ No newline at end of file