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.
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:
crystalaura:
fail:
alert:
enable: true
viewer: STAFF # STAFF or ALL
every: 1 # alert on every nth recorded flagevery: 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:
alerts:
mode: "WEB_ONLY" # no chat alerts; flags still reach the dashboard and /ecstacy logsDetection, 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:
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:
/ecstacy cloud: connected, with a recent heartbeat? Scoring is cloud-side; no link means no flags./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./ecstacy checks: is the family actuallyenabled?/ecstacy doctor: full diagnosis, and the output support asks for first. Paste it verbatim.- Check whether a permission group granted someone
ecstacy.exempt.*. It defaults tofalsefor everyone including operators, so if it is set, somebody set it deliberately.
Where to go next
- Commands. Everything
/ecstacycan do - Checks overview. How flags, thresholds and punishments fit together
- Settings reference. The rest of
settings.yml