_comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL' meta: version: PLCN_v3 update_url: null exported_at: '2026-05-05T12:54:24+00:00' name: 'Space Engineers - Torch Server' author: eggs@goover.dev uuid: d30710d2-c59a-4ea2-bb20-7c0ba2ad6abe description: "Torch is the successor to SE Server Extender and gives server admins the tools they need to keep\ntheir Space Engineers servers running smoothly. It features a user interface with live management\ntools and a plugin system so you can run your server exactly how you'd like. Torch is still in early\ndevelopment so there may be bugs and incomplete features.\r\n\r\n!!!!! DO NOT CANCEL THE FIRST START, OR YOU NEED TO DELETE THE SERVER AND CREATE FROM SCRATCH !!!!" image: null tags: - steamcmd features: - steam_disk_space docker_images: 'ghcr.io/parkervcp/yolks:wine_latest': 'ghcr.io/parkervcp/yolks:wine_latest' file_denylist: { } startup_commands: Default: 'export WINEDLLOVERRIDES="mscoree=n,b;mshtml=n,b"; wine /home/container/Torch.Server.exe -noupdate -nogui -console' config: files: Instance/SpaceEngineers-Dedicated.cfg: parser: xml find: MyConfigDedicated.SessionSettings.GameMode: '{{server.environment.SERVER_MODE}}' MyConfigDedicated.SessionSettings.MaxPlayers: '{{server.environment.MAX_PLAYERS}}' MyConfigDedicated.SessionSettings.AutoSaveInMinutes: '{{server.environment.SAVE_INTERVAL}}' MyConfigDedicated.SessionSettings.EnableSaving: '{{server.environment.SAVE_ENABLED}}' MyConfigDedicated.LoadWorld: 'Z:\home\container\Instance\Saves\{{server.environment.WORLD_NAME}}' MyConfigDedicated.ServerPort: '{{server.allocations.default.port}}' MyConfigDedicated.SteamPort: '{{server.environment.STEAM_PORT}}' MyConfigDedicated.ServerName: '{{server.environment.SERVER_NAME}}' MyConfigDedicated.WorldName: '{{server.environment.WORLD_NAME}}' MyConfigDedicated.ServerDescription: '{{server.environment.SERVER_DESC}}' MyConfigDedicated.RemoteApiEnabled: '{{server.environment.REMOTEAPI_ENABLE}}' MyConfigDedicated.RemoteApiPort: '{{server.environment.REMOTEAPI_PORT}}' config/Saves/World/Sandbox.sbc: parser: xml find: MyConfigDedicated.SessionSettings.GameMode: '{{server.environment.SERVER_MODE}}' MyConfigDedicated.SessionSettings.MaxPlayers: '{{server.environment.MAX_PLAYERS}}' MyConfigDedicated.SessionSettings.AutoSaveInMinutes: '{{server.environment.SAVE_INTERVAL}}' MyConfigDedicated.SessionSettings.EnableSaving: '{{server.environment.SAVE_ENABLED}}' startup: done: 'Game ready...' logs: { } stop: ^C scripts: installation: script: |- #!/bin/bash # Installation Script # ## Define variables dlurl="https://raw.githubusercontent.com/parkervcp/eggs/master/game_eggs/steamcmd_servers/space_engineers/default" # Install packages. Default packages below are not required if using our existing install image thus speeding up the install process. #apt -y update #apt -y install curl lib32gcc-s1 ca-certificates unzip ## just in case someone removed the defaults. if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then echo -e "steam user is not set. " echo -e "Using anonymous user. " STEAM_USER=anonymous STEAM_PASS="" STEAM_AUTH="" else echo -e "user set to ${STEAM_USER}" fi ## download and install steamcmd cd /tmp mkdir -p /mnt/server/steamcmd curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing cd /mnt/server/steamcmd # SteamCMD fails otherwise for some reason, even running as root. # This is changed at the end of the install process anyways. chown -R root:root /mnt export HOME=/mnt/server ## install game using steamcmd ./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 ## set up 32 bit libraries mkdir -p /mnt/server/.steam/sdk32 cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so ## set up 64 bit libraries mkdir -p /mnt/server/.steam/sdk64 cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so ## Download Torch and unpack cd /mnt/server/ curl -sSL -o torch-server.zip https://build.torchapi.com/job/Torch/job/master/lastSuccessfulBuild/artifact/bin/torch-server.zip unzip -o torch-server.zip -d /mnt/server/ rm -fR $HOME/torch-server.zip ## Create world and Instance mkdir -p $HOME/Instance/Saves if [ ! -d $HOME/Instance/Saves/World ] then curl $dlurl/World.zip -o World.zip unzip -o World.zip -d $HOME/Instance/Saves/ fi if [ ! -f $HOME/Instance/SpaceEngineers-Dedicated.cfg ]; then curl $dlurl/SpaceEngineers-Dedicated.cfg -o $HOME/Instance/SpaceEngineers-Dedicated.cfg; fi ## install end echo "-----------------------------------------" echo "Installation completed..." echo "-----------------------------------------" container: 'ghcr.io/parkervcp/installers:debian' entrypoint: bash variables: - name: 'APP ID' description: 'The ID corresponding to the game to download.' env_variable: SRCDS_APPID default_value: 298740 user_viewable: false user_editable: false rules: - required - numeric - 'in:298740' sort: 1 - name: 'Auto Save Interval' description: 'Time between auto saves specified in minutes' env_variable: SAVE_INTERVAL default_value: 5 user_viewable: true user_editable: true rules: - required - numeric - 'digits_between:1,3' sort: 2 - name: 'Auto Update' description: 'Whether or not to enable auto update: 1 = enable, 0 = disable.' env_variable: AUTO_UPDATE default_value: 1 user_viewable: true user_editable: true rules: - boolean sort: 11 - name: 'Enable Remote API' description: 'Enable Remote API' env_variable: REMOTEAPI_ENABLE default_value: false user_viewable: true user_editable: true rules: - required - string - 'in:true,false' sort: 3 - name: 'Enable Saving' description: '' env_variable: SAVE_ENABLED default_value: true user_viewable: true user_editable: true rules: - required - string - 'in:true,false' sort: 4 - name: 'Game Mode' description: 'Game Mode setting: Survival, Creative' env_variable: SERVER_MODE default_value: Survival user_viewable: true user_editable: true rules: - required - string - 'in:Survival,Creative' sort: 5 - name: 'Maximum Players' description: '' env_variable: MAX_PLAYERS default_value: 4 user_viewable: true user_editable: true rules: - required - numeric - 'digits_between:1,3' sort: 6 - name: 'Remote API Port' description: 'Remote API Port' env_variable: REMOTEAPI_PORT default_value: 8081 user_viewable: true user_editable: true rules: - required - numeric - 'max:65535' sort: 7 - name: 'Server Description' description: 'Description of the game' env_variable: SERVER_DESC default_value: 'A Pterodactyl hosted Space Engineer Server' user_viewable: true user_editable: true rules: - required - string - 'max:200' sort: 8 - name: 'Server Name' description: 'Name of the server, appears in Steam browser.' env_variable: SERVER_NAME default_value: 'A Pterodactyl hosted Space Engineer Server' user_viewable: true user_editable: true rules: - required - string - 'max:64' sort: 9 - name: 'Steam Port' description: 'Steam Port' env_variable: STEAM_PORT default_value: 8766 user_viewable: true user_editable: false rules: - required - numeric - 'max:65535' sort: 10 - name: WINDOWS_INSTALL description: '' env_variable: WINDOWS_INSTALL default_value: 1 user_viewable: false user_editable: false rules: - required - string - 'max:20' sort: 12 - name: WINEDEBUG description: '' env_variable: WINEDEBUG default_value: '-all' user_viewable: false user_editable: false rules: - required - string - 'max:20' sort: 13 - name: WINEPREFIX description: WINEPREFIX env_variable: WINEPREFIX default_value: /home/container/.wine user_viewable: false user_editable: false rules: - required - string - 'max:64' sort: 14 - name: WINETRICKS_RUN description: '' env_variable: WINETRICKS_RUN default_value: 'vcrun2022 corefonts dotnet48' user_viewable: false user_editable: false rules: - required - string sort: 15 - name: 'World Name' description: 'Name of your world (and of your save folder) DO NOT CHANGE THIS !!!!' env_variable: WORLD_NAME default_value: World user_viewable: true user_editable: false rules: - required - string - 'max:20' sort: 16