SinceDungeon icon

SinceDungeon -----

Dungeon plugin for 1.21+. In-game GUI editor, party system, and randomized gacha loot.



1.6.3
SinceDungeon - Changelog v1.6.3 (Official Release)
Comprehensive compilation of feature additions, system overhauls, and critical performance optimizations for version 1.6.3.

⚡ 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.
----------, Jun 11, 2026
Resource Information
Author:
----------
Total Downloads: 675
First Release: Aug 17, 2024
Last Update: Jun 11, 2026
Category: ---------------
All-Time Rating:
5 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings