Permissions
The parent node
ecstacy.admin grants every node in the table below. It does not grant ecstacy.exempt.*: that is deliberate and covered at the bottom of this page.
Nodes
All of these default to op.
| Node | Grants |
|---|---|
ecstacy.menu |
/ecstacy menu |
ecstacy.checks |
The checks GUI |
ecstacy.player |
Player information |
ecstacy.playerinfo |
The player-info GUI |
ecstacy.violations |
The violations history GUI |
ecstacy.logs |
Reading audit logs |
ecstacy.alerts |
Toggling violation and simulation alerts |
ecstacy.notify |
Receiving violation notifications |
ecstacy.cloud |
Cloud connection status |
ecstacy.reputation |
The reputation panel |
ecstacy.reputation.reset |
Resetting a player's reputation |
ecstacy.reputation.mode |
Switching reputation scope between LOCAL and GLOBAL |
ecstacy.theme |
The theme picker |
ecstacy.spectate |
Spectating a flagged player |
ecstacy.suspicious |
The needs-review queue |
ecstacy.replay |
Listing and playing recorded replays |
ecstacy.feedback |
Submitting TRUE / FALSE / DUNNO verdicts on flags |
ecstacy.reload |
/ecstacy reload |
ecstacy.debug |
Debug utilities |
ecstacy.alerts.reputation is separate and configurable. It controls who receives low-reputation
alerts, and the node itself is set in settings.yml under reputation.alerts.permission.
Nodes not declared in plugin.yml
These are enforced by their commands but not declared as permissions, so they fall back to the server's default for undeclared nodes: operators have them, ordinary players do not.
| Node | Grants |
|---|---|
ecstacy.doctor |
/ecstacy doctor |
ecstacy.profiler |
/ecstacy profiler |
ecstacy.exempt.manage |
/ecstacy exempt |
If you use a permission manager, grant these explicitly rather than relying on operator status.
Exemption
Warning
ecstacy.exempt.* defaults to false for everyone, including operators and holders of
ecstacy.admin. A player with this node is exempt from every detection. No scoring, no
flags, no punishments. Grant it only when you mean it.
Operators being scored is intentional: it is how staff verify that the anticheat is working, on themselves, without disabling anything. If a specific player is never flagged, the first thing to check is whether a permission group granted them this node.
Per-check exemptions are managed at runtime instead of through permissions:
/ecstacy exempt Notch # show what Notch is exempt from
/ecstacy exempt Notch CrystalAura # toggle one check
/ecstacy exempt Notch * # toggle all checksPrefer these to the permission. A per-check exemption is visible in game, reversible from the
same command, and leaves the other families scoring the player. ecstacy.exempt.* sits in your
permission plugin where nobody thinks to look, and removes the player from everything at once.
Suggested groups
There is no single right split, but these four cover most staff structures. LuckPerms syntax; adapt to whatever you run.
Helper: sees flags, cannot change anything.
lp group helper permission set ecstacy.notify true
lp group helper permission set ecstacy.alerts true
lp group helper permission set ecstacy.player true
lp group helper permission set ecstacy.playerinfo true
lp group helper permission set ecstacy.violations true
lp group helper permission set ecstacy.feedback trueModerator: helper, plus the tools to act on a flag.
lp group mod parent add helper
lp group mod permission set ecstacy.spectate true
lp group mod permission set ecstacy.suspicious true
lp group mod permission set ecstacy.replay true
lp group mod permission set ecstacy.logs true
lp group mod permission set ecstacy.reputation trueAdmin: everything except exemption and reputation resets.
lp group admin permission set ecstacy.admin true
lp group admin permission set ecstacy.doctor true
lp group admin permission set ecstacy.profiler true
lp group admin permission set ecstacy.reputation.reset falseOwner: the full set, including the nodes that are not declared in plugin.yml.
lp group owner permission set ecstacy.admin true
lp group owner permission set ecstacy.doctor true
lp group owner permission set ecstacy.profiler true
lp group owner permission set ecstacy.exempt.manage trueNote that none of these grant ecstacy.exempt.*. That is the point.
Tip
Give ecstacy.feedback to everyone who sees alerts, including helpers. Marking a flag TRUE,
FALSE or DUNNO costs nothing and is the cheapest thing your staff can do to improve the
detections they are looking at.
Auditing exemption
If a player is never flagged while everyone around them is, exemption is the first thing to rule out. Not the check.
/ecstacy exempt <player>with no check name lists what that player is currently exempt from. If it comes back empty, the per-check exemptions are clear and the next suspect is the permission node:
lp user <player> permission info
lp group <their-group> permission infoLook for ecstacy.exempt.* anywhere in the inherited tree. A wildcard grant such as ecstacy.*
in a permission plugin will also pick it up, which is the usual way it ends up set by accident. ecstacy.admin will not, because the node is deliberately not one of its children.