EliteEssentials-1.1.18.jar
What's new
1.1.18 - 2026-03-07
Added
- Kit one-time bypass - Permission
eliteessentials.command.kit.bypass.onetimeallows players to claim one-time kits repeatedly (useful for admins, testing, or VIP perks) - Multi-spawn points - Support for multiple named spawn points per world when
spawn.perWorld = true/setspawn [name]- Set named spawn points (e.g./setspawn north,/setspawn outpost). Without a name, sets/updates the primary spawn (backward compatible)/delspawn <name>- Delete a named spawn point/spawns- List all spawn points in the current world with coordinates, primary flag, and protection status/spawn [name]- Teleport to a specific named spawn, or auto-teleport to the nearest spawn when no name is given- Death respawn - Players without a bed respawn at the nearest spawn point to their death location (instead of always the primary)
- Per-spawn protection - Each spawn point has its own
protectiontoggle. Spawn protection zones apply independently to each protected spawn point - Config:
spawn.maxSpawnsPerWorld(default: 10, -1 for unlimited) - limits spawn points per world - Permissions:
eliteessentials.command.spawn.delete(Admin),eliteessentials.command.spawn.list(Admin) - Messages:
spawnTeleportedNamed,spawnSetNamed,spawnDeleted,spawnDeleteNotFound,spawnLimitReached,spawnListHeader,spawnListEntry,spawnListPrimary,spawnListProtected,spawnListEmpty,spawnRespawnedAt,spawnMultiSpawnDisabled - Migration: Existing
spawn.json(v1 format) is automatically migrated to v2 array format. Existing spawn points become the "main" primary spawn with protection enabled. No data loss - Design notes: Multi-spawn only activates when
spawn.perWorld = true(Toggling perWorld config requires restart). WhenperWorld = false, behavior is unchanged (single primary spawn in mainWorld). Cross-world uses primary spawn only (nearest-spawn doesn't make spatial sense across worlds).teleportOnEveryLoginalways uses the primary spawn
/healcommand: self and others support (like/playerinfo)/heal- Heal yourself (requiresmisc.heal; simple mode = everyone when enabled)/heal <player>- Heal another player (requiresmisc.heal.others; simple mode = OP only)- Permissions:
eliteessentials.command.misc.heal,eliteessentials.command.misc.heal.others - Messages:
healOthersSuccess,healTargetNotify(target notified when healed by someone else)
/playerinfonow shows coordinates for the player- Online: live position (x, y, z) and world from the player's entity
- Offline: last saved position read from the player's Hytale save file (
universe/players/{uuid}.json). When spawn-on-logout is enabled, this is the spawn position we write on disconnect, so it reflects where they logged out or where they will spawn - Messages:
playerinfoLabelCoordinates("Coordinates: "),playerinfoCoordinatesLastSaved(" (last saved)") for offline coords - New util:
HytaleSaveFileReader.readPosition(UUID)to read Transform.Position and world from the Hytale save file
- World blacklist for most gameplay commands. Server owners can now restrict commands from being used in specific worlds (e.g. PvP arenas, minigame worlds). Supports wildcard patterns using
*(e.g."arena*"blocks any world starting with "arena").- Config:
<feature>.blacklistedWorlds— empty list by default (no worlds blocked). Add world names or wildcard patterns to restrict usage. - Applies to:
/heal,/god,/fly,/repair,/tpa,/tpahere,/rtp,/back,/top,/home,/sethome,/spawn,/warp,/kit - Message key:
commandBlacklistedWorld(default:"&cThis command cannot be used in this world.") - Example config:
"blacklistedWorlds": ["pvparena_world", "arena*", "minigame_*"] - New shared utility:
WorldBlacklistUtilconsolidates wildcard matching logic (same pattern asrespawnExcludedWorlds)
- Config:
Fixed
- Vanish: rare
IndexOutOfBoundsExceptioninArchetypeChunk.getComponentwhen toggling/vanish(1 in 1000s reports). Root cause:updateMobImmunityusedworld.execute()with a cached ref; deferring to a later tick can make the ref stale (same pattern as TeleportUtil). Fix: when the vanish command runs on the world thread (HytaleVanishCommand, AliasService alias), we now pass the caller's fresh store/ref and apply the Invulnerable component synchronously, avoiding deferred execution. Fallback toworld.execute()remains for non-command call paths. - Spawn protection: decorations (mushrooms, flowers, and other entity-based placed items) could still be picked up even with
disableItemPickupenabled. The existingUseBlockinteraction hook only covered block-type pickups; decorations useUseEntitywhich was unprotected. Added a customUseEntityinteraction handler to block decoration pickups in spawn. - TPA/TPAHERE: cooldown, warmup, and cost permission options now work like home/spawn/rtp
- Warmup bypass for TPAHERE:
getEffectiveWarmupalways used"tpa"; for TPAHERE requests (acceptor teleports),eliteessentials.bypass.warmup.tpahereis now respected - Cooldown support: TPA had no cooldown config or logic. Added
tpa.cooldownSecondsandtpa.tpahereCooldownSeconds(both default 0). Cooldown applies when the teleport executes (TPA: requester; TPAHERE: acceptor). Bypass:eliteessentials.bypass.cooldown.tpa,eliteessentials.bypass.cooldown.tpahere; LuckPerms overrides:eliteessentials.command.tp.cooldown.tpa.<seconds>,.tp.cooldown.tpahere.<seconds> - Cost in GUI: TpaSelectionPage used raw config cost instead of
getEffectiveCost, so permission-based costs (eliteessentials.cost.tpa.<amount>,.cost.tpahere.<amount>) and bypass (eliteessentials.bypass.cost.tpa,.bypass.cost.tpahere) did not apply when sending requests from the player-selection GUI. Now usesgetEffectiveCostfor both checks and charges
- Warmup bypass for TPAHERE:
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects