v0.1.0Open source plugin for Minecraft and Hytale. Get the jar.

Keep your server's chat safe.

jev-guard checks every chat message with TypeSafe's Jev model and flags harassment, scams and grooming in about 200 ms. You decide what gets hidden, warned or sent to staff.

what your staff see in chat

chat<Alex> gg everyone, that was a close match

blockedxXSniperXx: you're so stupid, nobody on this server likes you (harassment, 100% sure)

chat<Mia2011> anyone want to trade 16 iron for a diamond?

blockedSteve: hey how old are you? add me on snap and don't tell your parents (grooming, 100% sure)

reviewDiamondDan: keep talking and I'll find where you live (harassment, 62%)

Features

Catches what word filters miss

Jev reads what a message means, not a list of banned words. “How old are you? Add me on snap” has no bad word in it, and still gets flagged as grooming.

You set the rules

Every category has its own threshold and actions: hide the message, warn the player, alert staff, kick, or run a command from your ban plugin.

Staff see everything

Blocked and borderline messages show up for staff with who sent them, what they said, and how sure Jev was.

Keeps working when something is down

If the API is slow or unreachable, chat keeps flowing, or waits, whichever you choose. The server never freezes.

How it works

Jev is a model that makes decisions instead of writing text. For each message it says how likely it is to be harassment, a scam, grooming and so on. jev-guard turns those numbers into actions.

  1. 1

    A player sends a message.

    jev-guard picks it up next to the game's own chat handling, so the server keeps running while it checks.

  2. 2

    Jev scores it.

    The message goes to Jev together with your categories. Jev answers with how likely each one is, usually in under 200 ms.

  3. 3

    Your rules decide.

    Above a category's threshold, its actions run. A bit below it, the message goes to staff for review. Otherwise nothing happens.

Pick how strict it is

One line in the config decides what happens to a message Jev flags. You can switch at any time.

shadow

Only logs what Jev would flag.

Nothing is blocked. Start here for a few days to see how it judges your chat.

deliver

Messages show up right away.

Warnings and staff alerts follow a moment later. A bad message is briefly visible.

hold

Messages wait for Jev's answer.

Flagged messages never reach chat. Players notice a delay of about 200 ms.

Installation

  1. 1

    Download the jar and put it in plugins/ on Paper or Folia, or mods/ on Hytale.

  2. 2

    Start the server once. jev-guard creates its settings file, config.yml.

  3. 3

    Add a TypeSafe API key, or your Cloudflare account ID and token.

  4. 4

    Run /jevguard reload, then /jevguard test you are trash to see a verdict.

plugins/jev-guard/config.yml

# config.yml
mode: shadow            # shadow, deliver or hold

api:
  provider: typesafe    # or cloudflare, through AI Gateway
  typesafe:
    key: ""             # or set TYPESAFE_API_KEY

categories:
  harassment:
    description: "Insults, threats, or bullying aimed at a player."
    threshold: 0.8
    actions: [cancel, warn, notify-staff]
  scam:
    threshold: 0.8
    actions: [cancel, "command: mute {player} 1h Scam"]

Where Jev runs

You need an account with one of these:

TypeSafe

An API key from TypeSafe, the company behind Jev.

The direct route. Pay TypeSafe for what you use.

Cloudflare

A Cloudflare account with AI Gateway credits.

Every check shows up in your gateway's logs and analytics, billed to Cloudflare.

Supported games

FAQ

Is it free?
The plugin is free and open source. Jev itself is a paid API that you use with your own account. In our tests one check cost about $0.000024, roughly $0.18 an hour for chat at two messages per second.
What leaves my server?
Only the text of each message. No player names or UUIDs. Tell your players that chat is checked by an AI service; in many countries you have to.
Will it slow the server down?
No. Checks never run on the main game thread. In hold mode a message waits for its verdict, at most 1.5 seconds by default.
Can players trick it?
Sometimes. A message written to argue for its own verdict can move the score, and harassment spread over several messages is not seen as one. Keep staff in the loop with the review band.
Does it replace my moderators?
No. It takes the obvious cases off their plate and sends the unclear ones to them.

Contributing

jev-guard is developed in the open. Bug reports, ideas and pull requests are welcome on GitHub.