Tags
Creators
Details
3.4.0
Compatibility
Changes
Halloween Plugin v3.4.0 - CHANGELOG
Release Date: September 2026
Type: Feature Release
Previous Version: v3.3.0
The biggest update since 3.0.0: an admin toolkit (season scheduler, manual triggers, witching hour, Discord
webhook), statistics with leaderboards and PlaceholderAPI support, boss bars & titles, a WorldGuard region
flag, flexible rewards (command: / money: / candy:) and a candy economy with a configurable Pumpkin Trader.
Optional integrations (Vault, PlaceholderAPI, WorldGuard) are soft-dependencies - nothing is required.
β¨ New
Season scheduler (season)
season: { enabled: false, start: "10-01", end: "11-05", countdown_days: 7, timezone: "" }
Turns Halloween on when the season starts and off when it ends (checked every minute). Only boundary
crossings are applied, so /halloween on|off still works manually in between. Players joining shortly before the
start see a countdown (seasonCountdown). The season end announces the leaderboard (see statistics).
/halloween trigger <event> [player|@a] (permission halloween.trigger)
Fire any scare event or boss on demand: pumpkin, slenderman, fire, lightning, darkness, herobrine,
zombieboss, skeletonboss, batwitch. Works regardless of the global state and ignores cooldowns, but respects
world protection (nothing spawns in a blacklisted world or a WorldGuard region with halloween-events = deny).
/halloween debug eligible [player]
Prints every condition that decides whether a player receives events, boss bars and titles (global state,
/halloween disable, world blacklist, vanish, spectator, WorldGuard) - the first thing to run when someone asks
"why don't I see anything?".
(The scare effects were moved out of the timer tasks into EventEffects, removing six copies of the same code.)
Witching hour (witching_hour)
A daily window (server clock or in-game time) in which events fire more often (interval_multiplier), with
start/end announcements and random ambient horror sounds. Timers are restarted when the window opens so the
multiplier applies immediately.
Discord webhook (discord)
Boss spawn/defeat, grave start/complete, season start/end and the season-end leaderboard posted to a Discord
channel. Texts are discord* categories in messages.yml (colours stripped), sending is asynchronous and rate-limited.
Statistics (statistics, stats.yml)
Per-player counters: scares, pumpkins_received, halloween_mob_kills, bosses_spawned, bosses_defeated,
graves_started, graves_completed, grave_mvp, cakes, candy_earned, pumpkin_time.
/halloween stats(own, onlystatistics.player_visiblestats; permissionhalloween.stats, default true)/halloween stats <player>and every stat:halloween.stats.admin(orhalloween.use)/halloween top <stat> [count](public unlessstatistics.top_public: false)- PlaceholderAPI expansion
halloween:%halloween_<stat>%,%halloween_top_<stat>_<n>_name|value%,%halloween_season_active%,%halloween_witching_hour% - Season end: top N players (
season_end_top,season_end_stat) broadcast + Discord. - Saved every 5 minutes (snapshot, async write) and on shutdown.
Boss bars & titles (visuals)
Health bars for the Pumpkin Monster and the Halloween Boss (players within visuals.boss_bar.radius), a grave
wave bar (Wave 2/3 Β· 5 mobs left Β· 1:30, countdown = wave timeout) and titles for boss spawn, wave start and
grave completion (title* categories, Title|Subtitle). Bukkit API only - works on Spigot too.
WorldGuard region flag halloween-events (worldguard)
When WorldGuard is installed the plugin registers the flag (allow by default). /rg flag <region> halloween-events deny
stops scare events, buffs, rewards, bosses, graves and Pumpkin Traders inside the region.
Rewards: command:, money:, candy:
Every rewards: list (bosses, graves) accepts, next to material::
- command: "give %player% cake 1"- console command, run for every participant- money: 100- Vault economy (grave: split by kill share); skipped with a warning without Vault- candy: 5- Halloween Candy (min/max optional)chance:now works for every entry (before 3.4.0 the boss lists ignored it -ZOMBIE_HEAD chance: 0.3dropped every time). Unknown materials are reported in the console instead of being silently skipped.
Halloween Candy & configurable Pumpkin Trader (candy, pumpkin_villager.trades)
A tagged item (default: COOKIE named "Halloween Candy", not edible) drops from grave mobs, random pumpkin mobs,
bat witches and boss/grave chests (candy.drops). The Pumpkin Trader's trades are configurable
(cost/result/max_uses; item: CANDY = the candy item) - defaults keep the classic 1 emerald β 64 pumpkins
and add candy trades. /halloween candy give <player> <amount> for admins. pumpkin_villager.daily_limit
(never implemented) is replaced by per-trade max_uses.
Grave: glowing reward chest, overall completion
- The reward chest gets a glowing outline (visible through terrain) until it is opened - or for
grave.chest_glow.minutes(default 15). Toggle withgrave.chest_glow.enabled. - Completion is now measured over all waves (mobs killed / mobs spawned). Before, only the last wave counted,
so a grave with a timed-out wave 2 still reported "100%" and paid full rewards. A grave finished below 100 %
now says so (
graveFinalCompletion) and scales the chest accordingly.
/halloween reset cooldowns [player]
Clears boss and grave cooldowns for one player or everyone (handy for testing and events).
π§ Changed / fixed
- Grave: the "30 seconds remaining" warning of a wave that was cleared early no longer fires during the next wave (it is cancelled together with the wave timeout and checks the wave number).
- Pumpkin Traders created by older versions get the configured trades automatically (on startup and when opened),
keeping
max_usesprogress when the offers already match. grave.pumpkin_drops_per_mobwas never read (1 pumpkin at 10 % was hardcoded); it is now honoured together with the newgrave.pumpkin_drop_chance. The shipped default is 1 (unchanged behaviour); configs that set 3 now get 3.- data.yml is written from a snapshot (the previous async save iterated live maps - race condition).
- Boss and grave cooldowns are persisted immediately (they were only saved on the next unrelated save).
/halloween onstarts tasks only for eligible players (was: everyone online).- Soft-dependencies declared:
softdepend: [Vault, PlaceholderAPI, WorldGuard]; new permissionshalloween.stats,halloween.stats.admin,halloween.trigger.
Upgrade
Drop-in for v3.0.5+. New top-level sections (worldguard, season, witching_hour, discord, statistics,
visuals, candy) are appended to your config, pumpkin_villager.trades is inserted into the existing section,
45 new message categories are appended to messages.yml. Everything new is optional; defaults keep current behaviour.
Minecraft 26.3: compiled against the 26.3 API and tested on Paper 26.3 alpha builds β expected to work, marked supported once Paper 26.3 is stable. Full docs: https://softici.gitlab.io/halloween/
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:wskTmuSO:IN2DOOtC"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:wskTmuSO:IN2DOOtC"
}

