Skip to content

Configuration

Four files, in plugins/RealAC/. They are all yours and nothing overwrites them.

FileWhat it is for
loader.ymlYour licence key and server name. Two lines you set once.
config.ymlSensitivity, compatibility switches, and whether staff are exempt.
RealScore.ymlThe important one. What runs, what it does when it fires, and every message your players and staff see.
discord.ymlYour webhook.

Detection tuning itself is not here. Those settings live on our side, which is what keeps you from having to become an expert in them, and what keeps them off a disk anyone can copy. If your server needs something tuned specifically, ask us.

loader.yml

Your licence key and the server name your licence is registered to, exactly as we issued them. The third line picks the update rung: stable is the recommended one and latest is the newest build. Leave it alone unless we ask you to change it.

# Your license key.
license-key: "YOUR_LICENSE_KEY_HERE"

# Server name your license is registered to.
server-name: "YOUR_SERVER_NAME"

# Update channel: "stable" (recommended) or "latest" (newest build).
channel: "latest"

config.yml

  • Console alerts. alerts.print-to-console also prints every alert to the console.
  • Sensitivity. strict, normal or relaxed, set separately for movement (simulation) and combat reach (reach). The shipped file’s own comment is the whole guidance: there is no reason to set it to strict unless you like false positives.
  • Compatibility switches. Two of them, both off by default. Leave them alone unless needed: one helps with some other anticheats and packet limiters, the other is for a plugin that fakes blocks using packets. There is also one elytra switch, allow-animation-miss, for servers whose players run a rocket mod that replaces the client’s normal firing behaviour. Turn it on only if that describes your server.
  • Staff exemption. Players with realac.exempt skip every check. Set exempt-permission: false to check everyone, staff included.

RealScore.yml

Mode

enforce or monitor. RealAC ships in monitor, which alerts and never bans, and that is the right setting while you are getting set up. Switch to enforce when you are ready for the categories below to do what they say.

mode: monitor            # enforce | monitor

Categories

Every cheat category has one of three values: off, so the category does not run; alert, so it runs and alerts staff and never bans; or ban, so it runs, alerts, and can act. The shipped file sets a sensible default for each one.

Movement categories are alert-only by design. Setting one of them to ban does nothing, and it is worth knowing that before you set it and assume it worked.

Ban commands

The commands RealAC runs when a category set to ban fires, in order. Three placeholders: %player%, %uuid% and %reason%. This is the integration point with whatever ban plugin you run: put its command here in the form it expects. An empty list turns automatic action off entirely.

ban-commands:
    - "ban %player% %reason%"

Messages

The brand prefix every message starts with, the ban and kick reasons, and the alert format your staff see. Placeholders are %player%, %type% for the cheat category, and %prefix%. Both & colour codes and MiniMessage tags work.

One thing the shipped file already warns about: the ban and kick reasons are passed to your ban command as %reason%, and some ban plugins print colour codes literally instead of rendering them. If yours does, strip the codes from those two strings.

discord.yml

Set enabled: true, put your webhook URL in webhook, and run /realac testwebhook to check it arrives. The lines under violation-content are what the embed carries, and you can add, remove or reorder them.

%check% renders the cheat category, never an internal check name. That is deliberate: an operator who reports it as a bug is looking at it working.

# Discord alert delivery.
enabled: false
webhook: ""
embed-title: "**RealAC Alert**"
embed-color: "#209dfd"
include-timestamp: true
violation-content:
    - "**Player**: `%player%`"
    - "**Check**: %check%"
    - "**Violations**: %violations%"
    - "**Client Version**: %version%"
    - "**Brand**: `%brand%`"
    - "**Ping**: %ping%"
    - "**TPS**: %tps%"

More on where alerts go, with both surfaces rendered, on the alerts page.