OpenRCT2 v1.0.1

飒爽师叔 · 2026-07-01 03:55

更新日志

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

版本内容

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": "https://eggs.pterodactyl.top/eggs/240/download/egg-openrct2.json"
    },
    "exported_at": "2025-12-13T17:10:38-08:00",
    "name": "OpenRCT2",
    "author": "red_thirten@yahoo.com",
    "description": "OpenRCT2 是《过山车大亨2》(RCT2)的一个开源重实现版本,扩展了新功能,修复了Bug并提高了游戏限制。",
    "features": null,
    "docker_images": {
        "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:debian": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:debian"
    },
    "file_denylist": [],
    "startup": "./OpenRCT2/openrct2-cli --version && ./OpenRCT2/openrct2-cli host $(if {{LOAD_AUTOSAVE}} && [ -d ServerData/save/autosave/ ]; then find ServerData/save/autosave/ | sort -r | head -1; else echo \"{{SAVE_URI}}\"; fi) --port {{SERVER_PORT}} --user-data-path /home/container/ServerData/",
    "config": {
        "files": "{\r\n    \"ServerData/config.ini\": {\r\n        \"parser\": \"ini\",\r\n        \"find\": {\r\n            \"general.autosave\": \"{{server.build.env.AUTOSAVE_INTERVAL}}\",\r\n            \"general.autosave_amount\": \"{{server.build.env.AUTOSAVE_AMOUNT}}\",\r\n            \"network.player_name\": \"\\\"{{server.build.env.SERVER_PLAYER_NAME}}\\\"\",\r\n            \"network.default_port\": \"{{server.build.default.port}}\",\r\n            \"network.default_password\": \"\\\"{{server.build.env.SERVER_PASSWORD}}\\\"\",\r\n            \"network.advertise\": \"{{server.build.env.SERVER_ADVERTISE}}\",\r\n            \"network.maxplayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n            \"network.server_name\": \"\\\"{{server.build.env.SERVER_NAME}}\\\"\",\r\n            \"network.server_description\": \"\\\"{{server.build.env.SERVER_DESCRIPTION}}\\\"\",\r\n            \"network.server_greeting\": \"\\\"{{server.build.env.SERVER_GREETING}}\\\"\",\r\n            \"network.provider_name\": \"\\\"{{server.build.env.PROVIDER_NAME}}\\\"\",\r\n            \"network.provider_email\": \"\\\"{{server.build.env.PROVIDER_EMAIL}}\\\"\",\r\n            \"network.provider_website\": \"\\\"{{server.build.env.PROVIDER_WEBSITE}}\\\"\",\r\n            \"network.log_chat\": \"{{server.build.env.LOG_CHAT}}\",\r\n            \"network.log_server_actions\": \"{{server.build.env.LOG_SERVER_ACTIONS}}\",\r\n            \"network.pause_server_if_no_clients\": \"{{server.build.env.PAUSE_NO_CLIENTS}}\"\r\n        }\r\n    }\r\n}",
        "startup": "{\r\n    \"done\": \"Listening for clients on\"\r\n}",
        "logs": "{}",
        "stop": "^C"
    },
    "scripts": {
        "installation": {
            "script": "#!/bin/bash\r\n\r\n## File: Pterodactyl OpenRCT2 Egg - egg-pterodactyl-open-r-c-t2.json\r\n## Authors: David Wolfe (Red-Thirten), parkervcp\r\n## Date: 2025/12/13\r\n## License: MIT License\r\n\r\nexport HOME=/mnt/server\r\n\r\nGITHUB_PACKAGE=\"OpenRCT2/OpenRCT2\"\r\nMATCH=\"Linux-bookworm-x86_64.tar.gz\"\r\nDEFAULT_SAVE=\"https://raw.githubusercontent.com/pelican-eggs/games-standalone/master/openrct2/save.park\"\r\n\r\n## OpenRCT2 Install\r\n[ ! -d $HOME ] && mkdir $HOME\r\ncd $HOME\r\n# Remove existing installation if present\r\n[ -d OpenRCT2 ] && rm -rf OpenRCT2\r\n# Setup temp directory for downloading/building and move to it\r\n[ -d temp ] && rm -rf temp\r\nmkdir temp && cd temp\r\n\r\n# Determine if installing from source or from release\r\nif [ \"${VERSION}\" == \"develop\" ]; then\r\n    # Get required packages\r\n    apt -y update\r\n    apt -y install --no-install-recommends \\\r\n        git \\\r\n        make \\\r\n        cmake \\\r\n        gcc \\\r\n        build-essential \\\r\n        libicu-dev \\\r\n        pkg-config \\\r\n        libcurl4-openssl-dev \\\r\n        libcrypto++-dev \\\r\n        libpng-dev \\\r\n        libssl-dev \\\r\n        libzip-dev \\\r\n        duktape-dev \\\r\n        nlohmann-json3-dev \\\r\n        libzstd-dev \\\r\n        libsdl2-dev \\\r\n        libspeexdsp-dev \\\r\n        libflac-dev \\\r\n        libvorbis-dev\r\n    echo -e \"\\nInstalling/Updating OpenRCT2 from source...\\n\"\r\n    \r\n    # Clone the branch and check if successful\r\n    git clone --branch \"${VERSION}\" https://github.com/${GITHUB_PACKAGE}\r\n    if [ ! -d OpenRCT2 ]; then\r\n        echo -e \"\\nFailed to clone \\\"${VERSION}\\\" branch from https://github.com/${GITHUB_PACKAGE}\\n\"\r\n        exit 1\r\n    fi\r\n    \r\n    cd OpenRCT2\r\n    mkdir build && cd build\r\n    # Prepare CMake files for a lightweight and CLI-only build of OpenRCT2, using the appropriate flags\r\n    # (The `-DDISABLE_GUI=ON` flag is currently broken & has been temp. removed. This requires 4 addl. UI packages to be installed.)\r\n    cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DPORTABLE=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_FLAGS=\"-g -gz\" -DDISABLE_TTF=ON -DDISABLE_GOOGLE_BENCHMARK=ON -DDISABLE_DISCORD_RPC=ON\r\n    echo -e \"\\nBuilding OpenRCT2 package from source...\\n\\tThis process can take quite some time. Grab a coffee :)\\n\"\r\n    # Build OpenRCT2\r\n    DESTDIR=. make install\r\n    # Check if build was successful\r\n    if [ ! -f usr/local/bin/openrct2-cli ]; then\r\n        echo -e \"\\nFailed to successfully build OpenRCT2!\\n\"\r\n        exit 1\r\n    fi\r\n    \r\n    # Make executable-ready package by moving compiled files to the correct locations\r\n    mkdir -p $HOME/OpenRCT2/{data,lib}\r\n    cd usr/local\r\n    mv bin/openrct2-cli $HOME/OpenRCT2/\r\n    mv bin/*.so $HOME/OpenRCT2/lib\r\n    mv share/openrct2/* $HOME/OpenRCT2/data/\r\n    # mv share/openrct2-cli/* $HOME/OpenRCT2/data/\r\n    mv share/doc $HOME/OpenRCT2/\r\n    echo -e \"\\nBuild of OpenRCT2 package complete!\"\r\nelse\r\n    echo -e \"\\nInstalling/Updating OpenRCT2 from release tag \\\"${VERSION}\\\"...\\n\"\r\n    \r\n    # This is a simple script to use the GitHub API for release versions.\r\n    # This requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (MATCH is to match the filename in some way).\r\n    # Get release info and download links\r\n    LATEST_JSON=$(curl --silent \"https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest\")\r\n    RELEASES=$(curl --silent \"https://api.github.com/repos/${GITHUB_PACKAGE}/releases\")\r\n    if [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n    else\r\n        VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n        if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n            DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n        else\r\n            DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n        fi\r\n    fi\r\n    # Download the release and check if successful\r\n    curl -L ${DOWNLOAD_URL} -o OpenRCT2.tar.gz\r\n    if [ ! -f OpenRCT2.tar.gz ]; then\r\n        echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n        exit 1\r\n    fi\r\n    \r\n    # Extract archive\r\n    tar -xvf OpenRCT2.tar.gz -C $HOME\r\n\r\n    echo -e \"\\nDownload/Update of OpenRCT2 release successful!\"\r\nfi\r\n\r\ncd $HOME\r\nrm -rf temp # Clean up temp building directory\r\n\r\n## OpenRCT2 Setup\r\n# Setup ServerData/save directory\r\n[ ! -d ServerData/save ] && mkdir -p ServerData/save\r\ncd ServerData/save\r\n# Download default save.park if missing\r\nif [ ! -f save.park ]; then\r\n    echo -e \"Downloading default save.park file from ${DEFAULT_SAVE}\"\r\n    curl -sSLO ${DEFAULT_SAVE}\r\nfi\r\n\r\necho -e \"\\nOpenRCT2 Successfully Installed!\"",
            "container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
            "entrypoint": "/bin/bash"
        }
    },
    "variables": [
        {
            "name": "存档文件",
            "description": "需要加载的存档文件(.sv4 / .sv6 / .park)。可以是文件路径,也可以是网络托管的文件URL。必须指定一个现有的存档文件;服务器无法从零生成新的场景/存档。",
            "env_variable": "SAVE_URI",
            "default_value": "ServerData/save/save.park",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|min:4",
            "field_type": "text"
        },
        {
            "name": "加载最新自动存档",
            "description": "启动服务器时,将加载最新的自动存档(假设存在)*而不是*存档文件。这对于在重启后加载公园的最新进度非常有用。设置为“false”以“锁定”公园进度,并始终在启动时加载原始存档文件。",
            "env_variable": "LOAD_AUTOSAVE",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "自动保存间隔",
            "description": "0 = 每1分钟, 1 = 每5分钟, 2 = 每15分钟, 3 = 每30分钟, 4 = 每小时, 5 = 从不",
            "env_variable": "AUTOSAVE_INTERVAL",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|in:0,1,2,3,4,5",
            "field_type": "text"
        },
        {
            "name": "自动存档保留数量",
            "description": "在覆盖并删除最旧的自动保存之前保留的自动保存数量。设置为0以禁用自动保存。",
            "env_variable": "AUTOSAVE_AMOUNT",
            "default_value": "10",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|min:0",
            "field_type": "text"
        },
        {
            "name": "最大玩家数",
            "description": "服务器允许连接的最大玩家数。",
            "env_variable": "MAX_PLAYERS",
            "default_value": "16",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|min:0",
            "field_type": "text"
        },
        {
            "name": "服务器密码",
            "description": "服务器要求客户端连接时输入密码。管理员加入无需输入密码。留空表示无密码。",
            "env_variable": "SERVER_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "宣传服务器",
            "description": "如果设置为 \"false\",服务器将不会在主服务器列表中公告,客户端必须手动连接。",
            "env_variable": "SERVER_ADVERTISE",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "如果没有客户端则暂停服务器",
            "description": "设置为“true”将使服务器在没有客户端连接时暂停模拟。",
            "env_variable": "PAUSE_NO_CLIENTS",
            "default_value": "false",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "服务器名称",
            "description": "服务器列表中显示的服务器名称。",
            "env_variable": "SERVER_NAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "服务器描述",
            "description": "服务器列表中悬停服务器时显示的服务器描述。",
            "env_variable": "SERVER_DESCRIPTION",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "服务器玩家名称",
            "description": "服务器在玩家列表中显示为一名玩家。这是它将使用的名称。",
            "env_variable": "SERVER_PLAYER_NAME",
            "default_value": "Server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "服务器问候",
            "description": "发送给所有加入的玩家的“每日消息”。",
            "env_variable": "SERVER_GREETING",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "提供者名称",
            "description": "服务器提供商名称,出现在服务器信息窗口中。",
            "env_variable": "PROVIDER_NAME",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "服务器提供商电子邮件",
            "description": "出现在服务器信息窗口中的服务器提供商电子邮件。",
            "env_variable": "PROVIDER_EMAIL",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "服务器提供商网站",
            "description": "出现在服务器信息窗口中的服务器提供商网站。",
            "env_variable": "PROVIDER_WEBSITE",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "string|nullable",
            "field_type": "text"
        },
        {
            "name": "聊天日志",
            "description": "如果你希望游戏内聊天记录被记录到文件 `~/ServerData/chatlogs` 中,请设置为 \"true\"。",
            "env_variable": "LOG_CHAT",
            "default_value": "false",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "记录服务器操作",
            "description": "如果希望将游戏内操作记录到 `~/ServerData/serverlogs` 文件中,请设置为 \"true\"。",
            "env_variable": "LOG_SERVER_ACTIONS",
            "default_value": "false",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false",
            "field_type": "text"
        },
        {
            "name": "OpenRCT2 版本",
            "description": "OpenRCT2的发布标签(版本),用于从其官方Github下载和安装(例如:\"v0.4.15\")。使用\"latest\"下载最新版本,或使用\"develop\"从最新源码构建(安装时间更长,但获得最新更新)。",
            "env_variable": "VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "[系统] 库路径",
            "description": "用于加载发布二进制文件的库的路径。很少需要更改。",
            "env_variable": "LD_LIBRARY_PATH",
            "default_value": "./OpenRCT2/lib",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string",
            "field_type": "text"
        }
    ]
}