Pumpkin

Application

Pumpkin-MC/Pumpkin

A fast and efficient Minecraft server built in Rust.

Overview

Pumpkin is a Minecraft server implementation written entirely in Rust, focusing on performance, compatibility, and security. It supports both Java and Bedrock editions, leverages multi-threading for speed, and provides configuration options, plugins, and proxy support. The project is under active development and aims to be a fast, customizable server alternative.

README Preview

\n\n# Pumpkin\n\n\n[](https://discord.gg/wT8XjrjKkf)\n[](https://opensource.org/licenses/gpl-3-0)\n\n\n\n[Pumpkin](https://pumpkinmc.org/) is a Minecraft server built entirely in Rust, offering a fast, efficient,\nand customizable experience. It prioritizes performance and player enjoyment while adhering to the core mechanics of the game.\n\n\n\n\n\n\n## Goals\n\n- **Performance**: Leveraging multi-threading for maximum speed and efficiency.\n- **Compatibility**: Supports the latest Java & Bedrock Minecraft server version while adhering to Vanilla game mechanics.\n- **Security**: Prioritizes security by preventing known security exploits.\n- **Flexibility**: Highly configurable, with the ability to disable unnecessary features.\n- **Extensibility**: Provides a foundation for plugin development.\n\n> [!IMPORTANT]\n> Pumpkin is currently under heavy development.\n>\n> [See what needs to be done before the 1.0.0 Release](https://github.com/Pumpkin-MC/Pumpkin/issues/449)\n\n## Features\n\n- [x] Configuration (toml)\n- [Tracking: Protocol](https://github.com/Pumpkin-MC/Pumpkin/issues/1401)\n  - [x] Server Status/Ping\n  - [x] Encryption\n  - [x] Packet Compression\n  - [x] Java Edition\n  - [x] Bedrock Edition (W.I.P)\n  - ...\n- [Tracking: World](https://github.com/Pumpkin-MC/Pumpkin/issues/1403)\n  - [x] Player Tab-list\n  - [x] Scoreboard\n  - [x] World Loading\n  - [x] World Time\n  - [x] World Borders\n  - [x] World Saving\n  - [x] Lighting\n  - [x] Entity Spawning\n  - [x] Bossbar\n  - [x] Chunk Loading (Vanilla, Linear, Pump)\n  - [Chunk Generation](https://github.com/Pumpkin-MC/Pumpkin/issues/36)\n  - [x] Chunk Saving (Vanilla, Linear, Pump)\n  - [Redstone](https://github.com/Pumpkin-MC/Pumpkin/issues/1402)\n  - [x] Liquid Physics\n  - ...\n- [Tracking: Player](https://github.com/Pumpkin-MC/Pumpkin/issues/1405)\n  - [x] Skins\n  - [x] Teleport\n  - [x] Movement\n  - [x] Animation\n  - [x] Inventory\n  - [Combat](https://github.com/Pumpkin-MC/Pumpkin/issues/1404)\

FAQ (5)

Troubleshooting
How do I fix Pumpkin server chunks regenerating from seed after a reload when they contain filled maps?

This is caused by an NBT serialization bug in Pumpkin 0.2.0+26.3–26.51. MapDecorationsImpl uses the default DataComponentImpl::write_data, which emits NbtTag::End (0x00) for minecraft:map_decorations instead of TAG_Compound (0x0A). The invalid NBT makes the chunk unreadable on reload, so Pumpkin regenerates it and destroys block entities.

Fix: update Pumpkin to a build containing the fix(data): prevent map decoration NBT corruption change, where map_decorations is written as a compound tag.

Workaround on affected versions: back up the world, then remove the minecraft:map_decorations component from every item before serving it with Pumpkin. The actual map image is not lost because it remains in data/minecraft/maps/*.dat and is referenced by the correctly serialized minecraft:map_id component. Chunks already regenerated must be restored from a backup; their block entities cannot be recovered from the overwritten region file.

GitHub Issue #3698
Troubleshooting
Why do Minecraft server console commands lag one line behind in Pterodactyl or Pelican?

In Pumpkin, set use_tty = false in the [commands] section of pumpkin.toml, then restart the server:

[commands]
use_tty = false

This fixes the issue where the first command is not executed and each command runs only after the next one is sent. The problem is caused by a TTY handling bug in the Rustyline dependency; the upstream fix exists in commit f2bbcc5 but was not yet included in a released version when the issue was reported.

GitHub Issue #3696
Troubleshooting
Why does the server crash with a core dump when using /fill on a large area of saplings?

The crash is caused by unbounded recursive neighbor/shape block updates. Large groups of saplings, pressure plates, and similar self-breaking blocks propagate updates recursively until the worker stack overflows. Update your server to a build containing the fix that processes neighbor updates through a bounded iterative work stack. As a workaround on affected versions, split the fill into smaller volumes, for example 16×16×1 layers instead of 16×16×16:

/fill ~ ~ ~ ~15 ~ ~15 minecraft:acacia_sapling
/fill ~ ~1 ~ ~15 ~1 ~15 minecraft:acacia_sapling
/fill ~ ~2 ~ ~15 ~2 ~15 minecraft:acacia_sapling

Continue incrementing the Y coordinates until the full volume is filled. Avoid filling more than roughly 512–576 sapling or pressure-plate blocks in one command until patched.

GitHub Issue #2016
Troubleshooting
Why do decaying leaf blocks play a block breaking sound instead of disappearing silently?

This is caused by the leaf decay logic calling world.break_block(...), which triggers block-break sound and particle effects. Decaying leaves should use world.set_block_state(...) so they are removed silently, matching vanilla behavior. The fix was introduced in commit 742beaf6f9f84fb99a04402434f6c6feb86667d1; update your server to a build containing PR fix(block): don't play break effects when leaves decay. If maintaining a fork, replace the leaf-decay world.break_block(...) call with world.set_block_state(...).

GitHub Issue #3058
Troubleshooting
How do I fix a Nether portal generating partially broken when lit from the side on a Pumpkin Minecraft server?

This affects Pumpkin Java Edition builds 0.2.0+26.3 through 26.51. When the portal is lit from a side obsidian block, NetherPortal::create places portal blocks without vanilla's UPDATE_KNOWN_SHAPE flag, causing mid-build neighbor updates to remove the igniting fire and some portal blocks.

Fix: update Pumpkin to a release or build containing the PR fix(portal): write nether portal blocks without neighbour shape updates, which fixes issue #3839, then restart the server and relight the portal.

Temporary workaround: use flint and steel on the bottom/floor obsidian block of the portal instead of a side or vertical face. Remove any leftover fire or incomplete portal blocks before relighting.

GitHub Issue #3839