First steps

Ecstacy works out of the box. This page covers the handful of settings worth touching on day one and how to confirm detections are live.

Name the server

The name shows up in dashboard entries and in alerts, so make it recognisable if you run more than one server on a licence. Maximum 32 characters.

settings.yml
name: "Practice-EU"

Turn on staff alerts

Alerts are on by default for every family, sent to holders of ecstacy.notify. Each family controls its own volume:

checks.yml
crystalaura:
  fail:
    alert:
      enable: true
      viewer: STAFF   # STAFF or ALL
      every: 1        # alert on every nth recorded flag

every: 1 on a busy server is a lot of chat. Raising it to 3 or 5 is the usual first tuning step; it changes only how often staff are told, never how often the check flags.

If you would rather keep chat clean and review flags on the dashboard instead, switch the whole server over in one key:

settings.yml
alerts:
  mode: "WEB_ONLY"   # no chat alerts; flags still reach the dashboard and /ecstacy logs

Detection, punishment and the dashboard are unaffected. See Alert visibility.

Tip

/ecstacy alerts toggles alerts for your own account without editing the config. Use it while testing so you are not permanently opted in.

Decide what happens at the threshold

Each family accumulates a violation level and acts at fail.max. The shipped crystalaura config sends a chat line at each flag and bans at the threshold:

checks.yml
crystalaura:
  fail:
    max: 20
    commands:
      - "say %player% is annoying using %check% for %vl% times"
  punish:
    enable: true
    commands:
      - "ban %player% You can't use %check% in this server!"

If you use a punishment plugin, replace ban with its command. If you would rather watch before enforcing, set punish.enable: false: flags, alerts and the dashboard keep working.

Placeholders available in both command lists: %player%, %check%, %vl%, %maxVl%.

Confirm detections are running

Run /ecstacy suspicious. It lists players tracking near the bar without having flagged, so a populated list means windows are reaching the model even though nobody has crossed it yet.

An empty list on a busy server points at the connection, not at the detection. See Troubleshooting.

Warning

Operators are not exempt. ecstacy.exempt.* defaults to false for everyone, deliberately, so staff can verify the anticheat on themselves. If a player is never flagged, check whether someone granted that node. See Permissions.

A sensible first week

The single most common mistake is tuning on day one, from a few hours of data, on a server whose normal flag rate nobody knows yet. This ordering avoids it.

Day 1. Set name:. Set fail.alert.every to something you can live with. Set punish.enable: false on every family. Change nothing else.

Days 2-4. Watch. Read /ecstacy suspicious and /ecstacy violations rather than chat. You are answering one question: what does a normal day look like on this server? Use /ecstacy feedback on flags you review. TRUE, FALSE or DUNNO all help.

Day 5. Now judge the volume. Too many flags you disagree with, or too few flags on players you are confident about, is finally a real signal instead of a Tuesday.

Day 6. Change one thing. Usually a precision step on one family. Wait a full day before judging it. Flag volume swings more between a weekday afternoon and a Saturday night than it does between two adjacent precision tiers.

Day 7. Put your real commands in punish.commands and set punish.enable: true. You now know what you are enforcing on.

What not to change on day one

Setting Why not yet
mitigation It cancels real packets. A false positive is an action that never happened for a legitimate player, and it reads as lag. Needs a flag rate you trust first
fail.max Lowering it to "catch more" is the most common way operators manufacture their own false positives. Twenty is the distance that turns noise into a pattern
heuristic.enabled On Crystal Aura leave shadow: true while you watch it. On Anchor Macro there is no shadow key, so it counts immediately
precision on more than one family Change one, or you will not know which change did what

If nothing is flagging

In order:

  1. /ecstacy cloud: connected, with a recent heartbeat? Scoring is cloud-side; no link means no flags.
  2. /ecstacy suspicious: populated? Then detection is working and simply nobody has crossed the bar yet. That is a normal first day, especially on Auto Totem where the threshold is 40.
  3. /ecstacy checks: is the family actually enabled?
  4. /ecstacy doctor: full diagnosis, and the output support asks for first. Paste it verbatim.
  5. Check whether a permission group granted someone ecstacy.exempt.*. It defaults to false for everyone including operators, so if it is set, somebody set it deliberately.

Where to go next

Last updated