更新日志
[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"
}
]
}