diff --git a/egg-hytale.pelican.json b/egg-hytale.pelican.json index 2d2db5a..657033b 100644 --- a/egg-hytale.pelican.json +++ b/egg-hytale.pelican.json @@ -4,7 +4,7 @@ "version": "PLCN_v3", "update_url": "https://cdn.nat.gg/egg/egg-hytale.pelican.json" }, - "exported_at": "2026-01-14T16:02:41+00:00", + "exported_at": "2026-01-14T21:03:45+00:00", "name": "Hytale", "author": "contact@natroutter.fi", "uuid": "6594b287-2d7b-4249-bc93-4d40283c57e3", @@ -21,7 +21,8 @@ "Hytale": "ghcr.io/natroutter/egg-hytale:latest" }, "file_denylist": [ - "hytale-downloader-linux-amd64" + "hytale-downloader-linux-amd64", + "hytale-downloader-linux-arm64" ], "startup_commands": { "Default": "./start.sh" @@ -34,7 +35,7 @@ }, "scripts": { "installation": { - "script": "#!/bin/bash\nDOWNLOAD_URL=\"https://downloader.hytale.com/hytale-downloader.zip\"\nDOWNLOAD_FILE=\"hytale-downloader.zip\"\n\napt update\napt install -y curl unzip jq\n\ncd /mnt/server\n\n# Downloads and extracts the Hytale downloader\necho \"Starting Hytale downloader installation...\"\n\n# Download the file\necho \"Downloading hytale-downloader.zip...\"\ncurl -L -o \"${DOWNLOAD_FILE}\" \"${DOWNLOAD_URL}\"\n\nif [ $? -ne 0 ]; then\n echo \"Error: Failed to download ${DOWNLOAD_URL}\"\n exit 1\nfi\n\necho \"Download completed successfully.\"\n\n# Extract the zip file\necho \"Extracting ${DOWNLOAD_FILE}...\"\nunzip -o \"${DOWNLOAD_FILE}\"\n\nif [ $? -ne 0 ]; then\n echo \"Error: Failed to extract ${DOWNLOAD_FILE}\"\n exit 1\nfi\n\necho \"Extraction completed successfully.\"\n\n# Remove the unnessasery file\necho \"Cleaning up...\"\nrm \"${DOWNLOAD_FILE}\"\nrm QUICKSTART.md\nrm hytale-downloader-windows-amd64.exe\n\n#Creating the empty version file for version checks\nif [ ! -f \"/mnt/server/version.txt\" ]; then\n echo \"Creating version check file...\"\n touch /mnt/server/version.txt\n chmod 666 /mnt/server/version.txt\nelse\n echo \"Version check file already exists!\"\nfi\n\n#Creating the empty version file for version checks\nif [ ! -f \"/mnt/server/.hytale-auth-tokens.json\" ]; then\n echo \"Creating auth cache file...\"\n touch /mnt/server/.hytale-auth-tokens.json\n chmod 666 /mnt/server/.hytale-auth-tokens.json\nelse\n echo \"Auth cache already exists!\"\nfi\n\necho \"Setting executable permissions...\"\nchmod +x ./hytale-downloader-linux-amd64\n\necho \"Installation complete!\"", + "script": "#!/bin/bash\nset -e\n\nDOWNLOAD_URL=\"https://downloader.hytale.com/hytale-downloader.zip\"\nDOWNLOAD_FILE=\"hytale-downloader.zip\"\n\nARCH=\"$(uname -m)\"\n\necho \"Platform: ${ARCH}\"\necho \"Installing base dependencies...\"\n\napt update\napt install -y curl unzip jq\n\n# ARM-only setup for running amd64 downloader\nif [ \"${ARCH}\" = \"aarch64\" ]; then\n echo \"ARM64 detected, enabling amd64 emulation with QEMU...\"\n\n apt install -y qemu-user-static\n\n dpkg --add-architecture amd64 || true\n apt update || true\n apt install -y libc6:amd64 || true\nfi\n\ncd /mnt/server\n\necho \"Starting Hytale downloader installation...\"\necho \"Downloading hytale-downloader.zip...\"\n\ncurl -L -o \"${DOWNLOAD_FILE}\" \"${DOWNLOAD_URL}\"\nif [ $? -ne 0 ]; then\n echo \"Error: Failed to download ${DOWNLOAD_URL}\"\n exit 1\nfi\n\necho \"Extracting ${DOWNLOAD_FILE}...\"\nunzip -o \"${DOWNLOAD_FILE}\"\nif [ $? -ne 0 ]; then\n echo \"Error: Failed to extract ${DOWNLOAD_FILE}\"\n exit 1\nfi\n\necho \"Cleaning up...\"\nrm -f \"${DOWNLOAD_FILE}\" QUICKSTART.md hytale-downloader-windows-amd64.exe\n\nchmod +x ./hytale-downloader-linux-amd64\n\n# ARM wrapper setup\nif [ \"${ARCH}\" = \"aarch64\" ]; then\n echo \"Setting up QEMU wrapper for amd64 downloader...\"\n\n cp /usr/bin/qemu-x86_64-static ./qemu-x86_64-static\n\n cat > ./hytale-downloader-linux-arm64 << 'EOF'\n#!/bin/bash\nset -e\n\nREAL_BIN=\"/home/container/hytale-downloader-linux-amd64\"\nQEMU_LOCAL=\"/home/container/qemu-x86_64-static\"\n\nif [ -x \"$QEMU_LOCAL\" ]; then\n exec \"$QEMU_LOCAL\" \"$REAL_BIN\" \"$@\"\nelse\n exec /usr/bin/qemu-x86_64-static \"$REAL_BIN\" \"$@\"\nfi\nEOF\n\n chmod +x ./hytale-downloader-linux-arm64\nfi\n\n# Create version file\nif [ ! -f \"/mnt/server/version.txt\" ]; then\n echo \"Creating version check file...\"\n touch /mnt/server/version.txt\n chmod 666 /mnt/server/version.txt\nfi\n\n# Create auth cache file\nif [ ! -f \"/mnt/server/.hytale-auth-tokens.json\" ]; then\n echo \"Creating auth cache file...\"\n touch /mnt/server/.hytale-auth-tokens.json\n chmod 666 /mnt/server/.hytale-auth-tokens.json\nfi\n\necho \"Installation complete!\"", "container": "ghcr.io/pelican-eggs/installers:debian", "entrypoint": "bash" } diff --git a/egg-hytale.pterodactyl.json b/egg-hytale.pterodactyl.json index c03369b..600b1a7 100644 --- a/egg-hytale.pterodactyl.json +++ b/egg-hytale.pterodactyl.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": "https:\/\/raw.githubusercontent.com\/NATroutter\/egg-hytale\/refs\/heads\/main\/egg-hytale.pterodactyl.json" }, - "exported_at": "2026-01-14T20:53:20+02:00", + "exported_at": "2026-01-14T23:02:09+02:00", "name": "Hytale", "author": "contact@natroutter.fi", "description": "Hytale is a block-based sandbox game that blends creative building with RPG adventure. Explore procedurally generated worlds filled with unique biomes, dungeons, and creatures. Build anything from simple homes to grand castles, craft items, and battle monsters. Create custom content with built-in modding tools, host your own servers, and shape the experience with plugins and mods. Play solo or with friends in a world designed for both creation and exploration.\r\n\r\nCredits:\r\n- Made by NATroutter\r\n- https:\/\/natroutter.fi\r\n- https:\/\/github.com\/NATroutter", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\nDOWNLOAD_URL=\"https:\/\/downloader.hytale.com\/hytale-downloader.zip\"\r\nDOWNLOAD_FILE=\"hytale-downloader.zip\"\r\n\r\napt update\r\napt install -y curl unzip jq\r\n\r\ncd \/mnt\/server\r\n\r\n# Downloads and extracts the Hytale downloader\r\necho \"Starting Hytale downloader installation...\"\r\n\r\n# Download the file\r\necho \"Downloading hytale-downloader.zip...\"\r\ncurl -L -o \"${DOWNLOAD_FILE}\" \"${DOWNLOAD_URL}\"\r\n\r\nif [ $? -ne 0 ]; then\r\n echo \"Error: Failed to download ${DOWNLOAD_URL}\"\r\n exit 1\r\nfi\r\n\r\necho \"Download completed successfully.\"\r\n\r\n# Extract the zip file\r\necho \"Extracting ${DOWNLOAD_FILE}...\"\r\nunzip -o \"${DOWNLOAD_FILE}\"\r\n\r\nif [ $? -ne 0 ]; then\r\n echo \"Error: Failed to extract ${DOWNLOAD_FILE}\"\r\n exit 1\r\nfi\r\n\r\necho \"Extraction completed successfully.\"\r\n\r\n# Remove the unnessasery file\r\necho \"Cleaning up...\"\r\nrm \"${DOWNLOAD_FILE}\"\r\nrm QUICKSTART.md\r\nrm hytale-downloader-windows-amd64.exe\r\n\r\n#Creating the empty version file for version checks\r\nif [ ! -f \"\/mnt\/server\/version.txt\" ]; then\r\n echo \"Creating version check file...\"\r\n touch \/mnt\/server\/version.txt\r\n chmod 666 \/mnt\/server\/version.txt\r\nelse\r\n echo \"Version check file already exists!\"\r\nfi\r\n\r\n#Creating the empty version file for version checks\r\nif [ ! -f \"\/mnt\/server\/.hytale-auth-tokens.json\" ]; then\r\n echo \"Creating auth cache file...\"\r\n touch \/mnt\/server\/.hytale-auth-tokens.json\r\n chmod 666 \/mnt\/server\/.hytale-auth-tokens.json\r\nelse\r\n echo \"Auth cache already exists!\"\r\nfi\r\n\r\n# Check if the directory exists\r\nif [ ! -d \"\/mnt\/server\/backup\" ]; then\r\n echo \"Backup directory does not exist. Creating it...\"\r\n mkdir -p \/mnt\/server\/backup\r\n\r\n if [ $? -ne 0 ]; then\r\n echo \"Failed to create backup directory: \/backup\"\r\n exit 1\r\n fi\r\nelse\r\n echo \"Backup directory already exists.\"\r\nfi\r\nchmod -R 755 \/mnt\/server\/backup\r\n\r\necho \"Setting executable permissions...\"\r\nchmod +x .\/hytale-downloader-linux-amd64\r\n\r\necho \"Installation complete!\"", + "script": "#!\/bin\/bash\r\nset -e\r\n\r\nDOWNLOAD_URL=\"https:\/\/downloader.hytale.com\/hytale-downloader.zip\"\r\nDOWNLOAD_FILE=\"hytale-downloader.zip\"\r\n\r\nARCH=\"$(uname -m)\"\r\n\r\necho \"Platform: ${ARCH}\"\r\necho \"Installing base dependencies...\"\r\n\r\napt update\r\napt install -y curl unzip jq\r\n\r\n# ARM-only setup for running amd64 downloader\r\nif [ \"${ARCH}\" = \"aarch64\" ]; then\r\n echo \"ARM64 detected, enabling amd64 emulation with QEMU...\"\r\n\r\n apt install -y qemu-user-static\r\n\r\n dpkg --add-architecture amd64 || true\r\n apt update || true\r\n apt install -y libc6:amd64 || true\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Starting Hytale downloader installation...\"\r\necho \"Downloading hytale-downloader.zip...\"\r\n\r\ncurl -L -o \"${DOWNLOAD_FILE}\" \"${DOWNLOAD_URL}\"\r\nif [ $? -ne 0 ]; then\r\n echo \"Error: Failed to download ${DOWNLOAD_URL}\"\r\n exit 1\r\nfi\r\n\r\necho \"Extracting ${DOWNLOAD_FILE}...\"\r\nunzip -o \"${DOWNLOAD_FILE}\"\r\nif [ $? -ne 0 ]; then\r\n echo \"Error: Failed to extract ${DOWNLOAD_FILE}\"\r\n exit 1\r\nfi\r\n\r\necho \"Cleaning up...\"\r\nrm -f \"${DOWNLOAD_FILE}\" QUICKSTART.md hytale-downloader-windows-amd64.exe\r\n\r\nchmod +x .\/hytale-downloader-linux-amd64\r\n\r\n# ARM wrapper setup\r\nif [ \"${ARCH}\" = \"aarch64\" ]; then\r\n echo \"Setting up QEMU wrapper for amd64 downloader...\"\r\n\r\n cp \/usr\/bin\/qemu-x86_64-static .\/qemu-x86_64-static\r\n\r\n cat > .\/hytale-downloader-linux-arm64 << 'EOF'\r\n#!\/bin\/bash\r\nset -e\r\n\r\nREAL_BIN=\"\/home\/container\/hytale-downloader-linux-amd64\"\r\nQEMU_LOCAL=\"\/home\/container\/qemu-x86_64-static\"\r\n\r\nif [ -x \"$QEMU_LOCAL\" ]; then\r\n exec \"$QEMU_LOCAL\" \"$REAL_BIN\" \"$@\"\r\nelse\r\n exec \/usr\/bin\/qemu-x86_64-static \"$REAL_BIN\" \"$@\"\r\nfi\r\nEOF\r\n\r\n chmod +x .\/hytale-downloader-linux-arm64\r\nfi\r\n\r\n# Create version file\r\nif [ ! -f \"\/mnt\/server\/version.txt\" ]; then\r\n echo \"Creating version check file...\"\r\n touch \/mnt\/server\/version.txt\r\n chmod 666 \/mnt\/server\/version.txt\r\nfi\r\n\r\n# Create auth cache file\r\nif [ ! -f \"\/mnt\/server\/.hytale-auth-tokens.json\" ]; then\r\n echo \"Creating auth cache file...\"\r\n touch \/mnt\/server\/.hytale-auth-tokens.json\r\n chmod 666 \/mnt\/server\/.hytale-auth-tokens.json\r\nfi\r\n\r\necho \"Installation complete!\"", "container": "ghcr.io\/pelican-eggs\/installers:debian", "entrypoint": "bash" } diff --git a/entry.sh b/entry.sh index 452fbae..d521a2d 100644 --- a/entry.sh +++ b/entry.sh @@ -26,44 +26,10 @@ echo "Platform: $ARCH" case "$ARCH" in x86_64) + DOWNLOADER="./hytale-downloader-linux-amd64" ;; aarch64|arm64) - USE_DOWNLOADER=0 - echo "" - echo "╔═══════════════════════════════════════════════════════════════════════════════════╗" - echo "║ ARM ARCHITECTURE DETECTED ║" - echo "╠═══════════════════════════════════════════════════════════════════════════════════╣" - echo "║ ║" - echo "║ The Hytale automatic downloader is not available for ARM systems. ║" - echo "║ You must manually copy server files from your Hytale launcher installation. ║" - echo "║ ║" - echo "║ INSTRUCTIONS: ║" - echo "║ ║" - echo "║ 1. Find the files in your Hytale launcher installation folder: ║" - echo "║ • Windows: %appdata%\\Hytale\\install\\release\\package\\game\\latest ║" - echo "║ • Linux: \$XDG_DATA_HOME/Hytale/install/release/package/game/latest ║" - echo "║ • MacOS: ~/Application Support/Hytale/install/release/package/game/latest ║" - echo "║ ║" - echo "║ 2. Copy the following to your server directory: ║" - echo "║ • Contents of the Server/ folder (all files inside it) ║" - echo "║ • Assets.zip file ║" - echo "║ ║" - echo "║ 3. Restart the container after copying files ║" - echo "║ ║" - echo "║ ⚠ WARNING: Automatic updates are not supported on ARM systems. ║" - echo "║ You must repeat this process manually whenever you want to update the server. ║" - echo "║ ║" - echo "╚═══════════════════════════════════════════════════════════════════════════════════╝" - echo "" - echo "Checking if server files already exist..." - - # Check if HytaleServer.jar exists (indicating manual setup was done) - if [ -f "HytaleServer.jar" ]; then - echo "✓ Server files found! Continuing with startup..." - else - echo "⨯ Server files not found. Please follow the instructions above." - exit 1 - fi + DOWNLOADER="./hytale-downloader-linux-arm64" ;; *) echo "Error: Unsupported architecture: $ARCH"