威尼斯解放 v1.0.0

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

更新日志

批量导入

版本内容

{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": "https://eggs.pterodactyl.top/eggs/257/download/egg-venice-unleashed.json"
    },
    "exported_at": "2026-05-09T05:07:31+00:00",
    "name": "Venice Unleashed",
    "author": "red_thirten@yahoo.com",
    "description": "Venice Unleashed (VU) is a community-oriented Battlefield 3 custom server & modding platform that gives you back control of your gaming experience. This Egg requires a valid VU `server.key` file, and requires Battlefield 3 client files (from a legal copy of the game) to be internally mounted to `/bf3`.",
    "features": [],
    "docker_images": {
        "Wine Latest (Recommended)": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:wine_latest",
        "Wine Staging": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/yolks:wine_staging"
    },
    "file_denylist": [],
    "startup": "[ -f /bf3/bf3.exe ] || { echo \"BF3 is not mounted properly! Exiting.\"; exit 1; }; [ -f ./vu/instance/server.key ] || { echo \"Missing 'vu/instance/server.key'! Exiting.\"; exit 1; }; tok=\"$LIC_PATH\"/token.txt; [ \"$(cat \"$tok\" 2>/dev/null)\" != \"$EA_TOKEN\" ] && { rm -f \"$LIC_PATH\"/*.dlf; echo \"$EA_TOKEN\" > \"$tok\"; }; if ! compgen -G \"$LIC_PATH\"/*.dlf >/dev/null; then wine ./vu/client/vu.com -gamepath /bf3 -activate -ea_token \"$EA_TOKEN\"; fi; wine ./vu/client/vu.com -gamepath /bf3 -serverInstancePath \"$(winepath -w ~/vu/instance)\" -server -dedicated -headless $( [ {{AUTO_UPDATE}} = 0 ] && echo -noUpdate ) -{{SERVER_FREQUENCY}} -maxPlayers {{MAX_PLAYERS}} -listen 0.0.0.0:{{SERVER_PORT}} -mHarmonyPort {{HARMONY_PORT}} ${RCON_PORT:+-RemoteAdminPort 0.0.0.0:{{RCON_PORT}}} ${JOIN_HOST:+-joinhost {{JOIN_HOST}}} $( [ {{UNLISTED}} = 1 ] && echo -unlisted ) $( [ {{HIGH_RES_TERRAIN}} = 1 ] && echo -highResTerrain ) $( [ {{DISABLE_TERRAIN_INTERP}} = 1 ] && echo -disableTerrainInterp ) $( [ {{SKIP_CHECKSUM}} = 1 ] && echo -skipChecksum )",
    "config": {
        "files": "{\n    \"vu/instance/Admin/Startup.txt\": {\n        \"parser\": \"file\",\n        \"find\": {\n            \"admin.password\": \"admin.password \\\"{{server.build.env.RCON_PASSWORD}}\\\"\",\n            \"vars.serverName\": \"vars.serverName \\\"{{server.build.env.SERVER_NAME}}\\\"\",\n            \"vars.gamePassword\": \"vars.gamePassword \\\"{{server.build.env.SERVER_PASSWORD}}\\\"\"\n        }\n    }\n}",
        "startup": "{\n    \"_comment\": \"'now accepting connections' with required Wine control characters\",\n    \"done\": \"n\\u001b[?25h\\u001b[?25lo\\u001b[?25h\\u001b[?25lw\\u001b[?25h\\u001b[?25l\\u001b[K\\u001b[1C\\u001b[?25h\\u001b[?25la\\u001b[?25h\\u001b[?25lc\\u001b[?25h\\u001b[?25lc\\u001b[?25h\\u001b[?25le\\u001b[?25h\\u001b[?25lp\\u001b[?25h\\u001b[?25lt\\u001b[?25h\\u001b[?25li\\u001b[?25h\\u001b[?25ln\\u001b[?25h\\u001b[?25lg\\u001b[?25h\\u001b[?25l\\u001b[K\\u001b[1C\\u001b[?25h\\u001b[?25lc\\u001b[?25h\\u001b[?25lo\\u001b[?25h\\u001b[?25ln\\u001b[?25h\\u001b[?25ln\\u001b[?25h\\u001b[?25le\\u001b[?25h\\u001b[?25lc\\u001b[?25h\\u001b[?25lt\\u001b[?25h\\u001b[?25li\\u001b[?25h\\u001b[?25lo\\u001b[?25h\\u001b[?25ln\\u001b[?25h\\u001b[?25ls\"\n}",
        "logs": "{}",
        "stop": "^C"
    },
    "scripts": {
        "installation": {
            "script": "#!/bin/bash\n\n# File: Pterodactyl Venice Unleashed Egg - egg-pterodactyl-venice-unleashed.json\n# Authors: Red-Thirten\n# Date: 2026/05/08\n# License: MIT License\n\nexport HOME=/mnt/server\n\n[ ! -d $HOME ] && mkdir $HOME\ncd $HOME\n\n# Remove old installation if present (except for VU instance folder to keep configs)\n[ -d .cache ] && rm -rf .cache\n[ -d .config ] && rm -rf .config\n[ -d .local ] && rm -rf .local\n[ -d .wine ] && rm -rf .wine\n[ -f .wget-hsts ] && rm .wget-hsts\n[ -d vu/client ] && rm -rf vu/client\n\n# Make VU required directories\nmkdir -p vu/{client,instance}\nmkdir -p \"${LIC_PATH}\"\n\n# Validate VU download URL\nif ! curl --silent --head --fail ${DOWNLOAD_URL} > /dev/null; then\n    echo -e \"\\nThe VU Server Download URL is unreachable: ${DOWNLOAD_URL}\\n\"\n    exit 1\nfi\n\n# Download, unzip, and verify VU server files\ncd $HOME/vu/client\necho -e \"Downloading VU server files...\"\ncurl -L ${DOWNLOAD_URL} -o ${DOWNLOAD_URL##*/}\necho -e \"Unzipping VU server files...\"\nunzip ${DOWNLOAD_URL##*/}\nif [ ! -f vu.com ]; then\n    echo -e \"\\nFailed to download/install VU server files from: ${DOWNLOAD_URL}\\n\"\n    exit 1\nelse\n    rm ${DOWNLOAD_URL##*/}\nfi\n\n# Create default config files if they are missing\ncd $HOME/vu/instance\nmkdir -p Admin/Mods\ncd Admin\n[ ! -f BanList.txt ] && touch BanList.txt\n[ ! -f ModList.txt ] && touch ModList.txt\nif [[ ! -f MapList.txt ]]; then\n    cat > MapList.txt <<EOF\n# -------------------------------------------------------------------------------------------------------------------------\n# This file defines the map rotation of the server. This means that it tells the server which map to load first and\n# on which gamemode, how many rounds to run, and what's the next map to load once the game ends.\n# \n# Every map is specified in a new line in the following format:\n# MapID GamemodeID Rounds\n# \n# Full list of the map and gamemode IDs:\n# https://docs.veniceunleashed.net/hosting/maps\n# -------------------------------------------------------------------------------------------------------------------------\n\nMP_Subway ConquestLarge0 1\nMP_013 TeamDeathMatch0 1\nEOF\nfi\nif [[ ! -f Startup.txt ]]; then\n    cat > Startup.txt <<EOF\n# -------------------------------------------------------------------------------------------------------------------------\n# This file is used to configure to the server upon startup. This is done by using specific configuration variables\n# followed by a relevant value. Each variable is specified in a new line.\n# \n# Full list of configuration variables and commands:\n# https://docs.veniceunleashed.net/hosting/commands\n# https://github.com/dcodeIO/BattleCon/blob/master/eadocs/BF3/BF3%20PC%20Server%20Remote%20Administration%20Protocol.pdf\n# -------------------------------------------------------------------------------------------------------------------------\n\n# These variables are managed by the panel. Do not change or remove them!\nadmin.password \"${RCON_PASSWORD}\"\nvars.serverName \"${SERVER_NAME}\"\nvars.gamePassword \"${SERVER_PASSWORD}\"\n\n# Add additional variables below if desired\n\nEOF\nfi\n\n\necho -e \"\\nVU Successfully Installed!\"",
            "container": "registry.cn-shanghai.aliyuncs.com/pterodactyl-images/installers:debian",
            "entrypoint": "/bin/bash"
        }
    },
    "variables": [
        {
            "name": "[Host] Harmony Port",
            "description": "Required port the VU server should listen for Monitored Harmony connections on.",
            "env_variable": "HARMONY_PORT",
            "default_value": "",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|integer|between:1024,65536",
            "field_type": "text"
        },
        {
            "name": "[Host] Join Host",
            "description": "Specifies a hostname clients will use to connect to this server (advertised by the Zeus master server). Useful for hosts utilizing DDNS, and/or for LAN clients connecting via DNS redirection (only way to connect locally). Hostname should NOT include \"http[s]://\" prefix. Leave blank to use public IP instead.",
            "env_variable": "JOIN_HOST",
            "default_value": "",
            "user_viewable": true,
            "user_editable": false,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "EA Auth Token",
            "description": "Can be obtained on your local Windows computer that has: EA App / Origin installed & running, BF3 installed, VU installed and VU account linked to EA/Origin account. Run the \"Activate BF3\" shortcut in the Start Menu, or run `vu.exe -activate -lsx` in a Command Prompt (current working directory must be the VU client folder). Copy the displayed token and paste it here. NOTE: This token will occasionally expire, causing the server to crash on startup. If this happens, simply regenerate a new token and paste it here.",
            "env_variable": "EA_TOKEN",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "Automatic Updates",
            "description": "Enables VU automatic updater. (Use with caution; there have been reports of this sometimes crashing the server on startup if there is an update)",
            "env_variable": "AUTO_UPDATE",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "Server Name",
            "description": "Name of the server, as it will appear in the master server list.",
            "env_variable": "SERVER_NAME",
            "default_value": "My incredible VU server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:63",
            "field_type": "text"
        },
        {
            "name": "Server Password",
            "description": "Password clients must enter to join the server. Leave blank to have no password.",
            "env_variable": "SERVER_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:16",
            "field_type": "text"
        },
        {
            "name": "Maximum Player Count",
            "description": "Sets the maximum players that are allowed to set with vars.maxPlayers & vars.maxSpectators combined.",
            "env_variable": "MAX_PLAYERS",
            "default_value": "64",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|min:1",
            "field_type": "text"
        },
        {
            "name": "Server Frequency",
            "description": "'30' = 30Hz (Default) | 'high60' = 60Hz High frequency mode | 'high120' = 120Hz High frequency mode",
            "env_variable": "SERVER_FREQUENCY",
            "default_value": "30",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:30,high60,high120",
            "field_type": "text"
        },
        {
            "name": "[RCON] RCON Port",
            "description": "Optional port used to connect to the server via RCON (recommended client is Procon). Leave blank to disable RCON.",
            "env_variable": "RCON_PORT",
            "default_value": "",
            "user_viewable": true,
            "user_editable": false,
            "rules": "nullable|integer|between:1024,65536",
            "field_type": "text"
        },
        {
            "name": "[RCON] RCON Password",
            "description": "Password used to authenticate with RCON. (No username is required and can be left blank when connecting with a client).",
            "env_variable": "RCON_PASSWORD",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:16",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Disable Server Listing",
            "description": "Makes the server not show up in the master server list. Unlisted servers can only be joined by the `connect` console command or via the `vu://join/server-id` URL scheme, which can also be added as a launch argument to vu.exe to auto-join as soon as the client loads.",
            "env_variable": "UNLISTED",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Enable High Resolution Terrain",
            "description": "Useful for extending maps beyond their original play area.",
            "env_variable": "HIGH_RES_TERRAIN",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Disable Terrain Interpolation",
            "description": "Disables interpolation between different terrain LODs.",
            "env_variable": "DISABLE_TERRAIN_INTERP",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "[Advanced] Skip Checksum",
            "description": "Disables level checksum validation on client connection.",
            "env_variable": "SKIP_CHECKSUM",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean",
            "field_type": "text"
        },
        {
            "name": "[System] VU Server Download URL",
            "description": "Official URL provided by VU to download zipped server files. (Should not be changed unless you know what you are doing)",
            "env_variable": "DOWNLOAD_URL",
            "default_value": "https://veniceunleashed.net/files/vu.zip",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string",
            "field_type": "text"
        },
        {
            "name": "[System] EA License Path",
            "description": "Path to where EA `.dlf` license files are stored for use in VU server activation. Should not be changed.",
            "env_variable": "LIC_PATH",
            "default_value": "./.wine/drive_c/ProgramData/Electronic Arts/EA Services/License",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|in:./.wine/drive_c/ProgramData/Electronic Arts/EA Services/License",
            "field_type": "text"
        },
        {
            "name": "[System] WINEDEBUG",
            "description": "Sets the Wine debug level. Rarely needs to be changed.",
            "env_variable": "WINEDEBUG",
            "default_value": "-all",
            "user_viewable": false,
            "user_editable": false,
            "rules": "nullable|string",
            "field_type": "text"
        },
        {
            "name": "[System] WINETRICKS_RUN",
            "description": "Installs the required Visual C++ 2008 runtime via winetricks. Should not be changed.",
            "env_variable": "WINETRICKS_RUN",
            "default_value": "vcrun2008",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|in:vcrun2008",
            "field_type": "text"
        },
        {
            "name": "[System] WINEARCH",
            "description": "Sets the Wine prefix to use WoW64 (Windows 32-bit on Windows 64-bit), which is required by VU. Should not be changed.",
            "env_variable": "WINEARCH",
            "default_value": "wow64",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|string|in:wow64",
            "field_type": "text"
        }
    ]
}