Run a Pumpkin server
Run Pumpkin, a Minecraft server written in Rust, and know what it does differently from Paper before you switch.
In the dashboard
Pumpkin is a Minecraft Java server written from scratch in Rust. It starts in a fraction of a second and uses far less memory than Paper for the same world. It is not Minecraft's own code with changes, so it does not have every vanilla mechanic yet, and it loads no Paper plugins, mods or datapacks. Pumpkin is experimental: try it on a world you have a snapshot of.
Before you begin
Section titled Before you begin- Each Pumpkin build lets in players on one Minecraft Java version, and one Bedrock version. The version list names both, such as
Java 26.3 · Bedrock 26.60. Players on another version cannot join. - Paper plugins and mods do not run on Pumpkin.
- Players' own addresses do not reach Pumpkin yet: it sees the address of our join service, so a ban by IP or a per-address limit in Pumpkin does not work. Ban players by name.
Choose Pumpkin
Section titled Choose PumpkinWhen you order a new server, Pumpkin is in the software list under Experimental. To move a server you already have:
- In the dashboard, go to App Deployment and open the server, then the Software tab.
- Under Server software, pick Pumpkin.
- Pick a version. nightly is first and is the default: Pumpkin's developers build it from their newest code every day, and a tagged release such as
0.2.2+26.3-26.60is weeks behind it. - Choose whether to keep your files, then confirm.
A server keeps the build it installed. When a newer nightly is out, the Current software card says so: select Install… to install it over the old one. Your world, your settings and your join lists stay.
What moves when you switch from Paper
Section titled What moves when you switch from PaperWhen you keep your files, we carry over what both servers have:
- the settings with a place in both files: the MOTD, the player limit, difficulty, game mode, PvP, the whitelist switch, online mode, the view and simulation distance, spawn protection, the seed and the world folder;
- the whitelist, the operators and the ban lists, which Pumpkin keeps in the
datafolder; - the world, which both read in Minecraft's own region format.
Plugins, mods and datapacks stay in their folders, and Pumpkin does not load them. The change says so when you have any. Switching back to Paper carries the same settings and lists the other way.
Change the game settings
Section titled Change the game settingsPumpkin keeps its settings in pumpkin.toml in the server's files, not in server.properties. The game settings in the dashboard edit it for you, by the same names, and check each value the way Pumpkin reads it. You can also edit the file in the file manager. Changes apply at the next start.
Two things work differently from other servers:
- Pumpkin writes
pumpkin.tomlagain at every start, with every setting it has, so comments you add are gone after a restart. - When Pumpkin cannot read one value, it throws away the whole file and starts on its defaults. To stop that, we check the file before every start. A word in the wrong case, such as
Hardwritten ashard, is corrected. Any other value Pumpkin cannot read is taken out, so that one setting goes back to its default and the rest stay. The file as you left it is kept aspumpkin.toml.refused, and the server's activity log says which settings were changed.
We also set the addresses Pumpkin listens on before every start, so the server is reachable on its own ports. Changes you make to those addresses do not last.
Let Bedrock players join
Section titled Let Bedrock players joinPumpkin lets in Minecraft Bedrock Edition players itself: no Geyser is needed. It is on for every new Pumpkin server, on a port of its own that does not count toward your port limit. Bedrock players join through the server's join address, or by IP at the address the Current software card shows. To turn it off, turn off Bedrock players on the Software tab, or set bedrock-players to false with the API. It applies at the next start, and the port goes back to the node.
The world format
Section titled The world formatA new Pumpkin server makes its world in Minecraft's own region format, so Paper and Minecraft itself can open it, and so can our world optimization. Pumpkin also has formats of its own, pump and linear, set in pumpkin.toml. Paper cannot read a world in them, and world optimization leaves them alone. Changing the format of an existing world does not convert it.
Telemetry
Section titled TelemetryPumpkin sends its developers an anonymous heartbeat every five minutes, so they can see what runs where. It holds no player data. To turn it off, set enabled = false under [telemetry] in pumpkin.toml and restart the server. We do not turn it back on.
With the API
Section titled With the APIGET software/context has a pumpkin block on a Pumpkin server: build (the version on disk, the commit of a nightly, and newer when a newer nightly is out) and bedrock (enabled, port and the direct address). GET software/game-settings answers the settings by their server.properties names, and PATCH software/game-settings with {"values": {"difficulty": "hard", "bedrock-players": false}} changes them. A value Pumpkin cannot read answers 400 and says what the setting takes.
Troubleshooting
Section titled Troubleshooting- Players see "Outdated server" or "Outdated client"
- The build serves one Minecraft version. Pick a build whose Java version matches your players', or ask them to change version.
- A setting went back to its default
- It held a value Pumpkin cannot read. Open
pumpkin.toml.refusedin the file manager to see what it was, and the server's activity log for why. - The server does not start after a switch
- Check the console for a line with
panicked at: Pumpkin prints what went wrong after it. A world made by a newer Minecraft version than the build serves can stop it.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/client/servers/{uuid}/software/context | Return loader/game-version context for marketplace tab gating |
GET | /api/v1/client/servers/{uuid}/software/game-settings | The server's game settings in server.properties words, whatever file holds them |
PATCH | /api/v1/client/servers/{uuid}/software/game-settings | Change game settings: {"values": {"difficulty": "hard", "max-players": 20}} |