VirgolaAntiCheat icon

VirgolaAntiCheat -----

Complete and modern AntiCheat for Paper 1.21.x, with GUI and automatic ban system!



ChangeLog 10.08.2025
Changelog 10.08.2025
Highlights
  • KillAura check fully reworked for accuracy and performance: main-thread safety, robust entity resolution with ProtocolLib, adaptive hitbox edge tolerance, and async alert pipeline aligned with NoFall.

  • Safety fixes for async Bukkit usage (no more “Asynchronous Chunk getEntities”).

  • Better false-positive control (especially for borderline hits and powder snow/edge cases across checks).

  • Config clarity: cleaned up and documented checks.yml parameters (English keys + how they affect strictness).

  • Performance: reduced allocations, batched config reads with lightweight caching, zero unnecessary thread switching.
Combat — KillAura
Major refactor and reliability improvements

  • Rebuilt the check to detect suspicious hits when the player is not actually looking at the target’s hitbox, with:
    • Ray vs AABB intersection test (hard rule).

    • Soft look checks (look dot, angle, yaw difference).

    • Hard FOV gate (extreme out-of-view hits trigger definite alert).
  • Adaptive edge tolerance for “borderline” hits:
    If the player’s aim is very good (high dot / low angle), the check allows a larger miss tolerance on the eye→reach segment distance. This significantly reduces false positives for legit near-edge hits.

  • Main-thread safe entity resolution (via Bukkit.getScheduler().runTask inside USE_ENTITY handler).
    Fixes the Paper error: “Asynchronous Chunk getEntities call”.

  • Packet look cache: captures yaw/pitch from LOOK/POSITION_LOOK packets for more accurate angles, with low overhead.

  • ProtocolLib fallback: if entity use action can’t be read, the system gracefully falls back to EntityDamageByEntityEvent.

  • Async alert flow (modeled after NoFall):
    Off-thread alert broadcast + logging, then main-thread actionbar + warning addition + player message.

  • Zero debug noise by default; clean console.

  • Performance-first design: no heavy allocations, minimal math helpers, tiny configuration cache with periodic refresh.
New / adjusted config keys (in checks.yml > KillAura):

  • enabled — turn the check on/off.

  • min_look_dot — higher = stricter.

  • max_look_angle — lower = stricter.

  • max_yaw_diff — lower = stricter.

  • close_distance_always_allow — allow very close melee scrums.

  • hard_reach — ray length. Slightly increased default to reduce FPs on edges.

  • hard_fov_deg — immediate fail if exceeded.

  • aabb_expand — expands target hitbox slightly to reduce edge FPs.

  • ray_miss_tolerance — base tolerance for the ray “miss distance”. Now combined with adaptive tolerance (better aim → more tolerance).

  • cooldown_ms — per-player alert cooldown.

  • warning_amount — points added per alert.
(We also provided English descriptions for all keys so you can tune strictness safely.)

Movement — Speed (quality updates)
  • Added safeguards to avoid speed alerts during legitimate teleports/warps (small grace when server forcibly sets position).

  • Powder Snow handling improved to avoid false positives when walking/falling through it (slow descent / friction cases).

  • Cleaned and optimized the check loop (fewer config lookups, minor math/logic tweaks) without changing your original logic.
Movement — NoFall
  • Introduced grace periods for legit scenarios: login, respawn, teleport, and other forced position changes.
    Prevents accidental NoFall alerts when the server resets the player’s position or flags.

  • Kept your original logic, refactoring for lower overhead and safer async/main-thread boundaries:
    • Packet-level fall tracking separated from Bukkit event path.

    • Asynchronous alert dispatch + main-thread UI/warning commit (consistent with KillAura).

    • Periodic cleanup of in-memory maps to prevent leaks.
Commands & Messages
  • Toggle messages: corrected formatting and color application behavior so the prefix and state color display properly at the start of the message.

  • MessageManager now translates color codes early and safely returns prefixed strings with color preserved (even at the beginning).
Stability & Performance
  • Eliminated unsafe async calls into Bukkit/Spigot/Paper API.
    (e.g., entity/world access strictly on the main thread.)

  • Reduced allocations (no temporary objects where not necessary) and limited config reads using lightweight parameter caching with periodic refresh (~1.5s).

  • Clear separation of lightweight math (main thread) and background tasks (logging/alert broadcasting).
Migration tips
  1. Replace the JAR with the new build.

  2. Delete the plugin data folder to let the plugin re-generate configs and internal structures.

  3. If you had custom changes, copy your previous edits into the newly generated configs (keys and defaults changed/expanded in places).

  4. Adjust KillAura thresholds gradually if needed:
    • Too many false positives → increase aabb_expand (e.g., 0.08–0.10), raise ray_miss_tolerance (e.g., 0.24–0.30), raise max_look_angle, or lower min_look_dot.

    • Too lenient → reduce ray_miss_tolerance, aabb_expand, hard_fov_deg, or increase min_look_dot.
----------, Aug 10, 2025
Resource Information
Author:
----------
Total Downloads: 256
First Release: Jul 27, 2025
Last Update: Aug 30, 2025
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings