Sueta

Paragon Anticheat

1.2

The best free anticheat plugin. Anticheat plugin with modern checks for 1.21.11

·Plugin

Paragon Anticheat

Replace this with a description
Packet based anticheat for Paper 1.21.11. 63 checks, silent mod detection with per mod kicks on the very first join, seed protection, screenshare tools, raytrace anti xray plus anti freecam, and active mitigations that make cheats stop working instead of only flagging them.

Paragon watches packets, not clicks. Movement runs through a physics simulation, combat runs through statistics, and clients run through a silent translation probe that catches cheat mods with zero signs, zero editors and zero interaction. Built to be brutal on cheaters and invisible to legit players, on Java and Bedrock alike.

Support Discord

WHY PARAGON

MOD BLOCKER - Meteor, Wurst and 140 plus known mods get kicked on first join with the mod names on the screen (visible to those with permission).

FALSE FLAG RESISTANT - Buffered Checks, Ping Scaling, Lag Leniency and variance gates. One fast moment never punishes anyone. Only machine consistent repetition does. It's tuned to minimize false flags.

ACTIVE MITIGATIONS - Swap macro hits get cancelled, BoatFly ejects the driver, confirmed flyers get set back to verified safe ground, suspects quietly lose damage before the ban lands.

BEDROCK FRIENDLY - Geyser and Floodgate auto detection plus dot prefix matching when Floodgate is missing. Bedrock players skip mod scanning completely.

CLEAN CONFIG - The config is clean and very easy to edit and navigate, check it out yourself:

config.yml
#    _____                                                                    _____
#  ( ___ )------------------------------------------------------------------( ___ )
#  |   |                                                                      |   |
#  |   |   ██▓███   ▄▄▄       ██▀███   ▄▄▄        ▄████  ▒█████   ███▄    █   |   |
#  |   |  ▓██░  ██▒▒████▄    ▓██ ▒ ██▒▒████▄     ██▒ ▀█▒▒██▒  ██▒ ██ ▀█   █   |   |
#  |   |  ▓██░ ██▓▒▒██  ▀█▄  ▓██ ░▄█ ▒▒██  ▀█▄  ▒██░▄▄▄░▒██░  ██▒▓██  ▀█ ██▒  |   |
#  |   |  ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒██▀▀█▄  ░██▄▄▄▄██ ░▓█  ██▓▒██   ██░▓██▒  ▐▌██▒  |   |
#  |   |  ▒██▒ ░  ░ ▓█   ▓██▒░██▓ ▒██▒ ▓█   ▓██▒░▒▓███▀▒░ ████▓▒░▒██░   ▓██░  |   |
#  |   |  ▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ▒▓ ░▒▓░ ▒▒   ▓▒█░ ░▒   ▒ ░ ▒░▒░▒░ ░ ▒░   ▒ ▒   |   |
#  |   |  ░▒ ░       ▒   ▒▒ ░  ░▒ ░ ▒░  ▒   ▒▒ ░  ░   ░   ░ ▒ ▒░ ░ ░░   ░ ▒░  |   |
#  |   |  ░░         ░   ▒     ░░   ░   ░   ▒   ░ ░   ░ ░ ░ ░ ▒     ░   ░ ░   |   |
#  |   |                 ░  ░   ░           ░  ░      ░     ░ ░           ░   |   |
#  |   |                                                                      |   |
#  |   |                          Configuration File                          |   |
#  |   |                         v1.0 - By Ascvnd!                            |   |
#  |___|                                                                      |___|
#  (_____)                                                                  (_____)
#
plugin:
  debug: false
  database-logging: true
  # Your Discord invite. It shows on kick and ban screens after
  # "If false banned Appeal @". Leave it empty and the screens will
  # just say to set it up instead.
  discord-link: ""
  broadcast-alerts: true
  alert-channel: CHAT
  alert-sound: true
  alert-sound-type: block.note_block.pling
  # Ping staff when something gets quietly stopped (a swapped hit that
  # went nowhere, a flag softened by high ping, a flyer kicked out of a
  # boat). No VL comes with these, it is just a heads up.
  alert-on-mitigation: true

lag-compensation:
  # Mitigate-only mode stays OFF (-1), on purpose. Turning it on means
  # anyone above that ping stops collecting VL from every movement and
  # combat check at once, and a cheater on a bad (or deliberately bad)
  # connection becomes untouchable. Laggy-but-legit players are covered
  # by the leniency multiplier below instead, which bends thresholds
  # rather than switching enforcement off. Set a real ping to re-enable.
  max-ping-for-movement: -1
  max-ping-for-combat: -1
  position-history-ticks: 20
  # How much slack high ping players get on thresholds (past 150ms).
  high-ping-leniency-multiplier: 1.5
  high-ping-threshold: 150
  bedrock-exempt-checks: []
  # Bedrock players go through the same checks as everyone else. Only add
  # a check here if legit Bedrock movement keeps tripping it on YOUR map.

punishments:
  # The master switch. Turn it off and nobody ever gets kicked or banned,
  # you just get detections and alerts. Handy while you learn the plugin.
  enabled: true
  ban-command: "ban %player% [Paragon] Cheating: %check% - If false banned Appeal @ %discord%"
  kick-command: "kick %player% [Paragon] Kicked for %check%"
  # What /paragon unban runs. Vanilla calls it "pardon", most ban plugins
  # call it "unban". %player% is the name you typed, works offline too.
  unban-command: "unban %player%"
  # Kicks are remembered. Once someone has collected this many, the next
  # punishment skips straight to a ban. 0 turns that off.
  max-kicks-before-ban: 3
  # Untags combat before kicking or banning (CombatLogX, CombatTagPlus,
  # DeluxeCombat when they are around, plus a short bypass), so the
  # punishment itself never causes a combat-log death.
  combatlog-untag: true
  # Breathing room between punishments for one player. A single lag spike
  # can burst a pile of flags and must never chain-kick anyone.
  cooldown-ms: 30000
  # Fresh joins can't be punished for the first N seconds. This stops the
  # nightmare loop where someone spawns somewhere the checks misread,
  # gets kicked, rejoins and gets kicked forever. Alerts still fire.
  join-immunity-seconds: 20

# Flip any check to `alerts-only: true` and it will flag and tell staff
# without ever kicking or banning. A few checks ship that way because they
# read timing or geometry the server can't verify exactly (where a target
# stood the moment a hit landed, how a client rotated between packets).
# Treat those as tips for your staff, and flip them to false once you
# trust them on your own players.

# Setback drags confirmed movement cheaters back along their own trail of
# spots that passed every check on solid ground. If they outran the trail,
# each setback walks them back by up to max-distance until they are on it
# again. Works at any ping, which is what makes ping games pointless, and
# buffered checks keep it away from legit players.
setback:
  enabled: true
  # How many blocks one setback step pulls back at most.
  max-distance: 16.0

# ════════════════════════════════════════════════════════════════════
#  MITIGATIONS ~ breaking the cheat, not just spotting it
# ════════════════════════════════════════════════════════════════════
#  These don't just flag things, they make them stop working.
mitigations:
  # Same-tick attribute swapping (vanilla bug MC-28289): swapping hotbar
  # items in the same tick as an attack smuggles the old item's damage
  # into the hit. That trick powers lunge-swap, breach and density swaps
  # and mace stun-slam macros. With this on, hits landing inside the
  # window after a swap get cancelled outright. Macro or manual, the
  # exploit just does nothing.
  attribute-swap-fix:
    enabled: true
    # 50ms is one game tick. Raise it to 100 to kill 2-tick swap tech too.
    swap-window-ms: 50
    # SMART  - hits land normally until AutoSwap smells a real macro
    #          pattern (VL on the board), then swap-hits start getting
    #          cancelled until it fades. Your legit one-tick artists keep
    #          their tech, macros lose theirs. Also shrugs off high ping
    #          packet bunching instead of ghosting hits.
    # ALWAYS - cancel every same-window swap hit, legit tech included.
    # DETECT - watch and flag only, never touch a hit.
    mode: SMART
    # SMART only starts cancelling once autoswap VL reaches this. One flag
    # is worth 3 VL, so this asks for TWO separate confirmed macro reads
    # before anything gets cancelled. Lower it and a single coincidence
    # (someone fast switching weapons mid-fight) eats their hits for a
    # second or two, which is exactly the ghost-hit feeling this fix is
    # here to prevent.
    smart-min-vl: 6

checks:
  # .... Movement ....
  flight:
    enabled: true
    kick-vl: 40
    ban-vl: 80
    vl-decay: 3
    velocity-leniency-ticks: 20

  speed:
    enabled: true
    kick-vl: 50
    ban-vl: 100
    vl-decay: 3
    # 1.0 = exactly expected speed, 1.20 = 20% tolerance for lag/knockback momentum
    max-speed-multiplier: 1.20

  step:
    enabled: true
    kick-vl: 25
    ban-vl: 50
    vl-decay: 2
    # Vanilla lets you step 0.6 up. The extra 0.05 covers the server
    # rounding its own math, nothing more.
    max-step-height: 0.65

  nofall:
    enabled: true
    alerts-only: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 2

  timer:
    enabled: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 2
    # 1.15 means 15% headroom over 20 packets a second, enough for
    # jitter and catch-up bursts without crying wolf.
    max-timer-rate: 1.15

  velocity:
    enabled: true
    kick-vl: 25
    ban-vl: 50
    vl-decay: 2
    # How much of the server's knockback someone has to actually take.
    # 0.55 is generous on purpose, lag eats knockback for breakfast.
    min-velocity-acceptance: 0.55

  phase:
    enabled: true
    kick-vl: 15
    ban-vl: 18
    vl-decay: 1

  noslow:
    enabled: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 3

  rotation:
    enabled: true
    kick-vl: 20
    ban-vl: 45
    vl-decay: 2
    max-yaw-change: 360.0
    # Extra aim math (sub-check C), OFF unless you feel brave. Rotations
    # travel as 32-bit floats, so every sample carries rounding noise, and
    # that noise folds a GCD toward zero for legit players exactly like it
    # does for aimbots. You can't separate the two without watching your
    # own players and tuning it yourself. A (bad pitch), B (NaN) and D
    # (spinbot) don't care about this switch and always run.
    gcd-check: false
    # Only matters with gcd-check on. Lower gets mouthier.
    gcd-sensitivity: 0.003

  elytrafly:
    enabled: true
    alerts-only: true
    kick-vl: 15
    ban-vl: 35
    vl-decay: 1

  jesus:
    enabled: true
    kick-vl: 10
    ban-vl: 25
    vl-decay: 1

  # Jump boosts add to the vanilla 0.42 hop. This reads the takeoff tick
  # itself, the only moment the extra push shows before the movement
  # prediction swallows it.
  highjump:
    enabled: true
    kick-vl: 16
    ban-vl: 32
    vl-decay: 2

  blink:
    enabled: true
    kick-vl: 8
    ban-vl: 18
    vl-decay: 1

  clicktp:
    enabled: true
    kick-vl: 10
    ban-vl: 20
    vl-decay: 1

  bunnyhop:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # Says they are on the ground with nothing underneath. A slow,
  # sneaky cousin of NoFall.
  groundspoof:
    enabled: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 2

  # Saves up movement ticks and dumps them in one burst. Looks like a
  # teleport that politely keeps the packet rate at 20 a second so the
  # Timer check stays asleep.
  tickshift:
    enabled: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 2

  # Flying boats and entity rides going uphill. Flags the driver and
  # kicks them straight out of the seat.
  boatfly:
    enabled: true
    kick-vl: 8
    ban-vl: 20
    vl-decay: 1

  # .... Combat ....
  reach:
    enabled: true
    alerts-only: true
    # Reach plays by its own rules here, not the generic cancel-hit
    # toggle. Only the hard-limit arm (blatant, no innocent story)
    # ever takes a hit away. The soft arm, where normal target wiggle
    # at real ping lives, only ever flags.
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    # Spears get special treatment because vanilla does too: they reach
    # 4.5 blocks (2.0 minimum) while everything else stops at 3.0. Held
    # a *_SPEAR and the 4.5 floor applies itself, with a 5.6 hard cap.
    # max-reach below is the everyday non-spear baseline, leave it be.
    max-reach: 3.1
    # A little extra rope per 50ms of ping.
    ping-reach-leniency-per-50ms: 0.10

  autoclicker:
    enabled: true
    kick-vl: 18
    ban-vl: 35
    vl-decay: 2
    # Ceiling in clicks per second. 22 leaves room for butterfly clickers
    # tapping near 20.
    max-cps: 22
    # How steady clicking may get before it looks bottled. Lower gets
    # mouthier.
    min-cps-variance: 0.25
    sample-window: 40

  killaura:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    max-attack-angle: 80.0
    multi-target-detection: true

  aimassist:
    enabled: true
    alerts-only: true
    kick-vl: 20
    ban-vl: 45
    vl-decay: 2
    # Same idea as the rotation GCD above, for aim instead. B (snap to a
    # target) ignores this switch and always runs.
    gcd-check: false
    gcd-min-samples: 40
    # Per-tick scoring against the player's own sensitivity fingerprint.
    # Opt in only, and keep it alerts-only unless you love tuning.
    gcd-mlsac: false
    gcd-mlsac-error: 0.0005
    gcd-mlsac-streak: 3

  autoblock:
    enabled: true
    alerts-only: true
    kick-vl: 10
    ban-vl: 22
    vl-decay: 1

  hitbox:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    max-hitbox-expansion: 0.10

  critical:
    enabled: true
    alerts-only: true
    kick-vl: 10
    ban-vl: 22
    vl-decay: 1

  # Totems are about rhythm, not speed. A macro replays its delay to the
  # millisecond no matter how slow you set it, a human never does. The
  # statistics arms wait for 10+ confirmed refills before saying a word.
  autototem:
    enabled: true
    kick-vl: 15
    ban-vl: 35
    vl-decay: 1
    # Quicker than this after a pop and it is basically a robot.
    min-swap-time-ms: 80
    monitor-window-ticks: 5
    # B arm: inhuman click floor right after a pop.
    type-b-min-ms: 40
    type-b-max-ms: 250
    # C arm: suspiciously steady average with almost no spread.
    type-c-mean-ms: 200.0
    type-c-max-diff-ms: 10.0
    # D arm: refill gaps that keep landing on top of each other.
    type-d-delta-ms: 100.0
    type-d-max-ms: 845.0
    # E arm: low wobble windows, confirmed a few times over.
    type-e-sd-ms: 10.0
    type-e-mean-ms: 500.0
    type-e-min-samples: 5
    type-e-windows: 3

  angle:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    max-behind-angle: 90.0

  # Weapon swap macros: swap, hit, swap back, faster than hands allow.
  # Think auto spear and auto mace modules doing the work for you.
  autoswap:
    enabled: true
    alerts-only: true
    kick-vl: 15
    ban-vl: 30
    vl-decay: 2
    # B arm: how steady the swap-hit-swap rhythm may get before it
    # stops looking human.
    cadence-stddev-ms: 25.0
    # C arm: bouncing one slot pair (sword to mace and back) needs this
    # many rounds to count. Scrolling walks lots of slots, and legit
    # tech fires once a fight, never six rounds in a row.
    osc-cycles: 6
    osc-max-gap-ms: 150.0

  # Hits with no arm swing behind them. That is a silent aura, full stop.
  noswing:
    enabled: true
    alerts-only: true
    kick-vl: 16
    ban-vl: 32
    vl-decay: 2

  # Fake fall distance to steal the mace smash bonus while standing
  # still (the mace one-shot trick). This one is high confidence: your
  # server's own fall number flat-out contradicts our movement tracking,
  # so ping doesn't save anyone here.
  macedamage:
    enabled: true
    kick-vl: 16
    ban-vl: 32
    vl-decay: 1
    # B arm: smashes from the exact same height over and over. Macros
    # jump (or spoof) to the same centimeter, real terrain never repeats.
    height-stddev: 0.15
    # C arm: the breach and density swap smash. One quick swap-smash is
    # honest tech, only robot-steady streaks get flagged.
    swap-max-gap-ms: 120
    swap-count: 5
    swap-stddev-ms: 25.0

  crystalaura:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2
    # E arm: place-to-hit reactions no human answers (needs a few of them).
    type-b-fast-ms: 60
    type-b-required: 4
    # F arm: reactions landing on the same millisecond, window after window.
    type-c-max-delay-ms: 1500
    type-c-delta-ms: 5

  anchoraura:
    enabled: true
    kick-vl: 10
    ban-vl: 22
    vl-decay: 1

  bedaura:
    enabled: true
    kick-vl: 10
    ban-vl: 22
    vl-decay: 1

  nohurtcooldown:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # .... World work ....
  scaffold:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 1
    min-place-delay-ms: 55
    rotation-check: true
    pattern-check: true
    # Catches blocks placed while moving that the eyes couldn't have
    # aimed at (silent-aim scaffolds). Sitting still never counts.
    sight-check: true

  fastplace:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 2
    max-places-per-second: 14

  fastbreak:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    break-time-multiplier: 0.70

  nuker:
    enabled: true
    kick-vl: 5
    ban-vl: 12
    vl-decay: 1
    # Vanilla breaks one block a tick, so 20 a second is the honest max.
    max-breaks-per-second: 22
    # STOPPER: sits on mass-breaks while the pattern is hot, and always
    # sits on breaks from impossible distance. False means watch and
    # punish only.
    mitigate: true
    # Honest survival reach, eye to block middle, plus ping slack.
    break-reach: 5.5

  airplace:
    enabled: true
    kick-vl: 8
    ban-vl: 18
    vl-decay: 1

  # Every right click, any item. Block and entity reaches past survival
  # range get cancelled on the spot, no appeal.
  interactreach:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    place-reach: 5.0
    entity-reach: 3.5
    block-reach: 5.0

  # Digging with no honest dig behind it. PacketMine and instant AutoMine
  # live here.
  packetmine:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1

  # Mining luck that math says is impossible. Stays alerts-only because
  # maps, friends and old explored caves are all honest explanations.
  # A tip for staff, never an auto punishment.
  xray:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1
    min-valuables: 6
    window-minutes: 20
    max-stone-per-valuable: 40.0
    pace-count: 4
    pace-max-gap-seconds: 45

  # .... Movement extras ....
  # Up walls with no ladder, vine or scaffolding helping.
  spider:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # .... Fresh combat (1.21 era + bots) ....
  # Sprint surviving hit after hit is what KeepSprint modules do. Numbers
  # game, so alerts-only until it earns your trust.
  keepsprint:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # Hitting through walls. Traced server side, no excuses.
  throughwall:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 1

  # Spear dash macros doing the lunging for you. Rhythm based, so it
  # watches consistency and swap streaks, and stays alerts-only.
  spearlunge:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2
    # C arm: lunge repl

Similar projects

Plugin →