Warden Docs

Warden documentation

Everything about Warden 2.0.0: installing it, every command and permission, every check, and every setting in config.yml. Most owners never edit the file: the in-game menu, /wardenserver, changes almost everything and saves it at once.

Install and first setup

What you need

PartVersion
ServerPaper 1.21.4 to 1.21.11, or a Paper fork such as Purpur. One jar works on all of them.
PacketEventsComes in your package. Needed for anti-ESP, game-tick checks, hiding chests and health, and crash protection. Everything else works without it.
PlayersAny version your server accepts (use ViaVersion on older servers). Bedrock players through Geyser are supported.
StaffAny client: vanilla, Lunar, Badlion, Feather, Fabric. The optional staff mod needs Java 1.21.11 with Fabric.

Install

  1. Put Warden-2.0.0.jar and the packetevents jar in your server's plugins folder. Remove any older Warden jar first. Skip PacketEvents if your server already has it.
  2. Restart the server completely. Don't use PlugMan or another plugin reloader: Warden hooks into PacketEvents and Paper's network handling at start-up, and a reload leaves the old copy half-running.
  3. In the server console, make yourself the owner, add your key and check it:
# server console
wardenserver owner add YourName
wardenserver setkey WARDEN-XXXXX-XXXXX-XXXXX-XXXXX
wardenserver status
[Warden] License active until 30 Nov 2026.
  1. Give your staff the warden.view permission (with LuckPerms: lp group mod permission set warden.view true). That's all they need.
  2. In game, type /wardenserver. The top row is a setup checklist; follow it until every step is green. Pick a Quick setup at the bottom.

Quick setup

PresetWhat Warden does on its own
RelaxedReports only. Never pulls anyone back, kicks or bans. Staff decide everything.
BalancedPlayers who clip through blocks are pulled back, a VClip kicks, and players caught again and again are kicked (15 catches of one check in 5 minutes; 3 for high-level checks). No bans. This is what a new install has.
StrictLike Balanced, but kicks at 8 catches, and repeated kicks become a 1-day ban.

Only owners can open the settings menu. Being op isn't enough. While the owners list is empty, anyone with warden.admin can use it, so add yourself straight away.

License and the Discord bot

One license works on one server, as a subscription. You buy a one-time code, then redeem it in the Warden Discord:

Discord commandWhat it does
/redeem code: [key:]Turns a code into a license key. Give your existing key to add the time to it instead of making a new one.
/mylicenseYour keys and when they run out. Only you see the answer.
/statsHow many players Warden is watching right now, on how many servers.
  • Put the key in with wardenserver setkey <key> in the console. The console is safest: typed commands are logged.
  • Moving host? Open a ticket and the key is reset; the next server to use it becomes its server.
  • When the license runs out, Warden switches off until you renew with /redeem and your existing key.
  • If the license server can't be reached, Warden keeps working for up to 72 hours on its last answer.

Updating

  1. Replace the Warden jar in plugins with the new one (and PacketEvents, if a new one came with it).
  2. Restart the server. Your config.yml is kept; new settings use their defaults until you change them in /wardenserver.
  3. Staff using the optional mod swap in the new mod jar too. The mod and plugin must be the same version.

After that first restart, setting changes never need one: the menu applies them at once, and /wardenserver reload picks up hand edits to config.yml. Paper's anti-x-ray and item hiding are the exceptions, because they change Paper's own files.

Staff commands

Staff need only two: /warden for the menu and /warden <player> for one player's page. Everything below is also a button. /wd is short for /warden. Staff who run the Warden mod type /warden:warden to reach the plugin's version of any of these.

CommandWhat it does
/wardenThe staff menu: suspects, reports, every online player, finding a player, your alerts and tags.
/warden <player>One player's page with every action. Works for offline players too (history, recordings, notes).
/warden suspectsEveryone Warden caught, most suspicious first.
/warden reports [number]Player reports to review, or one report by its number.
/warden playersEvery online player's head.
/warden alerts [on|off]Your own chat alerts on or off. Only changes it for you.
/warden tags [off|all|suspects]Labels above players, seen through walls, only by you.
/warden info <player>Everything Warden knows about them, in chat, with your server's punish buttons.
/warden history <player> [page]Alerts, notes, confirmations, clears, freezes, scans and reports, across days.
/warden note <player> <text>A note other staff see in info and history.
/warden replay <player> [1-5|live]Play back their last alert (1), an earlier one (2 to 5), or the last 30 seconds right now (live). /warden replay stop stops it.
/warden replays <player> [delete 1-5|all]Their saved recordings, to play or delete.
/warden watch <player>Spectate them, vanished with your vanish plugin if there is one. /warden watch stop takes you back.
/warden scan <player>Check their game for freecam, x-ray and cheat-client mods. They see an anvil flash.
/warden clear <player>You checked them and they're fine: wipes what Warden caught them for and forgets their kicks. Recordings and history are kept.
/warden honeypot <player> [chest|ore]Put a honeypot near them now (they must be underground). Reaching it is always reported.
/warden confirm <player> [what]You're sure they cheated. Logged, and shared on the Warden network if the owner turned sharing on. Needs warden.confirm.
/warden unconfirm <player>Take a confirmation back.
/warden help [all]The short list, or every command.
/freeze <player>Hold them still to talk to them: they can't move, hit, use items or be hurt, and most commands are blocked. /unfreeze <player> lets them go.
/wardenscan <player>The mod scan, also from the console.
/wardenwatch <player|stop>Watching, as its own command (/ww).

Owner commands

Commands that change settings work for the owners listed in config.yml and the server console, never for ops alone.

CommandWhoWhat it does
/wardenserverOwnersThe settings menu (in game). For anyone else, it shows the status.
/wardenserver statuswarden.adminLicense, players tracked, checks on, Warden's own cost per tick, what's hidden right now, and current detections.
/wardenserver reloadwarden.adminRe-read config.yml after editing it by hand.
/wardenserver staff [days]warden.adminWhat each staff member did (watches, replays, scans, freezes, confirms, clears, reports reviewed) and how fast they responded to alerts.
wardenserver setkey <key>Owners, consoleSave the license key and check it.
wardenserver webhook <link|off>Owners, consoleSet or remove the Discord channel for alerts.
wardenserver owner add|remove|list [name]Owners, consoleWho may change Warden's settings.

Player commands

CommandWhat it does
/report <player> [what they did]Report a player to staff. Warden attaches a recording of the last 30 seconds. Once a minute per player. If another plugin already owns /report, use /wreport or /warden:report.

Staff mod commands

Only for staff who installed the optional Fabric mod. It unlocks itself on a server that runs Warden with an active license, for staff with warden.view. Anything the mod doesn't know is passed to the plugin, so every command above still works.

CommandWhat it does
/warden on | offTags, look rays and the suspects list on screen, for every player on the map.
/warden panelA live map of every player, with search, details and action buttons.
/warden menuThe plugin's staff menu.
/warden <name>That player's page on the server.
/warden watch [name]Spectate a player; no name takes you back.
/warden replay <name> [1-5|live]Play back their movement; /warden replay stop stops.
/warden scan <name>The mod scan.
/warden share <name> [note]Post the player and their evidence to your staff Discord.
/warden webhook <link>The Discord channel for sharing, saved for this server only.
/warden clear [name]Take a player off the suspects list, or clear the whole list.
/warden trust [name], /warden untrust <name>Never flag a player on your screen (for staff), or show the list.
/warden help, /warden help tagsEvery mod command, and what the symbols on a tag mean.
/warden reloadRe-read the mod's own settings file.

Keybinds (unbound at first) are under Options, Controls, Key Binds, Warden: toggle the overlay, open the map, watch the next suspect.

Permissions

PermissionDefaultGives
warden.viewopStaff: alerts, the staff menu, tags, replays, reports, info and history. Includes watch, scan and freeze.
warden.watchopWatching players.
warden.scanopThe mod scan.
warden.freezeop/freeze and /unfreeze.
warden.confirmopConfirming cheaters (shared on the network if sharing is on). Not part of warden.view: give it to trusted staff.
warden.adminop/wardenserver status, reload and staff. Changing settings needs to be an owner.
warden.reporteveryone/report.
warden.bypassnobodyNever checked by anything. For trusted staff who fly or noclip. Vanished and frozen players are skipped anyway.

The staff menu

/warden opens it. Every button runs the same command staff could type, so permissions and logging are the same.

The main page

  • Suspects: everyone Warden caught, most suspicious first. Click a head for their page; right-click replays their last alert; shift-click scans their mods; Q clears them.
  • Online players and Find a player (type a name, offline players too).
  • Reports: player reports to review, with how many are open.
  • My chat alerts and My tags: your own settings, nobody else's.
  • Stop watching and Stop the replay appear while you're doing either.

A player's page

The head at the top lists what Warden caught them for, their client, the mod scan result, notes, kicks, where they are and their ping. Below are Watch, Replay last alert, Recordings, Scan their mods, Freeze, History, Info in chat, Add a note, Clear, Place a honeypot, Confirm cheater, and your server's own punish buttons. Grey buttons say why they can't be used.

Alerts in chat

[Warden] Steve Fly x3: hovered in mid-air for 2.1s  [Watch] [Replay] [Info]

Click the name for their page; hover to see where it happened. x3 is how many times this check caught them this session. The same player and check alerts at most once every 10 seconds, but every catch is counted.

The settings menu

/wardenserver, for owners. Every change is saved at once and logged with who made it in plugins/Warden/changes.log.

PageWhat's on it
Main pageStatus, the setup checklist, the sections below and Quick setup.
ChecksThree pages: movement; combat, world and client; PvP, utility and packets. Left-click switches a check, right-click its staff chat alerts, shift-click its Discord alerts, Q (drop key) cycles its level.
What Warden does on its ownPull back clips, kick on VClip, auto-kick and its numbers, bans and their numbers.
Alerts and DiscordStaff chat alerts, Discord, pictures, cooldowns.
Mod scan and clientsScan on join, scan everyone now, the mod list, suspicious client names.
X-ray, ESP, protectionHoneypots, fake chests, x-ray ores, anti-ESP (and for items and mobs), Paper's anti-x-ray, hide chests and spawners, hide health, crash protection, hide armour durability.
LimitsSpeed, reach, clicks, placing and breaking. Raise one if honest players get caught.
License, owners and networkLicense status, the Warden network, the staff mod's map.

Numbers: left-click raises, right-click lowers, shift-click moves five steps.

Kicks, bans and setbacks

Warden reports everything. On its own it only does what you switch on:

  • Setback (on): a player who VClips or Phases through solid blocks is put back where they started. Kick on VClip (on) also kicks them; when they rejoin they're where the clip started.
  • Auto-kick (on): a player one check catches again and again is kicked. High-level checks kick after 3 catches, the rest after 15, within 5 minutes. A kick isn't a ban: they can rejoin.
  • Bans (off): kicks are remembered for 7 days. The 2nd kick by a high-level check, or the 5th by a medium one, becomes a 24-hour ban. Low-level checks never ban. /warden clear forgets a player's kicks.

Check levels

LevelMeans
HighNear-proof cheats (VClip, Fly, Teleport, KillAura...): kicked after a few catches, banned after 2 kicks if bans are on.
MediumMost checks: kicked after more catches, banned after 5 kicks.
LowLeads: can be kicked, never banned.
OffNever kicked or banned, only reported. Every check new in 2.0 starts here until you've seen it on your server.

Change a level with Q on the check in the menu, or level: high on its line in config.yml. Bans use the server's ban list (/pardon lifts them) or your ban plugin's command (auto-kick.ban-command).

Every check

77 checks. Movement is compared with real Minecraft physics on every move; one odd move from lag is never reported, only a run of them. lead marks hints to go and look, not proof. "Alerts" is what a new install sends; change it per check in the menu.

CheckWhat it catchesAlertsLevel
Movement
VClipvclipMoving up or down through a full solid block.Chat and DiscordHigh
PhasephaseWalking sideways through a wall (with no way around).Chat and DiscordHigh
FlyflyStaying in the air without falling.Chat and DiscordHigh
ElytraFlyelytra-flyClimbing with an elytra without losing speed, or hovering, with no rocket.Chat and DiscordHigh
AirJumpair-jumpJumping again in mid-air with nothing to stand on (AirJump, double jump, Jetpack).ChatMedium
GroundSpoofground-spoofThe player's game claims to stand on the ground while nothing is under them (NoFall, some fly).ChatLow
NoFallno-fallFalling far enough to get hurt and taking no fall damage (NoFall).ChatHigh
StrafestrafeChanging speed or direction in mid-air more than the movement keys allow (air strafe, bunny-hop speed).ChatMedium
SpeedspeedMoving faster than the speed below. Counted in seconds.ChatMedium
GroundSpeedground-speedSpeeding up or turning on the ground more than the player's speed allows (catches small speed hacks the 12 blocks/s Speed check misses). Speed potions, soul speed and ice are taken into account.ChatMedium
FastSneakfast-sneakWalking at full speed while sneaking (FastSneak).ChatMedium
HighJumphigh-jumpJumping higher than jump strength and Jump Boost allow.ChatMedium
StepstepStepping up a full block or more in one move, without jumping.ChatMedium
JesusjesusWalking on top of water or lava.ChatHigh
NoSlownoslowWalking at full speed while eating, drawing a bow or blocking, or through cobwebs, soul sand (without Soul Speed) and honey.ChatMedium
FastClimbfast-climbClimbing ladders and vines faster than normal.ChatMedium
BoatFlyboat-flyA boat flying up with nothing under it.ChatHigh
TimertimerThe player's game running faster than real time.ChatMedium
Input leadinputMovement that doesn't match the keys the player's game says are held: speeding up with no movement keys, or sprinting without holding forward (omni-sprint). Only for 1.21.2+ games.ChatLow
Teleportclick-tpMoving further in one step than legs can (ClickTP, teleport and packet speed/fly cheats).Chat and DiscordHigh
ArrowDodgearrow-dodgeMoving out of the way of arrows faster than the movement keys allow (ArrowDodge).ChatMedium
FastFallfast-fallFalling faster than gravity pulls (ReverseStep, FastFall).ChatOff
EntitySpeedentity-speedRiding a horse, camel, pig or strider faster than it can go (EntitySpeed).ChatOff
EntityFlyentity-flyA ridden mob that can't fly staying in the air or rising for too long (EntityFly).Chat and DiscordOff
TridentBoosttrident-boostGoing further after a riptide than the trident's level allows (TridentBoost).ChatOff
Combat and aim
ReachreachMelee hit from too far away.ChatMedium
KillAurakillauraMelee hit on a player they were not looking at, or several players hit at once.Chat and DiscordHigh
HitboxeshitboxHits aimed beside the target, again and again (Hitboxes: cheats that make everyone's hitbox bigger).ChatMedium
Hit through wall leadwall-hitMelee hit on a player who is completely behind blocks.ChatMedium
Aimbot leadaimbotAim that stays glued to a moving player. Works with guns and bows too.ChatLow
AimAssistaim-assistWhile fighting: the head turning by amounts no mouse can produce (aim assist nudging the aim). A mouse turns in fixed small steps set by its sensitivity. Smooth camera/zoom mods can look the same, so it's a lead.ChatOff
TriggerBottrigger-bot11 of 12 hits landing the very tick the crosshair reached the target or the swing became ready, with no misses (TriggerBot).ChatOff
AutoClickerautoclickerMore clicks per second than a hand can do, for several seconds.ChatMedium
Velocity leadvelocityTaking almost no knockback, 3 times in a minute (anti-knockback).ChatMedium
Criticals leadcriticalsCritical hits while standing on the ground, 3 within 10 seconds.ChatMedium
AutoTotemauto-totemA new totem in the off-hand faster than a human could react after one popped.ChatMedium
DerpderpHead turning to random directions every tick, spinning non-stop, or looking past straight up/down (derp, spin-bot, and silent-aim cheats that snap to a target and back).ChatLow
Crystal and anchor PvP
CrystalAuracrystal-auraPlacing a crystal and breaking it in the same game tick, breaking 7 of 10 crystals in the tick they were placed, 12 crystals in a row at the exact same speed, or obsidian + crystal + hit inside 2 ticks (CrystalAura, AutoCrystal, AutoHitCrystal).Chat and DiscordOff
AnchorAuraanchor-auraCharging and blowing up a respawn anchor in the same tick, or switching item between the two inside one game tick (AnchorAura, AnchorMacro).Chat and DiscordOff
BedAurabed-auraPlacing a bed and blowing it up in the same tick in the Nether or End, 3 times in a minute (BedAura).Chat and DiscordOff
AutoDoubleHandauto-double-handA totem in the main hand within 100 ms of a totem popping or of dropping to low health, twice (AutoDoubleHand). Off-hand totems are AutoTotem.ChatOff
SurroundsurroundSeveral blocks placed in a single tick (one click places one): Surround, AutoTrap, HoleFiller.ChatOff
AutoWebauto-webA cobweb or anvil dropped onto a player the tick they arrived there, 3 times (AutoWeb, AutoAnvil).ChatOff
AttributeSwapattribute-swapChanging hotbar slot right after a hit in the same game tick (mace/axe AttributeSwap, ShieldBreaker).ChatOff
AutoSwitch leadauto-switchRight-clicking then changing slot in the same game tick (silent switch), or switching and using an item in the very same tick again and again (AutoWeapon, AutoGap, AutoPearl).ChatOff
BowAimbot leadbow-aimbot8 of the last 10 long shots (15+ blocks) at moving players landing (BowAimbot).ChatOff
FastBowfast-bow10 arrows in a row drawn for the exact same time, or 8 arrows in a second (BowSpam, FastBow).ChatOff
QuiverquiverShooting itself with a potion arrow after the view snapped straight up for the shot (Quiver).ChatOff
AutoEXPauto-expXP bottles thrown like clockwork, or looking down for just the tick of each throw (AutoEXP, AutoMend).ChatOff
AutoArmorauto-armorThree pieces of armour put on by clicking in one tick, or broken armour replaced within 100 ms (AutoArmor).ChatOff
AutoLogauto-logLeaving the game within 200 ms of being hit low in a fight (AutoLog).Chat and DiscordOff
World and items
XRayxrayDigging straight to buried ore veins again and again.Chat and DiscordMedium
HoneypothoneypotDug straight to a fake ore or chest that only this player's game was shown, sealed in stone (see honeypots below). Only x-ray, chest ESP or freecam can reveal one.Chat and DiscordHigh
NukernukerBreaking blocks too fast or from too far away.Chat and DiscordMedium
FastBreakfast-breakBreaking a block faster than the tool, enchantments and effects allow (FastBreak, InstantBreak, SpeedMine).ChatMedium
PacketMinepacket-mineBreaking blocks the crosshair isn't on (PacketMine, AutoCity, InstaMine). With PacketEvents also, by the game's own ticks: saying a block is broken far sooner than it can be (the server then breaks it by itself later), or finishing a block it never started on, stopped breaking or already finished (PacketMine, SpeedMine, InstantRebreak). Start and finish in one tick on a slow block is reported at once; the rest twice in a minute.ChatOff
BlockReachblock-reachBreaking, placing or using blocks further away than the game's reach (BlockReach).ChatOff
FastPlacefast-placePlacing blocks faster than the limit below.ChatMedium
AirPlaceair-placePlacing a block against thin air, with nothing to place it on (AirPlace).ChatHigh
Scaffold leadscaffoldPlacing blocks without looking at them, 4 within 5 seconds.ChatMedium
Automation leadautomationAim landing on the exact centre of the blocks being mined, again and again (Baritone and other mining bots).ChatLow
GhostHandwall-useGhostHand: opening a chest (or a door, button, lever) or placing a block with a solid block between the eyes and the spot clicked, or clicking the side of a block that faces away from the eyes (chest ESP with interact-through-walls, GhostHand, Surround/AutoTrap/Scaffold placing without aiming). The far side, or two blocks in the way, is reported at once; one block in the way twice.Chat and DiscordHigh
InventoryMove leadinventory-moveClicking in an inventory while walking (vanilla stops you moving).ChatLow
FastInventory leadfast-inventory5 inventory clicks in one tick, or 20 like clockwork (InventoryTweaks, AutoArmor; sorting mods like Item Scroller do this too).ChatOff
ChestStealer leadchest-stealerShift-clicking stacks out of chests inhumanly fast. Mouse Tweaks does this legitimately, so it only shows on tags unless you turn chat on.Tags onlyOff
AutoFishauto-fishReeling in fish within 50 ms of every bite, or exactly as fast every time (AutoFish).ChatOff
FarmBotfarm-botUsing several animals in one tick, or one after another like clockwork (AutoBreed, AutoShearer).ChatOff
AntiAFK leadanti-afkJumping or swinging at exact intervals for minutes without going anywhere (AntiAFK).ChatOff
Menus, chat, packets and clients
MenuBotmenu-botClicking an item in a plugin menu (auction house, shop) faster than a person could see it, ping taken off, 4 times in 5 minutes (auction and shop snipers).Chat and DiscordOff
CommandMacrocommand-macroThe same command at exact intervals 8 times, or 8 commands in a second (AutoSell and other macros).ChatOff
ChatSpamchat-spamThe same message 5 times in a minute, or messages at exact intervals (spam bots).ChatOff
BadPacketsbad-packetsPackets a real game never sends: actions after its movement in the same game tick, a hit on itself, a hotbar slot that doesn't exist (BadPackets).ChatOff
CrashcrashPackets built to lag or crash the server (dropped by crash protection, below).Chat and DiscordOff
Clientsuspicious-clientA player joined with a client brand or mod you listed under client-info below.ChatLow
Wall tracking leadwall-trackKeeps aiming at a moving player they cannot see. Counted in seconds.Tags onlyOff
Other
MaceDamagemace-damageA mace hit after a fall the server counted but that never happened: the game sent one step a few dozen blocks up and straight back down right before the hit, so the smash attack does huge damage (MaceDMG, MaceKill). Compared with the real top of the fall; reported at once. Starts at level OFF.Chat and DiscordOff

"Game tick" checks need PacketEvents and a 1.21.4 or newer client. A real Minecraft client handles keys in the same order inside each tick (hotbar, hits, right-clicks, then movement). Crystal aura, anchor aura and swap cheats act from code and break that order, whatever the player's skill or ping.

Protection

Things Warden keeps from cheat clients, so they have nothing to show. All are in the menu under X-ray, ESP, protection.

ProtectionStartsWhat it does
Anti-ESPonA player fully behind solid blocks isn't sent to another player until they could be seen, so ESP has nothing to draw. Players within 3 blocks are always shown. They stay in the tab list and chat works. Staff see everyone. Needs PacketEvents.
Anti-ESP for items and mobsoffThe same for dropped items and/or mobs. Off at first because big mob farms mean many sight lines.
Hide chests and spawnersoffChests, barrels, shulkers, ender chests, hoppers, furnaces and spawners further than 24 blocks aren't sent at all; they appear as a player comes closer. Stash and spawner finders find nothing from afar. Needs PacketEvents.
Hide healthonOther players' health and absorption are sent as full, so health and nametag cheats show nothing. A normal game never shows it anyway. Staff see real health. Needs PacketEvents.
Crash protectiononDrops giant books, signs, names and tab-completes, impossible inventory clicks and floods of clicks and recipe requests, and reports each as Crash. Needs PacketEvents.
Anti-x-ray (Paper)offSwitches on Paper's own anti-x-ray with recommended settings: hidden stone is sent as random ores, so x-ray shows ore everywhere. Edits Paper's config (a backup is kept); restart to apply.
Hide armour durability (Paper)offSwitches on Paper's item hiding: other players' armour and items are sent without durability. Restart to apply.
HoneypotsonFake ore or chests only the miner's own game is shown, sealed in stone. Digging straight to one from 8+ blocks away is a Honeypot alert. Nothing in your world changes.

Reports (the review queue)

  1. A player types /report Zed flying around spawn.
  2. Warden files report #12 with a recording of the 30 seconds before it and everything its checks know about Zed: what they were caught for, their client, mod scan, kicks and history. Reports of the same player within 10 minutes are merged, with every reporter listed.
  3. Staff get [Warden] Report #12: Zed reported by Noor ... [Review] in chat (and in Discord, if set up). Staff who join later are told how many reports are open.
  4. /warden reports lists open reports, most reported first. Open one to play its recording in the world, watch Zed, open their page or history.
  5. Give it a verdict, which closes it and goes into Zed's history:
    • Cheating: with warden.confirm, also confirms Zed.
    • Not cheating or Unsure.
    • False alert: Warden's own checks caught an innocent player. The evidence and recording are saved to plugins/Warden/false-alerts for you to send to the Warden developer, and what Warden caught on Zed is cleared.

The players who reported are told when staff have looked at it, never the verdict. Reports are kept in plugins/Warden/reports and survive restarts.

Mod scan

Freecam, ESP and x-ray mods only change what the cheater sees, so no server check can see them being used. The mod scan asks the player's game to translate each listed mod's own text and keybinds; a game that has the mod answers differently. The player sees an anvil flash for a moment, so scans only run when staff ask (or on join, if you switch that on).

  • A mod found raises a Client alert. "Blocks mod scans" means their game hid every answer, which is suspicious on its own.
  • A game that says it's vanilla but has mods is reported too.
  • Add mods in the menu or under mod-scan.mods: the mod's name and a key from its assets/<mod>/lang/en_us.json (a keybind works best).
  • Tell your players in your rules that staff may scan their mods.

Discord alerts

  1. In Discord: your staff channel, Edit Channel, Integrations, Webhooks, New Webhook, Copy Webhook URL.
  2. In the console: wardenserver webhook <link>. Keep the link private: anyone with it can post there.
  3. Pick which checks post to Discord in the menu (shift-click a check).

Each post carries a picture of the player's path from above and their height over time, so a fly or an x-ray tunnel is visible from your phone. One post per player every 15 seconds; extra catches are counted in the next post. Kicks, bans, frozen players logging out, honeypots and reports are posted too.

Warden network

When your staff confirm a cheater, Warden can share that with other Warden servers, and tell your staff when a player who joins was confirmed elsewhere. Only deliberate staff confirmations are shared, never automatic alerts. Shared: the player's account id and name, what for, and when. Never your server's name, address or license key. Each server counts once, and confirmations expire after six months.

Sharing is off until you switch it on (network.share-confirmations). Showing other servers' confirmations is on. A network mark is a reason to watch, not proof.

History, alts and cleanup

  • History: alerts, staff notes, confirmations, clears, freezes, mod scans, reports and up to 5 recordings per player, in plugins/Warden/history, kept for 90 days (history.keep-days). Older data is deleted automatically at start-up and once a day.
  • Alts: accounts that joined from the same address are linked. Addresses are never stored, only a scramble that can't be turned back into an IP, and it stays on your server. Staff are told when an alt of someone with a record joins. Behind BungeeCord or Velocity, switch on IP forwarding.
  • Staff report: /wardenserver staff shows what each staff member did and how fast they responded.

Bedrock players

Players joining through Geyser and Floodgate are recognised by their Floodgate account id, which a Java player can't fake. Geyser translates their movement and touch screens attack without aiming, so the checks that would misfire skip them (bedrock.exempt-checks, plus the game-tick, aim and inventory checks). VClip, Phase, Speed, XRay, Nuker, FastPlace and AutoTotem still apply.

config.yml, every setting

The file is plugins/Warden/config.yml. After editing it by hand, run /wardenserver reload. Settings missing from your file use the default shown here. Each check's own line (enabled, chat, discord, level) is described in Every check.

# a check's line, with an optional level
checks:
  fly:          { enabled: true, chat: true,  discord: true, level: high }

owners

SettingDefaultWhat it does
owners[]Who may change Warden's settings (the in-game menu, the license key, the Discord link). Player names (or account ids). Only these players and the server console can - being op is not enough. Easiest: in the console run wardenserver owner add <your name> While this list is empty, anyone with warden.admin can use the menu; set it as soon as you can.

license-key

SettingDefaultWhat it does
license-key""Your Warden license key (looks like WARDEN-XXXXX-XXXXX-XXXXX-XXXXX). You get it from the Warden Discord with /redeem. One key works on one server. You can also set it in the console with: wardenserver setkey <key> Warden does nothing until a valid key is set. Check with: /wardenserver status

stream

How often player positions are sent to staff running the mod, in ticks (20 ticks = 1 second). 2 = 10 updates per second. Higher numbers use less bandwidth but look less smooth.

SettingDefaultWhat it does
stream.interval-ticks2

setback

SETBACK - the only things Warden does on its own A player who VClips or Phases through solid blocks is put back where they started (and it is still reported), and a VClip also kicks them. These two checks are near-proof, so honest players aren't affected. Everything else is only reported. Set both to false for report-only.

SettingDefaultWhat it does
setback.vclip-and-phasetrue
setback.kick-on-vcliptrue
setback.kick-message"You were kicked for moving through blocks."

auto-kick

AUTO-KICK AND BANS Every check has a level (see "level" under checks below; change it in /wardenserver too): high near-proof cheats (VClip, Fly, Teleport, KillAura...): kicked after high-catches catches medium most checks: kicked after "catches" catches low leads (Input, Aimbot...): kicked after "catches" catches, but never banned off never kicked or banned (hint-only checks) Catches count within "minutes". A kick is not a ban: they can rejoin.

SettingDefaultWhat it does
auto-kick.enabledtrue
auto-kick.high-catches3
auto-kick.catches15
auto-kick.minutes5
auto-kick.message"You were kicked by the anti-cheat."
auto-kick.banfalseBans (off by default): kicks are remembered for remember-days, across logouts and restarts. The kick that reaches ban-after-high-kicks (high checks) or ban-after-medium-kicks (medium checks) becomes a temporary ban instead. Staff running /warden clear <player> forgets their kicks.
auto-kick.ban-after-high-kicks2
auto-kick.ban-after-medium-kicks5
auto-kick.ban-hours24
auto-kick.remember-days7
auto-kick.ban-message"Banned for {hours} hours by the anti-cheat ({check})."
auto-kick.ban-command""Empty: the server's own ban list (/pardon <name> lifts it). Or your ban plugin's command, run from the console (no slash; {player}, {check} and {hours} are filled in), for example: ban-command: "tempban {player} {hours}h Cheating ({check})"

checks

CHECKS Warden REPORTS; staff decide. What it does on its own is set above (setback, auto-kick, bans). For each check: enabled: run it at all chat: alert staff (a line in the mod, or in server chat for staff without the mod) discord: also post it to the Discord channel below A check that is enabled but has chat and discord off still shows on player tags and on the suspects list in the mod. Checks marked "lead" are hints, not proof: look before you act.

SettingDefaultWhat it does
checks.*One line per check, listed in the checks table above.

alerts

Each check: enabled, chat (staff chat alerts), discord, and optionally level: high, medium, low or off (what auto-kick and bans do; see AUTO-KICK AND BANS above). Without level, the check keeps the level Warden gives it. Moving up or down through a full solid block. Walking sideways through a wall (with no way around). Staying in the air without falling. Moving faster than the speed below. Counted in seconds. The player's game running faster than real time. Melee hit from too far away. Melee hit on a player who is completely behind blocks. (lead) Melee hit on a player they were not looking at, or several players hit at once. Aim that stays glued to a moving player. Works with guns and bows too. (lead) More clicks per second than a hand can do, for several seconds. Digging straight to buried ore veins again and again. Breaking blocks too fast or from too far away. Keeps aiming at a moving player they cannot see. Counted in seconds. (lead) --- Movement, checked against vanilla physics --- The player's game claims to stand on the ground while nothing is under them (NoFall, some fly). Changing speed or direction in mid-air more than the movement keys allow (air strafe, bunny-hop speed). Stepping up a full block or more in one move, without jumping. Walking on top of water or lava. Walking at full speed while eating, drawing a bow or blocking, or through cobwebs, soul sand (without Soul Speed) and honey. Climbing ladders and vines faster than normal. A boat flying up with nothing under it. --- Combat --- Taking almost no knockback, 3 times in a minute (anti-knockback). (lead) Critical hits while standing on the ground, 3 within 10 seconds. (lead) --- World and inventory --- Placing blocks faster than the limit below. Placing blocks without looking at them, 4 within 5 seconds. (lead) Clicking in an inventory while walking (vanilla stops you moving). (lead) --- Added in 1.3 --- Speeding up or turning on the ground more than the player's speed allows (catches small speed hacks the 12 blocks/s Speed check misses). Speed potions, soul speed and ice are taken into account. Jumping higher than jump strength and Jump Boost allow. A new totem in the off-hand faster than a human could react after one popped. Shift-clicking stacks out of chests inhumanly fast. Mouse Tweaks does this legitimately, so it only shows on tags unless you turn chat on. (lead) A player joined with a client brand or mod you listed under client-info below. --- Added in 1.9 --- Movement that doesn't match the keys the player's game says are held: speeding up with no movement keys, or sprinting without holding forward (omni-sprint). Only for 1.21.2+ games. (lead) Head turning to random directions every tick, spinning non-stop, or looking past straight up/down (derp, spin-bot, and silent-aim cheats that snap to a target and back). The game held its movement back while still sending clicks and key presses, then caught up all at once (blink / fake lag). Real lag holds everything back together, so it is never confused with this. Aim landing on the exact centre of the blocks being mined, again and again (Baritone and other mining bots). (lead) Climbing with an elytra without losing speed, or hovering, with no rocket. Dug straight to a fake ore or chest that only this player's game was shown, sealed in stone (see honeypots below). Only x-ray, chest ESP or freecam can reveal one. Breaking a block faster than the tool, enchantments and effects allow (FastBreak, InstantBreak, SpeedMine). GhostHand: opening a chest (or a door, button, lever) or placing a block with a solid block between the eyes and the spot clicked, or clicking the side of a block that faces away from the eyes (chest ESP with interact-through-walls, GhostHand, Surround/AutoTrap/Scaffold placing without aiming). The far side, or two blocks in the way, is reported at once; one block in the way twice. Placing a block against thin air, with nothing to place it on (AirPlace). Hits aimed beside the target, again and again (Hitboxes: cheats that make everyone's hitbox bigger). Falling far enough to get hurt and taking no fall damage (NoFall). Moving further in one step than legs can (ClickTP, teleport and packet speed/fly cheats). Jumping again in mid-air with nothing to stand on (AirJump, double jump, Jetpack). Walking at full speed while sneaking (FastSneak). Moving out of the way of arrows faster than the movement keys allow (ArrowDodge). While fighting: the head turning by amounts no mouse can produce (aim assist nudging the aim). A mouse turns in fixed small steps set by its sensitivity. Smooth camera/zoom mods can look the same, so it's a lead. --- New in 2.0, for crystal PvP and SMP servers. They start at level OFF (report only, never kick or ban) until you've seen them work on your server; then set a level in the menu (Q on a check). Checks that say "game tick" need PacketEvents: games from 1.21.2 on mark the end of each of their ticks, and a real game always handles keys in the same order inside one (hotbar, hit, right-click, move). Cheats act from code and get that order wrong, however good the player. Placing a crystal and breaking it in the same game tick, breaking 7 of 10 crystals in the tick they were placed, 12 crystals in a row at the exact same speed, or obsidian + crystal + hit inside 2 ticks (CrystalAura, AutoCrystal, AutoHitCrystal). Charging and blowing up a respawn anchor in the same tick, or switching item between the two inside one game tick (AnchorAura, AnchorMacro). Placing a bed and blowing it up in the same tick in the Nether or End, 3 times in a minute (BedAura). A totem in the main hand within 100 ms of a totem popping or of dropping to low health, twice (AutoDoubleHand). Off-hand totems are AutoTotem. Several blocks placed in a single tick (one click places one): Surround, AutoTrap, HoleFiller. A cobweb or anvil dropped onto a player the tick they arrived there, 3 times (AutoWeb, AutoAnvil). 11 of 12 hits landing the very tick the crosshair reached the target or the swing became ready, with no misses (TriggerBot). Changing hotbar slot right after a hit in the same game tick (mace/axe AttributeSwap, ShieldBreaker). Right-clicking then changing slot in the same game tick (silent switch), or switching and using an item in the very same tick again and again (AutoWeapon, AutoGap, AutoPearl). (lead) 8 of the last 10 long shots (15+ blocks) at moving players landing (BowAimbot). (lead) 10 arrows in a row drawn for the exact same time, or 8 arrows in a second (BowSpam, FastBow). Shooting itself with a potion arrow after the view snapped straight up for the shot (Quiver). XP bottles thrown like clockwork, or looking down for just the tick of each throw (AutoEXP, AutoMend). Three pieces of armour put on by clicking in one tick, or broken armour replaced within 100 ms (AutoArmor). Leaving the game within 200 ms of being hit low in a fight (AutoLog). Riding a horse, camel, pig or strider faster than it can go (EntitySpeed). A ridden mob that can't fly staying in the air or rising for too long (EntityFly). Going further after a riptide than the trident's level allows (TridentBoost). Falling faster than gravity pulls (ReverseStep, FastFall). Breaking, placing or using blocks further away than the game's reach (BlockReach). Breaking blocks the crosshair isn't on (PacketMine, AutoCity, InstaMine). With PacketEvents also, by the game's own ticks: saying a block is broken far sooner than it can be (the server then breaks it by itself later), or finishing a block it never started on, stopped breaking or already finished (PacketMine, SpeedMine, InstantRebreak). Start and finish in one tick on a slow block is reported at once; the rest twice in a minute. Reeling in fish within 50 ms of every bite, or exactly as fast every time (AutoFish). Jumping or swinging at exact intervals for minutes without going anywhere (AntiAFK). (lead) Using several animals in one tick, or one after another like clockwork (AutoBreed, AutoShearer). 5 inventory clicks in one tick, or 20 like clockwork (InventoryTweaks, AutoArmor; sorting mods like Item Scroller do this too). (lead) Clicking an item in a plugin menu (auction house, shop) faster than a person could see it, ping taken off, 4 times in 5 minutes (auction and shop snipers). The same command at exact intervals 8 times, or 8 commands in a second (AutoSell and other macros). The same message 5 times in a minute, or messages at exact intervals (spam bots). Packets a real game never sends: actions after its movement in the same game tick, a hit on itself, a hotbar slot that doesn't exist (BadPackets). Packets built to lag or crash the server (dropped by crash protection, below). A mace hit after a fall the server counted but that never happened: the game sent one step a few dozen blocks up and straight back down right before the hit, so the smash attack does huge damage (MaceDMG, MaceKill). Compared with the real top of the fall; reported at once. Starts at level OFF.

SettingDefaultWhat it does
alerts.cooldown-seconds10The same player and check alerts at most once per this many seconds (it is still counted).
alerts.staff-chattrueStaff with warden.view who do NOT have the mod get alerts as a chat line.

discord

Discord > channel > Edit Channel > Integrations > Webhooks > New Webhook > Copy Webhook URL. Keep this link private: anyone who has it can post in the channel.

SettingDefaultWhat it does
discord.webhook-url""
discord.cooldown-seconds15One post per player per this many seconds; extra alerts are counted in the next post.
discord.picturestrueAttach a picture of what the player did (their path from above and their height over time).

vclip

FINE TUNING (the defaults are fine for most servers)

SettingDefaultWhat it does
vclip.min-vertical2.0Smallest vertical jump (blocks) that is checked.
vclip.max-horizontal0.75Most sideways movement (blocks) allowed during the clip; clips are almost purely vertical.
vclip.max-jump32.0Bigger jumps than this are treated as teleports/respawns, not clips.

phase

SettingDefaultWhat it does
phase.min-horizontal1.75Smallest sideways move within 3 ticks that is checked (sprint-jumping is about 1.1).
phase.max-distance6.0Bigger moves than this are treated as teleports.
phase.max-vertical1.5

speed

Walking ~4.3, sprinting ~5.6, sprint-jumping ~7 blocks/second. Flying, elytra, riptide, vehicles, spectators and teleports are ignored. Speed potions and a raised walk speed raise this limit for that player automatically.

SettingDefaultWhat it does
speed.alert-blocks-per-second12.0

fly

SettingDefaultWhat it does
fly.air-ticks40Ticks in the air (20 = 1 second) before the check starts. A normal jump is 12. Creative flight, elytra, levitation, slow falling, jump boost, water, ladders, knockback and explosions are ignored.
fly.gravity-checktrueAlso compare every mid-air movement with gravity. Catches hovering, gliding and climbing walls within a fraction of a second. Set to false if it ever flags honest players on your server.

placing

SettingDefaultWhat it does
placing.max-blocks-per-second16Most blocks per second a player can place. Holding right-click places 5; fast clicking about 10-15.

timer

SettingDefaultWhat it does
timer.extra-packets30How many movements ahead of real time before it counts (20 = one second's worth). It must happen twice within 30 seconds to be reported; a single burst is a lag spike.

combat

SettingDefaultWhat it does
combat.reach-tolerance0.6Blocks added to the player's reach before a hit counts as too far (vanilla reach is 3.0).
combat.killaura-max-angle-degrees60.0A hit counts as KillAura if the player was looking more than this many degrees away.
combat.multi-target-count3...or if they hit this many different players within this many ticks.
combat.multi-target-ticks10

autoclicker

NOTE: these read the attack the player's own game sends. Damage dealt by gun or skill plugins is not a melee attack and is never checked (so it cannot be flagged by mistake either).

SettingDefaultWhat it does
autoclicker.max-cps22Clicks per second above this, for this many seconds in a row. Mining is not counted.
autoclicker.seconds3

aimbot

SettingDefaultWhat it does
aimbot.max-error-degrees1.5How close (degrees) the aim must stay to the target to count as locked.
aimbot.ticks40How many ticks of a moving target are measured before deciding.

xray

SettingDefaultWhat it does
xray.oresDIAMOND_ORE, DEEPSLATE_DIAMOND_ORE, ANCIENT_DEBRIS, EMERALD_ORE, DEEPSLATE_EMERALD_OREBlocks worth cheating for on YOUR server. Use Minecraft material names.
xray.window-minutes15Reported when a player digs straight to this many completely buried veins within this many minutes, mining no more than this many other blocks per vein on average. Ore that was already visible (caves, next to water or lava) is never counted.
xray.min-veins4
xray.max-blocks-per-vein40

nuker

SettingDefaultWhat it does
nuker.blocks-per-second25The fastest legit mining is 20 blocks/second (instant-break with a maxed pickaxe). Blocks broken by plugins for the player (vein miner, tree feller) are not counted.
nuker.reach-tolerance1.5Blocks added to the player's block reach before a break counts as too far.

bedrock

Bedrock players (joining through Geyser/Floodgate). Their movement is translated by Geyser and touch screens attack without aiming, so these checks would misfire on them and never report Bedrock players. VClip, Phase, Speed, XRay, Nuker, FastPlace and AutoTotem still apply. Remove a check from the list to check Bedrock players with it too. Bedrock players are recognised by the account id they log in with (Floodgate ids start with 00000000-0000-0000), which a Java player can't fake.

SettingDefaultWhat it does
bedrock.exempt-checks[fly, ground-spoof, strafe, ground-speed, high-jump, step, jesus, noslow, fast-climb, timer,

client-info

Client info: every staff tag shows which client a player uses (the "brand" their game reports, like "vanilla" or "fabric") and the mods it announced. If you know a brand or mod name that only cheat clients use, add part of it here and Warden raises a "Client" alert when someone joins with it. Matching ignores upper/lower case. Cheat clients can hide or fake this, so no match proves nothing. Example: flag-brands: ["somecheatclient"]

SettingDefaultWhat it does
client-info.flag-brands[]
client-info.flag-mods[]

mod-scan

Mod scan: checks whether a player has particular client mods installed - freecam, x-ray and cheat clients - by asking their game to translate each mod's own text codes. It finds freecam and ESP/x-ray mods, which no server-side check can see. The player sees an anvil flash open for a moment, so it only runs when staff ask: /wardenscan <player>, or the Scan button / /warden scan in the mod. Big cheat clients and privacy mods can block it; Warden reports that as "blocks mod scans". A mod that is found raises a "Client" alert. Tell your players in your rules that you may scan. A game that says it is "vanilla" but has mods (found by the scan, or announced) is reported too.

SettingDefaultWhat it does
mod-scan.scan-on-joinfalseScan every player 5 seconds after they join. Off by default: they would all see the anvil flash.
mod-scan.mods(section)Mod name: its translation key. Each key here was checked in that mod's own source code. To add a mod, find a key in its assets/<mod>/lang/en_us.json (a keybind is best). Keys that are keybinds ("key..." or "keybinding...") are also tested as keybinds, which some privacy mods forget to hide. Several codes for one mod: separate them with commas. "keybind:<id>" tests only the keybind.
mod-scan.mods.*Mod name and the text codes the scan asks for (add more in /wardenserver).

anti-esp

Wurst 7.41.1 and newer hide from every translation scan (Wurst moved to its own translation system), so this only finds older Wurst, often joining through ViaVersion. Newer Wurst is caught by the checks instead (Derp, Fly, KillAura, Nuker...). ANTI-ESP - players behind walls aren't sent to other players Every few ticks Warden checks whether each pair of nearby players could see each other. A player fully behind solid blocks isn't sent to the other one until they could be seen again, so ESP cheats have nothing to draw. Staff (warden.view) see everyone. Needs the PacketEvents plugin (it comes with Warden); without it, this stays off.

SettingDefaultWhat it does
anti-esp.enabledtrue
anti-esp.every-ticks4How often (ticks) visibility is checked. Lower reacts faster but costs more.
anti-esp.always-show-blocks3Players closer than this (blocks) are always shown, even behind a wall.
anti-esp.itemsfalseAlso hide dropped items and/or mobs fully behind walls (item ESP, mob ESP, tracers). Off by default: near a big mob farm that's many sight lines every few ticks. Doesn't need PacketEvents.
anti-esp.mobsfalse

anti-storage-esp

Anti storage-ESP: chests, barrels, shulker boxes, ender chests, hoppers, furnaces and spawners further than show-within blocks from a player aren't sent to that player at all (air in their place, or the block below if they're sealed in a wall), and are sent for real as the player comes closer. StorageESP, stash finders and spawner finders then can't find bases from far away. Staff (warden.view) and spectators get everything. Off until you switch it on (menu: x-ray, ESP, protection). Needs PacketEvents.

SettingDefaultWhat it does
anti-storage-esp.enabledfalse
anti-storage-esp.show-within24

hide-health

SettingDefaultWhat it does
hide-healthtrueOther players' health and absorption are sent as full, so health-indicator and nametag cheats can't show who's low. A normal game never shows another player's health, so nobody notices. Staff see the real numbers. Needs PacketEvents.

crash-protection

SettingDefaultWhat it does
crash-protectiontrueDrops packets built to lag or crash the server: giant books, signs, item names and tab-completes, inventory clicks on slots that don't exist, and floods of clicks, recipe requests and tab-completes. Each one is reported as "Crash". Needs PacketEvents.

honeypots

HONEYPOTS - fake treasure only cheaters can see While a player mines underground, Warden shows THEIR game alone a little fake diamond ore (ancient debris in the Nether) or a fake chest, sealed inside solid stone off to the side of where they dig. Nothing in your world changes and nobody else sees it. A fair player can't know it's there; x-ray, chest ESP and freecam show it. Digging straight to one from 8+ blocks away is a "Honeypot" alert. The fakes are swapped back for the real blocks as soon as anything next to them is dug, so nobody ever sees one up close.

SettingDefaultWhat it does
honeypots.enabledtrue
honeypots.per-player3Most honeypots one player has at a time (1-6).
honeypots.cheststrueAlso fake chests (catches chest/storage ESP), not only ore.

network

WARDEN NETWORK - confirmed cheaters, shared between Warden servers When your staff confirm a cheater (/warden confirm <player> <what>), Warden can share that, and show your staff when a player who joins was confirmed on other Warden servers. Only staff confirmations are shared, never automatic alerts. Shared: the player's account id and name, what they were confirmed for, and when. Never your server's name, address or license key.

SettingDefaultWhat it does
network.share-confirmationsfalseShare your staff's confirmations with other Warden servers. Off until you turn it on.
network.showtrueTell staff when a player was confirmed on other Warden servers.

freeze

/freeze: commands a frozen player may still use (to talk to staff). Everything else is blocked, so /spawn, /home or /tpa can't get them away.

SettingDefaultWhat it does
freeze.allowed-commands[msg, tell, w, r, reply, helpop, m]

reports

REPORTS - the review queue Players type /report <player> [what they did]. Warden files it with a recording of the last 30 seconds of what that player did and everything its checks know about them. Staff get a chat line with [Review]; /warden reports lists them (most-reported first) with Play recording, Watch, and a verdict: cheating, not cheating, unsure, or "false alert" (Warden was wrong: the evidence is saved in plugins/Warden/false-alerts for the developer). If another plugin already owns /report, players can use /wreport (or /warden:report).

SettingDefaultWhat it does
reports.enabledtrue
reports.cooldown-seconds60A player can report once per this many seconds (staff aren't limited).
reports.discordtrueAlso post each report to the Discord channel (if one is set up).
reports.tell-reportertrueTell the players who reported when staff have looked at it (not the verdict).

history

HISTORY - what Warden remembers about each player across logouts and restarts Alerts, staff notes, confirmations, clears, freezes, mod scans and alert recordings, in plugins/Warden/history. See it with /warden history <player>; /warden info shows a summary. Anything older than keep-days is deleted automatically (at start-up and once a day), and so is old staff activity. Each player keeps at most 5 alert recordings. Lower it to use less disk.

SettingDefaultWhat it does
history.keep-days90

alts

ALT DETECTION - accounts that joined from the same address Addresses are never stored, only a scramble of them that can't be turned back into an IP, and they stay on this server. /warden alts <player> lists every linked account (also from a player's page), and /warden info shows them. Addresses shared by more than 6 accounts (proxies, schools, VPNs) are ignored. Behind BungeeCord/Velocity, turn on IP forwarding, or every player has the proxy's address.

SettingDefaultWhat it does
alts.enabledtrue
alts.notify-staffrecordWhen an account joins from the address of another one, tell staff: record - if that other account is banned, or has alerts, notes or a confirmation (default) always - for every link off - never (the links still show in /warden alts and /warden info) A banned account on the same address is told as "possible ban evasion", also on Discord.
alts.include-local-addressesfalseAlso link players who join from the server's own PC or network (127.0.0.1, 192.168...). Only for testing with two accounts on one PC: on a real server those are a proxy's or a LAN's addresses.

punish-buttons

PUNISH BUTTONS - in /warden info, buttons that fill in YOUR ban plugin's command in the staff member's chat box (they press Enter, with their own permissions). Warden never runs them itself. {player} = the player's name, {check} = what Warden caught them for. Remove a line to drop a button.

SettingDefaultWhat it does
punish-buttons.Ban"ban {player} Cheating ({check})"
punish-buttons.Kick"kick {player} Cheating"
punish-buttons.Mute"mute {player} 1h"

watch

WATCHING A PLAYER /warden watch puts staff in spectator next to the player. Warden has no vanish of its own: if the server has a vanish plugin (EssentialsX, SuperVanish, PremiumVanish or CMI) it is used, with the staff member's own permission for it, and going back makes them visible again. For another vanish plugin, put its commands here (no slash; {player} = the staff member's name).

SettingDefaultWhat it does
watch.vanish-command""
watch.unvanish-command""

wall-tracking

SettingDefaultWhat it does
wall-tracking.cone-degrees5.0
wall-tracking.max-distance96.0

look-cone-degrees

SettingDefaultWhat it does
look-cone-degrees10.0"Looking at a player" marker (the red dot on tags in the mod).

staff-mod

Settings sent to every staff member's Warden mod while they are on this server. Set these once here and your whole staff team is configured; nobody edits files on their PC.

SettingDefaultWhat it does
staff-mod.anti-cheat.name"Vulcan"Short name shown on player tags and the suspects list.
staff-mod.anti-cheat.alert-keyword"Vulcan"Only chat lines containing this text are checked for alerts.
staff-mod.anti-cheat.alert-regex'(?<player>\w{1,16}) failed (?<check>.+?) \(Type (?<type>[^)]+)\) \[(?<vl>\d+)/(?<max>\d+)\]'Pattern (Java regex) for one alert line in staff chat. Named groups: (?<player>...) and (?<check>...) are required; (?<type>...), (?<vl>...) and (?<max>...) are optional. Default matches: Vulcan ยป Steve failed Speed (Type B) [12/35]
staff-mod.anti-cheat.reset-text"Violations for all online players were reset"A chat line containing this clears all alerts on tags (the anti-cheat's "violations reset" message). Leave empty ("") to never clear.
staff-mod.map(section)The map in the mod's panel.
staff-mod.map.modeautoauto = your world border if you have one; otherwise the map frames wherever players are. fixed = always the square below (for servers with a set play area but no world border).
staff-mod.map.size1000
staff-mod.map.center-x0
staff-mod.map.center-z0

Troubleshooting

What you seeWhat to do
"Warden is not licensed"Run wardenserver status in the console. Set the key with wardenserver setkey. "Already in use on another server": open a ticket to reset it.
Anti-ESP, hide chests or crash protection say "needs PacketEvents"Put the PacketEvents jar from your package in plugins and restart.
Doubled alerts or odd behaviour after an updateYou used PlugMan or /reload. Restart the server fully.
/report opens another plugin's reportPlayers can use /wreport, or point your other plugin's alias elsewhere in commands.yml.
An honest player keeps getting caughtUse their [Replay]. If Warden is wrong, clear them, and send the alert line (or a report's "false alert" files) to the developer. Raise that check's number under Limits, or set its level to Off.
Staff mod says it's lockedThe server has no Warden, its license ran out, or they don't have warden.view. The mod and plugin must be the same version.
Anti-x-ray or item hiding didn't changeBoth edit Paper's own config files; restart the server.
Is Warden slowing the server?/wardenserver status shows Warden's own time per tick. With 50 busy players it's about 2.5 ms of 50.

Data and privacy

  • The license server stores your key, server id, connecting address and online player count (just the number), to check your license, spot key sharing and show Warden's stats.
  • Everything about your players stays on your server: history, recordings, reports, alt links (as scrambles, never addresses).
  • The Warden network shares only staff confirmations, and only if you switch sharing on.
  • Tell your players in your rules that staff may scan their mods, that cheating can mean an automatic kick or ban, and that confirmed cheating may be shared if you share.