Faster, better,
Feather
FeatherMC is a fork of Paper that reduces lag, improves performance, and more. It is lightweight and compatible with Paper, Spigot, and other plugins. We aim to make servers much faster and better without changing any Minecraft features or experience.
$ java -jar feather.jar Loading libraries, please wait... [INFO] Starting minecraft server version 26.3 [INFO] Preparing level "world" [INFO] Preparing start region for dimension minecraft:overworld [INFO] Time elapsed: 363 ms [INFO] Preparing start region for dimension minecraft:the_nether [INFO] Time elapsed: 147 ms [INFO] Preparing start region for dimension minecraft:the_end [INFO] Time elapsed: 366 ms [INFO] Running delayed init tasks [INFO] Done (2.274s)! For help, type "help" [INFO] Running FeatherMC 26.3 v5.4
Same server. Less weight.
Paper is fast, and Feather is even faster. Feather is determined to improve the performance of your entire server, and by a wide margin. It includes many components that are lightweight and fast, so your server will load much quicker than it would on Paper. We aim to deliver fast updates, better performance, and more. Feather is your all-in-one server jar: it comes with everything configurable* and extra features such as Anti-Cheat and more.**
*We aim to make everything configurable, but we do not guarantee it. If you would like something to be configurable, please submit a request on GitHub.
**Addons can be toggled on or off in the config. Some addons may not have any premium features, as we aim for them to simply work.
Less RAM per player
Cut heap and off-heap use so the same hardware holds more players, or the same players fit on cheaper hardware.
Smoother ticks
Lower and steadier MSPT, with fewer spikes when farms, mobs or explosions pile up in one place.
Longer uptime
Fewer stalls, crashes and leaks over long sessions, including the ones caused on purpose by lag machines.
Our main goal
Feather aims to keep the Minecraft experience the same while lowering resource usage and improving performance. Anything that sacrifices the experience in order to be faster is denied.
Measured, not guessed
Performance changes are checked with profiling and before/after tick timings before they count as a win. You won't find made-up benchmark numbers on this site. Spark ships in the jar so you can measure your own server too.
Stability
Like Paper, FeatherMC is also stable.
Built for busy servers
Everything below is in the current build. Defaults are chosen so a fresh server is protected without anyone having to read a config file. Anything marked experimental is off until you turn it on.
Built-in /ping
Anyone can run /ping to see their own ping, colored green, yellow or red. Ops, or anyone with feather.command.ping.others, can check any player with /ping <player>.
Anti-lag-machine caps
Per-chunk save limits for arrows, ender pearls, snowballs, fireballs and XP orbs stop the classic "stuff a chunk until it crashes" machine, so it can't survive a restart. On by default.
TNT mass-detonation guard
An opt-in switch in feather.yml (anti-lag-machine.enabled) that removes dense clusters of primed TNT before they go off. Normal TNT use is untouched. Experimental, off by default.
Low-pause launch scripts
start.sh and start.bat with one toggle: ZGC for near-zero GC pauses, or Aikar's G1 flags for smaller heaps. Both keep the heap at a fixed size, so it never resizes mid-game.
Spark built in
The spark profiler is in the jar. Check TPS, take a CPU profile or see what is filling the heap without installing anything.
Basic anti-cheat
An optional autoclicker check flags players who attack faster than a limit you set. It only logs by default. It is basic, so run Grim or Vulcan for real protection. Experimental, off by default.
Optional error reporting
Put a Sentry DSN in feather.yml and logged errors and uncaught exceptions, with stack traces, go to your Sentry project, so you can see which plugin broke. Off unless you set a DSN.
What changes?
Feather is a fork of Paper and contains everything from Paper. Here are some features that Feather does better than Paper.
| Behaviour | FeatherMC | Paper |
|---|---|---|
| Paper plugins and API | Runs unchanged | Native |
| Lag machines | 16 per type, configurable | Off by default |
| TNT mass-detonation guard | Available in feather.yml (off by default) | Not available |
| Launch scripts with GC presets | Included (ZGC or Aikar's G1) | Bring your own |
| Anti-Cheat | Basic autoclicker check (experimental, off by default) | Not available |
/ping command | Built in, color-coded | Not available |
| Error reporting | Optional Sentry, set a DSN in feather.yml | Not available |
| Config files and commands | Same filenames, /paper still works | Same |
Your plugins won't notice the switch
FeatherMC is compatible with all plugins that Paper can run. Even if a plugin says it is Paper only, we inherit Paper's compatibility so that it runs on your server.
- Same packages. Everything stays under
io.papermc.paperandorg.bukkit. - Same brand ID. The server reports
papermc:paper, and brand checks also acceptfeathermc:feather, so "requires Paper" checks pass. - Branded as FeatherMC.
/version, the console, the F3 client brand, the server list and bStats all say FeatherMC, and the version checker points at FeatherMC's own repository. - Same data. Paper's NBT keys, config filenames and CLI flags are untouched. Swap the jar and your world, configs and plugins carry over.
// Build against the Paper API. It runs on FeatherMC as is. repositories { maven("https://repo.papermc.io/repository/maven-public/") } dependencies { compileOnly("io.papermc.paper:paper-api:26.3.build.+") compileOnly("io.github.1chenyip:feather-api:26.3.0") // optional: FeatherMC's own API } java { toolchain.languageVersion.set(JavaLanguageVersion.of(25)) }
Swap one jar. Watch the result.
Replace your current Paper server with Feather and it will work seamlessly. Back up, replace the jar, done.