FAQ
Does Ecstacy affect my server's TPS?
Scoring runs off the main thread, so detection work does not compete with your tick. All processing is cloud-side or background. Measured figures are on the benchmarks page.
What happens if the cloud connection drops?
Detections stop until it comes back. Alerts and punishments stop with them; the plugin keeps
running and reconnects on its own. By default the server stays open during an outage. If you would
rather the plugin disable itself when it cannot reach the cloud at startup, set
cloud.disable-on-startup-connect-failure: true in settings.yml.
Do I need to open a port in my firewall?
No. Ecstacy connects out to cloud.ecstacy.ac on TCP port 5001; nothing inbound is required. If
your host blocks outbound traffic by default, that egress rule is the one thing you need to add.
Will it false-positive on my players?
Every family has a precision setting that controls how much evidence it requires, and a
violation threshold before anything happens. The safe way to start is punish.enable: false for a
week: you get flags, alerts and the dashboard with no enforcement, and you can see the real flag
rate on your own player base before turning enforcement on. alerts.punish: false in
settings.yml does the same thing for every check at once. When a flag is wrong, the [Report]
button on the alert sends that verdict back and feeds detection improvements.
Are operators and staff exempt?
No, and that is deliberate. ecstacy.exempt.* defaults to false for everyone, including
operators and holders of ecstacy.admin, so staff can verify the anticheat works by testing it on
themselves. Grant the node explicitly if you want someone exempt.
Does it work on Folia?
Yes. Folia is declared as supported and Paper, Purpur, Pufferfish and Spigot are supported as well. The current version matrix is on the compatibility page.
Does it work with Bedrock players through Geyser?
Bedrock clients are recognised and fully supported.
Can I use one licence on several servers?
Your plan defines how many instances may connect. Each download from the Client Area carries its
own identity. Do not copy one server's jar to another, download a jar for each. Reputation and
ban-wave scope can then be set to SERVER or NETWORK depending on whether you want a licence to
act as one network or as independent servers.
Where is my licence key configured?
Nowhere. The identity is embedded in the jar when you download it from the Client Area. A uuid:
key in settings.yml is ignored. Adding one does not move a licence between servers.
Can I keep violation data in my own database?
Yes. Set database.self-hosted.enabled: true and point database at MySQL or MariaDB. Your
database then holds the full history, capped by max-violations, and the Ecstacy side keeps only
a small rolling window for the dashboard.
Can I integrate Ecstacy with my own plugin?
Yes. There is a public API with an event bus, a player repository and server metadata. See the developer API and the event catalogue. There is also a read-only HTTP API for querying player data from outside Minecraft.
Why does the anticheat report a different anticheat when players run /grim or /vulcan?
That is the spoofer, and it is on by default. It answers probes for common anticheats so a cheater
testing what the server runs does not learn the answer. Turn it off with spoofer.enabled: false,
or replace it with your own commands and responses through the mimic section. See
Integrations.
Can I stop banning instantly and ban in waves instead?
Yes. ban-waves queues detected cheaters and removes them together on an interval, with a
broadcast. Separately, auto-ban restricts when bans may execute at all, with a default window
of 00:00–08:00. Both are off by default and covered on
Enforcement.
How do I report a wrong flag?
Click [Report] on the chat alert and pick TRUE, FALSE or DUNNO, or run
/ecstacy feedback. The verdict goes back to the cloud and feeds detection improvements. It needs
ecstacy.feedback, which ecstacy.admin includes.