Renamed variables in the egg to make them more clear

Improved the default Jvm args
Improved messages in entry
Removed the zip restriction from Asset packs (Do not use directories for assets yet)
Added script for local dev building
This commit is contained in:
NATroutter
2026-01-17 14:52:18 +02:00
parent e6899199f8
commit ffb410f146
5 changed files with 46 additions and 35 deletions

View File

@@ -4,7 +4,7 @@
"version": "PLCN_v3",
"update_url": "https://cdn.nat.gg/egg/egg-hytale.pelican.json"
},
"exported_at": "2026-01-15T15:19:50+00:00",
"exported_at": "2026-01-17T12:47:20+00:00",
"name": "Hytale",
"author": "contact@natroutter.fi",
"uuid": "6594b287-2d7b-4249-bc93-4d40283c57e3",
@@ -75,8 +75,7 @@
"user_editable": true,
"rules": [
"string",
"required",
"regex:/^\\s*([\\w._-]+)\\.zip\\s*$/"
"required"
],
"sort": 3
},
@@ -222,7 +221,7 @@
"name": "JVM Arguments",
"description": "Additional Java Virtual Machine arguments for advanced configuration.\n\nWarning: Improper JVM settings can lead to poor performance, crashes, or failure to start. Only modify if you understand what these parameters do.",
"env_variable": "JVM_ARGS",
"default_value": "-XX:+UseG1GC -XX:+UseCompactObjectHeaders -XX:+UseStringDeduplication",
"default_value": "-XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders -XX:+UseG1GC -XX:+UseStringDeduplication -Xlog:aot",
"user_viewable": true,
"user_editable": true,
"rules": [
@@ -324,22 +323,8 @@
"sort": 12
},
{
"name": "Source Query Listening Port",
"description": "Specifies the port used by the Source Query service to handle A2S requests. This must be separate from the main game port. By default, it is set to the game port plus one.",
"env_variable": "QUERY_PORT",
"default_value": "5021",
"user_viewable": true,
"user_editable": true,
"rules": [
"integer",
"between:1,65535",
"required"
],
"sort": 23
},
{
"name": "Validate Assets",
"description": "Causes the server to exit with an error code if assets are invalid. Leave empty to skip validation.",
"name": "Require valid assets",
"description": "Causes the server to exit with an error code if assets are invalid.",
"env_variable": "VALIDATE_ASSETS",
"default_value": "0",
"user_viewable": true,
@@ -350,7 +335,7 @@
"sort": 21
},
{
"name": "Validate prefabs",
"name": "Require valid prefabs",
"description": "Forces the server to stop and exit with an error if any specified prefab types are invalid. Provide a comma-separated list of prefab categories (e.g. PHYSICS,BLOCKS,BLOCK_STATES,ENTITIES,BLOCK_FILLER) to check. Leave empty to skip validation.",
"env_variable": "VALIDATE_PREFABS",
"default_value": "",
@@ -363,8 +348,8 @@
"sort": 20
},
{
"name": "Validate world generation",
"description": "Causes the server to exit with an error code if world gen is invalid. Leave empty to skip validation.",
"name": "Require valid world generation",
"description": "Causes the server to exit with an error code if world gen is invalid.",
"env_variable": "VALIDATE_WORLD_GENERATION",
"default_value": "0",
"user_viewable": true,
@@ -373,6 +358,20 @@
"boolean"
],
"sort": 19
},
{
"name": "Source Query Listening Port",
"description": "Specifies the port used by the Source Query service to handle A2S requests. This must be separate from the main game port. By default, it is set to the game port plus one.",
"env_variable": "QUERY_PORT",
"default_value": "5021",
"user_viewable": true,
"user_editable": true,
"rules": [
"integer",
"between:1,65535",
"required"
],
"sort": 23
}
]
}

View File

@@ -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-15T17:19:05+02:00",
"exported_at": "2026-01-17T14:47:33+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",
@@ -57,7 +57,7 @@
"default_value": "Assets.zip",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|regex:\/^\\s*([\\w._-]+)\\.zip\\s*$\/",
"rules": "required|string",
"field_type": "text"
},
{
@@ -114,7 +114,7 @@
"name": "JVM Arguments",
"description": "Additional Java Virtual Machine arguments for advanced configuration.\r\n\r\nWarning: Improper JVM settings can lead to poor performance, crashes, or failure to start. Only modify if you understand what these parameters do.",
"env_variable": "JVM_ARGS",
"default_value": "-XX:+UseG1GC -XX:+UseCompactObjectHeaders -XX:+UseStringDeduplication",
"default_value": "-XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders -XX:+UseG1GC -XX:+UseStringDeduplication -Xlog:aot",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
@@ -211,8 +211,8 @@
"field_type": "text"
},
{
"name": "Validate world generation",
"description": "Causes the server to exit with an error code if default world gen is invalid. Leave empty to skip validation.",
"name": "Require valid world generation",
"description": "Causes the server to exit with an error code if world gen is invalid.",
"env_variable": "VALIDATE_WORLD_GENERATION",
"default_value": "0",
"user_viewable": true,
@@ -221,7 +221,7 @@
"field_type": "text"
},
{
"name": "Validate prefabs",
"name": "Require valid prefabs",
"description": "Forces the server to stop and exit with an error if any specified prefab types are invalid. Provide a comma-separated list of prefab categories (e.g. PHYSICS,BLOCKS,BLOCK_STATES,ENTITIES,BLOCK_FILLER) to check. Leave empty to skip validation.",
"env_variable": "VALIDATE_PREFABS",
"default_value": "",
@@ -231,8 +231,8 @@
"field_type": "text"
},
{
"name": "Validate Assets",
"description": "Causes the server to exit with an error code if assets are invalid. Leave empty to skip validation.",
"name": "Require valid assets",
"description": "Causes the server to exit with an error code if assets are invalid.",
"env_variable": "VALIDATE_ASSETS",
"default_value": "0",
"user_viewable": true,

View File

@@ -527,7 +527,7 @@ export IDENTITY_TOKEN
# Enforce file and folder permissions if enabled
if [ "$ENFORCE_PERMISSIONS" = "1" ]; then
echo "Enforcing permissions..."
echo "Enforcing permissions... This might take a while. Please be patient."
# Set all directories to 755
find . -type d -exec chmod 755 {} \;
# Set all files to 644, excluding executables that need to remain executable

View File

@@ -0,0 +1,7 @@
#!/bin/bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
echo "Building and pushing dev image..."
docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/natroutter/egg-hytale:dev --push "$PROJECT_DIR"

View File

@@ -20,12 +20,16 @@ if [ "${LEVERAGE_AHEAD_OF_TIME_CACHE}" = "1" ]; then
JAVA_CMD="${JAVA_CMD} -XX:AOTCache=HytaleServer.aot"
fi
# Add max memory if set and greater than MEMORY_OVERHEAD
# Add max memory (always set)
MEMORY_OVERHEAD=${MEMORY_OVERHEAD:-0}
if [ -n "${SERVER_MEMORY}" ] && [ "${SERVER_MEMORY}" -gt "${MEMORY_OVERHEAD}" ] 2>/dev/null; then
JAVA_MEMORY=$((SERVER_MEMORY - MEMORY_OVERHEAD))
JAVA_CMD="${JAVA_CMD} -Xmx${JAVA_MEMORY}M"
else
JAVA_MEMORY=${SERVER_MEMORY:-1024}
fi
JAVA_CMD="${JAVA_CMD} -Xmx${JAVA_MEMORY}M"
# Add JVM arguments if set
if [ -n "${JVM_ARGS}" ]; then
JAVA_CMD="${JAVA_CMD} ${JVM_ARGS}"
@@ -34,7 +38,8 @@ fi
JAVA_CMD="${JAVA_CMD} -jar HytaleServer.jar"
# Add assets parameter if set and ends with .zip
if [ -n "${ASSET_PACK}" ] && [[ "${ASSET_PACK}" == *.zip ]]; then
echo "Using asset pack at: $ASSET_PACK"
if [ -n "${ASSET_PACK}" ]; then
JAVA_CMD="${JAVA_CMD} --assets ${ASSET_PACK}"
fi