Build plugins
without the pain.
No NMS. No reflection. No version-specific hacks. Just clean, type-safe APIs.
Paper / Spigot
// Sending a title packet
Object packet = Class.forName("net.minecraft.server."
+ VERSION + ".PacketPlayOutTitle")
.getConstructor(...).newInstance(...);
player.getClass().getMethod("getHandle")
.invoke(player).getClass()
.getField("playerConnection").get(...)
.getClass().getMethod("sendPacket", ...)
.invoke(connection, packet);
// Breaks every update. Good luck.
Pumpkin
// Sending a title packet
player.send_title("Hello, World!");
// Done.
Every Player, One Plugin
Native Java + Bedrock support. Multi-version built in. Write once, reach everyone.
Full Packet API
Send, receive, and intercept packets directly. No reflection required.
Async by Default
Built on Tokio. No main thread bottleneck. Heavy tasks don't freeze the server.
Memory Safe
Rust guarantees. No null pointers, no memory leaks, no data races.
0
NMS Classes
0
Reflection Calls
100%
Type Safe