🪄 MysticEssentials v1.0.0-alpha.13
Release: Alpha 12 → Alpha 13
Target: NeoForge + Fabric (1.21.x)
⚠️ Important Update Notice for Server Owners
- You MUST delete the following files before starting Alpha 13:
config/mysticessentials/config.jsonconfig/mysticessentials/messages/es_us.json- These files will be regenerated automatically on startup with the new keys and structure.
✨ Added
🔐 Vault System (GUI-Driven)
- Added a complete Vault System with a 6-row (54-slot) selector GUI.
- Vault selector now supports pagination (45 vaults per page).
- Added Vault Settings GUI (right-click a vault):
- Rename vault (GUI-only, no commands)
- Set vault icon (uses main-hand item, permission-gated)
- Reset a single vault (permission-gated)
- Reset ALL vaults (admin-only)
- Vault names now support color formatting (
&legacy colors, hex support via permissions/config). - Vault data is stored per-player in JSON:
- Path:
config/mysticessentials/vaults/<uuid>.json - Items are serialized safely using SNBT.
- Vault metadata (custom name + icon) is persisted correctly.
- Path:
🌍 Localization & Messages
- Vault UI text migrated to MessagesUtil, allowing server owners to customize:
- Button names
- Lore text
- Menu titles
- Added Spanish translation (
es_es.json) for Vault-related UI. - Improved locale fallback handling and message resolution order.
💬 Chat Enhancements
- Added groundwork for clickable http/https links in chat via mixin-based handling.
- Improved Gson handling for message files (HTML escaping disabled where needed).
🔁 Changed
- Vault selector icons now display:
- Colored vault name (
<name> - #<index>) - Slot usage (
used/available)
- Colored vault name (
- Default vault naming now respects configurable color codes.
- Vault icon permissions are enforced strictly (
messentials.vault.item.<id|*>). - Configuration structure expanded to support new vault settings.
🐛 Fixed
- Fixed vault item data not saving correctly, which caused:
Tried to load invalid item: 'No key id in MapLike[{}]' - ItemStacks now serialize and deserialize correctly using SNBT.
- Prevented invalid empty ItemStack entries from corrupting vault files.
- Resolved multiple edge cases with vault loading, saving, and UI refreshes.
⚙️ Notes for Server Owners
- Vault limits are permission-based:
messentials.vault.amount.<number>messentials.vault.row.<1-6>- Locked vaults are visually shown using the configured locked item & name.
- All vault modifications (rename, icon, reset) are GUI-only by design.
Full Changelog: https://github.com/L8-Alphine/MysticEssentials/compare/1.0.0-alpha.12...1.0.0-alpha.13
🪄 MysticEssentials v1.0.0-alpha.12
Release Date: December 2025 Target: NeoForge / Fabric 1.21.x Status: Alpha — major rewrites, several systems still in flux
🚀 Alpha 12 Overview
Alpha 12 focuses on chat corrections, teleportation subsystem rewrites, help system fixes, and major placeholder improvements, while continuing the stabilization effort for cross-platform compatibility.
This release fixes several long-standing bugs but also reveals deeper issues still being addressed in Alpha 13.
✔️ Fixes & Improvements in Alpha 12
🧩 Chat Pipeline & LuckPerms
Fixed
- LuckPerms placeholders now resolve per-sender and per-viewer correctly
- Rank confusion bug resolved (all players previously showed the sender’s prefix)
- Private messaging no longer falls back to vanilla whisper
- Vanilla join/quit messages suppressed (custom messages now display exclusively)
- Help system replaced with
/mhelp+ pagination fixed
🧭 Teleportation System Rewrite
Fixed
-
/tpaccept,/back,/deathback, and/warpnow route through the unified Teleports handler -
Warmups cancel properly on:
- movement
- damage
- dimension change
Note: Cooldowns/warmups are still not firing for some commands — see Known Issues below.
🗂 System Message Improvements
Fixed
- Duplicate join and leave messages
- Death messages formatted using combat tracker
- Redis-compatible MiniMessage formatting
Note: Death messages still duplicate under certain loading conditions — see Known Issues.
🔍 Misc Fixes
- AFK activity tracking properly marks movement & rotation
- Invsee closes cleanly on dimension changes
- Last-location and death-location tracking corrected
- First-join spawn teleport fixed (respects bed/anchor rules)
❗ Remaining Known Issues (Will be addressed in Alpha 13)
⛔ 1. Death messages are still duplicated
Even after suppressing vanilla broadcasts, the combat tracker output is firing twice in some lifecycle paths (especially NeoForge). Resolution planned: ✔ Move death message interception into a dedicated mixin to guarantee vanilla suppression on both loaders.
⛔ 2. Cooldowns & Warmups still not firing for some teleport commands
Even though the Teleports API is unified, the following still bypass cooldowns + warmups:
/tpaccept/tpahere- Direct home/warp → Teleports.pushBackAndTeleport paths
Cause:
These commands execute task.run() immediately instead of going through WarmupManager.
Resolution planned: ✔ Wrap all Teleports.* calls in WarmupManager ✔ Enforce cooldown check before execution ✔ Add shared TeleportContext for easier rule evaluation
⛔ 3. AFK Mentions Not Working
When a user mentions an AFK player:
- The ping is not canceled
- The sender receives no AFK notification
- The AFK mention system appears to be skipped entirely
Cause: The new chat pipeline processes modifiers after pb4 placeholder application, skipping AfkPingUtil under some conditions.
Resolution planned: ✔ Move mention detection before custom pipeline handling ✔ Implement sender-side notification override ✔ Allow configurable AFK mention formatting
⛔ 4. <item> and <inv> Chat Tags Broken
<item>fails to serialize in some client contexts<inv>shows incorrect inventory snapshots<inv>also allows item insertion/removal, causing permanent item deletion
Resolution planned: ✔ Lock inventory GUI → read-only ✔ Replace serialization with direct component NBT copy ✔ (If required) Use mixins to override server-side packet hack behavior
⛔ 5. Kits Redemption Visual Glitch
Redeeming a kit sometimes:
- Leaves ghost items
- Shows empty slots until a manual refresh
- Causes client desync when rewards overlap with open inventories
Resolution planned: ✔ Force client inventory sync packet after kit application ✔ Prevent overlapping slot writes ✔ Track last redemption state to avoid UI duplication
🔧 Developer Notes for Testers
If you're testing Alpha 12, please focus on:
Teleportation
Try invoking:
/tpa
/tpahere
/tpaccept
/back
/warp <name>
…with and without permissions:
messentials.teleport.cooldownmessentials.teleport.cooldown.bypassmessentials.teleport.warmupmessentials.teleport.warmup.bypass
Chat
Test:
- AFK mentions
- Rank placeholders
- Cross-server (Redis) messaging
- Item/inventory chat tags
System Messages
Verify no duplication in:
- Join
- Quit
- Death
❤️ Thank You
Alpha 12 would not exist without your debugging, logs, and patience. Alpha 13 will focus entirely on bug closure, mixins where appropriate, and completing the teleportation subsystem.
🪄 MysticEssentials v1.0.0-alpha.11
Release Date: December 1 2025
Target: NeoForge / Fabric 1.21.x
⚙️ This unified Alpha 11 release includes all changes from Alpha 07 through Alpha 11, delivering a complete cross-platform chat foundation, Adventure formatting pipeline, LuckPerms support, versioning improvements, and a Modrinth update checker.
🚀 Major Additions & Systems
💬 Cross-Platform Chat Architecture (Fabric + NeoForge)
- Implemented the shared ChatModule responsible for formatting, permissions, and routing.
- Added Fabric Chat Bridge (
ServerMessageEvents.ALLOW_CHAT_MESSAGE). - Added NeoForge Chat Bridge with full event parity to Fabric.
- Unified abstractions:
CommonPlayerCommonServer
- Ensured consistent handling of:
- Signed / unsigned chat messages
- Permission checks
- AFK activity marking
- Fixed Adventure → platform component conversion issues.
🎨 Adventure-Based Formatting Pipeline (Bundled)
- MysticEssentials now ships Adventure internally:
adventure-apiadventure-text-minimessageadventure-text-serializer-gson
- Standardized MiniMessage as the primary formatting engine.
- Unified serialization for:
- Hover events
- Click events
- Gradients
- Rich formatting components
- Fixed multiline and nested MiniMessage tag issues.
- Ensured consistent chat rendering across Fabric + NeoForge.
🔑 LuckPerms Placeholder Support
- Added full support for LP placeholders:
- Prefix
- Suffix
- Primary group
- Meta key/value pairs
- Implemented unified placeholder resolver shared across all systems.
- Added graceful fallback for servers without LuckPerms.
- Fixed raw
%placeholder%text appearing in chat.
⚙️ Core Infrastructure Enhancements
🧩 Unified Placeholder Engine
- Centralizes ME placeholders, LP placeholders, and external expansions.
- Improved nested tag expansion.
- Added async-safe logic for LP lookups during chat events.
- Reduced edge cases causing partial renders or dropped formatting.
🔧 Versioning Overhaul
- Introduced shared
getVersion()method reading fromgradle.properties. - Eliminated version duplication across modules.
- Improved startup reporting:
- Detected platform
- Build type (release/dev/dirty)
- ME version
🌐 Modrinth Auto-Update Checker
- Added passive startup check to compare installed version against Modrinth’s latest release.
- Prints
- Installed version
- Latest version
- Update availability
- Does not auto-download or modify files.
💬 Message Output & Platform Parity
- Standardized all command/system output to consistent Adventure components.
- Unified message serialization on both modloaders.
- Synchronized chat event flow to ensure identical behavior between platforms.
- Improved handling of signed, unsigned, and modified messages.
🧱 Internal Architecture & Refactoring
- Moved large portions of chat code into the shared common module.
- Simplified formatting utilities and serializers.
- Improved debug logging for:
- Chat events
- Placeholder expansion
- Module initialization steps
- Reworked component builders to maintain consistent formatting.
🧹 General Fixes & Stability
- Fixed multiple NPE sources during early boot initialization.
- Resolved platform parity issues in chat event ordering.
- Fixed hover/click event rendering bugs.
- Patched LP color inheritance conflicts.
- Fixed multiline MiniMessage parsing issues.
- Improved runtime resilience across Fabric, NeoForge, and mixed mod stacks.
🧾 Summary
MysticEssentials v1.0.0-alpha.11 is a cumulative release including all features and changes from Alpha 07–11.
It delivers:
- Full cross-platform chat system
- Bundled Adventure API
- LuckPerms prefix/suffix integration
- Unified placeholder engine
- Versioning overhaul
- Modrinth update checker
- Major stability improvements
This update forms the backbone of the upcoming Beta and 1.0.0 stable releases.
🔖 Commit Type Overview
| Type | Count | Description |
|---|---|---|
| ✨ Feature | 9 | Chat bridges, Adventure bundle, LP integration, version utilities, updater |
| 🐛 Fix | 20 | Formatting, serializers, NPEs, parity issues |
| 🔧 Refactor | 12 | Common module cleanup, formatting pipeline, platform logic |
| 🧩 Internal | 7 | Diagnostics, logging, parser stability |
🧰 Contributors
Developed by: Alphine
Project: MysticHorizons / NexxaWave Studios
🪄 MysticEssentials v1.0.0-alpha.06
Release Date: November 8 2025
Target: NeoForge / Fabric 1.21.x
⚙️ Major backend refactor focusing on AFK stability, player activity tracking, and enhanced command UX across both modloader platforms.
🚀 Core Framework Updates
-
AFK Detection & Activity System
-
Reworked AFK logic to only mark activity on valid player chat when not muted.
-
Added integrated chat mention pings via
AfkPingUtil.handleChatMention()for AFK callouts. -
Fixed concurrency issues with punishment checks and AFK timers.
-
Safer handling of unsigned vs. signed chat content in
ServerMessageEvents.ALLOW_CHAT_MESSAGE.
-
-
AFK Pool System
-
Expanded AFK pool setup through the new
AfkPoolSetupCmd. -
Added persistent runtime edits synced with
AfkPoolsStore. -
Improved compatibility with default configs and live reloading.
-
Added documentation and edge-case safety for editing defined pool regions.
-
🧱 Command System Enhancements
🛠️ /workbench
-
Fixed issue where crafting menu closed instantly.
-
Added proper
SimpleMenuProviderwrapper. -
Permission:
messentials.workbench.use.
📜 /recipe
-
Fully implemented recipe lookup with tab completion.
-
Added auto-suggestions for all registered recipe IDs.
-
Supports clean result feedback and component formatting.
📖 /help
-
Re-built pagination with clickable next/prev navigation.
-
Added hover and click events for easier browsing.
-
Fixed out-of-range page crashes and improved layout.
☠️ /kill
-
Added flexible entity targeting system:
-
/kill— self only -
/kill players [radius] -
/kill mobs [radius] -
/kill entities [radius] -
/kill all [radius]
-
-
Fixed infinite-AABB issue that caused lag spikes.
-
Permissions introduced:
messentials.kill messentials.kill.players messentials.kill.mobs messentials.kill.entities messentials.kill.all messentials.kill.exempt
⚙️ Infrastructure & Integration
-
Unified PlayerDataStore
-
Post-merge of
HomeStore+KitsPlayerStore. -
Stabilized saving/loading cycle across Fabric and NeoForge.
-
Integrated with AFK, TPA, and teleport warmup systems.
-
-
Event Hooks
-
NeoForge: refined
ServerChatEventlogic to defer to punishment system before marking activity. -
Fabric: mirrored lifecycle parity with same tick ordering.
-
Both: ensured consistent
AfkService.markActive()flow.
-
💬 Message & Config Updates
-
messages/en_us.json-
Added new messages for AFK/mute feedback.
-
Improved teleport and cooldown strings for readability.
-
-
MEConfig-
Added comments for AFK pool configuration options.
-
Implemented fallback defaults for missing values.
-
🧹 General Improvements & Fixes
-
Standardized
Component.literalusage across all commands. -
Simplified command registration boilerplate.
-
Reordered command registration for cleaner
/helpoutput. -
Fixed possible NPEs in activity and teleport systems.
-
Added inline documentation to major utility classes.
🧩 Internal Utilities
-
AfkService
-
Modularized mark-active tracking (movement, chat, interaction).
-
Thread-safe concurrent player state map.
-
Improved tick synchronization.
-
-
MessagesUtil
-
Simplified component creation and color formatting.
-
Unified MiniMessage-style placeholders.
-
🧾 Summary
MysticEssentials v1.0.0-alpha.06 introduces a complete AFK subsystem overhaul, adds refined command UX (Help / Kill / Recipe / Workbench), and improves platform parity between NeoForge & Fabric.
This update lays the groundwork for the upcoming 1.0.0 stable release, focusing on server performance, clarity, and cross-compatibility.
🔖 Commit Type Overview
| Type | Count | Description |
|---|---|---|
| ✨ Feature | 6 | AFK pool, recipe, kill commands |
| 🐛 Fix | 8 | AFK logic, help pager, AABB crash, mute state |
| 🔧 Refactor | 5 | Command registrar & event hooks |
| 🧩 Internal | 3 | Config & storage consistency |
🧰 Contributors
Developed by: Alphine
Project: MysticHorizons / NexxaWave Studios
Full Changelog: https://github.com/L8-Alphine/MysticEssentials/compare/1.0.0-alpha.05...1.0.0-alpha.06
First Alpha Fabric Release
Super Early Release



