Nova guide
Set up Nova from start to finish
This guide walks through installation, compatible versions, configuration, staff tools and the most common problems you may need to solve.
Last reviewed on 12 August 2026.
01
Install and activate Nova
-
Download the current Nova JAR.
The same Nova JAR works with every server version listed below.
-
Install a supported PacketEvents version.
Nova requires PacketEvents and only starts with one of the versions listed below.
-
Put both plugin JARs in the server’s
pluginsfolder.Start the server once. Nova creates
config/auth/auth.ymlfirst and adds the remaining configuration files after the license is accepted. -
Add the license details.
Open
plugins/NovaAntiCheat/config/auth/auth.ymland enter the exactusernameandlicense-keyissued for the license. -
Restart and read the startup log.
Restart the server normally instead of loading either plugin while it is already running. Check the console for the Nova version, PacketEvents version and a successful license message.
Do not paste auth.yml into public chats, log files, repositories or shared configuration folders.
Required plugin
Install a tested PacketEvents version
Nova supports these PacketEvents versions: 2.11.2,
2.12.0, 2.12.1, 2.12.2 and
2.13.0. Each one has been tested with Nova. Snapshots and versions not
listed here are rejected.
Download PacketEvents from its
official release page
and install the Spigot plugin JAR. Use 2.13.0 unless your setup requires
another supported version.
PacketEvents versions can behave differently. Fully restart the server whenever you change PacketEvents or Nova.
Compatibility
Server support and client support are different
Versions 1.21 through the 26.1 family are fully stable. Versions 1.17.1–1.20.x and 26.2 have early-stage support.
Nova requires at least Java 17. Newer server builds require the newer Java versions listed below.
Each edition can be enabled independently. Bedrock and Eaglercraft require the integrations described below.
The server version is the Minecraft version running Nova. The client version is the version a player uses to join, either directly or through a plugin such as ViaVersion. A supported client version does not make an unsupported server version compatible.
Server support
Which server versions are stable?
Recommended for production servers.
Supported, but not yet tested as thoroughly as the stable versions.
Tested server versions
Nova was installed on all 69 server builds below: 26 Paper builds, 25 Purpur builds and 18 Leaf builds. On every build, it loaded successfully, stayed online and shut down without errors. This confirms that the plugin runs on those builds, but individual checks have not been manually tested in every possible situation on every older release.
The detailed list below ends at 1.21.11 and does not include 26.1 or 26.2. Their current support stages are shown above.
| Software | Versions tested |
|---|---|
| Paper 26 builds |
1.17.1; 1.18–1.18.2; 1.19–1.19.4; 1.20, 1.20.1, 1.20.2 and 1.20.4–1.20.6; 1.21, 1.21.1 and 1.21.3–1.21.11 |
| Purpur 25 builds |
1.17.1; 1.18–1.18.2; 1.19–1.19.4; 1.20, 1.20.1, 1.20.2, 1.20.4 and 1.20.6; 1.21, 1.21.1 and 1.21.3–1.21.11 |
| Leaf 18 builds |
1.19.1–1.19.4; 1.20, 1.20.1, 1.20.2, 1.20.4 and 1.20.6; 1.21, 1.21.1, 1.21.3–1.21.8 and 1.21.11 |
Java version for each server version
Nova requires at least Java 17. Use the Java version shown for your server instead of automatically choosing the newest one installed. The same Nova JAR is used on every supported server version.
| Server version | Java version |
|---|---|
| 1.17.1–1.19.4 | Java 17 |
| 1.20–1.21.11 | Java 21 |
| 26.1 and newer, including 26.2 | Java 25 |
Other Paper-compatible server software and versions not listed here may work, but test them on a private server before using them with players.
Client support
Java, Bedrock and Eaglercraft players
Clients on 1.8–1.12.2 still work, with checks that require newer game mechanics disabled automatically.
Install Floodgate or Geyser-Spigot on the Paper server running Nova so it can recognize Bedrock players and apply the correct checks.
Nova requires EaglerXServer and EaglerXBackendRPC to recognize Eaglercraft players.
Set client-checking.java, client-checking.bedrock and
client-checking.eagler independently in config/main.yml.
ViaVersion or another version translator can let different client versions join, but it
does not add support for server versions that are not listed above.
Nova does not block client versions by default. Servers that choose to enable
versionCheck can set their own allow or block rules.
Eaglercraft
Enable Eaglercraft support
Install EaglerXServer on Velocity and EaglerXBackendRPC on each Paper server running Nova. Together, they allow Nova to recognize Eaglercraft players correctly.
-
Install EaglerXServer 1.1.0 on Velocity.
Place the EaglerXServer JAR in the proxy’s
pluginsfolder. -
Install EaglerXBackendRPC 1.1.0 on every Paper server running Nova.
Place it in the same server
pluginsfolder as Nova and PacketEvents. -
Enable backend RPC in EaglerXServer.
In Velocity’s
plugins/eaglerxserver/settings.toml, setenable_backend_rpc_api = trueanduse_modernized_channel_names = true. -
Enable Eaglercraft checking in Nova.
Set
client-checking.eaglertotrueinconfig/main.yml. The Java and Bedrock settings beside it can be switched independently when another anticheat handles one of those editions. -
Fully restart Velocity and every connected Paper server.
Do not load or reload the proxy plugin, EaglerXBackendRPC, PacketEvents or Nova while the servers are running.
Until a connection is identified, Nova runs only checks that support both Java and Eaglercraft. If Java and Eaglercraft checking use different settings, unidentified connections remain unchecked. See the official EaglerXServer setup guide for the setup instructions.
Configuration
What each configuration file controls
config/auth/auth.yml
License username and key. Keep this file private.
config/main.yml
Which player types Nova checks, plus messages, staff tools, setbacks, combat mitigation, Cloud Sync and general settings.
config/checks/java-checks.yml
Settings for standard Java checks.
config/checks/java-pred.yml
Settings for Java movement prediction.
config/checks/bedrock-checks.yml
Settings for standard Bedrock checks used with Geyser or Floodgate.
config/checks/bedrock-pred.yml
Settings for Bedrock movement prediction.
config/checks/checks-shared.yml
Settings used by more than one group of checks.
config/guard/guard.yml
The single source of truth for Nova Guard: enabled state, Optional or Required mode, grace message, correlation sources and AUTO or explicit public endpoint.
config/checks/*-violations.yml
How violations are grouped and when Nova sends alerts or runs punishment commands.
config/permissions/permissions.yml
Command permissions and bypass permissions for individual checks.
config/discord/discord.yml
Settings for Nova’s Discord alerts.
Keep a copy of the last working configuration. After editing, use /nova reload and check the console. Changes to auth.yml, Nova, PacketEvents or another required plugin need a full restart.
Nova Guard / Nova Pro
Server-owner setup
Nova Guard is Nova’s client-side anti-cheat, available exclusively with Nova Pro, and a first-class Guard check category. It does not modify Minecraft, require Fabric or Forge, inject into the client, require Administrator access, or send arbitrary typed keys. It reduces foreground context locally to a capture-quality boolean and never sends window titles or process names; uncertain focus pauses Guard evidence. Ordinary Nova checks remain fully active for Guard-verified players. Standard licenses cannot enable Guard, while ordinary Nova server-side checks remain fully available.
Standalone Paper
- Have an authenticated Nova Pro license.
- Set
enabled: trueinplugins/NovaAntiCheat/config/guard/guard.yml. - Ensure the Guard connection can reach the public server.
- Done.
Velocity
- Have an authenticated Nova Pro license.
- Install
NovaGuardVelocity.jarin Velocity'spluginsfolder. - Set
enabled: truein Nova'sconfig/guard/guard.yml. - Done.
If Query, Geyser, voice chat, NAT, or a TCP-only proxy prevents AUTO from receiving UDP, set network.endpoint to a public value such as guard.example.net:27050. With Velocity, map a different public UDP port to Velocity’s Minecraft numeric UDP port in the NAT/DDoS-proxy layer; the install-only gateway itself always binds that Minecraft port. Never expose a private Paper backend address.
Pairing lifecycle
Each NovaGuard launch creates a fresh ephemeral key and pairing code. Players use
/nova guard pair <code>; Nova takes the UUID and username from the live
command sender. Pairing survives reconnects, Nova server changes and Velocity backend
switches while that same process remains alive. It ends immediately on a normal close,
after a short control-heartbeat loss, or at the 24-hour maximum. Restarting Guard always
requires pairing again. Continuous HID telemetry travels directly to the public Nova
server or Velocity gateway, never through the central website backend.
Guard briefly classifies the foreground executable/window and checks its active Windows TCP-owner metadata locally to authorize the real server endpoint. It also processes bounded control identities in memory to maintain held counts. PIDs, socket tables, connection history, titles, process names, exact key identities and typed text are never transmitted or persisted. Server owners must provide any player notice or lawful basis required where they enable Optional or Required Guard.
Players can download Nova Guard and see the privacy details at novaac.top/guard.
Staff tools
Common commands and permissions
| Command | Purpose | Main permission |
|---|---|---|
/nova | Show the Nova commands you can use. | nova.commands |
/nova gui | Open Nova’s in-game management GUI. | nova.gui |
/nova verbose | Toggle detailed check alerts for your player. | nova.verbose |
/nova debug normal | Turn standard check debug information on or off. | nova.debug |
/nova debug prediction | Turn prediction debug information on or off. | nova.debug |
/nova checks | Show AntiBot management subcommands. | nova.checks |
/nova freeze <player> | Freeze a player for staff review. | nova.freeze |
/nova unfreeze <player> | Release a player frozen by Nova. | nova.freeze |
/nova crash <player> | Forcefully disconnect a player using the restricted staff command. | nova.crash |
/nova reload | Reload Nova’s configuration. | nova.reload |
/nova version | Show the installed Nova version. | nova.version |
/nova guard | Show player-facing Guard help while Guard is enabled. | Every player |
/nova guard pair <code> | Pair the current Guard launch to the command sender. | Every player |
/nova guard status | Show the command sender's Guard state. | Every player |
nova.* grants every Nova command and alert permission. Give staff only the
permissions they need. Nova writes individual-check bypass permissions to
permissions.yml; category and family patterns are listed in
PERMISSIONS.txt.
Detection
How Nova organizes its checks
Nova groups checks into Combat, Movement, Packet, Player, World, Prediction and Guard.
Guard is an independent evidence bucket and appears as [Guard] in alerts; it
does not increase ordinary Combat or Movement pressure. Java players also use
prediction-based movement checks, while Bedrock players use checks made for Bedrock.
In the public check list, the outlines show whether a Java check also supports
Eaglercraft or runs only for Java players.
Attacks, aiming, reach, clicking and combat engines.
Speed, flight, ground movement, vehicles and prediction.
Invalid or unexpected packet behavior.
Inventory use, items, chat and automation.
Block placement, breaking and other world interactions.
Client movement simulation and normalized input reconstruction.
Validated physical-input contradictions from an active Nova Guard session.
Start with Nova’s default configuration. If you believe an alert is wrong, record the check name, Nova version, PacketEvents version, server version, client version and what the player was doing. Avoid disabling a whole category because of one repeatable problem.
Responses
Setbacks and combat mitigation
Normal and prediction setbacks
Normal setbacks are used by individual movement checks. Prediction setbacks return a
player to a valid position when Nova cannot accept their movement. main.yml
contains both global switches. In Nova’s GUI, Normal has one global switch and
prediction setbacks are controlled separately for each prediction check.
Combat mitigation
Combat mitigation temporarily limits the advantage of a player who repeatedly triggers combat checks. It affects only selected hits, and normal combat gradually returns when the suspicious activity stops.
Setbacks and punishments directly affect players. Test teleports, knockback plugins, minigames and custom movement before enabling automatic punishments.
Web tools
License Panel walkthrough
Open the License Panel and enter the license username and key. The panel shows the plan, expiration date, devices and active servers for that license.
- Devices: review registered computers or VPSs and reset only ones you no longer use.
- Instances: review the Minecraft servers currently using the license.
- Downloads: download the Nova builds included with the plan.
- Security: review recent sign-ins and block a device or server you do not recognize.
- Alerts: configure Discord notifications for license and security events.
- Cloud Sync: review reputation activity when the feature is enabled on a Standard, Pro or Enterprise license.
One HWID represents one physical or virtual machine. One active instance represents one running Minecraft server. Several servers on the same machine normally use one HWID and one instance per server. Servers shown as offline do not use instance capacity.
Developer API
Build directly on Nova’s server state
Other Bukkit plugins can read Nova state, inspect checks and violations, work with prediction context, and integrate Nova Guard into ranked or tournament access flows. Nova owns the API instance and exposes it through its plugin getter, a static helper, and Bukkit’s services manager.
Read
Player and check stateInspect edition, client version, prediction readiness, ping, check metadata and current violations.
Integrate
Guard and Bukkit eventsRequire Guard for competitive modes and react when a player gains or loses verified Guard status.
Reference
Methods, types and examplesSee access patterns, method groups, lifecycle rules, PlaceholderAPI values and complete Java examples.
Compatibility
Third-party plugins
Versions marked Tested have been tested in depth with Nova. Versions marked Runtime verified loaded with Nova and passed automated tests, but were not tested in depth. Newer releases need another verification.
| Software | Version | Status | Notes |
|---|---|---|---|
| PacketEvents | 2.11.2, 2.12.0–2.12.2, 2.13.0 |
Tested | Required. Version 2.13.0 is recommended. Other releases and snapshots are rejected. |
| DS-PearlFix | 6.0 | Tested | Nova was tested with version 6.0. |
| PlaceholderAPI | 2.12.3 | Tested | Optional. Nova adds its placeholders when installed and works normally without it. |
| EaglerXServer and EaglerXBackendRPC | 1.1.0 | Tested | Used to identify Eaglercraft 1.8.8 u53 and 1.12.2 clients. Follow the Eagler setup guide. |
| VeinMiner | 2.11.2 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. Requires Java 25. |
| AuraSkills | 2.3.12 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| mcMMO | 2.3.000 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| PvPManager Lite | 4.0.9 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| OldCombatMechanics | 2.5.1 | Tested | Loaded with Nova on Paper 1.21.11 and was tested in depth for combat and blocking on Paper 1.21.8. |
| WeaponMechanics | 4.3.1 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| PVP Arena | 2.1.1 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| HuskHomes | 4.10 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| GSit | 3.5.1 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
| CombatLogX | 11.6.0.0.1286 | Runtime verified | Loaded with Nova on Paper 1.21.11 and passed automated tests; not tested in depth. |
Plugins not listed here may still work. Test your exact setup on a private server before using it live, and include the exact plugin version when asking for support.
PlaceholderAPI placeholders
With PlaceholderAPI 2.12.3 installed, Nova provides
%nova_version%, %nova_status%, %nova_tps%,
%nova_client_edition%, %nova_client_version%,
%nova_checks_enabled%, %nova_ping% and
%nova_average_ping%, plus the Nova Guard placeholders documented in the
full API reference. They show basic server and player status only; they do
not expose license keys, machine identity, violation history or moderation data.
Some packs or their companion plugins can change movement, placement or other interactions. If problems appear, look for a compatibility option and test again without the pack. Keep it disabled if the errors continue.
Troubleshooting
Fix common problems
Nova does not start
Confirm PacketEvents starts first, its version is on the supported list above, the current Nova JAR is installed and auth.yml contains the correct username and key.
The license works on one server but not another
Open the License Panel and check both HWID and instance usage. Reset entries you no longer use, then restart the affected server with the current Nova JAR.
Movement or packet behavior changed after an update
Check PacketEvents first. A similarly named patch or snapshot may behave differently from the versions Nova supports. Install one of the listed versions, fully restart and try again.
A check flags a legitimate player
Record the check name, debug line, server and client versions, ping, TPS, nearby blocks, effects, related plugins and a short video. Try to reproduce it with Nova’s default settings before changing the check.
Configuration changes are ignored
Check the YAML indentation and the console output from /nova reload. Changes to auth.yml, the Nova or PacketEvents JAR, or the server version require a full restart.
An Eaglercraft player shows as Unknown or is not checked
Check that EaglerXBackendRPC is installed, both proxy settings are enabled and client-checking.eagler is true. Without BackendRPC, Nova can use only checks that safely support both Java and Eaglercraft. Fully restart Velocity and Paper after making changes.
A custom resource pack causes movement or interaction errors
Reproduce without the pack first. If the pack or its companion plugin offers a compatibility setting, test that setting after a full restart. If the mismatch remains, disable the pack; this setup has not been tested with Nova.
Support asks for logs
Remove license keys, webhook URLs and private player data before sharing. Keep the version information, warnings and full error message intact.
Maintenance
Update Nova safely
- Back up Nova’s configuration and keep the last working JARs.
- Read the build notes and check whether the required PacketEvents build changed.
- Update a private test server first, using a copy of the live configuration.
- Fully restart the server. Do not replace or reload Nova or PacketEvents while it is running.
- Test normal combat, movement, teleports, vehicles, custom plugins, alerts, setbacks and punishments.
- Use the build on your live server only after startup and testing complete without errors.
FAQ
Common questions
Does Nova send Combat Engine decisions to a cloud model?
No. Combat Engine and Crystal Engine run on the Minecraft server. Nova’s online services are still used for license checks and licensed downloads.
What is Cloud Sync?
Cloud Sync is an optional Standard, Pro and Enterprise feature that shares limited reputation information with Nova’s online service. It is disabled by default and does not replace Nova’s local checks.
What is the difference between an HWID and an instance?
An HWID identifies the computer or VPS. An active instance is one running Minecraft server. Four servers on the same machine normally use one HWID and four instances; offline servers do not use instance capacity.
Can I use a different PacketEvents release?
Use one of the five versions listed above. Nova recommends 2.13.0 and does not start with snapshots or other releases.
Can I move Nova to another machine?
Yes. Remove or reset the old device through the License Panel, then authenticate the new host. Resets are for genuine migrations, not license sharing.
Do lifetime licenses guarantee permanent hosted services?
No. A lifetime license lasts while the Nova product and the online services it requires remain available, as explained in the Terms.