Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Make ranged mobs miss like they were trained by the Empire.
Per-mob accuracy tuning, per-player opt-out, zero setup. No client mod required.
Why nerf ranged mobs?
Vanilla skeletons are snipers. They track you through a jungle canopy, lead their shots while you sprint, and knock you off your half-finished build from thirty blocks out. That's fine for hardcore players, and exhausting for everyone else.
StormtrooperX makes ranged mobs miss more. Every arrow a configured mob fires gets its direction nudged by a random amount you control, per mob type. Skeletons, Strays, Bogged, Parched, Pillagers, and Piglins go from marksmen to, well, stormtroopers. Projectile speed is untouched, so arrows still fly, arc, and hit exactly as hard as vanilla; they just don't all hit you.
100% server-side. Players join with an ordinary vanilla client. There is nothing for them to install: no resource pack, no mod. Drop the jar in
plugins/and it works.
✨ Features
- 🎯 Per-mob accuracy control. Enable or disable each of the six supported mobs individually and
give each its own accuracy value, from
0.0(vanilla-perfect aim) to1.0(full stormtrooper). - 🏹 Physics stay vanilla. Only the direction of the shot is perturbed. Speed, arc, and damage are exactly what the mob would have dealt anyway.
- 🙋 Player opt-out system. Purists can keep vanilla difficulty for themselves with
/stormtrooperx optout, and come back withoptin. Choices persist across relogs and restarts. - 🛡️ Admin tools. Manage other players' opt-out status, permission-aware tab completion, an
in-game
helpsubcommand, and live/stormtrooperx reload. - 💾 Persistent storage. Embedded H2 by default (zero setup), or shared MySQL with HikariCP pooling so opt-out choices follow players across a network.
- 🧩 PlaceholderAPI support.
%stormtrooperx_optout%resolves totrue/false; great for scoreboards and menus. Optional soft dependency. - ⚡ Folia-ready & featherweight. Event-driven with no tick tasks, in-memory opt-out cache on the hot path, and all database I/O off the main thread.
- 🔔 Update checker. A quiet startup notice when a new release is out. Can be disabled.
- 🔓 Free & open source. MIT-licensed, with Sigstore build-provenance attestation and a CycloneDX SBOM on every release jar.
🎯 Perfect for
- Survival & SMP servers. Take the edge off ranged mobs so casual players can actually enjoy night time, without touching melee difficulty.
- Family-friendly & kids servers. Fewer cheap deaths from off-screen crossbow bolts.
- Builders' servers. Stop skeleton snipers from turning every scaffold into a death trap.
- Mixed-skill communities. The opt-out system means one server can serve both audiences: nerfed aim by default, vanilla aim for anyone who asks.
⌨️ Commands
Base command: /stormtrooperx (aliases /stx, /stormtrooper).
| Command | Permission | What it does |
|---|---|---|
/stormtrooperx |
stormtrooperx.use |
Show plugin info and version. |
/stormtrooperx help |
stormtrooperx.use |
List the subcommands you may use. |
/stormtrooperx optout |
stormtrooperx.optout |
Opt out of the accuracy nerfs (always sets opted-out). |
/stormtrooperx optin |
stormtrooperx.optout |
Opt back in to the accuracy nerfs. |
/stormtrooperx toggle |
stormtrooperx.optout |
Flip your opt-out state. |
/stormtrooperx optout <player> |
stormtrooperx.optout.others |
Opt out another online player (also optin <player>). |
/stormtrooperx reload |
stormtrooperx.admin |
Reload the configuration. |
🔑 Permissions
| Permission | Default | Grants |
|---|---|---|
stormtrooperx.use |
everyone | Access to the main command and help. |
stormtrooperx.optout |
everyone | Opt out of / back in to nerfs for yourself. |
stormtrooperx.optout.others |
ops | Manage other players' opt-out status. |
stormtrooperx.admin |
ops | Reload and admin-only actions; also grants optout.others. |
🚀 Quick start
- Download StormtrooperX and drop the
.jarintoplugins/. - Restart your server. That's it: all six mobs are nerfed out of the box at accuracy
0.7, with no configuration required and no dependencies to install. - Optional: tune per-mob accuracy in
plugins/StormtrooperX/config.yml, then apply it live with/stormtrooperx reload.
⚙️ Configuration
StormtrooperX generates a fully commented config.yml in plugins/StormtrooperX/.
Per-mob tuning. Each mob gets an enabled flag and an accuracy value between 0.0 (perfect
vanilla aim, no nerf) and 1.0 (maximum chaos). Different projectile types can want different
values; crossbow bolts fly flatter than arrows.
Version-gated mobs, handled for you. Bogged (1.21+) and Parched (1.21.11+) are detected at startup. On older servers they're simply skipped with a log line; nothing to configure, nothing breaks.
Storage backends. Choose where opt-out preferences live:
h2(default): embedded, file-based database; no external server to run.mysql: external server with HikariCP pooling and optional SSL, so opt-out choices can be shared across a whole network of servers.
Automatic migration. Upgrading from an older release? The config migrates itself on startup; your settings are preserved.
✅ Compatibility
- Minecraft 1.18 – 26.1.x. Version-gated mobs activate automatically where available.
- Spigot, Paper, Purpur, or any Spigot-based server. Folia is fully supported (1.20.4+, detected at runtime).
- Java 17+ (CI-tested on Java 17, 21, and 25).
- No required dependencies. PlaceholderAPI is an optional soft dependency.
- Vanilla clients. No client-side mod or resource pack.
🛡️ Performance & safety
- Event-driven only. One listener on the bow-shoot event; no tick tasks, no polling.
- Cached hot path. The opt-out check is a lock-free in-memory lookup; the database is never touched during combat.
- Never blocks the server thread. All database and network I/O runs async, through a Folia-aware scheduler.
- Hardened MySQL. JDBC connection properties are allowlisted and URL-encoded, and risky Connector/J flags with RCE and file-read history are forced off at the pool layer.
- Trustworthy builds. Every release ships a CycloneDX SBOM and a GitHub build-provenance
attestation you can verify with
gh attestation verify.
❓ FAQ
Do players need to install a mod or resource pack?
No. StormtrooperX is entirely server-side. Players connect with a normal vanilla client and everything just works.
Does it change arrow damage or speed?
No. Only the direction of the shot is perturbed. Speed is explicitly preserved, so arcs, flight time, and damage on hit are all exactly vanilla. A shot that connects hurts just as much; fewer of them connect.
Can individual players keep vanilla mob accuracy?
Yes. Any player with stormtrooperx.optout (default: everyone) can run /stormtrooperx optout and
mobs will aim at them exactly as vanilla intended. The choice persists across relogs and restarts,
and admins can manage it for other players.
What happens with mobs my server version doesn't have?
They're skipped gracefully. Bogged needs 1.21+ and Parched needs 1.21.11+; on older servers StormtrooperX logs a one-line notice and carries on with the mobs that exist.
Do I need to run a database server?
No. The default backend is embedded H2 and requires zero setup. MySQL is optional, for networks that want opt-out preferences shared across multiple servers.
Does it work on Folia?
Yes. Folia (1.20.4+) is detected at runtime and fully supported; all async work goes through a Folia-aware scheduler.
Source code & issue tracker:
github.com/GooberCraft/StormtrooperX
Found a bug or have a feature request? Open an issue on GitHub. StormtrooperX is open source under MIT,
a refactored and enhanced take on Stormtrooper by byteful.


