Skip to main content

Anti-Exploit

A set of individually toggleable protections against common survival exploits. Every one is disabled by default and each has its own bypass permission, so staff can be exempted without disabling the feature.

No Slow

Removes the vanilla movement slowdown applied while an item is being used (drawing a bow, blocking with a shield). Implemented with a temporary MOVEMENT_SPEED attribute modifier that is stripped as soon as the player stops using the item, changes held slot, quits, or the feature is disabled.

features:
no-slow:
enabled: false
speed-multiplier: 5.0
affected-items:
- BOW
- CROSSBOW
- SHIELD
- TRIDENT
OptionDescription
speed-multiplierVanilla slows the player to roughly 20% speed, so 5.0 restores normal walking speed. Tune on a live server — armour, effects, and per-item behaviour all shift the real value.
affected-itemsMaterials that trigger slowdown removal. Unknown material names are skipped with a console warning.

Boat Fly

Detects boats held airborne for a sustained number of ticks and removes the exploit, either by teleporting the boat back to its last grounded location or by ejecting the rider. Water, ice, and any descending movement reset the counter, so normal boating and waterfalls are not flagged.

features:
boat-fly:
enabled: false
airborne-ticks: 20
action: teleport
OptionDescription
airborne-ticksConsecutive airborne ticks before acting. Too low will false-positive on jumps and waterfalls.
actionteleport returns the boat to its last grounded location, eject removes the rider.

Bypass permission: smp.bypass.boatfly

Anti Elytra

Cancels elytra gliding.

features:
anti-elytra:
enabled: false
mode: combat-only
worlds:
- world_the_end
ModeBehaviour
alwaysGliding is never allowed.
worldsGliding is blocked only in the listed worlds.
combat-onlyGliding is blocked while the player is combat tagged.

Bypass permission: smp.bypass.antielytra

Anti Totem

Cancels totem of undying resurrections.

features:
anti-totem:
enabled: false
mode: combat-only
max-per-life: 1
ModeBehaviour
alwaysTotems never pop.
combat-onlyTotems are blocked while the player is combat tagged.
limit-per-lifeTotems pop up to max-per-life times per life, then are blocked until respawn.

Bypass permission: smp.bypass.antitotem

Anti Nether Roof

Keeps players off the nether ceiling, using the world's logical height (normally Y=128).

features:
anti-nether-roof:
enabled: false
action: teleport
block-placement: true
OptionDescription
actionteleport moves the player to safe ground below, damage hurts them instead.
block-placementAlso cancels block placement above the roof.

Creative and spectator players are always exempt. Bypass permission: smp.bypass.netherroof

Anti Overworld Roof

The overworld has no vanilla ceiling exploit, so this enforces a configurable build/travel height limit instead.

features:
anti-overworld-roof:
enabled: false
max-y: 256
action: teleport
block-placement: true
OptionDescription
max-yHeight at or above which the feature acts.
actionteleport moves the player to safe ground below, damage hurts them instead.
block-placementAlso cancels block placement above the limit.

Creative and spectator players are always exempt. Bypass permission: smp.bypass.overworldroof

Crasher Kick

Cancels oversized payloads used to crash clients, covering written books, creative-mode item transfers, and sign edits.

features:
crasher-kick:
enabled: false
max-payload-bytes: 32000
kick: true
OptionDescription
max-payload-bytesMaximum allowed payload size before the player is flagged.
kicktrue kicks the player, false cancels the action and warns them.

Every flag is logged to console with the offending vector and payload size. Bypass permission: smp.bypass.crasherkick

note

This only covers API-visible payload vectors. Raw packet-level crashers require ProtocolLib, which Vanilla Core does not depend on.

Combat Tagging

The combat-only modes of Anti Elytra and Anti Totem share one combat tag, refreshed whenever a player deals or takes damage from another player (including projectiles).

combat:
tag-duration-seconds: 15