Migrating a Server from Bukkit / Spigot / Paper to Pumpkin
Switching your server environment from Paper/Spigot to Pumpkin brings massive performance gains, multithreaded tick execution, and reduced RAM usage. However, because Pumpkin is built in Rust rather than running on the Java Virtual Machine, there are fundamental architectural differences that server administrators need to know.
1. Major Server Differences At-a-Glance
| Feature / Aspect | Bukkit / Spigot / Paper | Pumpkin |
|---|---|---|
| Runtime Environment | Java Virtual Machine (JVM) | Native Binary (Rust) |
| Main Thread Architecture | Single-threaded tick loop with asynchronous offloading | Multithreaded tick execution across CPU cores |
| Plugin Engine | .jar files compiled for Java / Bukkit API | .wasm WebAssembly components running in sandboxed WASM runtime |
| Plugin Languages | Java / Kotlin / Scala | Rust, Python, Kotlin, C#, Go, C |
| Configuration Format | server.properties & paper.yml / spigot.yml | pumpkin.toml & structured TOML configuration files |
| Memory Footprint | High baseline (JVM garbage collection overhead) | Micro baseline (Native memory management) |
2. Plugins & Extensions
- Java
.jarPlugins Cannot Run Directly: Standard Bukkit/Spigot.jarplugins are bytecode compiled for the Java JVM and Bukkit API. They cannot be dropped into Pumpkin'splugins/directory. - WebAssembly Plugins: Pumpkin uses WebAssembly (
.wasm) for plugins. This sandboxes plugins for memory safety and security while allowing developers to write plugins in virtually any language. - Porting Plugins: If you maintain custom internal plugins, consult our Developer Migration Guide to convert Java logic to Pumpkin plugin bindings.
3. Configuration & Properties
Instead of server.properties and YAML files, Pumpkin consolidates server configuration into clean TOML files:
| Paper / Spigot Setting | Pumpkin pumpkin.toml Equivalent |
|---|---|
server-port=25565 | server_address = "0.0.0.0:25565" |
motd=... | motd = "A Pumpkin Server" |
max-players=20 | max_players = 20 |
online-mode=true | online_mode = true |
view-distance=10 | view_distance = 10 |
simulation-distance=8 | simulation_distance = 8 |
4. World & Data Storage
- Anvil Format Compatibility: Pumpkin reads standard Minecraft chunk data format.
- Dimension Directories: Make sure
world,world_nether, andworld_the_enddirectory structures are mapped appropriately when copying existing worlds from Paper/Spigot server installations.
5. Performance Tuning & Startup
Unlike Paper servers which require complex JVM flags (-XX:+UseG1GC, -Xms, -Xmx), Pumpkin runs as a direct native binary:
bash
# Starting Pumpkin Server on Linux/macOS
./pumpkin
# Or running via Docker
docker run -p 25565:25565 -v ./data:/data pumpkinmc/pumpkin:latestNo garbage collection tuning or JVM heap allocation tuning is needed.