⚠️
Early Development Notice
WorldPreventer is still in a very early stage of development. Many systems are functional, but the
machine learning (ML) detection system does not ship with a trained model.
- Do not enable ML detection unless you have trained your own model.
- If you see the notification REQUEST_STATS observed (WorldTools signature), this likely indicates that a client is attempting to download your world.
Overview
WorldPreventer is a
high-performance anti-exploit and world protection plugin designed to safeguard your server from a wide range of threats, including:
- World downloads
- Chunk exploitation
- Suspicious client behavior
It combines
packet-level monitoring,
behavioral analysis, and
adaptive responses to protect your server from malicious activity.
✨ Features
Core Protection Systems
- Chunk Exploit Prevention
- Detects & prevents rapid chunk loading/unloading
- Monitors chunk interaction patterns
- Stops chunk boundary exploits
- WorldTools Blocker
- Blocks WorldTools client functionality
- Prevents unauthorized world downloads
- Detects & blocks rapid join/leave patterns
- Deep Packet Inspection
- Analyzes network traffic for suspicious patterns
- Detects & blocks malicious packet sequences
- Monitors data volume & timing anomalies
- Adaptive Response System
- Dynamic threat-level scoring
- Escalating responses (warn → kick → ban)
- Fully configurable actions
Machine Learning Detection (Optional)
⚠️
Important: The ML system is disabled by default and ships
without a trained model. Do not enable it unless you train your own.
When configured properly, the ML system provides:
- Anomaly Detection – Spotting unusual player behavior
- Behavioral Analysis – Learning normal server patterns
- Real-time Scoring – Constantly evaluating actions
- Adaptive Thresholds – Adjusting to server conditions
Tracked Features (12 total):
Chunk transitions, container interactions, movement volume, entity spawn rates, packet bursts, systematic movement, join surges, client brand, timing precision, data volume variance, interaction patterns, movement entropy.
⚙️ Commands & Permissions
Admin Commands
- /worldpreventer reload – Reload configuration
- /worldpreventer status – View protection status
- /worldpreventer simulate <player> <test> – Run simulation tests
- /worldpreventer ml [enable|disable|status] – Manage ML system
Permissions
- worldpreventer.admin – Full access & bypass
- worldpreventer.staff – Receive suspicious activity alerts
- worldpreventer.bypass – Exclude player from detection
️ Configuration
Example config.yml:
# Grace period after join
join_grace_period_seconds: 120
# Escalation actions
actions:
on_exceed: WARN # WARN, KICK, BAN
# Suspicion scoring
scoring:
enabled: true
decay_per_minute: 10.0
thresholds:
warn: 100.0
kick: 500.0
# Machine Learning (disabled by default)
ml:
enabled: false
direct_kicks: false
score_threshold: 3.0
points_on_exceed: 20.0
kick_message: "§cKicked by ML anti-cheat system"
window_seconds: 60
autosave_minutes: 5
decay: 0.98
# ProtocolLib-based packet blocking
packet_blocking:
enabled: true
block_stats_request: false
block_statistics: false
block_map_data: false
corrupt_block_entities: false
inject_fake_data: false
Integration
Dependencies
API Example
WorldPreventer plugin = (WorldPreventer) Bukkit.getPluginManager().getPlugin("WorldPreventer");
// Get suspicion score
double score = plugin.getSuspicionScorer().getScore(player.getUniqueId());
// Add custom detection points
plugin.getSuspicionScorer().addScore(player.getUniqueId(), 10.0, "CUSTOM_EVENT");
Staff Notifications
Staff with permission receive alerts for:
- Suspicious activity
- ML system detections
- Config changes
- Warnings & errors
Bypass Options
Players excluded from detection:
- worldpreventer.bypass permission holders
- Players in Creative mode
- Players in Spectator mode
Support
For bug reports, feature requests, or support, please visit the
Discord