OculusAI
RUEN
RegisterSign in

download Installation

OculusAI is a Paper plugin.

Requirements

  • Paper (or a Paper fork) on Minecraft 1.16+.
  • ProtocolLib — the plugin depends on it.
  • A running OculusAI service and an API key.

Setup

  1. Download the plugin jar from the releases page.
  2. Drop it into plugins/ along with ProtocolLib.
  3. Start the server once, then open plugins/OculusAI/config.yml.
  4. Set api.url in the config.
  5. Run /oai connect on the server and open the link it prints while signed in here. The key and your server’s IP are written for you.
  6. Doing it by hand instead: paste the key into api.key and set the server IP on the panel’s Settings tab. Without an address the key is refused and nothing is analysed.
  7. Run /oai reload, then /oai guide in game.

Service health, past outages included, is public at Stats.

tune Configuration

Everything lives in plugins/OculusAI/config.yml. The important parts:

api

api:
  url: ""        # service address, e.g. https://yoursite.example
  key: ""        # your server's API key
  timeout-ms: 1500

analysis

How combat windows are cut and scored.

analysis:
  window-ticks: 20
  min-attacks: 1
  combat-ticks: 40
  min-rotation: 5.0

buffer

Suspicion accumulates into a buffer; thresholds decide alert vs punish.

buffer:
  suspicion: 0.5
  gain: 1.5
  decay: 1.4
  max: 10.0
  alert-at: 1.7
  punish-at: 5.0

punishment

punishment:
  enabled: true
  command: ""   # empty = an ordinary kick with the reason below

Leave enabled: false while you watch the model on your own server.

terminal Commands

The command is /oai (aliases /oculusai, /ai). Run /oai help for the full list.

Start here

CommandWhat it does
/oai connectBind this server to your account with one link.
/oai guideHow to use the anticheat, in one screen.
/oai monitorLive list of who looks suspicious. A red dot is past the punish mark.
/oai npcSpawn a sparring dummy and try it on yourself.
/oai diag [player]Why a player’s windows are, or are not, being analysed.

Watching and acting

CommandWhat it does
/oai prob <player>Watch a player’s live aim reading.
/oai history <player>Past readings, kept on disk across restarts.
/oai player <player>View a player’s buffer and history.
/oai journalOpen the live suspicion journal.
/oai forget <player>Clear a player’s suspicion.
/oai vanishEnter spectator observation.

Training data

CommandWhat it does
/oai data add cheater|legit <player>Sign a player up to be recorded.
/oai data trainStart recording (windows are taken while they fight).
/oai data stopStop and send captures to the service.
/oai data listShow the current roster.

Record both labels, then train the model in /oai dashboard.

key Permissions

Grant with LuckPerms or any other permissions plugin.

PermissionPurpose
oculusai.commandUse /oai.
oculusai.alertsReceive detection alerts and watch readings.
oculusai.journalOpen the suspicion journal.
oculusai.vanishUse vanish observation.
oculusai.dataRecord and label training data.
oculusai.npcSpawn sparring dummies.
oculusai.connectRun /oai connect (operator by default).
oculusai.diagRun /oai diag (operator by default).
oculusai.bypassNever analysed. Watch out for wildcards: a staff group with * gets this too, and those players are then skipped entirely.

sell Pricing and quotas

Every plan is sized by a daily request quota, counted over a rolling 24 hours. Pro can be tried free for three days, once per account - the button is on the Pro card.

PlanRequests / dayPin model
Free400—
Starter5,000—
Pro60,000yes
Unlimitedunlimitedyes

You bind your server’s IP to your key from the dashboard’s Settings tab. A key with no address set is refused everywhere, so this is a required step rather than a hardening option. The port is ignored — the service always checks the bare server IP — and the address can be changed once per 2 hours.

badge Your key and dashboard

An account holds one API key. The key is what the plugin sends; it carries your plan, your allowed server address, and the switches that control what the plugin may do.

  • Usage — your daily quota and when it resets.
  • Keys — pause predict, pin a model version.
  • Settings — set the one server IP this key is allowed from.
  • AI exclusions — worlds or WorldGuard regions the model should ignore.
  • Settings — a Discord webhook: every kick, alert and report is mirrored into one channel.

What the service answers when something is wrong

CodeMeaning
001The request came from an address this key does not allow.
002No server IP is set for this key yet.
008The plan’s daily quota is spent; the plugin backs off and retries.
009The account is banned.
010The address is blocked by the operator.

The key string never changes when you upgrade a plan, so nothing in config.yml needs editing.