Skip to content
Coritan Docs

Run a Pumpkin server

Run Pumpkin, a Minecraft server written in Rust, and know what it does differently from Paper before you switch.

View as Markdown

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.

  • 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.

When you order a new server, Pumpkin is in the software list under Experimental. To move a server you already have:

  1. In the dashboard, go to App Deployment and open the server, then the Software tab.
  2. Under Server software, pick Pumpkin.
  3. 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.60 is weeks behind it.
  4. 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 Paper

When 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 data folder;
  • 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.

Pumpkin 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.toml again 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 Hard written as hard, 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 as pumpkin.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.

Pumpkin 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.

A 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.

Pumpkin 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.

GET 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.

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.refused in 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

MethodPathWhat it does
GET/api/v1/client/servers/{uuid}/software/contextReturn loader/game-version context for marketplace tab gating
GET/api/v1/client/servers/{uuid}/software/game-settingsThe server's game settings in server.properties words, whatever file holds them
PATCH/api/v1/client/servers/{uuid}/software/game-settingsChange game settings: {"values": {"difficulty": "hard", "max-players": 20}}