Compatibility
Minecraft: Java Edition
26.1.x
1.21.1–1.21.11
Platforms
Tags
Creators
Details
Licensed ARR
Published 2 days ago
Mood Contagion
Mobs now carry a hidden emotional state: CALM, PANIC, or RAGE. Combat seeds the state, it spreads to nearby mobs of the same type, and it fades back to calm over time.
- Hit a mob and it panics. It runs from you, and the fear spreads to others nearby: one scared sheep can set off the whole flock.
- Hit a wolf, a bee, or any hostile and it rages instead. Raging mobs move faster and hit harder, and a neutral animal will turn and come for you. Rage spreads the same way.
- Kill a mob and nearby mobs of the same type panic.
Panicking mobs give off yellow particles and enraged mobs give off red ones, so you can read the state at a glance.
How it works
- Each mob's state and a timestamp are stored on the mob in its
PersistentDataContainer, so moods survive chunk unloads and restarts and never leak memory. - A task runs about once a second and processes mobs round-robin with a per-tick budget, so the feature stays cheap on TPS no matter how crowded the world is.
- Emotional mobs have a chance to infect same-type neighbours within a radius. Moods decay back to calm after a configurable time.
- PANIC adds Speed and makes the mob flee the nearest player. RAGE adds Speed and Strength, and makes neutral mobs target the nearest player.
Commands
| Command | Description | Permission |
|---|---|---|
/moodcontagion info |
Show the current tunables. | moodcontagion.use (default: all) |
/moodcontagion here |
Count CALM/PANIC/RAGE mobs within 16 blocks of you. | moodcontagion.admin (default: OP) |
/moodcontagion reload |
Reload config.yml. |
moodcontagion.admin (default: OP) |
Aliases: /mood, /contagion.
Permissions
| Node | Default | Grants |
|---|---|---|
moodcontagion.use |
everyone | the info and here sub-commands |
moodcontagion.admin |
OP | reload (and includes moodcontagion.use) |
Configuration (config.yml)
| Key | Default | Meaning |
|---|---|---|
spread-radius |
8.0 |
Blocks within which a mood spreads to same-type mobs (also the flee/retarget scan range, x2). |
spread-chance |
0.35 |
Per-neighbour, per-second chance to infect a same-type neighbour. |
decay-seconds |
12 |
How long an emotional mood lasts before it decays to CALM. |
max-processed-per-tick |
40 |
TPS guard: max mobs handled per processing pass (round-robin). |
panic-flee-speed |
0.45 |
How hard a PANIC mob is shoved away from the nearest player. |
max-horizontal-velocity |
1.5 |
Hard cap on any velocity the plugin sets (anti-launch safety). |
death-seed-radius |
8 |
Blocks around a dying mob in which same-type mobs are seeded PANIC. |
effects.enabled |
true |
Master switch for all potion effects. |
effects.speed |
true |
PANIC and RAGE mobs gain Speed. |
effects.strength |
true |
RAGE mobs gain Strength. |
effects.rage-retarget |
true |
Neutral RAGE mobs target the nearest player (only when they have no valid target). |
effects.particles |
true |
Mood-coloured particle puffs above emotional mobs. |
All values are clamped to safe ranges on load.
Compatibility
Paper, Spigot, Bukkit, and Purpur 1.21.1 to 1.21.11 and the 26.1.x line (verified on 26.1.2), Java 21. Built against the Spigot API with no Paper-only classes, so the single jar works on all four server types.
Original concept, an internal test idea. Not sourced from a Reddit post.


