File Details
GlymeraEssentials-2.0.0.jar
- R
- Jun 14, 2026
- 271.86 KB
- 44
- 0.5
File Name
GlymeraEssentials-2.0.0.jar
Supported Versions
- 0.5
GlymeraEssentials — Changelog
v2.0.0 (2026-06-14)
Bugfix release addressing two issues reported from live servers.
Fixed: the night was being skipped
The sleep-voting feature has been removed entirely. Its sleep detection counted every awake player as "sleeping" — Hytale gives every player a non-null somnolence state (FullyAwake), which the check mistook for being asleep — so the clock was snapped to morning roughly once a minute as soon as anyone was online, regardless of beds. GlymeraEssentials now no longer touches the day/night cycle in any way. The sleep config section and the sleepSkipped message have been removed.
Fixed: regular players could be locked out of every command
With advancedPermissions: true, every command — including basics like /home, /spawn and /tpa — required an explicit glymeraessentials.command.<name> node, so regular players without those nodes could not run anything. Regular (non-OP) commands are now always open to everyone. advancedPermissions only governs the OP tier: it lets you hand individual OP-only commands to specific non-OP players via a permission node, while regular commands always stay open. Regular players can no longer be locked out of the basic commands.
v1.0.0 (2026-06-11)
Initial release — the essential command suite for Hytale servers (an EssentialsX equivalent), built natively against Hytale 0.5.4. Feature set modeled on EliteEssentials 2.0.8 plus the most useful EssentialsX extras, then hardened in a full 14-group live test (2026-06-09 → 2026-06-11).
71 commands across these modules:
- Homes: /sethome, /home, /homes, /delhome (limit configurable)
- Warps: /warps [name], /setwarp [op], /delwarp, /warpinfo (OP-only warps possible)
- Spawns: one spawn per world + global server spawn (/setspawn = current world, /setserverspawn, /spawns = current world's spawn with server-spawn fallback, /spawns <world>, /spawns list, /delspawn <world>) + first-join spawn
- TPA: /tpa, /tpahere, /tpaccept, /tpdeny + admin /tpto, /tphere, /tpall, /tppos
- Back & travel: /back (incl. death location), /near, /top, /bottom, /jump (OP), /suicide
- Paid perks: /fly, /speed, /heal, /repair as player self-service — each enabled+priced via config paidFeatures, OPs free. Fly bills per minute of ACTUAL flying (MovementStatesComponent sampling), speed bills permanently while toggled (configurable factor), heal/repair cost proportionally to what is restored. /perks GUI with toggle buttons, balance display and an OP-only corner picker for the money HUD. Money HUD (Merchant look, direct-packet, no HudManager registry) auto-shows for the internal wallet, yields to GlymeraMerchant.
- Chat colors (paid perk): own GUI page with 13 colors, each button rendered in its color with its price; pay once, keep forever until another purchase or the free "Standard chat color" reset; one global price or per-color prices (paidFeatures.chatColor)
- Kits: /kits, /kitcreate (from inventory, cooldown/one-time), /kitdelete; hardcoded "starter" kit on first join (toggleable)
- Economy: /wallet, /baltop (OP), /eco (OP), /pay — three backends resolved at runtime via reflection (no hard dependencies): GlymeraMerchant → VaultUnlocked (vault2 API) → internal wallet (incl. configurable starting balance)
- Messages: /msg, /reply, /ignore, /unignore, /spy (social spy, OP), /mail (offline mail with login notify). OPs cannot be ignored.
- Chat: group-based chat formatting via permissions, /nick (OP-only — impersonation protection, hard-coded), /realname, /me, /broadcast (OP), /helpop, /clearchat (OP)
- Inventory: /invsee (read-only GUI page for trading, players toggleable via config; OP-only Take buttons), /clearinv (own inventory, players toggleable) + OP variant /clearinv <player>, /trash (27-slot bin, emptied on close)
- Info: /list, /seen, /playtime, /joindate, /whois (OP, incl. ban state)
- AFK: /afk + automatic movement-based detection; AFK players don't block sleep voting
- Vanish: /vanish (engine-native entity hiding + optional invulnerability + join/quit mimic; client player list can't be filtered crash-free in 0.5.4 — /list filters server-side)
- Moderation: /warn (multi-word reasons) with auto-BAN at threshold (15 min default) and/or custom console commands, /warnings, /clearwarnings, /ban <minutes> (0 = permanent), /permban, /unban. Bans enforce over UUID + name + IP, are hooked into Hytale's native access control (clean kick screen with reason + remaining time, rejection before world join), expire automatically, work against offline targets, and never lock out OPs. Mutes/kicks intentionally left to native commands.
- Extras: custom join/quit/first-join messages (native ones suppressed), MOTD on join, /motd, /rules, /discord, auto-broadcasts, playtime rewards, sleep voting (percentage-based night skip), custom death messages, config-based alias system, /ges root (help/commands/reload/version)
Architecture notes
- Collision-aware registration: commands register in start() (after all plugins), check the live CommandManager registry and fall back to
e<name>when a name is taken (e.g. /eban + /eunban, because Hytale 0.5.4 ships a native UUID-only /ban). Every command renamable/disableable in config. - Per-command tuning block in config.json: enabled / opOnly / name / cooldownSeconds / warmupSeconds / cost.
- Teleport warmups with move-cancel; costs charged via the economy backend; /back history pushed on every teleport.
- All messages in messages.json (defaults exported on first start), & color codes + &#RRGGBB hex.
- Player data: one JSON per UUID + name index for offline lookups; atomic writes; dirty-batched autosave; offline cache eviction. Bans in bans.json.
- Scheduler discipline: no blocking work on the shared executor, world access only via world.execute().
- Movement-settings safety: after a join the engine initialises MovementSettings asynchronously — all re-apply paths (fly/speed) wait for initialisation (mass != 0, 3s retry) before sending, preventing all-zero physics packets that crash the client.
- UI safety: pages built from .ui templates only; TextSpans colored with java.awt.Color objects (hex-string colors crash the client); container windows opened via PageManager.setPageWithWindows (chest pattern).
Notable decisions from live testing
- /rtp and /tptoggle removed (product decision: RTP undermines progression)
- /god, /flyspeed, admin /speed, /heal [player], /repair all removed — redundant with native creative-OP abilities
- /getpos removed (native /whereami covers it)
- Freeze feature replaced by the ban system (client-side edge cases; a banned player isn't on the server at all)
- /nick and /baltop restricted to OPs
Known limitations (v1)
- GUIs exist for perks/chat colors/invsee; homes/warps/kits/TPA pages are v2 candidates.
- No group chats / per-player locale / player-warps yet.
- Vanished players may still appear on third-party minimaps and in the client's own player list (engine limitation).

