Pumpkin-Docs/docs/en/admin/migrating-from-bukkit.md
Alexander Medvedev 18dfb3c73e some addtions
2026-08-10 21:40:43 +02:00

3.5 KiB

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 .jar Plugins Cannot Run Directly: Standard Bukkit/Spigot .jar plugins are bytecode compiled for the Java JVM and Bukkit API. They cannot be dropped into Pumpkin's plugins/ 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, and world_the_end directory 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:

# Starting Pumpkin Server on Linux/macOS
./pumpkin

# Or running via Docker
docker run -p 25565:25565 -v ./data:/data pumpkinmc/pumpkin:latest

No garbage collection tuning or JVM heap allocation tuning is needed.


Admin Checklist for Migration

  1. Back up your existing Paper/Spigot server data and world files.
  2. Map server.properties values into Pumpkin's pumpkin.toml.
  3. Check if replacement WebAssembly plugins (.wasm) are available for your essential server utilities.
  4. Configure Proxy support (Velocity / BungeeCord) if running behind a server network.
  5. Launch ./pumpkin and verify player connectivity and performance logs.