EliteEssentials | Everything Your Server Needs and More!

Homes, warps, player warps, TPA, RTP, kits, economy, bans, mutes, warnings, admin UI, chat formatting, 500+ configurable messages, SQL storage, PlaceholderAPI, LuckPerms & HyperPerms. The most complete essentials mod for Hytale trusted by top servers.

File Details

EliteEssentials-2.0.7.jar

  • R
  • May 4, 2026
  • 19.46 MB
  • 583
  • Early Access

File Name

EliteEssentials-2.0.7.jar

Supported Versions

  • Early Access

2.0.7 - 2026-05-03

<span style="color:#E03E2D;">IMPORTANT: If you were using H2 storage and have NOT yet run version 2.0.6, you MUST install and run 2.0.6 first before updating to this version. Version 2.0.6 contains the automatic H2-to-SQLite migration that runs on startup. Starting with 2.0.7, H2 support and the migration code have been fully removed. If you skip 2.0.6, your H2 data will not be migrated and the plugin will fall back to JSON storage with no data. JSON and MySQL users are not affected.</span>

Removed

  • H2 database engine fully removed - H2 has been completely removed from the plugin. The H2-to-SQLite migration bridge from 2.0.6 is no longer included. Servers that still have "h2" in their config.json will see a clear error on startup and fall back to JSON storage safely. Supported storage backends are now JSON, SQLite, and MySQL only. If you were using H2, you should have run 2.0.6 first to migrate your data to SQLite automatically

Changed

  • Shadow relocation for SQLite JDBC loader - the SQLite loader package (org.xerial) is now relocated under com.eliteessentials.libs in the shaded JAR, matching the existing pattern for Gson, HikariCP, SLF4J, and MySQL. The core org.sqlite package is intentionally not relocated because SQLite JDBC uses JNI native libraries that call back into Java via Class.forName("org.sqlite.core.NativeDB"); relocating it causes a NoClassDefFoundError at runtime

Fixed

  • Vanished players unable to chat - when a player was in vanish, their chat messages were silently dropped by the Hytale engine's HiddenPlayersManager filtering, making them invisible to all other players. This affected both the default engine chat path (when chat formatting is disabled) and could affect group chat channels. The chat system now detects vanished senders and bypasses the engine's hidden-player filter by cancelling the native event and rebroadcasting the message directly via sendMessage(). When chat formatting is enabled, the existing manual broadcast already bypasses the filter. When chat formatting is disabled, a new minimal listener intercepts only vanished players' messages and rebroadcasts them. A new config option vanish.hideChat (default false) is available for servers that do want vanished players' messages hidden from non-admins
  • /kit infinite claim exploit when PlayerReadyEvent fails to fire - if a player's PlayerReadyEvent never fired during initial join (observed in production when the login handshake timed out and anti-cheat registration took 36+ minutes), PlayerService.onPlayerJoin never ran, so no PlayerFile was created. Every subsequent /kit call silently skipped cooldown and one-time-claim checks because playerFileStorage.getPlayer(uuid) returned null, allowing unlimited kit claims with no persistence. After a server restart the player would also be treated as a first-join again. Fixed with three defensive layers: KitService.ensurePlayerFile() now creates and caches a PlayerFile on demand if one is missing; getRemainingCooldown and hasClaimedOnetime are now fail-closed (return full cooldown / already claimed) when the player file is null; and HytaleKitCommand, KitSelectionPage call ensurePlayerFile at every kit entry point (command, GUI open, GUI claim). PlayerFileStorage.savePlayer now logs a warning instead of silently no-oping when called for an uncached UUID. Thanks to Dimotai for identifying and fixing this (PR #61)