OneLiteFeatherNET / OneLiteFeatherNET/Voyager

Basic anti-cheat: server-side velocity cap, ring teleport detection

Open
#130 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

beta gameplay P2
Dominant language
Java
Stars
0
Forks
0
Avg merge
2d 21h
Merged PRs (30d)
12

Description

Description

With open beta, unknown players will join. Basic anti-cheat measures are needed to prevent obvious cheating: speed hacking (artificially high velocity) and ring teleporting (skipping rings by teleporting past them).

Acceptance Criteria

  • Server rejects position updates where the player moved more than maxSpeed + tolerance blocks/tick (configurable per map, default: vanilla max elytra speed ~3.5 blocks/tick)
  • Ring skip detection: if a player's ring sequence jumps by more than 1, the intermediate ring is flagged as skipped and not credited
  • Flagged events are logged with: player UUID, timestamp, event type, position data
  • After 3 violations in a session, player is kicked with "Unusual movement detected"
  • Anti-cheat can be disabled in dev-mode (/dev-start flag)
  • Unit test: submit a position packet with 2× legal velocity → verify rejection and log entry

Technical Details

  • Position validation logic in PhysicsSystem or a new AntiCheatSystem
  • Must use server-authoritative physics data, not raw client packets
  • Sequential ring enforcement already exists — extend it for skip detection

Dependencies

  • Server-authoritative physics is already implemented

Estimate

M

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the server-authoritative physics entry point, then inspect PhysicsSystem or the proposed AntiCheatSystem and the existing sequential ring enforcement. Check how /dev-start identifies dev mode and add the specified unit test for an over-limit position packet. Done means velocity and ring skips are rejected or uncredited, events are logged, three violations kick the player, and dev mode disables the checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.