COWMODSКаталог модов

Paragon Anticheat

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

Автор: Ascvnd8163обновлён 27 сент. 2026 г.
УправлениеТехнологии

Описание

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 replay. This many spear hits this close together sits
    # below the dash cooldown, so it isn't fingers clicking.
    rate-count: 5
    rate-max-gap-ms: 260

  # Inhuman reaction times on the trigger (crosshair auras and friends).
  # Numbers game, alerts-only until it is tuned to your crowd.
  triggerbot:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # .... Modern macro flags ....
  # Auto spear lunge swap: swapping onto the spear in the same breath as
  # the dash, so the lunge carries the old weapon's punch. One quick
  # swap-lunge is honest tech, metronome streaks are macros.
  autospear:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2
    swap-max-gap-ms: 60
    swap-count: 5
    swap-stddev-ms: 25.0
    rate-count: 5
    rate-max-gap-ms: 300
  # Auto mace hitting: swings and smashes on a fixed timer no hand keeps.
  automace:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2
    cadence-mean-ms: 800.0
    cadence-stddev-ms: 20.0
    smash-count: 4
  # Auto breach swap: onto the Breach mace exactly for the shredding hit,
  # back right after, every time, on the same millisecond.
  autobreach:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2
    swap-max-gap-ms: 100
    swap-count: 5
    swap-stddev-ms: 25.0
    cadence-mean-ms: 800.0
    cadence-stddev-ms: 20.0

  # .... Odds and ends ....
  badpackets:
    enabled: true
    kick-vl: 5
    ban-vl: 10
    vl-decay: 1
    # Timing and order tricks get scored together here: bursts, snaps
    # and impossible orders. Score 4 across them, confirmed this many
    # times running, and it flags.
    proto-buffer: 4

  # Clicking like a maniac with a menu open. Walking around with one
  # open is invmove's problem, not this one's, check its note below.
  inventory:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 2
    # Clicks a second allowed inside a menu, averaged over 2s. 18 sits
    # comfortably above the fastest honest sorting.
    max-cps: 18.0

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

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

  # Eating or drinking quicker than vanilla lets you swallow.
  fastuse:
    enabled: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 2

  # Fake lag on purpose to farm leniency (answers stall while movement
  # flows, keepalive times drift apart). Runs at full VL even on high
  # ping, because this one IS the lag trick.
  pingspoof:
    enabled: true
    kick-vl: 10
    ban-vl: 25
    vl-decay: 1

  # Armor appearing out of nowhere in bursts. Numbers game, so it
  # watches and tells staff instead of punishing.
  autoarmor:
    enabled: true
    alerts-only: true
    kick-vl: 12
    ban-vl: 25
    vl-decay: 2

  # Arrows leaving faster than any bow can draw.
  fastbow:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # Cobwebs feeling like open air.
  noweb:
    enabled: true
    kick-vl: 12
    ban-vl: 28
    vl-decay: 2

  # .... Fresh catches ....
  # Click rhythms no finger keeps up: too steady, too repeating, too
  # evenly spread. Watches quietly for now (shadow): it wants to meet
  # your real players before it may punish. Flip alerts-only off once
  # you believe what it tells you.
  clickpattern:
    enabled: true
    alerts-only: true
    kick-vl: 15
    ban-vl: 35
    vl-decay: 2
    min-cps: 10.0
    max-cv: 0.07
    max-autocorr: 0.75
    max-entropy: 0.6

  # Full damage on an empty 1.9 charge bar. Same deal, watch first,
  # punish later.
  attackcooldown:
    enabled: true
    alerts-only: true
    kick-vl: 10
    ban-vl: 25
    vl-decay: 1
    low-charge: 0.60
    buffer: 5

  # For the clever ones who stay under every single limit but trip five
  # checks at once. Adds up suspicion across the board and flags the
  # total. Tips staff off by design, never punishes.
  multisignal:
    enabled: true
    alerts-only: true
    kick-vl: 15
    ban-vl: 35
    vl-decay: 2
    flag-threshold: 2.5
    buffer: 5
    window-seconds: 30

  # ── Baritone bot ──
  # Pathfinding bots steer like no human does: direction snaps that land
  # on spike patterns, rotation steps frozen on a few fractions of a
  # degree, and long runs of yaw steering with pitch locked solid.
  # Lives on 25-packet windows with buffers, so one weird second is free.
  baritone:
    enabled: true
    kick-vl: 20
    ban-vl: 40
    vl-decay: 2

# ════════════════════════════════════════════════════════════════════
#  ANTI-XRAY ~ ores you can't see don't exist
# ════════════════════════════════════════════════════════════════════
#  Rule one: hide everything first, then reveal only what someone really
#  looks at. Buried, walled in, sitting in a cave, it makes no
#  difference: no line of sight means stone on the screen. This sits ON
#  TOP of Paper's own anti-xray, so go turn on engine-mode 1 in
#  paper-global.yml (there is a doc page for it) for the chunk packet
#  layer underneath. Run /paragon xray in game any time to see both
#  layers. When in doubt something gets shown rather than hidden, so
#  protection never turns into a weird visual glitch. Leftover work just
#  waits for the next tick instead of ever lagging the server.
anti-xray:
  enabled: true
  # RAYTRACE hides every protected block until someone looks at it.
  # This is the one you want.
  # OBFUSCATE does the same thing and stays as an alias.
  engine-mode: RAYTRACE
  hidden-blocks:
    - DIAMOND_ORE
    - DEEPSLATE_DIAMOND_ORE
    - EMERALD_ORE
    - DEEPSLATE_EMERALD_ORE
    - GOLD_ORE
    - DEEPSLATE_GOLD_ORE
    - IRON_ORE
    - DEEPSLATE_IRON_ORE
    - COAL_ORE
    - DEEPSLATE_COAL_ORE
    - LAPIS_ORE
    - DEEPSLATE_LAPIS_ORE
    - REDSTONE_ORE
    - DEEPSLATE_REDSTONE_ORE
    - COPPER_ORE
    - DEEPSLATE_COPPER_ORE
    - ANCIENT_DEBRIS
    - CAVE_AIR
  # Extra hidden blocks that only apply down in the nether, piled on
  # top of the base list while someone is there.
  hidden-blocks-nether:
    - ANCIENT_DEBRIS
    - NETHER_GOLD_ORE
    - GILDED_BLACKSTONE
    - NETHER_QUARTZ_ORE
  hidden-blocks-end:
    - ENDER_CHEST
  # Blocks the sight test looks straight through, even when Bukkit
  # insists they block the view. Glass houses need honest rays too.
  transparent-blocks:
    - GLASS
    - TINTED_GLASS
    - WHITE_STAINED_GLASS
    - OAK_LEAVES
    - ICE
    - COBWEB
    - LADDER
    - SCAFFOLDING
    - CHAIN
    - BELL
    - LANTERN
    - BARRIER
    - LIGHT
    - SNOW
    - GRASS_BLOCK
    - VINE
    - KELP
    - SEAGRASS
  # What xray users see instead of the good stuff. Pick something dull.
  replacement-block: STONE
  # .... The tracing crew ....
  # How often a slice of online players gets rechecked, in ticks.
  update-ticks: 5
  # Extra hands for the bookkeeping (the actual world tracing stays on the
  # main thread inside the budget below, Bukkit hates thread visitors).
  ray-trace-threads: 2
  # How many milliseconds one recheck tick may spend. Leftovers wait for
  # the next run. Lower means less server sweat and slower reveals.
  ms-per-ray-trace-tick: 25
  # Past this eye distance blocks are left alone entirely. Wide on
  # purpose: the millisecond budget below caps the work, not this
  # number, and TPS dips halve the workload instead of opening holes.
  ray-trace-distance: 96.0
  # Also check from third-person camera spots. Costs extra rays.
  ray-trace-third-person: false
  # Put revealed blocks back into hiding once nobody can see them.
  rehide-blocks: true
  # At or past this eye distance a block counts as unseen for re-hiding.
  # Kept wider than the trace distance so far cover never flickers.
  rehide-distance: 128.0
  # Protected blocks handled per player per run, nearest first.
  max-ray-trace-block-count-per-chunk: 160
  # More blocks to trace on top of hidden-blocks. Empty means just those.
  ray-trace-blocks: []
  # Also hide chests, shulkers and barrels until seen. Strong on survival
  # servers, but hidden containers can confuse honest players, opt in only.
  hide-block-entities: false
  # Old key names, still respected if the new ones are missing.
  raytrace-distance: 8
  raytrace-rays: 128
  reprocess-distance: 4
  obfuscate-caves: true

# ════════════════════════════════════════════════════════════════════
#  ANTI-ESP ~ starving wallhacks
# ════════════════════════════════════════════════════════════════════
#  ESP itself lives on the cheater's screen where no Paper plugin can
#  prove it, so this section starves it instead: less to see, plus a
#  mining luck audit that taps staff on the shoulder (never VL, just a
#  lead). A moved freecam camera alone learns nothing here either.
anti-esp:
  enabled: true
  audit-valuables:
    - DIAMOND_ORE
    - DEEPSLATE_DIAMOND_ORE
    - EMERALD_ORE
    - DEEPSLATE_EMERALD_ORE
    - ANCIENT_DEBRIS
    - GOLD_ORE
    - DEEPSLATE_GOLD_ORE
  # Speak up when someone finds this many valuables in the window while
  # breaking fewer blocks per find than the number below.
  audit-min-valuables: 8
  audit-window-minutes: 30
  audit-max-stone-per-valuable: 64.0
  # Living things with no line of sight never reach the client, so ESP
  # has nothing to draw through walls. A few nearest mobs and players
  # per run, one ray each. Glass and leaves never count as cover.
  entity-hiding:
    enabled: true
    radius: 64.0
    interval-ticks: 10
    players-per-run: 4
    entities-per-player: 8
    close-range: 5.0

# ════════════════════════════════════════════════════════════════════
#  SUS MENU ~ the evidence board
# ════════════════════════════════════════════════════════════════════
#  Rows 1 to 5 show flags (45 a page, newest first) and row 6 steers the
#  ship: back (slot 45), player head (47), close (49), client card (51),
#  next (53). Every label takes & colors and &#RRGGBB hex.
sus-gui:
  # How far back /sus and /paragon client dig for flags.
  history-minutes: 10
  title: "&8| &f%player% &8(&7%page%&8/&7%pages%&8)"
  filler-material: GRAY_STAINED_GLASS_PANE
  prev:
    material: ARROW
    name: "&e← Previous page"
  next:
    material: ARROW
    name: "&eNext page →"
  close:
    material: BARRIER
    name: "&cClose"
  client:
    material: BOOK
    name: "&bClient & suspected modules"
  summary:
    name: "&f%player%"
    lore:
      - " &8│ &7Ping &8» &f%ping%ms"
      - " &8│ &7Total VL &8» &f%violations%"
      - " &8│ &7Flags shown &8» &f%flags%"
      - " &8│ &7Session &8» &f%playtime%"
  empty:
    name: "&aClean record"
    lore: "&7No flags in the last %minutes%m."
  flag:
    name: "&b%display% &8(&7%check%&8)"
    lore:
      - " &8│ &7Category &8» &f%category%"
      - " &8│ &7Info &8» &f%info%"
      - " &8│ &7Weight &8» &f+%vl% VL &8(&7%mitigated%&8)"
      - " &8│ &7Ping &8» &f%ping%ms &8│ &7When &8» &f%ago%"
  category-materials:
    COMBAT: IRON_SWORD
    MOVEMENT: LEATHER_BOOTS
    WORLD: DIAMOND_PICKAXE
    MISC: PAPER

# ════════════════════════════════════════════════════════════════════
#  CLIENT DETECTION ~ reading name tags
# ════════════════════════════════════════════════════════════════════
#  Brand strings are self-reported, so take them with salt. Meteor (a
#  Fabric mod) usually says "fabric", and Wurst loves to say "vanilla",
#  which proves exactly nothing alone. Paragon pairs the brand with what
#  the player actually DOES: peek /paragon client or /sus for the guessed
#  module list. Only hard-block a brand here when you are truly sure.
client-detection:
  enabled: true
  announce-to-staff: true
  # UNKNOWN and VANILLA joins get chatty on big servers. Cheat brands and
  # modded loaders still get announced with these off.
  announce-unknown: false
  announce-modded-loaders: true
  # Bedrock name prefix (default "."). Names starting with it count as
  # Bedrock next to Floodgate detection, which also covers you when
  # Floodgate isn't even installed. Empty turns prefix matching off.
  bedrock-dot-prefix: "."
  # Identity alone never kicks or bans here (spoofing makes that unsafe).
  # Proven cheat mods get caught by the silent probe instead, see the
  # translation-probe section below and /paragon modcheck.

# ════════════════════════════════════════════════════════════════════
#  TRANSLATION PROBE ~ asking the client what it knows
# ════════════════════════════════════════════════════════════════════
#  Per sign, inside a single tick, the server sends a fake sign block,
#  the sign text (translation keys), an open-editor, an instant close
#  and the cleanup. That instant close makes the client hand its text
#  back with zero visible UI: no block, no editor, no clicking needed.
#  A client carrying the mod answers with the resolved words, everyone
#  else answers with the random fallback. Kicks, staff alerts and
#  /paragon modcheck drink from here.
translation-probe:
  enabled: true
  # Check every join on its own, shortly after arrival.
  probe-on-join: true
  # Seconds before an unanswered probe is quietly dropped.
  timeout-seconds: 60
  # How long one sign waits for its answer before its keys get marked
  # inconclusive and the next sign goes out.
  protected-timeout-ms: 800
  # The decoy text on every probed line. Whoever lacks the key echoes
  # exactly this (plus some random glitter), whoever has the mod echoes
  # the real words. This little string is the whole trick.
  fallback-text: "___md_probe___"
  # Name your mod, point at its translation key. Anything shipping
  # language keys can join the list.
  keys:
    Meteor Client: "key.meteor-client.open-gui"
    Meteor Commands: "key.meteor-client.open-commands"
    Wurst Client: "description.wurst.hack.clickgui"
    LiquidBounce: "liquidbounce.generic.error"
    Freecam: "key.freecam.toggle"
    Accurate Block Placement: "text.autoconfig.accurateblockplacement.title"
    Item Scroller: "itemscroller.gui.button.config_gui.generic"
    # .... The big cheat drawer, help yourself ....
    Impact Client: "impact.gui.click.title"
    RusherHack: "rusherhack.gui.title"
    Inertia: "inertia.hud.title"
    ThunderHack: "descriptions.client.clickgui"
    Jex Client: "jex.name"
    Lumina Client: "key.lumina.open_click_gui"
    Hypnotic Client: "key.hypnotic-client.open-click-gui"
    Glazed Client: "key.glazed.activate-key"
    Wave Client: "key.category.wave-client.wave-client"
    CheatUtils: "category.zergatul.cheatutils"
    Client Spoofer: "clientspoofer.options.title"
    Custom Client Brand: "text.autoconfig.customclientbrand.title"
    Rebrand: "text.autoconfig.rebrand.title"
    X-Ray: "xray.config.toggle"
    SpeedHack: "key.speedhack.decrease"
    WallHack: "key.categories.wallhack"
    PingBypass: "pingbypass.key.open"
    AutoAttack: "key.autoattack.afkAttack"
    ChestESP: "key.chestesp.toggle"
    PlayerESP: "category.playeresp.main"
    KillAura: "key.killaura"
    Crystal Core: "key.crystalcore.toggle"
    Spear Core: "key.spearcore.roll"
    Bridging Mod: "key.category.bridgingmod.category"
    SeedCracker: "finder.outposts"
    Baritone: "baritone.overlay.cancel"
    BleachHack: "bleachhack.title"
    Mace Attack Assistance: "key.category.mace_attack_assistance"
    Gamma Utils: "key.gammautils.maxGamma"
    See-Through-Lava: "text.autoconfig.seethroughlava.title"
    Perspective: "key.perspective.toggle"
    FlyMod: "key.flymod.toggle"
    StepUp: "key.stepup.toggle"
    AutoSwitch: "key.autoswitch.toggle"
    AutoFish: "key.autofish.open_gui"
    Tweakeroo: "tweakeroo.message.toggled"
    Axiom: "axiom.keybind"
    InvMove: "key.invmove.modules"
    Litematica: "litematica.gui.button.change_menu.to_main_menu"
    Xaero Minimap: "gui.xaero_minimap_settings"
    Reach Circle: "text.autoconfig.reach_circles.title"
    BetterHitreg: "key.category.betterhitreg.hitreg"
    Meteor Plus: "item.meteorplus.logo"
    Meteor Additions: "meteor-additions.presets"
    Meteorist: "modmenu.descriptionTranslation.meteorist"
    Meteor GUI Title: "text.meteor-client.gui.title"
    Meteor Speed: "modules.meteor-client.speed"
    Wurst Main Menu: "gui.wurst.title.mainmenu"
    LiquidBounce Tab: "liquidbounce.tab.main"
    LiquidBounce Toggle: "liquidbounce.generic.enabled"
    CatLean: "gui.version.no"
    Kenzo Hack: "effect.hack_client_mod.landinghack"
    MadXray: "key.categories.madxray"
    HcScr: "key.category.hcscr.root"
    Mini Hacks: "gui.hacksfab.hack.button_one_shot"
    X-Ray Config: "xray.config.open"
    X13 X-Ray: "x13.mod.xray"
    TeleportHack: "tph.key.activate"
    Auto Shield Breaker: "mod.autoshieldbreaker.name"
    Spawn Radar: "key.category.spawn_radar.title"
    Omniscience: "key.category.omniscience"
    HitRange: "key.category.hitrange.key"
    ExploitPreventer: "exploitpreventer.disclaimer.title"
    Cart Core: "key.cartcore.crossbowcart"
    Combat Plus: "gamerule.category.combat-plus"
    Combatify: "text.config.combatify-general.option.autoAttackAllowed"
    GavinsMod: "gavinsmod.mod.tracer.chest"
    Entity Outliner: "key.entity-outliner.selector"
    Visible Shield CD: "config.visible_shield_cd.title"
    Global Macros: "text.globalmacros.title"
    Multi Key Bindings: "multi.toggle.key.attack"
    SeedCracker Map: "key.seedMap"
    SeedCracker Info: "info.worldSeeds"
    Gamma Max: "effect.gammautils.dim"
    Xaero Freelook: "xaero.freelook.toggle"
    Camera Zoom: "key.camerautils.zoom"
    StepUp Key: "key.stepup.toggle"
    Crawl Key: "key.crawl"
    Climb Fast: "key.climbladdersfast.toggle"
    Precise Placing: "key.preciseblockplacing.toggle_enabled"
    Faster Placement: "key.categories.fasterblockplacement"
    Pro Placer: "key.proplacer.fast_placement"
    Smart Placement: "key.smartblockplacement.switch_smart_placement"
    AutoTools: "key.autotools.get_tool"
    AutoEat: "key.category.autoeat.main"
    AutoTotemLight: "key.autototemlight.totem_swap"
    AutoElytra: "title.autoelytra.config"
    Auto Mace Swap: "key.maceswap.elytra"
    Auto Tool Swap: "toolswap.configuration.title"
    NoDelay: "key.nodelaymod.toggle_ndo"
    NoJumpDelay: "text.autoconfig.nojumpdelay.title"
    Player Highlighter: "key.playerhighlighter.toggle"
    Schematic Printer: "schematic.key.toggle"
    MaLiLib: "malilib.gui.title.debug"
    TweakerMore: "tweakermore.hotkeys.category.main"
    QuickTurn: "key.vekquickturn.quickturn"
    Elytra Swap: "key.ecs.swap"
    ViaFabricPlus: "base.viafabricplus.on"
    Trajectory: "ptp.config.trajectory_color"
    Hotbar Optimizer: "text.dho.config.screen"
    TNTHelper: "tnth.key.toggle"
    WorldEdit CUI: "cui.menu.toggle"
    Chest Tracker: "key.chesttracker.open_gui"
    EasierChests: "key.easierchests.sortchest"
    Shoulder Surfing: "key.shouldersurfing.free_look"
    World Preview: "world_preview.preview.title-full"
    WorldTools: "worldtools.key.categories"
    ClientCommands: "commands.cplugins.found"
    ClientSort: "clientsort.name"
    CommandKeys: "key.commandkeys.main"
    Account Switcher: "ias.title"
    Camera Tweaks: "category.cameratweaks.cameratweaks"
    Camera Enhancements: "camenh.config.title"
    VisibleBarriers: "category.visiblebarriers"
    SeedFinder: "generator:seedfindermod:seed_finder_world"
    PlayerTracker: "text.autoconfig.playertracker.option.enabled"
    Player Locator: "text.autoconfig.player-locator-plus.option.enabled"
    QuickHotkeys: "key.glitchifyed.quick_hotkeys.equip_totem"
    InventoryTabs: "key.inventory_tabs.key.next_tab"
    Vivecraft: "vivecraft.key.guiLeftClick"
    Flashback: "key.category.flashback.keybind"
    Crash Assistant: "warnings.codex_crash_assistant_comment"
    VoyageMap: "worldmap.title"
    Pixel Minimap: "key.minimap2.show_map"
    MapLink: "maplink.category.minimap"
    VoxelMap: "key.minimap.voxelmapmenu"
    XaeroPlus: "xaeroplus.gui.on"
    Xaero Chest Tracker: "xaeros-map-chest-tracker-integration.noMinimapFound.message"
    Trade Cycling: "key.trade_cycling.cycle_trades"
    Health Indicators: "key.healthindicators.renderingEnabled"
    Replay Mod: "key.record.desc"
    Zergatul Freecam: "key.zergatul.freecam.toggle"
    Freecam Fork: "key.category.fcam.freecam"
    Freecam Config: "freecam.config.title"
    Freecam Title: "text.freecam.title"
    Perspective Enabled: "perspective.enabled"
    Meteor Plus: "item.meteorplus.logo"
    Meteor Additions: "meteor-additions.presets"
    Meteorist: "modmenu.descriptionTranslation.meteorist"
    Meteor GUI Title: "text.meteor-client.gui.title"
    Meteor Speed: "modules.meteor-client.speed"
    Wurst Main Menu: "gui.wurst.title.mainmenu"
    LiquidBounce Tab: "liquidbounce.tab.main"
    LiquidBounce Toggle: "liquidbounce.generic.enabled"
    Konas: "key.konas.menu"
    CatLean: "gui.version.no"
    Kenzo Hack: "effect.hack_client_mod.landinghack"
    MadXray: "key.categories.madxray"
    HcScr: "key.category.hcscr.root"
    Mini Hacks: "gui.hacksfab.hack.button_one_shot"
    X-Ray Config: "xray.config.open"
    X13 X-Ray: "x13.mod.xray"
    TeleportHack: "tph.key.activate"
    Auto Shield Breaker: "mod.autoshieldbreaker.name"
    Spawn Radar: "key.category.spawn_radar.title"
    Omniscience: "key.category.omniscience"
    HitRange: "key.category.hitrange.key"
    ExploitPreventer: "exploitpreventer.disclaimer.title"
    Cart Core: "key.cartcore.crossbowcart"
    Combat Plus: "gamerule.category.combat-plus"
    Combatify: "text.config.combatify-general.option.autoAttackAllowed"
    GavinsMod: "gavinsmod.mod.tracer.chest"
    Entity Outliner: "key.entity-outliner.selector"
    Visible Shield CD: "config.visible_shield_cd.title"
    Global Macros: "text.globalmacros.title"
    Multi Key Bindings: "multi.toggle.key.attack"
    SeedCracker Map: "key.seedMap"
    SeedCracker Info: "info.worldSeeds"
    Gamma Max: "effect.gammautils.dim"
    Xaero Freelook: "xaero.freelook.toggle"
    Camera Zoom: "key.camerautils.zoom"
    StepUp Key: "key.stepup.toggle"
    Crawl Key: "key.crawl"
    Climb Fast: "key.climbladdersfast.toggle"
    Precise Placing: "key.preciseblockplacing.toggle_enabled"
    Faster Placement: "key.categories.fasterblockplacement"
    Pro Placer: "key.proplacer.fast_placement"
    Smart Placement: "key.smartblockplacement.switch_smart_placement"
    BetterHitreg Key: "key.category.betterhitreg.hitreg"
    AutoTools: "key.autotools.get_tool"
    AutoEat: "key.category.autoeat.main"
    AutoTotemLight: "key.autototemlight.totem_swap"
    AutoElytra: "title.autoelytra.config"
    Auto Mace Swap: "key.maceswap.elytra"
    Auto Tool Swap: "toolswap.configuration.title"
    NoDelay: "key.nodelaymod.toggle_ndo"
    NoJumpDelay: "text.autoconfig.nojumpdelay.title"
    Player Highlighter: "key.playerhighlighter.toggle"
    Schematic Printer: "schematic.key.toggle"
    MaLiLib: "malilib.gui.title.debug"
    TweakerMore: "tweakermore.hotkeys.category.main"
    QuickTurn: "key.vekquickturn.quickturn"
    Elytra Swap: "key.ecs.swap"
    ViaFabricPlus: "base.viafabricplus.on"
    Trajectory: "ptp.config.trajectory_color"
    Hotbar Optimizer: "text.dho.config.screen"
    TNTHelper: "tnth.key.toggle"
    WorldEdit CUI: "cui.menu.toggle"
    Chest Tracker: "key.chesttracker.open_gui"
    EasierChests: "key.easierchests.sortchest"
    Shoulder Surfing: "key.shouldersurfing.free_look"
    World Preview: "world_preview.preview.title-full"
    WorldTools: "worldtools.key.categories"
    ClientCommands: "commands.cplugins.found"
    ClientSort: "clientsort.name"
    CommandKeys: "key.commandkeys.main"
    Account Switcher: "ias.title"
    Camera Tweaks: "category.cameratweaks.cameratweaks"
    Camera Enhancements: "camenh.config.title"
    VisibleBarriers: "category.visiblebarriers"
    SeedFinder: "generator:seedfindermod:seed_finder_world"
    PlayerTracker: "text.autoconfig.playertracker.option.enabled"
    Player Locator: "text.autoconfig.player-locator-plus.option.enabled"
    QuickHotkeys: "key.glitchifyed.quick_hotkeys.equip_totem"
    InventoryTabs: "key.inventory_tabs.key.next_tab"
    Vivecraft: "vivecraft.key.guiLeftClick"
    Flashback: "key.category.flashback.keybind"
    Crash Assistant: "warnings.codex_crash_assistant_comment"
    VoyageMap: "worldmap.title"
    Pixel Minimap: "key.minimap2.show_map"
    MapLink: "maplink.category.minimap"
    VoxelMap: "key.minimap.voxelmapmenu"
    XaeroPlus: "xaeroplus.gui.on"
    Xaero Chest Tracker: "xaeros-map-chest-tracker-integration.noMinimapFound.message"
    Trade Cycling: "key.trade_cycling.cycle_trades"
    Health Indicators: "key.healthindicators.renderingEnabled"
    Replay Mod: "key.record.desc"
    Zergatul Freecam: "key.zergatul.freecam.toggle"
    Freecam Fork: "key.category.fcam.freecam"
    Freecam Config: "freecam.config.title"
    Freecam Title: "text.freecam.title"
    Perspective Enabled: "perspective.enabled"
  # Honeypot keys: real vanilla words every clean client resolves. If
  # one comes back unanswered, something is eating translations to hide.
  # Watching only, never punishing.
  trap-keys:
    - "item.minecraft.bone"
    - "item.minecraft.diamond"
    - "gameMode.survival"
  # Keybind style keys: matched as key buttons, not translations, because
  # these phrases live in no language file at all.
  keybind-keys:
    - "meteor.key.open-commands"
    - "key.wurst.zoom"
    - "Ethanol"
    - "Open paradise command"
    - "key.xynis.gui"
    - "key.autoattack.auto_attack_toggle"
    - "key.shieldbreaker.open_gui"
    - "key.chestfinder.gui"
    - "key.epitex.toggle_auto_armor"
    - "Elytra-Chestplate Swapping"
    - "key.worlddownloader.export"
    - "key.autocart.activate"
    - "Restore Screen"
    - "key.raax.toggle_xray"
    - "key.autoclicker-rinf.toggleacf"
    - "key.slotswap.swap"
    - "key.trade_cycling.cycle_trades"
    - "key.freecam.controlPlayer.toggle"
    - "key.freecam.tripod.reset"
    - "key.freecam.config.open"
    - "key.maceswap.swordswap"
    - "key.p1x3lc0w.invutil.autoTool"
    - "key.epitex.category_auto_armor"
    - "key.freecam.controlPlayer.toggle"
    - "key.freecam.tripod.reset"
    - "key.freecam.config.open"
    - "key.maceswap.swordswap"
    - "key.p1x3lc0w.invutil.autoTool"
    - "key.epitex.category_auto_armor"
  known-brands:
    VANILLA: ["vanilla"]
    LUNAR: ["lunarclient", "lunar"]
    FEATHER: ["feather"]
    FABRIC: ["fabric"]
    FORGE: ["forge", "fml"]
    NEOFORGE: ["neoforge"]
    QUILT: ["quilt"]
    LITELOADER: ["liteloader"]
    BADLION: ["badlion", "blc"]
    LABYMOD: ["labymod"]
    METEOR: ["meteor"]
    WURST: ["wurst"]
    LIQUIDBOUNCE: ["liquidbounce"]
    ARISTOIS: ["aristois"]
    IMPACT: ["impact"]
    FUTURE: ["future"]
    RUSHER: ["rusherhack", "rusher"]
    INERTIA: ["inertia"]
    BLEACH: ["bleachhack", "bleach"]
    SIGMA: ["sigma"]
    VAPE: ["vape"]
    KRYPTON: ["krypton"]
    DRIP: ["drip"]
    ASTOLFO: ["astolfo"]
    ENTROPY: ["entropy"]
    AUGUSTUS: ["augustus"]
    PRESTIGE: ["prestige"]
    BOZE: ["boze"]
    MYAU: ["myau"]
    MIO: ["mio"]
    AMBIENT: ["ambient"]
    VOIL: ["voil"]
    ECHO: ["echo"]
    BREEZE: ["breeze"]
    PHANTOM: ["phantom"]
    NURSULTAN: ["nursultan"]
    WILD: ["wild"]
    CELESTIAL: ["celestial"]
    AKRIEN: ["akrien"]
    ARBUZ: ["arbuz"]
    DOG: ["dog"]
    DQRKIS: ["dqrkis"]
    OPAL: ["opal"]
    ADMIRAL: ["admiral"]
    MOON: ["moon"]
    SLINKY: ["slinky"]
    KONAS: ["konas"]
    THUNDERHACK: ["thunderhack"]
    LUMINA: ["lumina"]
    FREECAM: ["freecam"]
    FORGEHAX: ["forgehax"]
    BARITONE: ["baritone"]
    SEEDCRACKER: ["seedcracker", "seedfinder", "seedmap"]
    XRAYMOD: ["xray", "x13"]
    ESSENTIAL: ["essential"]
    CHEATBREAKER: ["cheatbreaker", "cbclient"]
    XAERO: ["xaero"]
    REPLAYMOD: ["replaymod"]
    DISTANTHORIZONS: ["distant_horizons", "distant horizons"]
    SALWYRR: ["salwyrr"]
    PRISMLAUNCHER: ["prismlauncher", "polymc"]
    OPTIFINE: ["optifine", "of"]
    SODIUM: ["sodium"]
    IRIS: ["iris"]
    TLAUNCHER: ["tlauncher"]
    BEDROCK: ["bedrock", "geyser"]

# ════════════════════════════════════════════════════════════════════
#  MOD BLOCKER ~ who gets through the door
# ════════════════════════════════════════════════════════════════════
#  Reads the plugin channels every client announces on join. Blacklist
#  mode kicks whoever shows up with something from blocked-mods; flip
#  use-whitelist-mode and it works the other way round, only letting the
#  whitelisted ones in (minecraft, paper and bukkit are always fine).
#  Bedrock players skip this entirely, they can't carry Java mods anyway.
mod-blocker:
  enabled: true
  # How long to wait after join before checking. Channels need a moment
  # to arrive, 40 ticks (2 seconds) is the sweet spot.
  check-delay-ticks: 40
  use-whitelist-mode: false
  debug: false
  blocked-mods:
    - wurst
    - meteor-client
    - inertia
    - aristois
    - kami
    - lambda
    - xray
    - killaura
  whitelisted-mods:
    - fabric
    - optifine
    - sodium
    - lithium
    - iris
  kick-message: "&cDisallowed mods detected: %mods%"

# ════════════════════════════════════════════════════════════════════
#  SPOOF CHECKS ~ catching liars
# ════════════════════════════════════════════════════════════════════
#  Little cross-checks that need no mod list. They just tap staff on the
#  shoulder, never punish on their own.
spoof-checks:
  # Says "vanilla" but talks on mod channels. Real vanilla never does that.
  vanilla: true
  # Says "Geyser" but Floodgate swears they are on Java.
  geyser: true
  # Never sent a brand at all. Every real client sends one.
  no-brand: true
  # Known magic channel strings from cracked and leaked clients.
  cracked: true

# ════════════════════════════════════════════════════════════════════
#  MOD DETECTION ~ the bouncer
# ════════════════════════════════════════════════════════════════════
#  Watches every join twice: once right away (brand and channels), once a
#  few seconds later (the silent probe). Only mods marked punishable get
#  someone kicked, and the kick screen names them. Everything else just
#  becomes evidence for /paragon modcheck. A mod counts as punishable when
#  its built-in flag agrees AND its category switch below is on, unless you
#  allow-listed it. Anything in punish-mods always counts. Names match
#  loosely, so "meteor" catches every Meteor build out there.
mod-detection:
  enabled: true
  # How soon after join the first look happens.
  passive-eval-delay-ms: 250
  # How soon after join the silent probe runs.
  probe-delay-ms: 3000
  # Kick people who openly announce a cheat brand or channel.
  passive-punish: true
  # Category switches. CHEAT means the real stuff: wurst, meteor,
  # prestige and friends.
  punish-cheats: true
  punish-suspicious: false
  punish-launchers: false
  punish-utilities: false
  # Hands off these, no matter what (launchers, not cheats).
  allowed-mods:
    - fire-client
    - dawn-client
    - lunar
  # Always punish these, whatever the categories say.
  punish-mods: []

# ════════════════════════════════════════════════════════════════════
#  SEED PROTECTION ~ keeping your world seed yours
# ════════════════════════════════════════════════════════════════════
#  Seed crackers triangulate your world seed from terrain and structures.
#  This fights back on two fronts: players never get real answers (/seed
#  is blocked, /locate makes up coordinates), and your structure seeds get
#  shuffled in spigot.yml so structures stop matching the seed at all.
#  Shuffled seeds need one restart before new chunks pick them up.
seed-protection:
  enabled: true
  block-seed-commands: true
  extra-blocked-commands:
    - seedcracker
    - seedfind
  spoof-locate: true
  randomize-structure-seeds: true

# ════════════════════════════════════════════════════════════════════
#  SCREENSHARE ~ the interrogation room
# ════════════════════════════════════════════════════════════════════
#  /ss freeze pulls a suspect into the waiting room: blinded, slowed down,
#  glowing, cut off from chat and commands until staff are done with them.
#  Stand wherever suspects should wait and run /ss setlocation, it saves
#  the spot right here. /ss unfreeze walks them back to where they stood.
screenshare:
  enabled: true
  waiting-room:
    world: ""
    x: 0.5
    y: 100.0
    z: 0.5
  teleport-back: true
  private-chat: true
  max-warns: 3

# ════════════════════════════════════════════════════════════════════
#  PLAYER REPORTS ~ letting players snitch
# ════════════════════════════════════════════════════════════════════
#  /report, for everyone. Staff hear about it in game, and if you paste a
#  Discord webhook below, every report lands there too, nicely formatted
#  with both names, a timestamp and the reported player's head.
reports:
  enabled: true
  cooldown-seconds: 30
  # Empty means no Discord, reports stay in game only.
  webhook-url: ""

# ════════════════════════════════════════════════════════════════════
#  ALERT RESPONSES ~ softening cheaters up first
# ════════════════════════════════════════════════════════════════════
#  Before anyone gets banned, suspects quietly start hitting like wet
#  noodles. The more VL they stack, the weaker they get. Reduction is a
#  cut: 0.70 takes 70% of their damage away for the stage duration.
alert-responses:
  damage-reduction:
    enabled: true
    stage1-vl: 10
    stage1-reduction: 0.05
    stage1-seconds: 8
    stage2-vl: 20
    stage2-reduction: 0.35
    stage2-seconds: 12
    stage3-vl: 30
    stage3-reduction: 0.70
    stage3-seconds: 16

# ════════════════════════════════════════════════════════════════════
#  BAN ANIMATION ~ making an example of them
# ════════════════════════════════════════════════════════════════════
#  Instead of vanishing quietly, caught cheaters get pinned in place
#  while a giant mace drops out of the sky onto them, lightning cracks
#  on impact, and then the configured ban command runs. Set enabled:
#  false for instant bans with no theatre.
ban-animation:
  enabled: true
  type: classic_ban
  # Straight-down angle of the falling mace, in degrees. The texture is
  # drawn diagonally, so 135 stands it fully upright, head to the
  # ground. Nudge it only if the hammer ever looks tilted on your build.
  mace-tilt-degrees: 135.0

# ════════════════════════════════════════════════════════════════════
#  DATABASE ~ where the paperwork lives
# ════════════════════════════════════════════════════════════════════
#  Flags, punishments and kick counts have to live somewhere. LOCALDB is
#  a data.db file right here in the plugin folder, no setup, and the
#  default. SQLITE is the classic paragon.db file from older builds. H2
#  is a heavier embedded database in its own files. YAML skips databases
#  entirely and uses data.yml, which you can just open and read.
database:
  backend: LOCALDB
  # How many log lines data.yml keeps per list before trimming (YAML only).
  yaml-max-logs: 2000

# ════════════════════════════════════════════════════════════════════
#  ANTI-FREECAM ~ burying the underground
# ════════════════════════════════════════════════════════════════════
#  Everything below max-hidden-y is solid fill on the client until you get
#  close enough to actually see it. Your own tunnel opens up around you as
#  you walk, nearby blocks pop in on their own, and far caves only render
#  where you genuinely have line of sight. A detached freecam camera sees
#  nothing but fill. Climb back to daylight and it all re-hides at once.
anti-freecam:
  enabled: true
  # Below this Y everything hides until you go underground yourself.
  max-hidden-y: 15
  # Chunks around you that open up with no questions asked.
  reveal-width-chunks: 3
  # This close and blocks open up unconditionally, so your own walls and
  # floor are never fill, whatever the rays say.
  reveal-range: 5.0
  # Climb this far above max-hidden-y and the underground re-hides in one go.
  reveal-height: 35.0
  # How far past your base width genuine line of sight can still open caves.
  reveal-distance-chunks: 8
  # Columns opened per scan tick. Higher pops in faster, lower is gentler.
  max-reveals-per-scan: 8
  # How often the whole thing rechecks, in ticks. Lower is snappier.
  scan-interval-ticks: 8
  # Hide mobs and friends inside hidden ground too, so they don't float
  # through the fill on a cheater's screen.
  entity-hiding: true
  # What the hidden underground looks like from the outside.
  fill-block: deepslate
  # Folder names of the worlds this guards, exactly as on disk.
  protected-worlds:
    - world
  # Resend chunks after opening them, dodges a 1.21 client mesh bug.
  force-chunk-refresh: true

MOD DETECTION

ImageOfModBlock 140+ KNOWN MODS - Meteor, Wurst, LiquidBounce, Prestige, Aristois, ThunderHack, Xray family, SeedCracker, Baritone, helpers, minimaps and launchers.

MOD BLOCKER - channel gate with blacklist and whitelist mode, on by default, for servers that want hard mod control.

SPOOF TRAPS - fake vanilla brands with mod channels, fake Geyser brands, missing brands, cracked client magic strings and translation interceptors.

LIVE SELF TEST - /paragon probetest narrates a full probe into chat and console, so you always see exactly what the scanner sees.


WORLD PROTECTION

RAYTRACE ANTI XRAY - hidden ores stay hidden until real line of sight exists, per dimension lists, glass aware rays, border safe. Layer it over Paper engine mode 1. Replace this with a description ANTI FREECAM - the underground renders as solid fill until you walk, approach or truly see it. Detached cameras see nothing. Entities hide in the dark too.

ANTI ESP - protected block and container awareness plus mining luck audits for staff.

SEED PROTECTION - seed commands blocked, locate answers faked, structure seeds shuffled so crackers cannot triangulate your world.


STAFF TOOLKIT

SCREENSHARE MODE - /ss freeze pulls suspects to your set room, blinded and muted, and walks them back on release. Notes, warns, history, blacklist and self admit included.

PLAYER REPORTS - /report for everyone with cooldown, staff alerts, review list and a Discord embed webhook with reporter, reported, timestamp, reason and head thumbnail.

INSPECTION - /sus flag timeline GUI, /paragon client module inference, /paragon modcheck full mod report, /paragon violations live VL, /paragon xray pipeline status.

BAN HAMMER - a giant upside down mace falls on the cheater with lightning on impact, for automatic and manual bans alike. Plus quiet damage reduction while VL builds.


COMMANDS AND PERMISSIONS

CommandWhoWhat
/paragonEveryoneVersion line
/paragon helpEveryoneCommand list
/paragon alertsStaffToggle your flag inbox
/paragon violations, info, client, xray, reportsAdminsInspect players and pipeline
/paragon modcheck, probetestModcheck and AdminFull mod report, live probe test
/paragon modblock, exempt, reset, ban, unban, reloadAdminsManage and punish
/susparagon.susFlag timeline GUI
/ssparagon.ssScreenshare workflow
/reportEveryoneSnitch with cooldown

Per check opt outs included: paragonac.exempt.<check> for a whole check, paragonac.exempt.<check><letter> for one sub check, paragonac.exempt.* for everything. paragon.bypass skips it all, moddetector.bypass skips mod scanning only.


STORAGE AND SETUP

ServerPaper 1.21.11 or forks
DatabaseLocalDB file by default, SQLite or plain YAML if you prefer reading it
BedrockGeyser plus Floodgate, or dot prefix matching without Floodgate
DiscordOptional webhook for player reports

Drop the jar in /plugins, restart, done. Open config.yml, everything reads like plain advice, and messages.yml styles every line the plugin ever sends.


ALL 63 CHECKS

Movement (20)

CheckWhat It Catches
FlightRising outside gravity, hovering in place
SpeedMomentum breaks plus sustained over speed ceilings
StepStepping higher than vanilla allows
NoFallFake ground claims while falling
TimerGame speed above 20 packets per second
VelocityIgnored knockback, wall and ceiling aware
NoSlowFull speed while eating or drawing a bow
PhaseMoving through solid blocks
ElytraFlyImpossible elytra speed and boostless climbs
RotationBad pitch, NaN tricks, spinbot and AntiAim
JesusWalking on water and lava
BlinkHeld packets with a live connection
ClickTPInstant teleport in one packet
BunnyHopMachine perfect jump timing
GroundSpoofFake on ground flags over thin air
TickShiftStored ticks dumped in one burst
BoatFlyFlying vehicles, driver gets ejected
HighJumpJump boosts above vanilla impulse
SpiderClimbing walls with no ladder
NoWebFull speed inside cobwebs

Combat (26)

CheckWhat It Catches
ReachHits past range with attacker side rewind
KillAuraMulti target bursts plus off angle hits
AutoClickerCPS caps, consistency and macro intervals
ClickPatternCV, autocorrelation and entropy of clicks
AimAssistSnap aims plus GCD sensitivity locking
TriggerBotMachine reaction timing
CriticalSpoofed critical hits
HitboxExpanded hitboxes
AngleHitting targets behind the back
AutoBlockHitting while the shield is up
AutoSwapSwap hit swap macros with pair oscillation tracking
AutoSpearSwap to spear plus sprint lunge coupling and replay
AutoMaceMace swings and smashes on a fixed timer
AutoBreachBreach mace swap shredding on robot timing
AttackCooldownFull damage at zero 1.9 charge
NoSwingSilent aura with no arm swing
KeepSprintSprint kept through every hit
ThroughWallHits through solid blocks
MaceDamageGrounded smash spoof, cloned heights, swap smash
SpearLungeSwap lunges plus macro lunge replay
CrystalAuraPlace and break cycles, reaction, consistency
AnchorAuraAnchor automation sequences
BedAuraBed automation sequences
AutoTotemTotem refills by reaction, spread and refill stats
NoHurtCooldownHits faster than damage cooldown
FastBowArrows faster than draw time

World (8)

CheckWhat It Catches
ScaffoldBridge assists by cadence, sight and pattern
FastPlacePlacing faster than possible
FastBreakBreaking faster than tool timing
NukerMass breaking with instant stopping
PacketMineMining with no real dig sequence
XrayImpossible mining luck statistics
AirPlaceBlocks placed against thin air
InteractReachReaching blocks and entities too far away

Misc (9)

CheckWhat It Catches
BadPacketsNaN spots, bad pitch, burst and order abuse
PingSpoofFarmed latency and stalled responses
FastUseFast eating plus bottle, pearl and potion spam
InventoryInhuman menu click bursts
ChestStealContainer looting machines
InvMoveMoving with a menu open
AutoArmorArmor equip bursts
MultiSignalUnder the radar on every check but guilty overall
BaritonePathfinding bots by steering patterns

Built by Ascvnd. Running Paragon means cheaters meet physics, statistics and a bouncer that knows 140 mods by name.

Галерея

Anticheat FlagsKicksAnti Xray

Последние версии

Все версии →
release

1.2

1.2
27 сент. 2026 г.287Minecraft: 26.3bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.117Minecraft: 26.2bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.22Minecraft: 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.10Minecraft: 1.21bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.225Minecraft: 1.21.11bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.6Minecraft: 1.21.10bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.4Minecraft: 1.21.9bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.5Minecraft: 1.21.8bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.3Minecraft: 1.21.7bukkit, folia, paper, purpur, spigot
Скачать
release

1.2

1.2
27 сент. 2026 г.2Minecraft: 1.21.6bukkit, folia, paper, purpur, spigot
Скачать