OperaHouse Ventures · Remote-firstNarrativAI closed beta: live · Argus v1.0: in development
Argus · Evidence, not verdictsv1.0 in development · pre-orders ship Q2 2027

Argus is server-side anti-cheat for Minecraft Paper servers. Every finding comes with the evidence behind it, so your moderators can see exactly what a player did and make the call, and nothing is asked of your players.

01 — How it’s built

How Argus is built

01

Server-side only.

A Paper plugin. No client mod, no kernel driver, no hardware fingerprinting, nothing for players to install.

02

Evidence, not verdicts.

Every finding comes with the evidence behind it: what the player did, when, and which check saw it. Your staff can check the work.

03

Honest about its limits.

Checks that can’t judge a player fairly are switched off for that player, with the reason logged, rather than guessed at.

02 — Built today

26 checks are built and pass in CI on Paper 1.21.4, 1.21.11, 26.1.2 and 26.2. 21 of them need Argus’s packet capture, which is opt-in and experimental for now. The pre-release build records evidence; it doesn’t act on players yet.

  • Illustration · evidence recorded
    • 27 clicks per second
    • held for 5.0 s
    • limit: 25 for 5 s
    click-rate

    Sustained click rates above human limits (more than 25 clicks per second for 5 seconds or longer).

    Everyone
  • Illustration · evidence recorded
    • 34° turn onto a target
    • in a single tick
    • limit: 30°, repeated
    aim-profile

    Snap-aim: repeated single-tick turns of 30° or more onto a target.

    Java mouse players, with packet capture on
  • Illustration · evidence recorded
    • 3 hits on one target
    • target outside the view cone
    • each hit recorded
    attack-outside-view

    Repeatedly hitting targets that aren’t in the player’s view.

    Everyone

Also in the build

  • reach

    Hits landing beyond 3.3 blocks, after winding the target back to where the attacker’s connection could have shown it. Never a single hit.

    Java 1.17+, with packet capture on
  • hitbox

    Repeatedly hitting a target the player wasn’t looking at. Catches kill auras and multi-auras.

    Java 1.17+, with packet capture on
  • criticals

    Critical hits after a hop no real client can make.

    Java players, with packet capture on
  • no-swing

    Attacks sent without the arm swing every Java client sends with them.

    Java 1.9+, with packet capture on
  • velocity

    Taking less than half the knockback the server applied, across several separate hits.

    Java 1.17+, with packet capture on
  • speed

    Moving further per tick than a player can run. Ice, vehicles, elytra, riptide, knockback, and speed effects are allowed for.

    Everyone
  • fly

    Holding the same height in mid-air for a second or more, with nothing to explain it.

    Everyone
  • ack-withheld

    Faking lag: a client that stops answering Argus’s timing checks for 10 seconds while its movement keeps arriving.

    Java 1.17+, with packet capture on
  • target-switch

    Landing hits on two opponents at least 30° apart within a tenth of a second of the player’s own time, at least four times. An aura spraying attacks around a crowd.

    Java 1.17+, with packet capture on
  • attack-while-using

    Repeatedly attacking while holding up a shield or spyglass, which a modern client does not send.

    Java 1.9+, needs ViaVersion on each backend server
  • timer

    Sending more movement than real time allows: a sped-up game clock. Lag spikes and the catch-up after them never count.

    Java 1.13+, with packet capture on
  • fast-bow

    The same limit counting only the movement sent while drawing a bow, which fast-bow cheats flood to draw instantly.

    Java 1.13+, with packet capture on
  • piercing

    Hits landing through a solid wall, which the game’s own targeting does not allow. Only full, always-solid blocks count — doors, slabs, stairs and glass are treated as clear — and a wall that went up too recently for the player to have received it never counts against them. If two different players land hits through the same patch of world, Argus stops judging that patch altogether: a plugin placing or hiding blocks without telling clients explains that far better than both of them cheating.

    Java 1.17+, with packet capture on
  • non-finite-position

    A position that isn’t a number at all. Nothing to do with how someone was playing — it’s a value the real client cannot express, so the packet didn’t come from one.

    Everyone, with packet capture on
  • non-finite-rotation

    The same, for where the player was looking. Kept separate so evidence about one never rests on a rule about the other.

    Everyone, with packet capture on
  • pitch-out-of-range

    A client reporting that it’s looking further than straight up or straight down. The real client clamps this before sending, and a server accepts such a packet without complaint — so without this check, nothing questions it.

    Everyone, with packet capture on
  • position-out-of-range

    A position outside the coordinates the game can represent — not someone who walked a long way, but a number no amount of walking produces. Measured against the game’s own limit, never your world border, because borders move and a plugin can legitimately put someone past one.

    Everyone, with packet capture on
  • interact-self

    An attack aimed at the player’s own character. Nobody can be in front of themselves — the game picks a target by looking out from your own eyes and leaves you out of the search — so no way of aiming produces this. It turns up in exploit payloads. Only judged once your server has told Argus which character the player is, never against a guess.

    Everyone, with packet capture on
  • interact-impossible-entity

    An attack naming a creature or player that cannot exist. Your server hands out these numbers from a counter that starts at one and only climbs, so a negative one belongs to nothing that has ever been in the world, and a client can only interact with something the server has told it about.

    Everyone, with packet capture on
  • duplicate-teleport-ack

    The same teleport confirmed more than once. When your server moves a player it asks them to confirm it, and the real client confirms exactly once — so a repeat did not come from one. Confirmation spam turns up in timing exploits. **Judged only on teleports Argus watched your server issue.** A confirmation naming anything else is ignored rather than questioned, because Argus attaches to players already online and cannot see a teleport sent in the instant before it finishes attaching on a join — and “I did not see that one issued” is not the same claim as “it was never issued”. **Several repeats are required, not one**, because a proxy re-sending a packet cannot be told apart from a client doing it and you may well run one.

    Java clients **1.9 and newer whose version Argus can read**, with packet capture on. Older clients do not send these confirmations at all — ViaRewind sends them on their behalf — so the packet would be the translator’s rather than the player’s, and a client whose version cannot be read is declined for the same reason
  • window-not-open

    A click inside a container window your server never opened for that player. The window number comes from your server’s own message telling the client a container is open, and the real client has no way to invent one — so a click naming a different window did not come from one. Container and duplication exploits use it to reach inventories they were never shown. **Judged only once Argus has seen a window open or close for that player.** Argus attaches to anyone already online when it starts, and it also cannot see a menu opened in the instant before it finishes attaching on a join — a kit selector, say — so judgement waits on evidence rather than on timing. The cost is that a player for whom no window is ever opened is not judged by this check. A window your server has just closed, or one displaced by a second container opening, is excused for a second, because a click can already be in flight and was legitimate when it was sent. **If this check’s own reading of your outbound traffic fails repeatedly it switches itself off and says so in the console** — it then reports nobody, rather than reporting wrongly.

    Everyone, **with packet capture on**
  • creative-action-in-survival

    A client using the creative-mode inventory while your server has the player in survival. In creative the game lets a client write any item straight into any slot, and your server honours it, because in creative that is the point — so the same instruction from a survival player is asking for something out of nothing, and it is where several duplication and give-yourself-anything exploits begin. Your server refuses the write but does not tell you a client tried. Judged with two seconds of slack after a game-mode change, because the mode is read once a tick while packets keep arriving: an instruction already in flight when staff take somebody out of creative was legitimate when it was sent, and nobody is reported for staff timing. Spectators count as creative here, which under-reaches rather than over-reaches. One limitation worth knowing: a plugin that tells a client it is in creative without changing the mode on the server will produce honest findings from this check, so switch it off if you run one.

    Everyone, with packet capture on
  • held-slot-out-of-range

    A claim to have selected a hotbar slot that does not exist. The hotbar is nine slots and a client can only pick one of them — the number comes from a keypress or the scroll wheel, both clamped before the packet is sent. Your server already refuses anything else, but only notes it where nobody looks, so without this you would never learn a client on your server had tried.

    Everyone, with packet capture on

Privacy by design

Players are pseudonymised with a per-server secret that never leaves your server. Saved cases hold no usernames, IP addresses, hardware IDs, or chat, only the movement and clicks behind each decision, and they expire 30 days after their last activity.

Light on the main thread

A median of 0.10–0.17 ms per tick for 100 simulated players, measured offline. /argus status shows the live cost on your own server.

Tested honestly

Every check is gated in CI against synthetic human play and reports zero findings on it. Argus hasn’t been tested with real players yet; that happens in the partner pilot before v1.0.

03 — Compatibility

Argus is a Paper plugin. It covers the versions most servers run today, and says plainly what it doesn’t cover.

Servers
Paper 1.21.x and 26.x, one jar
Java clients
1.8.8 to 1.21.x, through ViaVersion, ViaBackwards and ViaRewind
Bedrock
Through Geyser and Floodgate: Argus identifies Bedrock players and protects them from checks built for mouse input; device-independent checks apply to everyone.

Not supported

  • BungeeCord and Velocity networks, until Sentinel v1.0 (Scout stays single-server)
  • Folia
  • Spigot
  • Minecraft 1.20.x and older
  • Bedrock Dedicated Server

How many checks your setup actually gets

Not every check can run for every player, and most anti-cheats don’t tell you which ones you’re missing. These figures come straight out of the Argus build — the plugin works them out itself, and the same answer is available in game with /argus coverage.

Number of Argus checks that run on each server and client combination
Your setupChecks that run
Packet capture, Java client 1.17 or newer26 of 26
Packet capture, Java client 1.8 to 1.16 through ViaVersion15 of 26
Packet capture, client version not reported to Argus22 of 26
Packet capture, Bedrock player on a touchscreen through Geyser4 of 26
Bukkit events instead of packet capture, Java client 1.17 or newer5 of 26

Three things move these numbers. Reading packets directly sees more than the Bukkit event API, which throttles what it reports. Older clients don’t answer the timing request some checks depend on. And a Bedrock player’s input arrives re-packaged by Geyser, so Argus declines the checks that would be judging Geyser rather than the player — that is the point of identifying them, not a gap.

These are coverage figures, not accuracy: they say which checks run for a player, never how often a check is right. Taken from the pre-release build on October 13, 2026, with 26 checks in it. More are in development, so the numbers will change.

04 — Roadmap

Planned, not shipped. Each item moves to “Built today” when it passes CI and the Studio Ledger records it.

In development for v1.0

  • Automatic enforcement that has to earn it. A kick, then a 7-day ban, then a permanent ban, each citing its evidence. A check may only act on its own after it has wrongly actioned no more than 1 in 10,000 legitimate players and passed 300 staff-reviewed cases with none overturned. A circuit breaker pauses all automatic action if too many players are flagged at once.
  • Case records. Every case saved before any action is taken, so there’s always a record to review or appeal.
  • More movement checks. No-fall and timer, joining the speed and fly checks already in the pre-release build.
  • All-in-one dashboard. Cases, checks, enforcement, and costs across your servers in one place. We host it, so case data is stored with us. It’s never sold or shared beyond the providers that host it, and it’s used to train our models only if you opt in.
  • Replay viewer. Watch the recorded moments behind a case before you confirm or overturn it.
  • Shadow Audit. Run Argus in observe-only mode and see what it would have caught, before you turn anything on.
  • Network support, in Sentinel v1.0. Sentinel ships alongside Scout in v1.0 with a proxy plugin for BungeeCord and Velocity, so up to 5 servers on one network work together. Argus still runs on every server behind the proxy. Scout is built for a single server and doesn’t include network support.
  • Staff commands and appeals. Review, confirm, or overturn a case in game.
  • Packet capture by default. Argus’s own packet capture, now opt-in and experimental, becomes the default once it’s proven on live servers.

Planned for v2.0

  • Discord alerts. New cases posted to your staff channel.
  • Third-party webhooks. Send cases to your own tools and bots.
  • MCP server. Connect AI assistants to Argus through the Model Context Protocol.
05 — Pre-order

Pre-order a v1.0 licence today and it’s delivered when v1.0 ships, by June 30, 2027. You can get a full refund any time before launch.

Pre-order Scout · $25

  • Charged today, one time.
  • Delivered by June 30, 2027.
  • Full refund any time before launch.
  • Automatic refund if v1.0 hasn’t shipped by June 30, 2027.

You’ll also join the Argus waitlist. Payment is handled by Stripe. By pre-ordering you agree to the pre-order terms.

06 — Questions

Argus privacy policy

Does Argus catch kill aura, reach, fly, and autoclickers?

Yes. The pre-release build runs 26 checks, including hitbox and attack-outside-view for kill aura, reach, fly, and click-rate for autoclickers; some need Java 1.17+ and Argus’s opt-in packet capture. Findings are recorded as evidence for your staff; nothing acts on players yet, and Argus hasn’t been tested with real players.

Will Argus ban players who are just lagging?

It’s built not to. The reach check winds the target back to where the player’s connection could have shown it, a single hit never counts, and movement during a server lag spike isn’t judged. In v1.0, a check may only act on its own after passing 300 staff-reviewed cases with none overturned and wrongly actioning no more than 1 in 10,000 legitimate players.

Does Argus work with Geyser and Bedrock players?

Yes. Bedrock players who join through Geyser and Floodgate are judged by click-rate, attack-outside-view, speed, and fly. Checks that can’t judge them fairly are switched off for them, and /argus status shows why.

How is Argus different from Grim or Vulcan?

Both are established anti-cheats with far more real-world use; Argus hasn’t run on live servers yet. By design, Argus checks Bedrock players, which GeyserMC’s compatibility list says neither of them monitors, and every finding comes with an evidence record your staff can review.

Will it slow my server down?

It’s designed to stay under 0.2 ms per tick: a median of 0.10–0.17 ms for 100 simulated players, measured offline. /argus status shows the live cost on your own server.

What player data reaches OperaHouse?

Today, nothing: the pre-release build sends us no data. In v1.0, the dashboard is hosted by us, so the pseudonymised evidence and replay clips behind each case are stored with us, with no usernames, IP addresses, hardware IDs, or chat. We never sell it or share it beyond the providers that host the dashboard, and we train our models on it only if you opt in; that’s off by default.

What do I get, and which tier fits my server?

A one-time licence for Argus v1.0, with the dashboard, replay viewer, and Shadow Audit. Scout ($25) is for one standalone server, best for around 50 players online. Sentinel ($95) is for one BungeeCord or Velocity network of up to 5 servers, best for 100–300+ players, and adds the proxy plugin, priority support, and early access to new checks.

When does it ship, and can I get a refund?

We’re aiming for Q2 2027, and every pre-order is delivered by June 30, 2027. Until then you can get a full refund any time by emailing [email protected], and if v1.0 hasn’t shipped by that date, every pre-order is refunded automatically.

07 — Waitlist

Join the Argus waitlist and we’ll write when there’s real progress: the partner pilot, new checks, and the v1.0 release. No drip campaigns.

Also in design: CullMC, performance-debt auditing built into the Minecraft server. It’s planned, with nothing to install yet. See every product →

Join the Argus waitlist

We’ll email you a confirmation and only write again when there’s real news. Unsubscribe anytime.

↑