Movement Checks
Movement checks detect speed hacks, fly hacks, and other movement-related cheats.
Speed
Detects players moving faster than allowed.
speed.ground
Horizontal speed while on the ground.
Detection:
- Compare distance traveled between position packets
- Account for sprint, effects, and modifiers
- Flag when exceeding maximum legitimate speed
Vanilla Limits:
| Movement Type | Max Speed (blocks/tick) |
|---|---|
| Walking | 0.1 |
| Sprinting | 0.26 |
| Sprint + Speed II | 0.52 |
Example Finding:
{
"detector_name": "movement_core_speed_ground",
"severity": "high",
"title": "Ground speed: 0.85 b/tick",
"description": "Moving faster than max allowed speed on ground",
"evidence_json": {
"distance": 0.85,
"max_allowed": 0.52,
"has_speed_effect": true,
"is_sprinting": true
}
}speed.air
Horizontal speed while airborne.
Detection:
- Track horizontal movement during jumps
- Account for initial velocity and momentum
- Detect acceleration that violates physics
speed.vehicle
Speed while riding entities (horses, boats, etc.).
Detection:
- Compare vehicle movement packets
- Account for vehicle type and attributes
- Flag impossible vehicle speeds
Fly
Detects unauthorized flight.
fly.survival
Flying in survival/adventure mode.
Detection:
- Track vertical position over time
- Identify sustained altitude without falling
- Detect creative-style flight patterns
Example Finding:
{
"detector_name": "movement_core_fly_survival",
"severity": "critical",
"title": "Survival flight: 120 ticks airborne",
"description": "Sustained flight detected without elytra or creative mode",
"evidence_json": {
"airtime_ticks": 120,
"average_y_delta": 0.001,
"expected": "falling"
}
}fly.hover
Hovering in place while airborne.
Detection:
- Identify packets with minimal Y movement
- Account for cobweb, water, and other blocks
- Flag sustained hovering patterns
fly.glide
Gliding without elytra or riptide.
Detection:
- Track fall rate over time
- Compare to expected gravity
- Detect artificially slow falling
NoFall
Detects fall damage bypass.
nofall.ground
Spoofing on_ground flag to avoid damage.
Detection:
- Compare claimed on_ground with expected state
- Track fall distance and landing
- Flag ground claims during falls
Example Finding:
{
"detector_name": "movement_core_nofall_ground",
"severity": "high",
"title": "NoFall: 15.5 block fall without damage",
"description": "Player claimed on_ground during significant fall",
"evidence_json": {
"claimed_ground": true,
"fall_distance": 15.5,
"y_position": 64.0
}
}Phase
Detects moving through solid blocks.
phase.horizontal
Moving through walls horizontally.
Detection:
- Track position changes through solid blocks
- Requires world state (challenging async)
- Best used with block position hints
phase.vertical
Moving through floors/ceilings.
Detection:
- Track vertical position through solid blocks
- Flag impossible upward movement
- Detect floor clipping
Step
Detects stepping up blocks too quickly.
step.height
Stepping up more than allowed.
Detection:
- Track Y increases per movement
- Maximum vanilla step is 0.5 blocks
- Flag larger single-tick Y increases
Example Finding:
{
"detector_name": "movement_advanced_step_height",
"severity": "medium",
"title": "Step height: 1.5 blocks",
"description": "Stepped up more than maximum allowed height",
"evidence_json": {
"step_height": 1.5,
"max_allowed": 0.6,
"on_ground_before": true
}
}Configuration
Example movement check configuration:
{
"movement": {
"speed": {
"enabled": true,
"buffer": 0.05,
"sprint_multiplier": 1.3,
"effect_consideration": true
},
"fly": {
"enabled": true,
"max_airtime_ticks": 80,
"hover_threshold": 0.01
},
"nofall": {
"enabled": true,
"min_fall_distance": 3.0
}
}
}