-
Notifications
You must be signed in to change notification settings - Fork 160
Added Hytale #349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v3
Are you sure you want to change the base?
Added Hytale #349
Conversation
Added a README file with setup instructions for Hytale server template.
|
Just a heads up you're using python to extract the file and not every device has python3 installed by default, i suggest replacing it with "unzip" as its built into all major Linux distros by default. And avoids unnecessary installations of python while ensuring compatibility. |
Zephira58
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix: Updated extraction method
Migrated from python to unzip to ensure ease of compatibility and minimal installs.
Did you get it to work? I tried using unzip, and I'm not sure why, but I did not get it to work. |
Me and 2 other people tested it and it worked perfectly fine. Its why i made the comment. |
Zephira58
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested, working change. Nice work :>
Added requirements for binaries and OS.
|
instead of booting with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-snip-
(posting as a code suggestion for easy acceptance)
I didn't actually catch that one, nice call out :> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-Snip-
(i'm still learning sorry, see next comment)
Zephira58
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here you go, a request to change as per @Toon2400 and their suggestion.
I'm still a bit new when it comes to requesting changes as i normally make my own PRs, not help with others. Sorry for the extra bit of spam on the pr still trying to figure out the specifics. Just trying to help :> and make your day easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-snip-
Zephira58
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think i got the review feature working now. sorry about that.
Hytale/Hytale.json
Outdated
| "type": "command" | ||
| }, | ||
| { | ||
| "target": "start.sh", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| "target": "start.sh", |
Hytale/Hytale.json
Outdated
| }, | ||
| { | ||
| "target": "start.sh", | ||
| "text": "#!/bin/bash\n\nJAVA_BIN=\"./local_java/bin/java\"\n\necho \"--- LAUNCHING WITH LOCAL JAVA ---\"\n\nif [ ! -f \"$JAVA_BIN\" ]; then\n echo \"CRITICAL ERROR: local Java missing!\"\n exit 1\nfi\n\n$JAVA_BIN -version\n\ncd Server\n\n../$JAVA_BIN -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| "text": "#!/bin/bash\n\nJAVA_BIN=\"./local_java/bin/java\"\n\necho \"--- LAUNCHING WITH LOCAL JAVA ---\"\n\nif [ ! -f \"$JAVA_BIN\" ]; then\n echo \"CRITICAL ERROR: local Java missing!\"\n exit 1\nfi\n\n$JAVA_BIN -version\n\ncd Server\n\n../$JAVA_BIN -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", |
Hytale/Hytale.json
Outdated
| "target": "start.sh", | ||
| "text": "#!/bin/bash\n\nJAVA_BIN=\"./local_java/bin/java\"\n\necho \"--- LAUNCHING WITH LOCAL JAVA ---\"\n\nif [ ! -f \"$JAVA_BIN\" ]; then\n echo \"CRITICAL ERROR: local Java missing!\"\n exit 1\nfi\n\n$JAVA_BIN -version\n\ncd Server\n\n../$JAVA_BIN -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", | ||
| "type": "writefile" | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| }, |
Hytale/Hytale.json
Outdated
| }, | ||
| { | ||
| "commands": [ | ||
| "chmod +x start.sh" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| "chmod +x start.sh" |
Hytale/Hytale.json
Outdated
| { | ||
| "commands": [ | ||
| "chmod +x start.sh" | ||
| ], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ], |
Hytale/Hytale.json
Outdated
| "chmod +x start.sh" | ||
| ], | ||
| "type": "command" | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| } |
Hytale/Hytale.json
Outdated
| ], | ||
| "run": { | ||
| "stop": "/stop", | ||
| "command": "./start.sh", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| "command": "./start.sh", | |
| "command": "../local_java/bin/java -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", |
Co-authored-by: Zephira <zephira58@protonmail.com>
Co-authored-by: Zephira <zephira58@protonmail.com>
i have tried applying, i dont know why, but it wont. Im not very used to github. |
Here i'll just send you the josn to copy and paste :> I haven't tested it yet so make sure you do when you can before accepting. {
"name": "Hytale",
"display": "Hytale Server",
"type": "none",
"install": [
{
"commands": [
"echo '--- MANUAL INSTALL START ---'",
"echo '1. Downloading Hytale Downloader...'",
"curl -L -o hytale-downloader.zip https://downloader.hytale.com/hytale-downloader.zip",
"unzip -o hytale-downloader.zip",
"chmod +x hytale-downloader-linux-amd64",
"mv hytale-downloader-linux-amd64 hytale-downloader",
"rm hytale-downloader.zip",
"echo '2. Downloading Game Files...'",
"./hytale-downloader -skip-update-check -download-path game.zip",
"unzip -o game.zip",
"echo '3. Downloading Java 25...'",
"curl -L -o java25.tar.gz https://api.adoptium.net/v3/binary/latest/25/ga/linux/x64/jdk/hotspot/normal/eclipse",
"mkdir -p local_java",
"tar -xzf java25.tar.gz -C local_java --strip-components=1",
"chmod +x local_java/bin/java",
"rm java25.tar.gz",
"echo '--- INSTALL COMPLETE ---'"
],
"type": "command"
}
],
"run": {
"stop": "/stop",
"command": "../local_java/bin/java -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30",
"workingDirectory": "",
"pre": [],
"post": [],
"environmentVars": {
"port": "${port}",
"ram": "${ram}"
}
},
"data": {
"port": {
"type": "integer",
"display": "Port",
"value": 5520
},
"ram": {
"type": "integer",
"display": "RAM (GB)",
"value": 4
}
},
"environment": {
"type": "standard"
},
"supportedEnvironments": [
{
"type": "standard"
}
],
"requirements": {
"binaries": [
"curl",
"tar",
"unzip"
],
"os": "linux",
"arch": "amd64"
}
} |
Dont know if its just me, but this json does not work for me |
this is what i used, not too familiar with github either 😅 |
Not really sure why, but i get this? |
|
ahh thats my bad, forgot to update the template from my server after testing, updated my comment with the right working directory |
Updated installation commands and modified working directory.
It works! |
|
I also looked into this and created one inspired by the minecraft template. Template Json{
"type": "hytale",
"name": "hytale",
"display": "Hytale",
"data": {
"ip": {
"type": "string",
"value": "0.0.0.0",
"display": "IP",
"desc": "What IP to bind the server to",
"required": true,
"userEdit": false
},
"javaversion": {
"type": "string",
"value": "25",
"display": "Java Version",
"desc": "Version of Java to use",
"required": true,
"userEdit": true
},
"jvmArgs": {
"type": "string",
"value": "",
"display": "JVM Arguments",
"desc": "Extra JVM arguments to pass",
"required": false,
"userEdit": false
},
"serverArgs": {
"type": "string",
"value": "",
"display": "Server Arguments",
"desc": "Extra server arguments to pass",
"required": false,
"userEdit": false
},
"memory": {
"type": "integer",
"value": 4096,
"display": "Memory (MB)",
"desc": "How much memory in MB to allocate to the Java Heap",
"required": true,
"userEdit": false
},
"port": {
"type": "integer",
"value": 5520,
"display": "Port",
"desc": "What port to bind the server to",
"required": true,
"userEdit": false
},
"patchline": {
"type": "string",
"value": "release",
"display": "Patchline",
"desc": "Patchline you wish to install.",
"required": true,
"userEdit": true
}
},
"groups": [
{
"display": "General",
"description": "General settings for all servers",
"variables": [
"memory",
"ip",
"port",
"patchline",
"javaversion",
"jvmArgs",
"serverArgs"
],
"order": 1
}
],
"install": [
{
"if": "javaversion != ''",
"type": "javadl",
"version": "${javaversion}"
},
{
"type": "download",
"files": [
"https://downloader.hytale.com/hytale-downloader.zip"
]
},
{
"type": "command",
"commands": [
"unzip -o hytale-downloader.zip hytale-downloader-linux-amd64",
"rm hytale-downloader.zip",
"chmod +x hytale-downloader-linux-amd64",
"./hytale-downloader-linux-amd64 -skip-update-check -patchline ${patchline} -download-path game.zip",
"unzip -o game.zip",
"rm game.zip"
]
}
],
"run": {
"command": "java${javaversion} -Xmx${memory}M ${jvmArgs} -jar HytaleServer.jar --assets Assets.zip --bind ${ip}:${port} ${serverArgs}",
"stop": "/stop",
"stdin": {
"type": "stdin"
},
"autostart": false,
"autorecover": false,
"autorestart": false
},
"environment": {
"type": "host"
},
"supportedEnvironments": [
{
"type": "host"
}
],
"requirements": {
"binaries": [
"unzip"
],
"os": "linux",
"arch": "amd64"
}
} |
|
I don't know if this will help but i wanted to post my Hytale Template, i use it for my server and i have no problems with it, and it meets the requirements of the Hytale Manual. |
| "commands": [ | ||
| "echo '--- INSTALL START ---'", | ||
| "echo '1. Downloading Hytale Downloader...'", | ||
| "curl -L -o hytale-downloader.zip https://downloader.hytale.com/hytale-downloader.zip", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Scripting" like this is generally frown upon, because it's very intensive.
A lot of these operations are also covered in some other tool, which is agnostic.
curl for example has a "download" operation
unzip is "extract"
mv is "move"
| "echo '2. Downloading Game Files...'", | ||
| "./hytale-downloader -skip-update-check -download-path game.zip", | ||
| "unzip -o game.zip", | ||
| "echo '3. Downloading Java 25...'", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
javadl should be used, and "optional" if the environment is host
(when using environment as host, the "java" command is "java25"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ], | ||
| "run": { | ||
| "stop": "/stop", | ||
| "command": "../local_java/bin/java -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Simply is "java25" when environment is host
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See https://github.com/pufferpanel/templates/blob/v3/minecraft-waterfall/minecraft-waterfall.json#L79-L86 for an example structure
| "run": { | ||
| "stop": "/stop", | ||
| "command": "../local_java/bin/java -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", | ||
| "workingDirectory": "Server", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason we can't use the "root" folder?
| "workingDirectory": "Server", | ||
| "pre": [], | ||
| "post": [], | ||
| "environmentVars": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should not be needed it seems, variable replacement does the command-line
| ], | ||
| "run": { | ||
| "stop": "/stop", | ||
| "command": "../local_java/bin/java -Xms1G -Xmx${ram}G -jar HytaleServer.jar --assets ../Assets.zip --disable-sentry --auth-mode authenticated --bind 0.0.0.0:${port} --backup --backup-dir ../Backups --backup-frequency 30", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the IP should be a variable for "consistency"
| "type": "standard" | ||
| }, | ||
| "supportedEnvironments": [ | ||
| { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docker would be supported in this case, as it'd just need the eclipse image.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See
templates/minecraft-waterfall/minecraft-waterfall.json
Lines 100 to 109 in d5f1aa7
| { | |
| "type": "host" | |
| }, | |
| { | |
| "type": "docker", | |
| "image": "eclipse-temurin:17", | |
| "portBindings": [ | |
| "0.0.0.0:${port}:${port}/tcp" | |
| ] | |
| } |
| } | ||
| }, | ||
| "environment": { | ||
| "type": "standard" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, "host" instead of standard.
|
im not a pro at all 😭 and when i try to fix all these Pufferpanel just spits out "unknown error", i dont know where to go now tbh. |
|
My template already had almost everything @LordRalex requested, except for the extract, because in New Template Json with `extract`{
"type": "hytale",
"name": "hytale",
"display": "Hytale",
"data": {
"ip": {
"type": "string",
"value": "0.0.0.0",
"display": "IP",
"desc": "What IP to bind the server to",
"required": true,
"userEdit": false
},
"javaversion": {
"type": "string",
"value": "25",
"display": "Java Version",
"desc": "Version of Java to use",
"required": true,
"userEdit": true
},
"jvmArgs": {
"type": "string",
"value": "",
"display": "JVM Arguments",
"desc": "Extra JVM arguments to pass",
"required": false,
"userEdit": false
},
"serverArgs": {
"type": "string",
"value": "",
"display": "Server Arguments",
"desc": "Extra server arguments to pass",
"required": false,
"userEdit": false
},
"memory": {
"type": "integer",
"value": 4096,
"display": "Memory (MB)",
"desc": "How much memory in MB to allocate to the Java Heap",
"required": true,
"userEdit": false
},
"port": {
"type": "integer",
"value": 5520,
"display": "Port",
"desc": "What port to bind the server to",
"required": true,
"userEdit": false
},
"patchline": {
"type": "string",
"value": "release",
"display": "Patchline",
"desc": "Patchline you wish to install.",
"required": true,
"userEdit": true
}
},
"groups": [
{
"display": "General",
"description": "General settings for all servers",
"variables": [
"memory",
"ip",
"port",
"patchline",
"javaversion",
"jvmArgs",
"serverArgs"
],
"order": 1
}
],
"install": [
{
"if": "javaversion != '' && env == 'host'",
"type": "javadl",
"version": "${javaversion}"
},
{
"type": "download",
"files": [
"https://downloader.hytale.com/hytale-downloader.zip"
]
},
{
"type": "extract",
"source": "hytale-downloader.zip",
"destination": "."
},
{
"type": "command",
"commands": [
"unzip -o hytale-downloader.zip hytale-downloader-linux-amd64",
"rm -f hytale-downloader.zip hytale-downloader-windows-amd64.exe QUICKSTART.md",
"chmod +x hytale-downloader-linux-amd64",
"./hytale-downloader-linux-amd64 -skip-update-check -patchline ${patchline} -download-path game.zip"
]
},
{
"type": "extract",
"source": "game.zip",
"destination": "."
},
{
"type": "command",
"commands": [
"rm -f game.zip"
]
}
],
"run": {
"command": [
{
"command": "java${javaversion} -Xmx${memory}M ${jvmArgs} -jar Server/HytaleServer.jar --assets Assets.zip --bind ${ip}:${port} ${serverArgs}",
"if": "env == 'host'"
},
{
"command": "java -Xmx${memory}M ${jvmArgs} -jar Server/HytaleServer.jar --assets Assets.zip --bind ${ip}:${port} ${serverArgs}"
}
],
"stop": "/stop",
"stdin": {
"type": "stdin"
},
"autostart": false,
"autorecover": false,
"autorestart": false
},
"environment": {
"type": "host"
},
"supportedEnvironments": [
{
"type": "host"
},
{
"type": "docker",
"image": "eclipse-temurin:${javaversion}",
"portBindings": [
"0.0.0.0:${port}:${port}/tcp"
]
}
],
"requirements": {
"os": "linux",
"arch": "amd64"
}
} |
This is my first template submission, so apologies if anything is slightly off or could be improved.
After several hours of testing and troubleshooting, this setup is now fully working on my end and reliably installs and runs a Hytale dedicated server in PufferPanel, including proper authentication flow.
The template is designed to be as simple as possible, fill in the variables, install, authenticate, and the server is ready for players.
Feedback and improvements are very welcome!