Compatibility

What works with Ecstacy and what doesn't.

Check before you install

Compatible Incompatible Ticket required

How to read this page

The table below is generated from the compatibility data we maintain as we test builds, so it reflects what we have actually run rather than what we expect to work. Each entry carries one of three verdicts.

An absent plugin is not a verdict. It means nobody has reported the combination yet. Ask on Discord and we will test it and add a row.

Server requirements

Ecstacy runs on Paper, Purpur, Pufferfish, Spigot and Folia, against the 1.21 API. Folia's threaded regions are supported natively; you do not need a different build or a separate configuration for it.

PacketEvents is a hard dependency, not an optional integration. It is declared as depend in our plugin.yml, so a server missing it will refuse to enable Ecstacy at all rather than starting in a degraded state. The minimum version we accept is shown above and is enforced at startup.

The only networking requirement is outbound TCP to cloud.ecstacy.ac:5001. Ecstacy dials out to our cluster; it never listens for inbound connections, so there is no port to open, forward or firewall on your side. If your host blocks arbitrary outbound TCP, that single destination is all you need allowed.

Proxies, Bedrock and version bridges

On a network, our checks run on the backend servers, because that is where the packets we analyse are produced and where player state actually lives. A proxy-only installation of a protocol bridge is therefore not enough: install ViaVersion and Floodgate/Geyser on the backend servers as well, so the packets reaching Ecstacy are already translated into the form the checks expect. Skipping this is the single most common cause of odd behaviour on cross-version networks.

Bedrock players connected through Geyser are handled, but note that their input model differs from Java's. Our combat models were trained on Java packet behaviour, so detections are weighted accordingly and Bedrock clients are not held to Java timing signatures.

Anticheats running alongside Ecstacy

Ecstacy is not a general-purpose movement anticheat and does not try to be. It targets the combat-side problems that simulation cannot solve. Crystal Aura, Anchor Macro, Auto Totem. And it coexists deliberately with movement-focused anticheats rather than competing with them. Running one of those for movement, fly and speed alongside Ecstacy for combat is a supported and recommended setup, and the table below lists which ones we have verified.

Two anticheats sharing a server does need one decision from you: who punishes. Two systems each banning on their own thresholds produces duplicate punishments and staff arguing about which one was right. The usual arrangement is to let the movement anticheat keep its own enforcement and set punish.enable: false on the Ecstacy families while you learn its flag rate, then turn enforcement on for the combat checks only. Nothing about detection changes either way.

When something behaves oddly

Before assuming a plugin conflict, rule out the three things that produce conflict-shaped symptoms without being one:

If none of those explain it, open a ticket with the output of /ecstacy doctor pasted verbatim, your server software and version, the other plugin and its version, and whether the problem started after an update. That is enough for us to reproduce it; a description without the doctor output usually is not.

Common questions

Does Ecstacy replace my current anticheat? No, and it is not meant to. It detects combat automation. Fly, speed and reach stay the job of a movement anticheat, and the two are designed to run together.

Do I need it on the proxy? No. Install it on the backend servers, where the packets are produced and player state lives. There is no proxy module.

Will it work on my fork? Forks of the supported platforms generally work, because the plugin talks to the API rather than to internals. A fork that rewrites packet handling is the case we cannot predict. Ask, and we will test it.

What happens if the cloud is unreachable? By default the plugin keeps running and retries; alerts and punishments resume when the link returns. If you would rather it disable itself than run without detections, cloud.disable-on-startup-connect-failure in settings.yml does that.

Is one licence enough for a network? One licence covers multiple servers, each with its own download from the Client Area, up to the instance limit of your plan. Reputation and the known-cheaters list are shared across servers on the same licence.

Required
PacketEvents 2.13.0 latest 2.13.0

Software(5)

Name Status
Java Agent (-javaagent / -agentpath / -agentlib) INCOMPATIBLE
Remote debugger (JDWP) INCOMPATIBLE
Attach-based tools (JProfiler, YourKit, VisualVM, JRebel, jcmd/jstack/jmap) INCOMPATIBLE
Java 20 or older INCOMPATIBLE
Java 21+ COMPATIBLE

Server(5)

Name Status
Paper / Spigot 1.21+ COMPATIBLE
Folia COMPATIBLE
Pterodactyl / Pelican panel COMPATIBLE
Panels that control the JVM via the Attach API TICKET REQUIRED
Firewall blocking outbound TCP to cloud.ecstacy.ac:5001 or api.ecstacy.ac:443 INCOMPATIBLE

Plugins(8)

Name Status
PacketEvents below 2.13.0 INCOMPATIBLE
ViaVersion COMPATIBLE
Geyser / Floodgate COMPATIBLE
LuckPerms COMPATIBLE
PlaceholderAPI COMPATIBLE
LiteBans / AdvancedBan COMPATIBLE
Apollo (Lunar) / Feather / Badlion Client API COMPATIBLE
spark COMPATIBLE

Anticheats(5)

Name Status
Vulcan COMPATIBLE
Grim COMPATIBLE
Polar COMPATIBLE
TotemGuard COMPATIBLE
Other anticheats TICKET REQUIRED

Don't see what you're looking for? Open a ticket on Discord

Suggested: install ViaVersion and Floodgate/Geyser directly on the backend server, not only on the proxy, for full protocol and Bedrock compatibility.