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

Every chat message scored. Your rules decide.

jev-guard asks TypeSafe's Jev model how likely each message is to be harassment, a scam, grooming or anything else you define. Your thresholds decide what is hidden, warned or sent to staff. It starts in shadow mode, so nothing is hidden until you have watched it on your own chat.

What players seeWhat your staff see

Tap the video to watch it full screen.

A real recording on a test server running jev-guard in hold mode, with bots as players. The insult and the scam never reach players; staff see what was blocked and why, and the threat goes to them for review.

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, in about 200 ms with TypeSafe directly. Through Cloudflare's AI Gateway it can take longer.

  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. Each message waits for its verdict, at most 1.5 seconds; if Jev is slower, it goes through anyway.

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. A busy server with chat at two messages per second, all day, pays roughly $0.18 an hour; most servers send far fewer.
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.