{ "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", "meta": { "version": "PLCN_v1", "update_url": "https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-standalone\/refs\/heads\/main\/venice_unleashed\/egg-venice-unleashed.json" }, "exported_at": "2025-08-07T00:32:10-07:00", "name": "Venice Unleashed", "author": "red_thirten@yahoo.com", "uuid": "67fe0922-9edc-4c3f-9d79-c9517f24b60e", "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": null, "docker_images": { "Wine Latest (Recommended)": "ghcr.io\/parkervcp\/yolks:wine_latest", "Wine Staging": "ghcr.io\/parkervcp\/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; }; if ! compgen -G \".\/.wine\/drive_c\/ProgramData\/Electronic Arts\/EA Services\/License\/\"*.dlf >\/dev\/null; then wine .\/vu\/client\/vu.com -gamepath \/bf3 -activate -ea_token \"${EA_TOKEN}\" && echo \"Please restart the server (if it doesn't do so automatically).\" && sleep 5; else 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 ); fi", "config": { "files": "{\r\n \"vu\/instance\/Admin\/Startup.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"admin.password\": \"admin.password \\\"{{server.environment.RCON_PASSWORD}}\\\"\",\r\n \"vars.serverName\": \"vars.serverName \\\"{{server.environment.SERVER_NAME}}\\\"\",\r\n \"vars.gamePassword\": \"vars.gamePassword \\\"{{server.environment.SERVER_PASSWORD}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"_comment\": \"'now accepting connections' with required Wine control characters\",\r\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\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Venice Unleashed Egg - egg-pterodactyl-venice-unleashed.json\r\n# Authors: Red-Thirten\r\n# Date: 2025\/08\/07\r\n# License: MIT License\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n[ ! -d $HOME ] && mkdir $HOME\r\ncd $HOME\r\n\r\n# Remove old installation if present (except for VU instance folder to keep configs)\r\n[ -d .cache ] && rm -rf .cache\r\n[ -d .config ] && rm -rf .config\r\n[ -d .local ] && rm -rf .local\r\n[ -d .wine ] && rm -rf .wine\r\n[ -f .wget-hsts ] && rm .wget-hsts\r\n[ -d vu\/client ] && rm -rf vu\/client\r\n\r\n# Make VU required directories\r\nmkdir -p vu\/{client,instance}\r\n\r\n# Validate VU download URL\r\nif ! curl --silent --head --fail ${DOWNLOAD_URL} > \/dev\/null; then\r\n echo -e \"\\nThe VU Server Download URL is unreachable: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\n\r\n# Download, unzip, and verify VU server files\r\ncd $HOME\/vu\/client\r\necho -e \"Downloading VU server files...\"\r\ncurl -L ${DOWNLOAD_URL} -o ${DOWNLOAD_URL##*\/}\r\necho -e \"Unzipping VU server files...\"\r\nunzip ${DOWNLOAD_URL##*\/}\r\nif [ ! -f vu.com ]; then\r\n echo -e \"\\nFailed to download\/install VU server files from: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nelse\r\n rm ${DOWNLOAD_URL##*\/}\r\nfi\r\n\r\n# Create default config files if they are missing\r\ncd $HOME\/vu\/instance\r\nmkdir -p Admin\/Mods\r\ncd Admin\r\n[ ! -f BanList.txt ] && touch BanList.txt\r\n[ ! -f ModList.txt ] && touch ModList.txt\r\nif [[ ! -f MapList.txt ]]; then\r\n cat > MapList.txt < Startup.txt <