Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/ZombieApocalypseSSS
ZombieApocalypseSSS

ZombieApocalypseSSS

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

947
4

ZombieApocalypseSSS 4.4.0

release17 апреля 2026 г.

[4.4.0] - 2026-04-17 - Bug Purge & Correctness Update

Fixed

  • SurvivalGuideListener.PAGE_KEY NPE on startupstatic final NamespacedKey PAGE_KEY was initialised at class-load time before the plugin instance existed, causing a NullPointerException on every server start. PAGE_KEY is now an instance field initialised in the constructor. (BF-01)

  • InfectionListener ignored infection.enabled config — infection spread on every zombie hit regardless of infection.enabled: false in config.yml. ZombieBehaviorService already checked the flag but InfectionListener did not, making the config option partially ineffective. (BF-02a)

  • InfectionListener ignored zapoc.immune permission — players with zapoc.immune could still receive infection points. The permission is now checked in both InfectionListener and ZombieBehaviorService. (BF-02b)

  • Day-based spawn-rate (shouldSpawn()) was completely bypassedZombieBehaviorService runs at EventPriority.HIGH and cancelled natural spawns before SpawnListener ran, so the phase-based rates (40% / 70% / 90% / 100%) never took effect — zombies always spawned at 100% regardless of server age. shouldSpawn() is now called directly inside ZombieBehaviorService.onCreatureSpawn. (BF-03)

  • TurretManager could permanently delete turrets_data.yml — the save code called dataFile.delete() before renameTo(). If the rename failed the data file was gone permanently. Replaced with Files.move(ATOMIC_MOVE) and a non-atomic fallback. (BF-04)

  • Sanity config multipliers loaded but never appliedsanityDrainBase, nightMultiplier, infectedMultiplier, lowHealthMultiplier, and nearbyZombiesMultiplier were read from mechanics.yml but updateSanity() used hardcoded constants. Editing these values in config had no visible effect. All five multipliers are now applied correctly. (BF-05)

  • whisperPhrases config key loaded but never usedhandleWhispers() used an internal hardcoded array instead of the phrases from mechanics.yml. Player-configured phrases including phrases-vi / phrases-en are now displayed correctly. (BF-06)

  • hg.no-netherite-drop bypass via corpse zombie — the death handler stripped netherite from event.getDrops() but then re-equipped the corpse zombie with raw armour including netherite. A player could kill the corpse to recover the items. Netherite is now stripped from the corpse's equipment when the option is enabled. (BF-07)

  • Tank zombie ENTITY_RAVAGER_STEP sound spamhandleTank() fired a full-volume step sound every 0.5 s with no throttle, flooding clients when multiple Tank zombies were active. A 10% per-call chance now limits the frequency. (BF-08)

  • panicCooldowns HashMap memory leak — UUID entries were added on /zapoc panic but never removed on disconnect. Entries are now removed in onPlayerQuit. (BF-09)

  • Stalker spawn used zombie's world for player's Y lookupgetHighestBlockYAt() was called on the zombie's world; if the target player had recently changed worlds the Y could be wrong. Player's own world is now used for the lookup. (BF-10)

Performance

  • handleSunEffect() YAML reads inside per-zombie loop eliminated — seven FileConfiguration.get*() calls per zombie per tick removed. All sun-effect config values are now cached at task level and refreshed every 5 s. Eliminates ~1,400 redundant map lookups per second at 200 tracked zombies. (BF-11)

  • Math.random() replaced with ThreadLocalRandom throughout — 20+ usages replaced across CampfireManager, ZombieApoc, ZombieBehaviorService, ZombieBehaviorTask, PlayerStatusTask, WorldEventTask, ZombieEvolutionService, and SpecialZombieListener. (BF-12)

Notes

  • No config changes required. All existing data.yml, campfires.yml, and turrets_data.yml are fully compatible.

ZombieApocalypseSSS 4.3.3

release14 апреля 2026 г.

ZombieApocalypseSSS – Bug Fix Report (v4.3.2 → v4.3.3)

Custom Items Retained

  • Bandage – stops bleeding
  • Antivirus – cures infection
  • Adrenaline – speed/strength boost (60s cooldown, crash effect after)
  • ZombieCamo – zombies ignore you for 60s
  • Radio – detect next supply drop location (5min cooldown)

Bug Fixes

#SeverityFileDescription
33🔴ZombieSpawnServiceZombie names encoded as §c§lSCREAMER → fixed to §c§lSCREAMER. Affected: SCREAMER, Stalker, Crawler, Feign Death, Boss. Names were rendering as garbage text on all servers.
34🔴ZombieApoc (onEnable)registerRecipes() was never called — comment RECIPES REMOVED was accidentally left after feature re-enable. All 6 vanilla crafting recipes (bandage, antivirus, adrenaline, zombie camo, radio, turret) were silently unavailable.
35🔴BandageItemcreate() read custom-model-data from getPluginConfig() (config.yml) instead of getItemsConfig() (items.yml). Bandages would always spawn without CustomModelData, breaking resource packs.
36🔴SurvivalGuideListenerSurvivalGuideHolder.getInventory() returned null — violates InventoryHolder contract. Fixed: holder stores and returns its own Inventory reference.
37🔴MilitaryCheckpointspawnTowerSniper() re-rolled random offset/height instead of using the cached towerBase/towerHeight computed in cacheTowerPosition(). Tower snipers could spawn anywhere except the actual tower.
38🟠AdrenalineItemonInteract() lacked RIGHT_CLICK_AIR / RIGHT_CLICK_BLOCK guard. Item could trigger on LEFT_CLICK_BLOCK in edge cases.
39🟠ZombieApoc (TabComplete)/zapoc give camo was listed in tab-complete but the switch-case expected "zombie-camo". Fixed to "zombie-camo" in both places.
40🟠CrashedSupplyPlanesetMaxHealth() deprecated since Bukkit 1.16. All mob health now uses Attribute.GENERIC_MAX_HEALTH.setBaseValue(). Affected: pilot, supply guard, medic, soldier zombies.
41🟠MilitaryCheckpointSame setMaxHealth() deprecation fix for heavy soldiers, commanders, and tower snipers.
42🟠AbandonedHospitalWHITE_BED placement ignored required BlockData facing direction — bed failed silently. Replaced with WHITE_WOOL as visual equivalent.
43🟠RadioItemLore cooldown update only scanned main hand + off hand. If player moved radio to any other slot the cooldown label stayed stale forever. Fixed to scan full inventory.
44🟡Structure types (×5)isReplaceable() and isValidMobSpawn() copy-pasted in 5 classes. Extracted to new StructureHelper utility class.
45🟡AbandonedHospital, AbandonedOutpostPro, SurvivorCampStructure zombies used vanilla world.spawnEntity() — bypassing custom AI, tier evolution, sun effects, and tracking. Now use ZombieSpawnService.spawnCustomZombie().

New Utility Class

StructureHelper (structure/StructureHelper.java)

  • isReplaceable(Material) — shared replaceable-block check
  • isValidMobSpawn(World, Location) — 3-block column spawn validation
  • setBlockSafe(World/Location, Material) — convenience block-place wrapper

[4.3.3] - 2026-04-13 - Bug Purge & Structure Overhaul

Fixed

  • Zombie name encoding — SCREAMER, Stalker, Crawler, Feign Death, and Boss zombies displayed garbage text (§c§lSCREAMER) on all servers due to source-file encoding corruption. All names now render correctly.
  • Recipes never registered — all 6 crafting recipes (Bandage, Antivirus, Adrenaline, Zombie Camo, Radio, Sentry Turret) were silently missing. registerRecipes() is now correctly called in onEnable.
  • Bandage CustomModelDataBandageItem.create() read CMD from the wrong config file (config.yml instead of items.yml). Bandages now respect resource-pack model overrides.
  • SurvivalGuide GUI crashSurvivalGuideHolder.getInventory() returned null, violating the InventoryHolder contract. The holder now stores and returns a proper Inventory reference.
  • Tower sniper spawn positionMilitaryCheckpoint snipers re-randomised their spawn offset on every call instead of using the cached tower position from cacheTowerPosition(). Snipers now always spawn on the tower platform they are supposed to guard.
  • AdrenalineItem left-click trigger — added missing RIGHT_CLICK_AIR / RIGHT_CLICK_BLOCK guard; item could fire on left-click in edge cases.
  • /zapoc give zombie-camo — tab-completion listed "camo" but execution expected "zombie-camo". Both are now consistent.
  • setMaxHealth() deprecation — replaced all deprecated LivingEntity.setMaxHealth() calls in CrashedSupplyPlane and MilitaryCheckpoint with Attribute.GENERIC_MAX_HEALTH.setBaseValue().
  • AbandonedHospital bedsWHITE_BED placement requires directional BlockData not set during procedural generation, causing silent failures. Replaced with WHITE_WOOL as a visual equivalent.
  • RadioItem stale cooldown lore — cooldown label in item lore only updated when the radio was in the main hand or off hand. Now scans the full inventory so the label always reflects the real cooldown.

Changed

  • Structure zombies now use plugin AIAbandonedHospital, AbandonedOutpostPro, and SurvivorCamp spawned plain vanilla zombies that bypassed custom AI, tier evolution, sun effects, and the tracking map. They now call ZombieSpawnService.spawnCustomZombie(), so all structure zombies scale with server difficulty like any other custom zombie. Thematic equipment (hospital gown, outpost guard gear, survivor leather) is applied on top of the custom zombie.

Added

  • StructureHelper utility classisReplaceable(Material), isValidMobSpawn(World, Location), and setBlockSafe() were copy-pasted identically across 5 structure classes. This shared utility eliminates the duplication. All structure implementations now delegate to StructureHelper.

Notes

  • No config file changes required for this update. Existing data.yml, campfires.yml, and turrets_data.yml are fully compatible.
  • This release is recommended for all servers running 4.3.x.

ZombieApocalypseSSS 4.3.1

release9 апреля 2026 г.

ZombieApocalypseSSS – Bug Fix Report (v4.3 → v4.3.1)

Custom Items Retained

  • Bandage – stops bleeding
  • Antivirus – cures infection
  • Adrenaline – speed/strength boost (now with 60s cooldown)
  • ZombieCamo – zombies ignore you for 60s
  • Radio – detect next supply drop location

Removed Items

Gun system (commented out), Ammo, Landmine, Grenade, Flashbang, MedKit — stubs removed from ZombieUtils.


Bug Fixes

#SeverityFileDescription
1🔴WorldEventTaskBlood Moon now rolls once per night, not every 5 s (was ~99% effective chance)
2🔴ZombieApoc/zapoc infect & /zapoc cure now use infectionPointsKey (new system)
3🟠PlayerStatusTaskRemoved legacy infectKey migration block that caused same-tick inconsistency
4🟠WorldEventTaskSupply drop location uses getHighestBlockYAt on main thread safely
5🟠WorldEventTaskLoot chance uses nextDouble()*100 (was nextInt(100) >= double)
6🟡PlayerStatusTasktickCount changed to long (no overflow)
7🟡ZombieApocisPlayerInfected() now checks infectionPointsKey
8🟡WorldEventTaskBlood Moon messages routed through i18n system
9🔴ZombieCleanupListenerZombie tracking restored on chunk reload (ChunkLoadEvent)
10🔴ZombieApoc/zapoc reload unregisters old StructureManager listener (was multiplying on each reload)
11🟠StructureManagerStructures skip ocean/river biomes
12🟠ZombieBehaviorTaskScreamer config now reads from correct file (zombies.yml) and correct path
13🟡WorldEventTaskSupply drop rotates among random online player (not always first in list)
14🟡PlayerStatusTaskBleeding uses System.currentTimeMillis() for stable 2 s interval under lag
15🔴AntivirusItemNow clears infectionPointsKey — previously never worked
16🔴ZombieUtilsAll getItemByKey calls are null-safe with log warnings
17🟠AdrenalineItem60-second cooldown added (was infinite-spam)
18🟠ItemListenerEquipmentSlot.HAND guard prevents items firing twice per click
19🟡PsychologicalHorrorTaskHallucination zombie spawned as PLUGIN reason, not intercepted by SpawnListener
20🟡RadioItemCooldown lore update checks both main hand and offhand
21🟡SpecialZombieListenerNamespacedKey for ability cooldown cached (not created per-hit)
22🔴ZombieCamoItemNow writes to plugin.getCamoKey() ("apoc-camo") — previously never worked
23🔴BandageItemChecks PersistentDataType.INTEGER (was BYTE) — previously never worked
24🔴ZombieBehaviorServiceonPlayerDeath uses correct key names — bleeding/infect now cleared on death
25🟠ZombieUtilsRemoved dead stubs for unregistered item keys (gun, ammo, landmine, etc.)
26🟠ZombieBehaviorServiceBleeding config reads from zombiesConfig (was pluginConfig)
27🔴ZombieApoc/zapoc give <gun> no longer NPE-crashes; shows friendly message
28🟠ZombieBehaviorTaskmoans, mutation, zombie-breaking now read from zombiesConfig
29🟠ItemProtectionListenerCMD validation uses getItemsConfig() (was getConfig())
30🟠ZombieApoc/zapoc stats shows actual infection points (was always "NO")
31🟠ZombieBehaviorTaskScreamer config path fixed: zombies.types.screamer.*
32🟡SurvivalGuideListenerGuidePage.valueOf() wrapped in try/catch

4.3

release5 апреля 2026 г.

[4.3] — 2026-04-05 🏗️ Structure System Refactor

Complete overhaul of all structure generation code for maintainability and safety.

🏗️ Structure System Overhaul

MilitaryCheckpoint.java

  • Refactored rotation system: Unified transform() and applyRotation() methods
  • Variant enum system: Converted from integers to proper Variant enum (ABANDONED, OVERRUN, ACTIVE)
  • Constants extraction: Added 50+ named constants:
    • SPAWN_RADIUS, MAX_TERRAIN_HEIGHT_DIFF
    • ROAD_LENGTH, ROAD_HALF_WIDTH
    • BARRIER_LENGTH_BASE, TOWER_HEIGHT_BASE
    • SHULKER_CHANCE, CHEST_SEARCH_ATTEMPTS
    • HEAVY_SPAWN_CHANCE, BOSS_HEALTH_BASE, etc.
  • Improved setBlockSafe(): Added comprehensive isReplaceable() helper
  • Cached tower position: Pre-calculate for sniper spawning

CrashedSupplyPlane.java

  • Fixed setBlockSafe(): Properly handles replaceable blocks
  • Mob spawn safety: Added isValidMobSpawn()
  • Location-based random: Unique randomness per structure
  • Performance optimization: Reduced Location.clone() calls
  • Improved canSpawn(): Height variation checks

AbandonedHospital.java

  • Added constants: SPAWN_CHECK_RADIUS, MAX_HEIGHT_VARIATION, ZOMBIE_COUNT
  • Safe block placement: setBlockSafe() with isReplaceable()
  • Mob spawn safety: isValidMobSpawn()
  • Safe chest placement: placeChestSafely()

SurvivorCamp.java

  • Complete refactor: Extracted all magic numbers to constants
  • Tent validation: buildTent() checks space before building
  • Safe methods: setBlockSafe(), placeBlockSafely(), placeChestSafely()

AbandonedOutpostPro.java

  • Added constants: FENCE_BROKEN_CHANCE, STRUCTURE_RADIUS
  • Improved canSpawn(): Height check + replaceable block validation
  • Mob spawn safety: spawnOutpostZombies() with validation

🧹 Code Cleanup

Removed Unused Files (11 files)

  • EngineeringTableManager.java — No longer used
  • items/impl/*.java (10 files) — Unused items:
    • ChainsawItem.java, FlashbangItem.java, GrenadeItem.java
    • KatanaItem.java, LandmineItem.java, MedKitItem.java
    • MeleeWeaponItem.java, MolotovItem.java, SimpleItem.java
    • ZGunWeapon.java

Updated Files

  • StructureManager.java — Changed AbandonedOutpostAbandonedOutpostPro

📊 Statistics

  • Files refactored: 5 structure files
  • Files deleted: 11 unused files
  • Constants added: 75+
  • Helper methods added: 15+

🔒 Safety Improvements

All structures now have:

  • setBlockSafe() with isReplaceable()
  • isValidMobSpawn() for safe spawning
  • ✅ Height-aware canSpawn() validation
  • ✅ Location-based random seed
  • ✅ Constants replacing magic numbers

4.2

release5 апреля 2026 г.

[4.2] — 2026-04-05 🧹 The Streamlining Update

Plugin refactored to focus on core survival mechanics. Guns and weapons moved to separate plugin.

🔥 Major Changes

🗑️ Removed Custom Items (except 5 core items)

All custom items have been removed except:

  • Bandage — Paper ×2 + String
  • Antivirus — Golden Apple + Potion + Fermented Spider Eye
  • Adrenaline — Sugar + Glowstone Dust + Spider Eye
  • Zombie Camo — 8× Rotten Flesh + Slime Ball
  • Radio — 9× Compass

Removed: medkit, molotov, grenade, flashbang, landmine, goggles, all guns (pistol, smg, ak47, sniper, shotgun), all melee weapons (bat, katana, chainsaw, axes), and ammo.

🔨 Removed Engineering Table

The EngineeringTableManager has been completely removed. All remaining items now use vanilla crafting table recipes.

🔫 CombatGunSSS Integration

For guns, ammo, and advanced weaponry, install the companion plugin:

  • CombatGunSSS — 30+ guns with ballistics engine
  • Full API compatibility between plugins
  • Seamless infection and zombie damage integration

Совместимость

Minecraft: Java Edition

1.21.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:Apache-2.0
Опубликован:3 месяца назад
Обновлён:2 недели назад
Главная