Installation
YuppyAI is a Paper plugin.
Requirements
- Paper (or a Paper fork) on Minecraft 1.16+.
- ProtocolLib — the plugin depends on it.
- A running YuppyAI service and an API key.
Setup
- Download the plugin jar from the releases page.
- Drop it into plugins/ along with ProtocolLib.
- Start the server once, then open plugins/YuppyAI/config.yml.
- Paste your API key into api.key and set api.url.
- Run /yai reload.
Configuration
Everything lives in plugins/YuppyAI/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: "kick %player% &cUnfair aim"
kick-animation: "EXPLODE"
Leave enabled: false while you watch the model on your own server.
Commands
The command is /yai (aliases /yuppyai, /ai). Run /yai help for the full list.
Watching and acting
| Command | What it does |
|---|---|
/yai prob <player> | Watch a player’s live aim reading. |
/yai player <player> | View a player’s buffer and history. |
/yai journal | Open the live suspicion journal. |
/yai forget <player> | Clear a player’s suspicion. |
/yai vanish | Enter spectator observation. |
Training data
| Command | What it does |
|---|---|
/yai data add cheater|legit <player> | Sign a player up to be recorded. |
/yai data train | Start recording (windows are taken while they fight). |
/yai data stop | Stop and send captures to the service. |
/yai data list | Show the current roster. |
Record both labels, then train the model in /yai dashboard.
Permissions
Grant with LuckPerms or any other permissions plugin.
| Permission | Purpose |
|---|---|
yuppyai.command | Use /yai. |
yuppyai.alerts | Receive detection alerts and watch readings. |
yuppyai.journal | Open the suspicion journal. |
yuppyai.vanish | Use vanish observation. |
yuppyai.data | Record and label training data. |
yuppyai.npc | Spawn sparring dummies. |
yuppyai.bypass | Never analysed. |
yuppyai.automod.bypass | Bypass chat AutoMod. |
Chat AutoMod
AutoMod checks chat messages before they reach global chat and blocks risky ones. It runs behind the same service: hard rules for links and cheat ads, plus a trainable text model for everything else.
- Turn it on or off with automod.enabled in config.yml.
- Moderators with yuppyai.automod.alerts see block notices.
- Train and tune it from the developer dashboard’s AutoMod tab.
Categories
| Category | Default action |
|---|---|
| advertising | block |
| distribution | block |
| scam | block |
| toxicity | block / review |
| sexual | block / review |
Pricing and quotas
Every plan is sized by a daily request quota, counted over a rolling 24 hours.
| Plan | Requests / day | AutoMod | Pin model |
|---|---|---|---|
| Free | 400 | — | — |
| Starter | 5,000 | yes | — |
| Pro | 60,000 | yes | yes |
| Unlimited | unlimited | yes | yes |
You bind your server’s IP to your key from the dashboard’s Settings tab. The key only works from that address, and a port is ignored — the service always checks the bare server IP. You can change it once per 2 hours.
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, toggle AutoMod, pin a model version.
- Settings — set the one server IP this key is allowed from.
The key string never changes when you upgrade a plan, so nothing in config.yml needs editing.