Post Scriptum v1.0.2

飒爽师叔 · 2026-06-30 10:21

更新日志

[AI翻译] 描述、说明、JSON描述、变量

版本内容

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL",
    "meta": {
        "update_url": "https://eggs.pterodactyl.top/eggs/91/download/egg-post-scriptum.json",
        "version": "PTDL_v2"
    },
    "exported_at": "2024-06-01T00:04:36+00:00",
    "name": "Post Scriptum",
    "author": "admin@softwarenoob.com",
    "description": "《Post Scriptum》是一款以二战为主题的第一人称战术射击游戏,致力于提供真实的二战战斗体验。游戏注重历史准确性、大规模战役以及充满挑战的战场环境,要求玩家具备高度的凝聚力、沟通能力和团队协作精神。",
    "features": [
        "steam_disk_space"
    ],
    "docker_images": {
        "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/steamcmd:debian": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/steamcmd:debian"
    },
    "file_denylist": [],
    "startup": "PostScriptum/Binaries/Linux/PostScriptumServer Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}} -RCONPORT={{RCON_PORT}} -RCONPASSWORD={{RCON_PASSWORD}} -fullcrashdump -log",
    "config": {
        "files": "{\r\n    \"PostScriptum/ServerConfig/Server.cfg\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"ServerName\": \"ServerName={{server.build.env.hostname}}\",\r\n            \"MaxPlayers\": \"MaxPlayers={{server.build.env.maxplayers}}\",\r\n            \"AllowTeamChanges\": \"AllowTeamChanges={{server.build.env.allowteamchange}}\",\r\n            \"ShouldAdvertise\": \"ShouldAdvertise={{server.build.env.advertise}}\",\r\n            \"NumReservedSlots\": \"NumReservedSlots={{server.build.env.reservedslots}}\",\r\n            \"PreventTeamChangeIfUnbalanced\": \"PreventTeamChangeIfUnbalanced={{server.build.env.team_change}}\",\r\n            \"EnforceTeamBalance\": \"EnforceTeamBalance={{server.build.env.teambalance}}\",\r\n            \"RecordDemos\": \"RecordDemos={{server.build.env.demo_recording}}\"\r\n        }\r\n    }\r\n}",
        "logs": "{\r\n}",
        "startup": "{\r\n    \"done\": \"Engine Initialization\"\r\n}",
        "stop": "^C"
    },
    "scripts": {
        "installation": {
            "container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
            "entrypoint": "bash",
            "script": "#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\r\n# Image to install with is 'registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD  flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\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## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\""
        }
    },
    "variables": [
        {
            "name": "服务器查询端口",
            "description": "服务器查询端口",
            "env_variable": "QUERY_PORT",
            "default_value": "10037",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|numeric",
            "field_type": "text"
        },
        {
            "name": "RCON 端口",
            "description": "用于RCON连接的端口",
            "env_variable": "RCON_PORT",
            "default_value": "21114",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|numeric",
            "field_type": "text"
        },
        {
            "name": "RCON 密码",
            "description": "RCON连接的密码,留空以禁用。",
            "env_variable": "RCON_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|regex:/^[a-zA-Z0-9]*$/",
            "field_type": "text"
        },
        {
            "name": "自动更新",
            "description": "每次服务器启动时自动更新游戏,输入值 0 以禁用。",
            "env_variable": "AUTO_UPDATE",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "服务器名称",
            "description": "将在服务器浏览器列表中显示的名称",
            "env_variable": "hostname",
            "default_value": "Pterodactyl Server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:32",
            "field_type": "text"
        },
        {
            "name": "最大玩家数",
            "description": "设置最大玩家数量。",
            "env_variable": "maxplayers",
            "default_value": "80",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|numeric",
            "field_type": "text"
        },
        {
            "name": "允许更换队伍",
            "description": "允许玩家更换队伍 (true/false)",
            "env_variable": "allowteamchange",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "宣传服务器",
            "description": "在公共服务器浏览器列表中显示该服务器(true/false)",
            "env_variable": "advertise",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "预留位",
            "description": "预留位数量",
            "env_variable": "reservedslots",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|numeric|max:80",
            "field_type": "text"
        },
        {
            "name": "阻止队伍变更",
            "description": "这将防止玩家在队伍不平衡时更换队伍(true/false)",
            "env_variable": "team_change",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "强制队伍平衡",
            "description": "如果队伍人数不均,这将强制平衡队伍,默认情况下相差3名玩家。(true/false)",
            "env_variable": "teambalance",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "录制演示",
            "description": "这将记录玩家的演示(是/否)",
            "env_variable": "demo_recording",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "ld lib path",
            "description": "这是必需的,不要动它。",
            "env_variable": "LD_LIBRARY_PATH",
            "default_value": ".",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "应用ID",
            "description": "",
            "env_variable": "SRCDS_APPID",
            "default_value": "746200",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|in:746200",
            "field_type": "text"
        }
    ]
}