更新日志
[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/219/download/egg-fivem.json"
},
"exported_at": "2025-10-20T19:43:26+02:00",
"name": "FiveM",
"author": "parker@parkervcp.com",
"description": "由于 FiveM 最近的变更,为最新构建版本提供了一个新的 FiveM / RedM 服务端模板。",
"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": "$(pwd)/alpine/opt/cfx-server/ld-musl-x86_64.so.1 --library-path \"$(pwd)/alpine/usr/lib/v8/:$(pwd)/alpine/lib/:$(pwd)/alpine/usr/lib/\" -- $(pwd)/alpine/opt/cfx-server/FXServer +set citizen_dir $(pwd)/alpine/opt/cfx-server/citizen/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} $( [ \"$TXADMIN_ENABLE\" == \"1\" ] || printf %s '+exec server.cfg' )",
"config": {
"files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"set sv_licenseKey\": \"set sv_licenseKey {{server.build.env.FIVEM_LICENSE}}\",\r\n \"set steam_webApiKey\": \"set steam_webApiKey {{server.build.env.STEAM_WEBAPIKEY}}\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}",
"logs": "{}",
"stop": "quit"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: /mnt/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p /mnt/server/resources\r\n\r\ncd /mnt/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https://github.com/citizenfx/cfx-server-data.git /tmp\r\ncp -Rf /tmp/resources/* resources/\r\n\r\nRELEASE_PAGE=$(curl -sSL https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/)\r\nCHANGELOGS_PAGE=$(curl -sSL https://changelogs-live.fivem.net/api/changelog/versions/linux/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*/*.tar.xz\"' | grep -Eo '\".*/*.tar.xz\"' | sed 's/\\\"//g' | sed 's/\\.\\///1' | grep -i \"${FIVEM_VERSION}\" | grep -o =.* | tr -d '=')\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https://raw.githubusercontent.com/parkervcp/eggs/master/game_eggs/gta/fivem/server.cfg >>server.cfg\r\nfi\r\n\r\n# Map GAME_NAME to GAME_TYPE before writing to server.cfg\r\nif [ \"${TXHOST_GAME_NAME}\" == \"fivem\" ]; then\r\n GAME_TYPE=\"gta5\"\r\nelif [ \"${TXHOST_GAME_NAME}\" == \"redm\" ]; then\r\n GAME_TYPE=\"rdr3\"\r\nelse\r\n echo \"Invalid GAME_NAME specified: ${TXHOST_GAME_NAME}\"\r\n exit 1\r\nfi \r\n\r\nCFG_FILE=\"server.cfg\"\r\n\r\n# Only proceed if server.cfg exists\r\nif [ -f \"$CFG_FILE\" ]; then\r\n # Remove old gamename block: comment and actual line\r\n sed -i '/^# set gamename/,+1d' \"$CFG_FILE\"\r\n\r\n # Append clean new block\r\n {\r\n echo \"# set gamename\"\r\n echo \"set gamename \\\"${GAME_TYPE}\\\"\"\r\n } >> \"$CFG_FILE\"\r\nelse\r\n echo \"Warning: $CFG_FILE not found. Skipping gamename insertion.\"\r\nfi\r\n\r\nmkdir -p logs/\r\n\r\necho \"install complete\"",
"container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "FiveM 许可证",
"description": "启动服务所需。在 https://portal.cfx.re/ 获取您的密钥。",
"env_variable": "FIVEM_LICENSE",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:33",
"field_type": "text"
},
{
"name": "最大玩家数",
"description": "设置 FiveM 最大玩家数量",
"env_variable": "MAX_PLAYERS",
"default_value": "48",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:1,48",
"field_type": "text"
},
{
"name": "服务器主机名",
"description": "在服务器浏览器中显示的名称",
"env_variable": "SERVER_HOSTNAME",
"default_value": "My new FXServer!",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "fivem版本",
"description": "要安装的 fivem 版本。无效版本将默认使用推荐版本。\n\n例如 `6013-d8ae399d15680da569022f57ab7f2474d307c821`\n\n您可以从这里获取最新版本 - https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/",
"env_variable": "FIVEM_VERSION",
"default_value": "recommended",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:50",
"field_type": "text"
},
{
"name": "下载链接",
"description": "这是下载 fivem 的链接。仅用于安装脚本。您链接到的文件需要是 fx.tar.zx 文件。\n\n示例:\nhttps://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/6013-d8ae399d15680da569022f57ab7f2474d307c821/fx.tar.xz",
"env_variable": "DOWNLOAD_URL",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "Steam Web API密钥",
"description": "使用你的 Steam WebApiKey 或设置为 'none'。在 https://steamcommunity.com/dev/apikey/ 获取你的密钥。",
"env_variable": "STEAM_WEBAPIKEY",
"default_value": "none",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"field_type": "text"
},
{
"name": "txAdmin 端口",
"description": "txAdmin面板的端口",
"env_variable": "TXHOST_TXA_PORT",
"default_value": "40120",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "启用 txadmin",
"description": "启用txadmin。\n\n设为1以启用。(默认为0表示禁用)",
"env_variable": "TXADMIN_ENABLE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "游戏名称",
"description": "限制仅运行 FiveM 或 RedM 服务器。 \n设置页面将只显示下方指定游戏的相关配方! \n选项为:fivem 或 redm",
"env_variable": "TXHOST_GAME_NAME",
"default_value": "fivem",
"user_viewable": true,
"user_editable": true,
"rules": "required|in:fivem,redm",
"field_type": "text"
},
{
"name": "游戏类型",
"description": "要使用的值:gta5(对应FiveM)和rdr3(对应RedM) \n! 不要填写任何值,它会读取游戏名称变量并自动设置正确的值 !",
"env_variable": "GAME_TYPE",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "string|nullable",
"field_type": "text"
},
{
"name": "TXHOST 数据路径",
"description": "TX Admin 的位置",
"env_variable": "TXHOST_DATA_PATH",
"default_value": "/home/container/txData",
"user_viewable": false,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
}
]
}