Skip to main content

⚔️ Mob Invasion

MOB_INVASION creates wave-based combat events.

Players earn points by fighting mobs that spawn during the invasion.

It works well for:

server invasion events
arena waves
spawn defence events
boss minigames
survival challenges

Basic example

objective:
type: MOB_INVASION
world: world
x: 0
y: 70
z: 0
radius: 25

waves:
1:
mobs:
ZOMBIE:
amount: 5
points: 1

2:
mobs:
SKELETON:
amount: 4
points: 2

Location settings

SettingDescription
worldWorld where the invasion happens
x, y, zMain invasion location
radiusArea used for spawning and nearby checks

Example:

objective:
type: MOB_INVASION
world: world
x: 100
y: 70
z: 100
radius: 30

Waves

Waves are configured under waves:.

objective:
type: MOB_INVASION
waves:
1:
mobs:
ZOMBIE:
amount: 5
points: 1

2:
mobs:
SKELETON:
amount: 4
points: 2

Each wave can contain one or more mob types.


Mob settings

SettingDescription
amountHow many mobs to spawn
pointsPoints awarded for killing that mob

Example:

waves:
1:
mobs:
ZOMBIE:
amount: 8
points: 1
HUSK:
amount: 3
points: 2

Start requirements

v1.0.2 adds nearby-player start checks.

start-requirements:
require-player-nearby: true
radius: 50

If enabled, the event will only start if at least one player is near the invasion location.

This is useful for scheduled invasions because it stops events from starting in empty areas.


Empty-area behaviour

v1.0.2 adds empty-area wave pausing.

empty-area:
pause-waves: true
radius: 50

When enabled, EventForge pauses wave progress if nobody is nearby.

This prevents waves from spam-completing when players are not near the invasion area.


Join location

Mob Invasion events can provide a join location.

join:
enabled: true
world: world
x: 0
y: 70
z: 0
yaw: 0
pitch: 0

Players can use:

/events join mob_invasion

The event must be active and join support must be enabled.


Bossbar example

bossbar:
enabled: true
text: "&c{event_display} &8| &f{time_left} &8| &eScore: {score}"
color: RED
style: SEGMENTED_10

Animated bossbar example

bossbar:
enabled: true
text: "&c{event_display} &8| &f{time_left}"
color: RED
style: SEGMENTED_10

animated-text:
enabled: true
interval: 20
frames:
- "<fire>{event_display}</fire> &8| &f{time_left}"
- "&eScore: &f{score} &8| &7Rank: &e#{rank}"
- "<pulse:#ff5555:#ffffff>Defend the area!</pulse>"

Milestone example

milestones:
enabled: true
thresholds:
10:
display-name: "&e10 Invasion Points"
once-per-player: true
actions:
- type: MESSAGE
message: "&aYou reached &f{milestone_display}&a!"
- type: SOUND
sound: ENTITY_PLAYER_LEVELUP

Testing

After adding or editing the event file:

/eventforge reload
/eventforge validate mob_invasion
/eventforge start mob_invasion
/events join mob_invasion

If the event does not start, check:

/eventforge check mob_invasion
/eventforge errors mob_invasion

Troubleshooting

Event will not start

Check:

start-requirements:
require-player-nearby: true

If this is enabled, make sure a player is near the invasion location.

You can also check:

/eventforge check mob_invasion

Waves pause

If waves pause, check:

empty-area:
pause-waves: true

This means EventForge is waiting for players to be near the invasion area again.

Players cannot join

Check that the event has:

join:
enabled: true

and make sure the event is currently active.


Summary

MOB_INVASION is used for wave-based combat events.

v1.0.2 improves it with:

nearby-player start requirements
empty-area wave pausing
/events join support

Use it for invasion arenas, survival events, and server-wide combat challenges.