Skip to content
BlazeZDocs

Kratos 2

A rewritten anti-cheat with its own packet layer, 190+ checks, freezes, replays and a Bedrock engine.

Version
2.1.1
Runs on
Paper, Purpur, Folia
Minecraft
1.21+
Java
17+
Works with
ViaVersion, ViaBackwards, ViaRewind, Geyser, Floodgate, PlaceholderAPI, LuckPerms, TAB
On this page

Kratos 2 is the ground-up rewrite of Kratos. It reads packets through its own network layer, so it needs no PacketEvents or ProtocolLib, and one jar runs on 1.21.x and 26.x servers. It is sold on the Kratos BuiltByBit page.

It checks movement, combat, aim, elytra, vehicles, timer, placing, breaking, inventory, automation, protocol, exploits and chat. Staff get clickable alerts, a flag log, freezes, replays of what a player did, and a client scan that finds cheat mods through sign probes. Bedrock players who join through Geyser are judged by a separate engine.

Permissions#

PermissionLets a playerDefault
kratos.*Use every staff permission below.OP
kratos.alertsReceive flag alerts, toggle them with /kratos alerts and watch flags with /kratos replay.OP
kratos.alerts.enable-on-joinHave alerts switched on automatically on join.OP
kratos.violationsRun /kratos violations and open /kratos profile.OP
kratos.resetRun /kratos reset.OP
kratos.reloadRun /kratos reload, /kratos webhook and /kratos breaker.OP
kratos.checkRun /check and /kratos signcheck.OP
kratos.freezeRun /kratos freeze, /kratos unfreeze and /kratos animation.OP
kratos.susOpen the flag log with /sus and see who is frozen.OP
kratos.licenseRun /kratos license.OP
kratos.updateRun /kratos update.OP
kratos.settingsOpen /kratos settings.OP
kratos.replaysWatch saved replays with /kratos replays.OP
kratos.replays.deleteDelete saved replays.OP
kratos.setupRun /kratos setup.OP
kratos.disguiseRun /disguise and /undisguise.OP
kratos.flight-noticeSee and toggle the bar that says movement checks pause while flying.OP
kratos.recordRun /kratos record.OP
kratos.record.selfOpt your own session into packet recording.Nobody
kratos.exemptSkip every check.Nobody

Commands#

/kratos has the alias /kr. Running it with no arguments lists only the subcommands you may use.

CommandWhat it doesPermission
/kratos alertsTurns your staff alerts on or off.kratos.alerts
/kratos flightbarShows or hides the flight notice bar.kratos.flight-notice
/kratos replay <player> [flag]Plays a player's flag back in the world.kratos.alerts
/kratos violations <player>Shows a player's violation levels.kratos.violations
/kratos profile <player>Opens a player's profile menu.kratos.violations
/kratos reset <player|all>Resets the violations of one player or everyone.kratos.reset
/kratos freeze <player> [seconds]Freezes a player.kratos.freeze
/kratos unfreeze <player>Releases a frozen player.kratos.freeze
/kratos animation <player>Previews the removal animation.kratos.freeze
/kratos signcheck <player>Checks a player's client for cheat mods.kratos.check
/kratos settingsOpens the settings menu.kratos.settings
/kratos replaysOpens the saved replays.kratos.replays
/kratos setup [gamemode] [strictness] [reaction]Applies a gamemode preset.kratos.setup
/kratos licenseShows the license or sets a new key.kratos.license
/kratos updateApplies a signed update without a restart.kratos.update
/kratos webhook test [event]Sends a test message to Discord.kratos.reload
/kratos breaker [reset <check|all>]Shows or resets checks the circuit breaker made alert-only.kratos.reload
/kratos reloadReloads the configuration.kratos.reload
/kratos languagePicks the language Kratos speaks to you.None
/kratos versionShows the running version.None
/kratos record <start|stop|mark|status|replay|corpus>Records and inspects a player's packet session.kratos.record
/check <player> <test>Runs a manual cheat test. Alias /kcheck.kratos.check
/susOpens the flag log.kratos.sus
/disguise <player> and /undisguiseShows you as another player, or drops the disguise.kratos.disguise

Manual tests for /check are killaura, autototem, autoarmor, velocity, reach, triggerbot, autocrystal, cps, nofall, cheststealer, invmove and timer. Some do not run on Bedrock players, and Kratos tells you when that is the case.

Configuration#

FileControls
config.ymlAlerts, freeze, evidence, replay, Discord, sign check, panel link, updates, language, branding and messages.
checks.ymlEvery check: on or off, alert threshold, decay, punish commands and per-check options.
menus.ymlText and layout of every menu.
mods.ymlThe cheat mod catalog used by the client scan.
lang/*.ymlMessage files. Kratos ships 26 languages, and language.per-player lets each player pick theirs.

Checks#

checks.yml starts with a defaults block that every check inherits.

OptionDefaultMeaning
enabledtrueRuns the check.
alert-after1Violations before staff are alerted.
decay-per-minute2.0Violations removed per minute.
punish-after0Violations before the punish commands run. 0 disables punishing.
punish-commandsemptyConsole commands run on punishment.
blocktrueCancels or sets back the action while the check flags.
modeenforcealert reports without blocking.

Change a check by adding the same keys under its name in the checks: block. /kratos settings edits the same values in game.

Freeze#

OptionDefaultMeaning
freeze.enabledtrueFreezes players who pile up violations.
freeze.violations8Violations of one check that trigger a freeze.
freeze.total-violations12Total violations that trigger a freeze.
freeze.seconds30How long the freeze lasts.
freeze.ignored-checksemptyChecks that never freeze.
freeze.block-commandstrueBlocks commands while frozen. freeze.allowed-commands lists the exceptions (msg, tell, r).
freeze.logout-commandsemptyConsole commands run when a frozen player logs out.

Alerts and join notice#

OptionDefaultMeaning
alerts.consoletrueAlso prints alerts to the console.
alerts.cooldown-seconds5Minimum time between alerts for one player and check.
join-notify.enabledtrueTells staff about a player's client when they join.
threat-bar.enabledtrueShows a coloured threat bar above players with violations.
flight-notice.enabledtrueShows the bar that says movement checks pause while flying.
boss-grace.enabledtruePauses movement, elytra, timer, vehicle and knockback checks briefly around boss fights.

Evidence and replay#

OptionDefaultMeaning
evidence.enabledtrueKeeps a recording of the moments before a flag.
evidence.seconds20Length of that recording.
replay.seconds-before25Seconds of replay kept before a flag.
replay.seconds-after5Seconds kept after it.
replay.radius24Blocks around the player that are recorded.
replay.max-total300Replays kept on the server.

Sign check#

sign-check finds cheat mods by placing a client-side sign that shows translated key names. A player whose client answers with a cheat mod's text is flagged. The list of probes sits under sign-check.probes, and mods marked cheat: false are reported as information only.

Discord#

Set discord.enabled to true and put a webhook in discord.webhook-url. The detection, freeze, punishment, manual-check, sign-check and license events can each use their own webhook, mention and message text.

Setup presets#

/kratos setup applies one of ten gamemode presets: survival, lifesteal, crystal, pvp, minigames, factions, skyblock, prison, hub or creative. Strictness is relaxed, balanced or strict. Reaction is freeze, alert or kick.

Install#

  1. Stop the server and put the jar in plugins/.
  2. Start the server once, then run /kratos license and paste your license key.
  3. Run /kratos setup and pick the preset for your gamemode.
  4. Give staff kratos.alerts so they see flags.

Installing ViaVersion, ViaBackwards and ViaRewind lets players on older clients join and still be judged correctly. Geyser and Floodgate enable the Bedrock engine.

Checks#

Checks are grouped into categories. Each category decides how the action is blocked.

CategoryBlocked by
CombatCancelling the hit
AimAlert only
MovementSetting the player back
ElytraStopping the glide
VehicleAlert only
TimerSetting the player back
Placement and BreakingDenying the block
Inventory, Protocol, Exploit and ChatCancelling the action
Automation, AI and BedrockAlert only

checks.yml lists every check by name, such as fly, speed, reach, kill-aura, scaffold, no-slow, timer, anti-knockback, auto-crystal, anchor-macro, shield-breaker and triggerbot. Open /kratos settings to browse them by category.

Bedrock players#

Players who join through Geyser are judged by a separate engine, never by the Java checks. The bedrock-* checks cover reach, speed, fly, timer, ground spoof, no fall, nuker, rotation and prediction. bedrock.engine-violations and bedrock.engine-window-seconds set how many violations inside which window raise an alert.

Panel and updates#

The web panel at kratos.blazez.lol receives flags and replays when cloud.enabled is true. Replays upload when cloud.upload-replays is true.

Kratos checks for signed updates every updates.check-minutes minutes. With updates.auto-apply on it installs them without a restart, and /kratos update applies one by hand.

Placeholders#

With PlaceholderAPI installed, these work as %kratos_<name>%.

NameValue
versionRunning Kratos version.
licenseLicense state.
checksNumber of loaded checks.
suspectsNumber of suspected players.
frozen_countPlayers currently frozen.
flags, violationsThe player's flags and violations.
top_check, top_violationsThe check with the most violations and its count.
threatThe player's threat level.
frozen, frozen_secondsWhether the player is frozen and for how long.
ping, cpsThe player's ping and clicks per second.
client, client_version, platform, bedrockThe player's client, version, platform and Bedrock status.
alerts, exempt, languageThe player's alert, exempt and language state.
protectingNumber of players Kratos protects.

Troubleshooting#

Nothing is checked after install. Run /kratos license and confirm the key is set.

A check flags legitimate players. Set that check's mode to alert in checks.yml, run /kratos reload and report it with the flag replay.

Staff see no alerts. They need kratos.alerts and alerts switched on with /kratos alerts.

A check is alert-only that you did not set. The circuit breaker made it so. Run /kratos breaker to see which, and /kratos breaker reset all to restore them.