Core Fixes & Enhancements
Async Save Crash Fix
Wrapped .saveNPCsAsync() with a safe copy of npcDataMap to prevent ConcurrentModificationException during entity add/remove operations.Thread-Safe NPC Registry
Methods addNPC(...) and removeNPC(...) are now synchronized to ensure consistency during multi-threaded saves or modifications.Ghost NPC Detection & Cleanup
- Added verifyStartupNPCIntegrity() to detect and clean ghost entities left after crashes or config issues.
- Logs and removes entities with no corresponding npcdata.yml record.
- Also re-links missing UUIDs for valid tracked NPCs.
Validation Safety Enhancements
- Added world/location checks before spawning or validating NPCs.
- Warns if npcdata.yml is empty but NPCs are still visible in the world.
- MythicMobs & ModelEngine spawn validation ensured via registry lookups.
Fixed a
caused when updating NPC holograms before the QuestManager was fully loaded.NullPointerException
- Now safely checks if QuestManager and HologramManager are ready before updating.
- Improved error logging when dependencies are missing.
Bug Fixes
NPCs Not Loading from npcdata.yml • Fixed an issue where NPCs weren't loading because the spawn world wasn't initialized yet.![]()
• NPC loading now waits until the world is fully available before proceeding.NPC Section Ignored • Fixed silent skip when npcs section existed but NPCs were not being processed.![]()
• Added debug logs to trace detection and key loading.UUID Binding Failures • Improved handling of entityUUID and internalUUID rebinding.![]()
• NPCs now correctly restore state, location, and entity reference. ---
Improvements
Extensive Debug Logging • Added logs to show root config keys, presence of npcs, world name checks, and spawn tracking.
Auto-World Loader Support • If a world is missing at startup (e.g. spawn), it will now attempt to load it dynamically before skipping NPCs.
Better ID Pool Management • More accurate handling and reuse of available NPC IDs.![]()
- Fixed a rare issue where some NPCs would stop tracking players after server reloads.
- Fixed an issue where AutoLook randomly disabled on some NPCs (e.g., ID 0).
- Fixed a bug where Autolook was causing HIGH MS LAG
- NPC name and auto-look settings are now correctly restored after reloading.
Developer Options:
- Stability improvements for NPC spawning and removal.
debug: true will now print NPC logs like direction, angle, and auto-look status.
- Added new debug mode toggle via config.yml:
Bug Fixes
- Fixed looped animation (e.g. fidget) from meganimation.yml not playing correctly after spawn.
- Fixed NPC custom names & holograms not applying after server restart.
- Fixed missing name display for ModelEngine NPCs due to entity rebind on join.
New Features
- Re-added /mnpc rotate <id> <degrees> <left|right> command to manually rotate NPCs.
- Auto-look PDC integration: rotation now persists and is detected via PersistentDataContainer.
