SinceDungeon v1.6.3

Advanced instanced dungeon plugin for Paper 1.21+. In-game GUI editor, party system, and randomized
🚀 SinceDungeon - Changelog v1.6.3 (Official Release)
Comprehensive compilation of feature additions, system overhauls, and critical performance optimizations for version 1.6.3.[/ALIGN]



⚡ JIT & Memory Performance Optimizations

🧩 JIT Loop-Churn Eradication & RAM Leak Fixes
  • JIT Loop-Churn Eradication: Optimized heavy particle generation algorithms within ControlZoneAction, ReachLocationAction, and SmartBreakWallAction. Removed inline Location and Vector instantiations inside while/for loops, replacing them with reusable mutable pointers (reusable mutable pointers). This completely prevents massive Garbage Collection (GC) spikes during intense boss fights.
  • MathCache Utility: Added a pre-calculated trigonometry cache (MathCache.java) to eliminate CPU overhead during intensive circular particle generation. Replaced all Math.sin() and Math.cos() calls inside rapid 360-degree hot-loops with the new MathCache array, heavily stabilizing server TPS.
  • Orphaned World RAM Leak Fix: Implemented a robust recursive retry mechanism in WorldManager and DefaultInstanceProvider. If a Dungeon World fails to unload due to lingering chunk tickets or entities, the system forcefully purges all entities and retries the unload every 5 seconds until successful, completely freeing trapped JVM RAM.
  • Comprehensive Cache & Memory Cleanup:
    • Fixed an offline memory leak in DungeonGame.java where player states persisted endlessly if they disconnected during dungeon runs (savedStates cache).
    • Fixed a PlaceholderAPI task leak by tracking active asynchronous caching tasks statically, preventing CPU/RAM leaks on /papi reload.
    • Fixed Ghost Task leaks by accurately tracking the Kick Countdown BukkitTask. Tasks are now safely aborted on forceful shutdowns, preventing Player object memory leaks.
    • Added a cleanup() lifecycle hook to LivesManager to safely terminate asynchronous database sync tasks on server shutdown/reload.
    • Overhauled cleanup() methods across multiple Core and Premium Actions (DefendCore, Escort, LootChest, etc.) to explicitly clear Set and Map collections holding dead entity references.

🧵 Threading & Main Thread Offloading
  • Eliminated TPS Death Loop: Removed completely unused, ultra-high-frequency event pass-throughs (PlayerMoveEvent, ProjectileLaunchEvent, etc.) from DungeonListener. This permanently resolves CPU starvation when 10+ players are actively running dungeons.
  • I/O Event Caching: Drastically improved DungeonListener performance. High-frequency events no longer query the YAML config for the world-prefix every tick; it is now cached in memory and safely updated via updateConfig().
  • UI Parsing Efficiency: The Action Bar ticking system in DungeonGame now compiles the MiniMessage component once per tick instead of parsing it repeatedly for every individual player in the map.
  • Exception Safety Hardening: Wrapped the stop() logic in DungeonGame with a try-catch-finally block to guarantee that aggressivelyCleanupMemory() and world unloading trigger absolutely, even if a NullPointerException occurs mid-flight.
  • Startup Freeze Fix: Moved database, cooldown, lives, and template loading to a safe asynchronous startup flow. Added startup readiness checks before letting players join dungeons, preventing server lockups during plugin enabling.



🍃 Native Folia Support
  • Entity Thread Concurrency: Implemented Folia-compliant Entity Thread concurrency via SchedulerCompat.runAtEntity(...).
  • Folia IllegalStateException Fix: Resolved thread state issues on Folia servers by forcing player state restoration (Health, Inventory, Velocity) onto the respective EntityScheduler.
  • FoliaDungeonValidator: Added a dedicated validator to block Core world-copy/template-world dungeons on Folia unless the active provider is shared-world compatible (Premium schematic mode). Validation triggers on template load, dungeon join, and editor saves.
  • Hologram Modernization: Upgraded Premium hologram updates to use native TextDisplay entities, completely removing outdated DecentHolograms requirements and hardening region-based rendering on Folia.
  • ⚠️ Configuration Warning: This version does NOT support running Folia + Schematic Mode simultaneously.



✨ New Features & General Enhancements

📦 Universal Custom Model Data (CMD) Support
  • Universal CMD Integration: All items across the Dungeon GUI, Reward Chests, Loot Pools, Leaderboards, and Dynamic Custom Items now natively support Custom Model Data via the MATERIAL:AMOUNT:CMD configuration format (e.g., DIAMOND_SWORD:1:123).
  • Smart Material Parsing: You can now write PAPER:10606 directly. The plugin smartly realizes that since 10,606 is greater than a max stack size of 64, you mean Custom Model Data, and it will spawn 1 Paper with CMD 10606.
  • Component List Protection: Simplified the default config for items.yml to custom-model-data: 1001 (as a flat integer), ensuring the auto-updater will no longer corrupt component lists.
  • Tip: Add auto-update: false to the top of configuration files if you want to prevent the system from auto-updating that specific file.

🛡️ Dungeon Management & Core Enhancements
  • Multi-Phase Boss Tracking: Added the target_to_kill parameter to the MYTHIC_WAVE action. This allows flawless support for multi-phase MythicMobs bosses. The dungeon objective accurately tracks the transition from an initial NPC/ArmorStand into a live boss without auto-completing prematurely.
  • Console Spam Protection: Structural tasks (like SmartBreakWallAction and general Tickables) will now forcefully cancel and log properly if a map configuration throws continuous structural errors, preventing infinite loop console spam.
  • Access Control & Privacy Overhaul:
    • Regular members can no longer view or tab-complete public: false private dungeons. Server administrators retain full tab-completion and visibility for testing purposes.
    • Added an administrative bypass rule: Operators can execute /dungeon join <map> <target> to forcefully move target players into private maps, bypassing the standard privacy layer.
  • Advanced Multiverse-Inventories Compatibility: Split MultiverseInventoriesHook into separate V4 and V5 implementations with safe reflection loading to prevent NoClassDefFoundError on legacy servers. Removed old legacy permissions and implemented dynamic permission attachments (mvinv.bypass.*) to cleanly prevent MVI from wiping player inventories during dungeon teleports.
  • Concurrency Safety: Replaced shared ArrayList usages inside DungeonGame with CopyOnWriteArrayList to permanently resolve ConcurrentModificationException under heavy load.

📊 Leaderboards & PlaceholderAPI (PAPI)
  • Asynchronous Caching Layer: Introduced a thread-safe memory cache for PAPI queries. Data automatically refreshes via async tasks every 5 minutes, completely eliminating database locks and main-thread lag spikes caused by scoreboard ticks.
  • Smart Map ID Parsing: Map placeholders automatically identify map string logic, natively allowing underscores (_) inside map ID config names without breaking rank tracking parsing.
  • New Admin Commands Goldmine:
    • Target Reset Command: /sincedungeon top resetplayer <player> [map] allows admins to delete a specific player's metrics directly from the database without wiping the entire map's history.
    • Incognito Bypass Node: Added SinceDungeon.top.ignore. Players/admins with this permission bypass leaderboard insertions entirely, preventing staff accounts from crowding the tops.

🎮 Gameplay Mechanics & Commands
  • Dungeon Consumable Restrictions: Server owners can now strictly prevent players from consuming utility items (Soul Crystals, Cooldown Reset Tickets, Time Skip Tickets) while actively fighting inside an active dungeon instance via allow-use-in-dungeon: false inside settings/items.yml.
  • Comprehensive Lives Command Extension: Added full command structures for managing lives with support for the -s (Silent) flag to suppress feedback messages:
    • /sincedungeon lives <target> add/reduce/set <amount> [-s]
    • /sincedungeon lives <target> addmax <amount> [-s]
    • /sincedungeon lives <target> setregenamount <amount> [-s]
    • /sincedungeon lives <target> setregeninterval <seconds> [-s]
    • /sincedungeon lives <target> resetregen/check [-s]
    • /sincedungeon givelifeitem <target> <amount> [-s]
  • Granular Life Deductions: Added precise life deduction hooks across files: lives-deducted-on-leave: 0, lives-deducted-on-fail: 0, and lives-deducted-on-clear: 0.
  • Combat Area Sealing: Added logic to automatically seal off the combat area during a boss fight to prevent defeated players from rejoining and disrupting the phase mechanics.
  • Gravity Block Fix: Fixed an issue where gravity-affected blocks (like Sand and Gravel) would fail to fall within instanced dungeon worlds.



🛠️ Developer API
  • SinceDungeonAPI.java Overload: Introduced a new API method overload: joinDungeon(Player player, String id, boolean allowPrivate). This allows third-party hooks and external plugins to safely force-join or programmatically transition players into private dungeons under explicit backend validation.
  • Bundled JDBC Drivers: Shipped bundled SQLite and MySQL JDBC drivers natively within the project jar for highly reliable, out-of-the-box database initialization.
  • Documentation Migration: Moved the official wiki/documentation repository onto GitHub Pages under the docs/ directory, integrated with an automated deployment workflow.
SinceDungeon v1.6.2 - Full Changelog

🚀 New Features
  • Live Revive System: Added the /dungeon revive <player> command. Alive players can now consume a LIFE_ITEM (Soul Crystal) to actively revive spectating party members mid-dungeon.
  • Required Entry Items: Added the ability to require specific items (Vanilla, MMOItems, Dungeon Keys) to join a map, alongside a consume-required-item toggle.
  • Independent Reward Tiers: You can now configure separate time limits and chest reward tiers for Solo runs versus Party runs.
  • Teleport Action: Added a new TELEPORT objective action to seamlessly and asynchronously move participants to specific XYZ coordinates within the dungeon.
  • Chinese Localization: Added full Simplified Chinese (zh) language translation support.

⚙️ Architecture & API (Strategy Pattern)
  • Modular Integration: Completely refactored core systems to support external plugin injections. 3rd-party developers can now easily replace native functions via the API.
    • PartyProvider: Inject custom Guild/Party matchmaking systems.
    • InstanceProvider: Override world generation (e.g., SlimeWorldManager support).
    • RewardSystem: Replace the default chest UI with custom reward handling.

🛠️ Improvements & Optimizations
  • Physical Checkpoints: The Checkpoint action has been completely rewritten. It now spawns a physical particle ring that players must step into to secure their respawn location.
  • Editor GUI Overhaul: Transitioned from rigid hardcoded pathing to dynamic FieldProperties resolution. Fixed NullPointer exceptions on settings without global fallbacks and improved prompt mappings.
  • Roulette Stabilization: Rewrote the Roulette GUI state handling. If a player abruptly closes their inventory during a spin, the generated reward is now safely cached and instantly pushed to their inventory.
  • Proxy Command Toggle: Added the block-teleport-commands setting in gameplay.yml, allowing players to use native proxy warps (like HuskHomes) without triggering the dungeon anti-cheat.
  • Dynamic Enum Formatting: Material names without custom display names (e.g., IRON_NUGGET) now dynamically format into human-readable Title-Case strings for chat and holograms.

🐛 Bug Fixes
  • Cross-Server Teleportation Blockers: Fixed a critical bug where players were prevented from teleporting to other servers. The PlayerQuitEvent now utilizes strict try-catch isolation, and completing a dungeon on a proxy network properly routes players back to the return-server.
  • Virtual Inventory Crash: Removed unsafe Inventory#getLocation() and Player#getOpenInventory() calls that caused silent asynchronous exceptions during disconnects in Paper 1.21+.
  • MythicMobs Wave Lockup: Fixed an issue where waves would get stuck at "(Remaining: X)". The plugin now strictly ignores invisible utility entities (ArmorStands/Projectiles) summoned by MythicMob skills.
  • Summoned Boss Tracking: Objective HUDs now dynamically transfer from invisible spawner mobs to the actual summoned child boss instead of soft-locking.
  • Tickable Interval Skips: Fixed a severe logic flaw in Damage Zones, Escorts, and Traps where modulo tick checks completely missed execution windows. Replaced with highly accurate accumulative thresholds.
  • Reward Miscalculation: Fixed a flaw where completely failing the lowest time bracket incorrectly granted 1 chest instead of 0.
🔄 SinceDungeon v1.6.1 - Massive Performance, Editor & Multi-Module Update

This update introduces a completely revamped Gradle Multi-Module architecture, massive performance optimizations for Paper 1.21+, new premium mechanics, and highly requested Editor GUI improvements!

✨ New Features & Additions
  • Dynamic Stage Insertion: You can now insert stages directly in between existing ones! Added a dedicated
    Code:
    [Insert Stage Here]
    button in the Editor GUI and a new command (
    Code:
    /sdungeon stage insert <map> <position>
    ).
  • Key-Locked Loot Chests: You can now optionally require players to possess a specific Dungeon Key item to open objective Loot Chests.

⚙️ Optimization & System Adjustments
  • Loot Chest Anti-Hang (Paper 1.21+): Fixed severe server lag spikes and Watchdog crashes caused by interacting with physical chests. Inventory listeners now correctly verify virtual GUI locations before querying the inventory Holder, bypassing expensive main-thread block-state snapshots.
  • Hardcode Eradication: Fully removed all remaining hardcoded strings. Translations are unified, and formats like
    Code:
    /dungeon top
    date/time are now 100% configurable via
    Code:
    config.yml
    .

🐛 Bug Fixes & Stability
  • BossBar Persistence: Fixed an issue where the BossBar HUD element would remain stuck on the screen if a player died or forcefully quit the dungeon before completing a boss phase.
  • Editor GUI Fixes: Fixed an issue where editing String List Action properties (like
    Code:
    custom_drops
    or
    Code:
    vip_equipment
    ) would supply an incorrect edit context. Added proper
    Code:
    EDIT_LIST
    signals and prioritization to unlock proper list management options.
  • Memory Leaks: Safeguarded the
    Code:
    PlayerQuitEvent
    cursor-item restore logic to ensure it doesn't accidentally snapshot chunk data during player disconnects.
🌟 Major Features
  • Epic Boss Battles: You can now spawn dynamic bosses with scaling health, phase transitions (e.g., spawning minions or gaining buffs at certain HP percentages), and enrage timers. Includes a built-in BossBar!
  • Per-Player Loot Chests: Added "instanced" loot! You can set chests so every party member gets their own personal loot. No more fighting over drops!
  • Dynamic Randomized Loot: Loot chests and completion rewards now support random quantity ranges (e.g., 1-5 items) and fully support custom plugin items, Life Items, and Cooldown tickets.
  • Party Leaderboards: Added a "Party Fastest Clears" category to the /sd top menu to track and show off the fastest teams.

🛠️ Editor & Quality of Life Improvements
  • Smart Editor Upgrades: The in-game editor is smarter than ever. You can now right-click items from your inventory to auto-fill them into rewards, view helpful descriptions for every Action type, and safely delete entire dungeons with a new dedicated button.
  • Entry Requirements Fixed: Fixed a bug where custom entry conditions (like required levels or money) were being ignored. The system now strictly checks all party members before a dungeon starts.
  • Cleaner Dungeons: All leftover or interfering mobs are now instantly wiped out the moment an objective finishes, keeping your maps clean.
  • System Organization: Language files are now neatly organized into their own dedicated folders (e.g., languages/en/), and the /sd reload command will safely regenerate accidentally deleted configuration files without needing a server restart.

⚠️ Note for updating: Please make sure to delete your
Code:
config.yml
and
Code:
messages_[lang].yml
to apply the new updates!
🚀 SinceDungeon v1.5.9 - The Ultimate Customization & Cooldown Update
A massive expansion introducing advanced lifecycle commands, conditional executions, robust String List editors, a complete Cooldown system, and extreme codebase hardening.
🌟 Major Features
  • Conditional Action Commands: Commands executed via the dungeon lifecycle hooks now natively support PlaceholderAPI logic evaluations. By formatting your commands as
    Code:
    [condition] command_here
    , the plugin will strictly execute them only if the condition is met.
    Example:
    Code:
    [%vault_eco_balance%;>=;500] eco give %player% 100
  • Dungeon Re-entry Cooldowns: Implemented a persistent, per-player, per-dungeon cooldown system. Players must wait a configurable amount of time before re-entering a completed map. Data is asynchronously saved to the database.
  • Interactive Cooldown Tickets: Introduced highly configurable Gacha items: Cooldown Reset Tickets (clears all dungeon cooldowns instantly) and Time Skip Tickets (reduces all active cooldowns by X seconds). Heavily protected by custom NBT tags to prevent dupes/exploits.
  • Lifecycle Command Hooks:
    * First-Time Clear: Added
    Code:
    on-first-finish
    commands that strictly execute only when a player completes a specific dungeon for the very first time. Perfect for granting titles or one-time milestone rewards.
    * Per-Stage Executions: The
    Code:
    on-stage-complete
    global setting has been migrated into a per-stage configuration. You can now execute different conditional commands depending on which specific stage the players have cleared.
  • Paginated String List Editor: Completely overhauled the In-Game GUI. Added a dynamic String List Editor that allows admins to manage lists (like Commands or custom Action texts) with pagination. Left-click to add lines via chat, and shift-right-click to instantly delete specific lines.
  • Dynamic Commands & Aliases: Core commands (
    Code:
    /party
    ,
    Code:
    /dungeon
    ,
    Code:
    /sincedungeon
    ) are no longer hardcoded. Server admins can fully rename them and assign multiple custom aliases via
    Code:
    config.yml
    to prevent conflicts with plugins like MMOCore.
  • Customizable Kick Countdown: The delay before teleporting players out of a cleared dungeon now features a visual countdown. Admins can toggle the display type between
    Code:
    ACTIONBAR
    ,
    Code:
    TITLE
    ,
    Code:
    CHAT
    , or
    Code:
    NONE
    .
✨ Improvements & Refactoring
  • Smart Tab-Completions: Rewrote the Brigadier command trees across all player and admin commands. Arguments such as
    Code:
    <target>
    ,
    Code:
    <map>
    , and
    Code:
    <amount>
    now intelligently suggest online players, active map templates, and numeric examples respectively.
  • PlaceholderAPI Injection: Expanded PAPI integration to support realtime tracking of dungeon cooldowns via
    Code:
    %sincedungeon_cooldown_<map>%
    . Returns formatted time or a customized "Ready" string depending on the player's status.
  • Advanced Admin Commands: Server operators can now manually manage player cooldowns via intuitive commands (
    Code:
    /sd cooldown [check|reduce|reset|resetall]
    ) and instantly wipe map leaderboards via
    Code:
    /sd top reset <map>
    .
  • Zero-Hardcode Compliance: Extracted all remaining hardcoded GUI titles, action descriptions, default names, and chat messages into
    Code:
    messages_en.yml
    and
    Code:
    messages_vi.yml
    .
  • Safe Plugin Hooks: Hardened the
    Code:
    MythicMobsHook
    and
    Code:
    MMOItemsHook
    by centralizing imports, preventing
    Code:
    NoClassDefFoundError
    crashes when the target plugins are not installed on the server.
🐛 Bug Fixes
  • Control Zone Timing Flaw (Critical): Fixed an issue where the
    Code:
    ControlZoneAction
    required-time was inherently tied to the internal 4-tick execution cycle, causing capture times to take 4x longer than configured. It now utilizes
    Code:
    System.currentTimeMillis()
    for absolute real-time precision regardless of server TPS.
  • Ghost Mobs Cleanup: Added a UUID tracking system for interference mobs spawned during the Control Zone action. Remaining monsters are now securely wiped from the server memory when the objective is completed.
  • Smart Break Wall Optimization: Re-calibrated the asynchronous block crumbling delay in
    Code:
    SmartBreakWallAction
    . It now processes exactly 50 blocks per tick, preventing main-thread lag spikes and server crashes during massive wall destructions.
  • Database Wipe SQL Error: Fixed a SQL schema mismatch in the
    Code:
    DatabaseManager
    that prevented the Leaderboard Reset command from finding and deleting records across the three separate Top tables.
  • Teleportation Fix: Resolved minor issues related to player teleportation during specific dungeon sequences.
⚠️ Note for updating: Please make sure to regenerate your
Code:
config.yml
and
Code:
messages_[lang].yml
to apply the new updates!
SinceDungeon 1.5.8 - The Customization & Stability Update

✨ New Features & Enhancements
  • Per-Dungeon Player Limits: Added a
    Code:
    max-players
    setting to individual templates, perfect for separating small dungeons from large raids.
  • Dynamic RNG Loot Amounts: Reward pools now support Min-Max randomized drop amounts (e.g.,
    Code:
    DIAMOND:1-5
    ).
  • Advanced Control Zone Mobs: Supports spawning both Vanilla and MythicMobs on zone borders with full customization (names, gear, attributes).
  • Smart Leaderboard Privacy:
    Code:
    /dungeon top
    now strictly displays leaderboards only for
    Code:
    public
    dungeons.
  • Command Overhaul: Upgraded Brigadier parsing to support hyphenated names and improved search logic using "contains" for auto-completion.
  • In-Game Key Management: Added
    Code:
    /dungeon getkey
    and improved the Editor GUI to support drag-and-drop key configuration.

🎨 Total De-Hardcoding
  • Visual/Audio Control: All Particles and Sounds across all actions are now fully customizable in
    Code:
    config.yml
    .
  • Customizable Timings: Title screen animation timings (fade-in, stay, fade-out) are moved to the configuration.
  • Localization: Fixed hardcoded strings in administrative commands to support full translation.

🐛 Bug Fixes & Security Patches
  • Completion Kick Delay Fix: Fixed a bug where players were instantly kicked out of the instance upon victory. The
    Code:
    kick-delay-after-finish
    timer now correctly keeps players inside the dungeon to celebrate before teleporting them to claim rewards.
  • Life Duplication Exploit: Patched a double-fire glitch that allowed players to get extra lives by macro-clicking with both hands.
  • Reward GUI Teleport Sync: Resolved edge cases where the Reward Gacha GUI would attempt to open before a player finished teleporting, causing dropped UI items.
  • Item Metadata Fix: Reward display names are now properly applied to the physical item's Meta, not just the chat broadcast.
  • Mission Item Deep-Clean: Tracking items are now dropped if inventories are full and aggressively purged upon exit to prevent survival world leaks.
  • Inventory Safety: Fixed a race condition that could wipe player inventories during asynchronous teleportation on logout.
  • Map Protection: Decorations are now protected from ALL damage sources (TNT, Creepers, Mobs), not just player hits.

⚡ Performance & Architecture
  • Memory & World Teardown: Refactored dungeon finish routines with delayed tasks. World deletion now waits an extra margin to guarantee players have safely migrated back to the lobby.
  • Data Restoration Safeties: Hardened the
    Code:
    restorePlayerState
    logic to prevent item wiping during unexpected server crashes.
  • Isolated MythicMobs Hook: Refactored code to prevent crashes on servers where MythicMobs is not installed.
  • Anti-Lag Wall Breaking: Optimized block processing speed (500 blocks/tick) and added a safety volume limit (50k blocks).
  • Safe Spawn Algorithm: Monsters now intelligently snap to the floor, preventing them from spawning inside ceilings.
🚀 SinceDungeon v1.5.7: The Rogue-like, Optimization & Security Update

This massive release focuses on heavily optimizing the core systems, introducing rogue-like mechanics, patching critical gameplay vulnerabilities, and completely de-hardcoding internal messages to support full localization.

✨ Features & Gameplay
  • Interactive Leaderboard GUI: Introduced a fully Async Database querying system to render leaderboards without lag spikes. Added the /dungeon top <map> command to switch between Fastest Clears, Most Kills, and Most Clears.
  • Added Spectator Mode: Party members who run out of lives can now stay and spectate their teammates instead of being kicked. The dungeon only fails if the entire party is wiped out. (Configurable via out-of-lives-action: "SPECTATE" in config.yml).
  • Added Admin Spectate: Admins can now silently teleport into active dungeons to supervise players and catch hackers using /dungeon spectate <player>.
  • [NEW] Action - Control The Zone: Added a "King of the Hill" objective. Players must hold a specific zone for a set amount of time. Supports shrinking/expanding radius, requiring 75% party presence, and spawning interference mobs.
  • [NEW] Action - Unlock Door & Find Key: Added a new action where players must locate a custom Key to unlock a specified door (trigger block). Includes a dynamic Tracking Compass to guide players to the key.
  • [NEW] Action Time Limits & Penalties: You can now set time_limit and time_penalty for any action. Failing to complete the action in time deducts lives and restarts the stage.
  • [NEW] Rogue-like Randomization: Added randomize-stages setting to shuffle middle stages, making every dungeon run feel unique while preserving the first and last stages (Boss rooms).
  • [NEW] Percent Chance Stages: Stages can now have a spawn chance (1-100%), allowing for rare secret treasure rooms or random traps.
  • [NEW] Dynamic Party Scaling: Added a scale_with_party toggle to all mob-spawning actions to multiply enemy counts based on the active party size.
  • [NEW] Mixed Mob Waves: The Random Wave action now allows spawning a weighted mixture of Vanilla and MythicMobs within the exact same wave.

🛡️ Security & Exploit Fixes
  • Critical Inventory Exploit Patched: Completely rewrote the PlayerState snapshot logic in DungeonGame.java. The system now performs a deep-clone of the player's entire inventory (main inventory, armor, offhand) and EXP levels before entry. This prevents players from bypassing the keep-inventory-on-death: false rule or smuggling OP items into dungeons to farm.
  • Cross-Server Memory Leak Fixed: Resolved a severe vulnerability where Party Leaders disconnecting during the BungeeCord/Redis transfer window would leave a "ghost" dungeon node running in the RAM forever. The PlayerQuitEvent now triggers cancelPendingRequest to instantly abort orphaned network tasks.
  • Admin Spectate Bug Fix: Resolved a critical logic flaw where Admins using /dungeon spectate were incorrectly flagged as unauthorized intruders and kicked by the DungeonListener.

⚡ Performance & Optimizations
  • Action Bar TPS Drop Fixed: Stopped the plugin from repeatedly querying the YAML configuration 5 times per second during the runTick() loop. Objective HUD strings are now cached natively inside the DungeonGame constructor, eliminating unnecessary I/O overhead and significantly improving TPS.
  • Smart Garbage Collection: The RewardSessionManager now fetches its timeout limit dynamically from the configuration. Replaced rigid timers with thread-safe ConcurrentHashMap loops to prevent CME exceptions during rapid inventory clicks.
  • HikariCP Integration: Upgraded the database management system to use HikariCP connection pooling for both MySQL and SQLite. This drastically improves database performance, prevents connection leaks, and reduces query latency.

🛠️ Under The Hood & Refactoring
  • ItemBuilder Pattern: Completely refactored ItemCreator into a flexible, chainable ItemBuilder. Now natively uses PersistentDataContainer (NBT Tags) to securely track Custom Keys and Compasses (preventing rename exploits) and fully supports 1.21+ item components.
  • Massive Package Restructure: Completely reorganized the source code into a clean, modern Layered Architecture (commands/, managers/, listeners/, hooks/, models/, guis/, utils/).
  • Command System Overhaul: Migrated all commands out of the main class into separate, dedicated command classes for easier maintenance.
  • Editor GUI Optimization (MVC): Separated the Editor's visual rendering (EditorGUI) and click event listening (EditorMenuListener) into distinct classes.
  • Cleaned Up Registries: Extracted all default Action and Processor registrations into a standalone DefaultRegistry class to reduce bloat in the DungeonManager.

🌐 Localization & De-Hardcoding
  • 100% Locale Support: Relocated all remaining hardcoded console logs (Database initializations, API registrations, World cleanups) to messages.yml.
  • PAPI Integration Fixed: Removed hardcoded English outputs ("Full" and "Never") in PlaceholderAPI (%sincedungeon_lives_time_to_regen%). These can now be seamlessly translated in the language files.

⚠️ How to Update:
Please completely regenerate or manually update your config.yml and messages_<lang>.yml files to access the newly added Spectator mode settings, Leaderboard configs, and new Item settings (Keys/Compasses).
ChangeLog 1.5.5

Cross-Server (Multi-Node)

⚠️ IMPORTANT DISCLAIMER: EXPERIMENTAL FEATURE (v1.5.5+) ⚠️

Please be aware that the Cross-Server (Multi-Node) functionality is an untested and highly experimental feature introduced in version 1.5.5.

  • Proceed with Caution: Carefully evaluate and test this system on a private staging network before deploying it to a live production environment.
  • No Official Support: The author of this plugin has no practical experience in setting up, maintaining, or running this complex Redis/BungeeCord infrastructure. Consequently, official support, troubleshooting, or bug fixes for cross-server specific issues will be extremely limited or unavailable.

By enabling this feature, you acknowledge that you are using it entirely at your own risk.


ChangeLogs 1.5.6

🚀 SinceDungeon - The "Lives & Immortality" Update!

This major update introduces a highly requested Advanced Lives System, a completely overhauled 1.21+ compatible Item Creator, deep PlaceholderAPI integration, and a massive code cleanup to ensure 100% localization.

✨ Key Features & Additions

❤️ Advanced Lives System
  • Per-Player Tracking: Players now have a persistent "Lives" stat stored safely via SQLite/MySQL.
  • Offline/Online Regeneration: Lives automatically regenerate over time. Admins can customize the regeneration interval and amount globally or per-player.
  • Dungeon Integration:
    • Configure specific dungeons to require a minimum amount of lives to enter.
    • Configure how many lives are deducted upon dying inside specific dungeons.
    • Players are automatically kicked (and the run fails) if they run out of lives.

💎 Omnipotent Item Creator & "Soul Crystal"
  • Built a brand-new, extremely advanced ItemCreator engine.
  • Fully supports Minecraft 1.21+ Item Components including CustomModelDataComponent (Colors, Floats, Strings, Flags), ItemModel, TooltipStyle, MaxStackSize, Rarity, and Glider.
  • New Consumable Item: Added the Life Item (Soul Crystal). Players can right-click this highly customizable item to restore their lives.
  • VFX/SFX: Fully configurable sound and particle effects trigger upon consuming the item.

📊 PlaceholderAPI Integration
Added live-updating placeholders for menus and scoreboards:
  • %sincedungeon_lives% - Current lives.
  • %sincedungeon_max_lives% - Maximum lives capacity.
  • %sincedungeon_lives_regen_amount% - Amount of lives restored per cycle.
  • %sincedungeon_lives_regen_interval% - Seconds between regen cycles.
  • %sincedungeon_lives_time_to_regen% - Dynamic timer (e.g., 12:45) showing time until the next life is granted.

🛠️ New Commands
  • Admin Commands:
    • /sincedungeon lives <target> <add|set|addmax|setregenamount|setregeninterval|resetregen|check>
    • /sincedungeon givelifeitem <target> <amount>
  • Player Command:
    • /dungeon lives - Allows players to check their current lives and regen timer.

Wiki link: https://gitlab.com/sincerpg/SinceDungeon/-/wikis/home/Lives-&-Immortality-System
EULA: Free EULA
354 Views
6 Downloads
Mar 30, 2026 Published
Jun 11, 2026 Updated
Not yet rated
2.4 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. World
  1. Mobs
Game mode
  1. Factions
  1. Skyblock
  1. Roleplay
Supported software
  1. Paper
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
  1. Vietnamese
Creator
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,195 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,148 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,084 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,809 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,578 purchases
354 Views
6 Downloads
Mar 30, 2026 Published
Jun 11, 2026 Updated
Not yet rated
2.4 MB File size
Open source
  1. No
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. World
  1. Mobs
Game mode
  1. Factions
  1. Skyblock
  1. Roleplay
Supported software
  1. Paper
Supported versions
  1. 1.21.11
  1. 1.21.8
  1. 1.21.5
  1. 1.21.4
  1. 1.21.2
  1. 1.21
Supported languages
  1. English
  1. Vietnamese
Creator
Recommended for you
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 141 ratings
4,195 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 53 ratings
3,148 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,084 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 71 ratings
2,809 purchases
All-in-one dungeon creator. Create unlimited, timed dungeon experiences with your own builds
4.50 star(s) 72 ratings
2,578 purchases
Top