Add support for the arm architecture, respect Hytale's default folder location & add support for hytale's updater#69
Conversation
…e to respect new server location
Refactor entrypoint script to migrate server files to a new directory structure, handle updates, and improve error handling for outdated startup commands.
|
Do not merge at least until I made a PR for ptero-eggs and it gets noticed. If this gets merged and ptero-eggs takes too long to notice and wanna know the startup command, try this: |
Add error handling to mv commands for server files
Updates the Hytale egg to support the new changes from this PR -> pterodactyl/yolks#69
…e any of the commands unless egg is being updated
|
This solves the |
No. |
|
Hey, #71 should supersede this Kind of surprised the downloader still doesn't have an arm build...(?) Luckily the community has simply figured out how to reimplement the downloader themselves, so we can just remove our dependency on it. |
PTERO-EGGS UPDATE NECESSARY FIRST!!!!
More as to why this is so important later in this post.
This adds support for building docker images for arm.
I believe waiting for official support to be futile because enough time has passed, and there is no wrongdoing in using QEMU to support arm.
Even if official support gets in at some point in the future, it will still work with QEMU and can be removed later on regardless.
Now on to Hytale's default folder location.

What we've been doing so far was not good.
Essentially, the server should generate it's files inside /home/container/Server, not /home/container.
Best way to replicate it is by running the following commands on a running server that is authenticated:
/auth login device
/update check
/update patchline pre-release
/update check
/update download
This command above is what will warn that it expects Assets.zip + launcher scripts in parent directory, and that's fine, we can force it with the next command
/update download --force
But that's where it's game over for us.
Hytale's updater tries to go 1 directory back, then into the updater directory, however there are no permissions to go inside /home, there it fails with "Read-only file system":
My PR attempts to fix that by changing Hytale's Dockerfile by literally removing the COPY command COPY --from=ghcr.io/pterodactyl/yolks:java_25 entrypoint.sh /java.sh and manually recreating the file with the correct directory Hytale needs.
I dont know if there's a better solution, but this one is what worked and I dont see many downsides from it.
Additionally, any user that has files inside /home/container that should belong to /home/container/Server will be having them moved over to the Server directory.
Since we now have to default to a specific directory, this is where the dependency of an update to Hytale's egg is necessary.
The current egg uses Server/HytaleServer.jar to launch the Server, but it needs to be updated to ./HytaleServer.jar, as the current working directory needs to be /home/container/Server anyways, therefore this update also does not let anyone boot their server unless they either update the egg, or the startup script to not contain any of the launch arguments + Server/HytaleServer.jar
The updater logic is reimplemented from the start.sh file Hytale provides ever since version 2026.01.24-6e2d4fc36, therefore that's where it can be found.