zapoc.admin permission receive a chat notification upon joining (delayed by 2 seconds to avoid being buried by other login messages).update-checker: false in config.yml.UpdateChecker.java — implements Listener to hook into PlayerJoinEvent.Messages never loaded (Critical) — loadConfig() called saveResource("messages_vi.yml"), but the file is located at language/messages_vi.yml inside the JAR. saveResource threw a startup exception, leaving messagesConfig empty—resulting in every getMessage() call returning §cMissing key: .... Fixed by using the correct sub-path and ensuring parent directories are created if missing.
/zapoc panic spawned vanilla zombies — The command called ZombieSpawnService.transformZombie(z, "random"), but "random" is not a valid key in the zombieTypes map. This caused data == null, making the method return immediately without applying stats, AI, or types. All 15 panic zombies were plain vanilla. Fixed by calling ZombieSpawnService.randomizeZombie(z).
Supply drop interval ignored config — WorldEventTask.calculateNextDrop() attempted to read plugin.getPluginConfig().getLong("supply-drop.interval") from config.yml, but the key is actually defined in events.yml. The interval always defaulted to the hardcoded 18,000 ticks. Fixed by reading from plugin.getEventsConfig().
Sun effect settings ignored config — ZombieBehaviorTask.handleSunEffect() attempted to read sun-effect.mode, sun-effect.light-threshold, and related keys from plugin.getPluginConfig() (config.yml), but those keys reside in sun-effect.yml. Sun slow/burn modes always used hardcoded defaults. Fixed by reading from plugin.getSunEffectConfig().
Bleeding tick check unreliable — PlayerStatusTask used Bukkit.getCurrentTick() % 40 == 0 to throttle bleeding damage to every 2 seconds. Because the server tick counter and task invocation aren't perfectly aligned, the check fired inconsistently. Replaced with a local tickCount field incremented on each run.
canSpawnMutated() allowed 2 Mutated per chunk — The method returned count < 2 despite a comment explicitly stating the design cap is 1 per chunk. Adjusted to count < 1.
ZombieApocRefactored.java removed — Cleaned up a dead-code class from a previous refactor attempt. It was never used as the main class and contained inverted command logic. Deleted entirely.

ZombieApocalypseSSS is a comprehensive Minecraft plugin that transforms your server into a thrilling zombie survival apocalypse. Featuring advanced zombie AI, evolving variants, player infection mechanics, psychological horror elements, and dynamic events