Skip to content

Releases: Conman1533/PEX

PEX 1.2.1

Choose a tag to compare

@Conman1533 Conman1533 released this 29 Oct 21:23

PEX 1.2.1 fixes a crash in 1.2.0: a mistyped command containing non-ASCII text, such as /tp "玩家一号" 玩家一号, panicked while building the error message and shut down the whole server. Any player could trigger it from chat. The error now shows the last ten characters before the mistake, like vanilla. Upgrading is recommended. It runs Minecraft 26.3 (protocol 777).

Built from commit 83642d3.

Downloads

File For
pumpkin-X64-Linux Linux x86-64 (glibc 2.35 or newer). Loads native plugins.
pumpkin-X64-Linux-musl Static Linux x86-64 build. Can't load native plugins.
pumpkin-plugins-X64-Linux.zip WorldPumpkin, PEXGuard and PEXProtect for pumpkin-X64-Linux

Replace your plugin files too. Native plugins only work with the exact build they came from, so the 1.2.0 plugin files won't work with this server. Unzip pumpkin-plugins-X64-Linux.zip into plugins/, overwriting the old files. Your plugin data in plugins/data/ is kept.

These files were built outside GitHub Actions, which is currently disabled for this repository. They were built with rustc 1.99.1 in a Debian 12 container using the same cargo build --release steps as the release workflow. ARM64 Linux, Windows and Android builds aren't included. Until they're added, use 1.2.0 on those platforms and avoid the crashing commands.

Checksums are in SHA256SUMS.

PEX 1.2.0

Choose a tag to compare

@Conman1533 Conman1533 released this 19 Oct 19:13
e3b1966

PEX 1.2 adds three native plugins built with the server (WorldPumpkin, PEXGuard and PEXProtect), merges 22 upstream Pumpkin changes including the new region IO and the Pump world format, and updates world saves to 26.3. It runs Minecraft 26.3 (protocol 777).

Built from commit e3b1966.

Native plugins

Each release now has a pumpkin-plugins-<arch>-<os>.zip next to the server binary:

Plugin What it does Commands
WorldPumpkin World editing: selections, fill with block patterns, replace, walls, move, undo and redo. A native port of WorldPumpkin by NicDevTV. //pos1 //pos2 //hpos1 //hpos2 //chunk //expand //set //replace //walls //move //undo //redo /wp
PEXGuard Region protection: build, interact, chest access, PvP, mob damage and spawning, explosions, fire, liquid flow, pistons, entry, greetings. /rg (/region)
PEXProtect Block logging with inspect, lookup, rollback and restore. /co (/coreprotect)

To install, unzip the plugins you want into the server's plugins/ folder. Each plugin writes its config to plugins/data/<plugin>/.

Use plugin files from the same release as the server. Native plugins only work with the exact build they came from: a file from another build loads without an error and then misbehaves or crashes. The static musl build can't load native plugins, so use pumpkin-X64-Linux if you want them.

native-plugins/PORTING_GUIDE.md covers writing your own plugin. Start from native-plugins/template/.

World storage

  • Pump is the default chunk format for new servers. It's Pumpkin's own region format (.pump files). Existing servers keep the format set in their pumpkin.toml.
  • Automatic conversion. When a world's region files don't match the configured [world.chunk] type, they're converted when the server starts, and the old files are deleted. You can also convert ahead of time with ./pumpkin --convert-world pump (or anvil or linear). Converting our 56,000-chunk test world took 8 seconds.
  • Pump files are bigger than Anvil with ZLib: the test world grew from 351 MB to 531 MB.
  • New region IO from upstream (Pumpkin-MC#4062). Region files stay open and only changed chunks are written. It replaces PEX's write_in_place option, which is now ignored and can be removed from pumpkin.toml.
  • Saves use the 26.3 world data version (Pumpkin-MC#4094). Failures to replace level.dat are now reported (Pumpkin-MC#3526).
  • Player chunk tickets are released from the same place they were added (Pumpkin-MC#4103).

Gameplay fixes from upstream

  • Wither skeletons apply Wither, burning skeletons shoot flaming arrows, and mobs respect their effect immunities (Pumpkin-MC#4038).
  • Crops need light level 9 to grow (Pumpkin-MC#4100).
  • Blocks can be placed against redstone ore (Pumpkin-MC#4025).
  • Items with a use_remainder (such as honey bottles and soups) leave it behind when you finish using them (Pumpkin-MC#3977).
  • Blocks placed by /fill run their placement callbacks, like blocks placed any other way (Pumpkin-MC#3964).
  • Copper chests play the right sound for each oxidation stage (Pumpkin-MC#4071).
  • Each structure is counted once when terrain adapts around structures (Pumpkin-MC#4037).
  • Mob spawners compute spawn distance correctly (Pumpkin-MC#3891).
  • Flat worlds are flagged as flat to Java clients, so the horizon renders right (Pumpkin-MC#4102).
  • Block loot tables come from block data instead of being built from the block name (Pumpkin-MC#3997).

Performance and internals

  • Startup computes stronghold rings in the background and skips the key fetch for unsigned plugins (Pumpkin-MC#3764).
  • Block properties and structure processor tags are typed enums instead of strings.
  • WASM plugins get the async v0.2 plugin ABI (Pumpkin-MC#3713). v0.1 plugins still load.
  • More built-in GameTests.

Downloads

File Platform
pumpkin-X64-Linux Linux x86-64, glibc 2.35+ (Ubuntu 22.04+, Debian 12+)
pumpkin-X64-Linux-musl Linux x86-64, static: runs on any distribution, including Alpine. Can't load native plugins
pumpkin-ARM64-Linux Linux ARM64, glibc 2.35+ (Raspberry Pi OS 12+, Ubuntu 22.04+ on ARM)
pumpkin-X64-Windows.exe Windows 10/11 x86-64
pumpkin-plugins-X64-Linux.zip Native plugins for pumpkin-X64-Linux
pumpkin-plugins-ARM64-Linux.zip Native plugins for pumpkin-ARM64-Linux
pumpkin-plugins-X64-Windows.zip Native plugins for pumpkin-X64-Windows.exe

SHA256SUMS lists the checksums. Everything was built with full release optimisation (fat LTO). Both x86-64 Linux builds were started on a fresh world and on a 1.1 world before release, and the three plugins were loaded into pumpkin-X64-Linux. The ARM64 and Windows builds and their plugins were cross-compiled and weren't run on real hardware.

Upgrading

Replace the binary. Worlds and pumpkin.toml from 1.1 work as they are.

  • A pumpkin.toml written by PEX 1.0 or 1.1 sets type = "anvil" under [world.chunk], so your world stays in Anvil format. If you removed that line, or you switch it to pump, the world is converted on the next start and the Anvil files are deleted. Back up the world first. --convert-world anvil converts back.
  • Worlds saved by 1.2 use the 26.3 data version. Going back to 1.1 afterwards hasn't been tested, so keep a backup if you might downgrade.

Known issues

  • Carried over from 1.1: template features place only their first palette, higher network use than Paper, spiky 95th-percentile ticks, occasional rejected block placements at some spots, and the pumpkin:summon_command_regression GameTest fixture.

Thanks to everyone who play-tested alpha.baconmc.net.

Full changelog: v1.1.0...v1.2.0

PEX 1.1.0

Choose a tag to compare

@Conman1533 Conman1533 released this 18 Oct 02:55
2009aa6

PEX 1.1 brings the sculk and creaking mechanics to life, places more of vanilla's world generation features, and gives passive mobs vanilla behaviour. It runs Minecraft 26.3 (protocol 777) and is a drop-in upgrade from 1.0.

Built from commit 2009aa6.

Sculk and creaking

  • Vibrations. A port of vanilla's vibration system: game events travel to sculk sensors, calibrated sculk sensors, shriekers, wardens and allays, with vanilla listener ranges, frequencies, travel time and occlusion by #minecraft:dampens_vibrations blocks (wool, and wool-carrying item entities).
  • Game events are now emitted for steps and swimming, landing, placing and breaking blocks, eating and drinking, projectiles, containers, doors, trapdoors and fence gates, equipping, splashing, damage and death, explosions, fluids, note blocks, jukeboxes, shearing, goat horns and elytra gliding.
  • Ancient cities work. Sensors activate shriekers, shriekers warn the player who caused the vibration, and the fourth warning summons a warden. Calibrated sensors filter by the frequency on their input side, and amethyst resonance is in.
  • Warden: listens for vibrations, builds anger like vanilla (+35 per disturbance, +10 for repeated projectiles), investigates disturbances, shivers its tendrils and applies the darkness aura. Anger is saved with the warden.
  • Allay: binds to a note block it hears for 30 seconds and dances near a playing jukebox.
  • Creaking heart: spawns its creaking protector at night near survival and adventure players, despawns it at dawn or when it strays, spreads resin when the creaking is hurt, gives a comparator signal, switches between dormant, awake and uprooted, and drops 20–24 XP when a natural heart is broken. The creaking now stays in place while it can't move.
  • Vibration listener state is saved in the vanilla listener NBT on sensors, shriekers, wardens and allays.

World generation

  • Template features (desert wells, sulfur springs and others) with fluid filling and shape updates after placement. The hard-coded desert well is replaced by the data-driven one.
  • sequence features, volume_match, cuboid, random_chance and randomly_selected placement, matching vanilla 26.3.
  • Geodes and end spikes are seeded from the world seed, and omitted geode fields use vanilla's defaults.
  • Dappled forest features are placed in vanilla biome order.
  • Generated sculk sensors, shriekers, catalysts and creaking hearts get their block entities, and chunks saved without them get them back on load.

Mobs

  • Breeding, tempting and feeding with each animal's vanilla item tags.
  • Vanilla goal lists and priorities for horses, llamas and the other animals. Tamable pets sit, leap and hunt.
  • Panic goal variants, ambient sounds, and a water-avoiding random stroll for land animals.
  • Baby hoglins grow up, and the entity tick counter is separate from age.
  • Pathfinding: closed nodes stay closed, neighbour path types are checked in vanilla order, random targets are filtered by path type, and the extra stuck check is gone. Mobs only jump out of fluids when there's headroom.
  • Drowned sink instead of floating. Naturally spawned mobs and portal-spawned zombified piglins get their equipment.
  • The monster spawn light check darkens sky light by time of day, like vanilla.

Other fixes

  • forceload now gives chunks a ticket, so they load without a player nearby.
  • Loot tables check the is_baby flag and vehicle type in entity_properties.
  • Jump detection on combined position and rotation packets uses the on-ground flag, like vanilla.

Downloads

File Platform
pumpkin-X64-Linux Linux x86-64, glibc 2.35+ (Ubuntu 22.04+, Debian 12+)
pumpkin-X64-Linux-musl Linux x86-64, static: runs on any distribution, including Alpine
pumpkin-ARM64-Linux Linux ARM64, glibc 2.35+ (Raspberry Pi OS 12+, Ubuntu 22.04+ on ARM)
pumpkin-X64-Windows.exe Windows 10/11 x86-64

SHA256SUMS lists the checksums. All four were built with full release optimisation (fat LTO). The x86-64 builds were started and checked before release; the ARM64 and Windows builds were cross-compiled and weren't run on real hardware.

Upgrading

Replace the binary. Worlds and pumpkin.toml from 1.0 work as they are.

Known issues

  • Template features place only their first palette (every current vanilla template has one), and shape updates after placement cover only the blocks those templates use.
  • Carried over from 1.0: higher network use than Paper, spiky 95th-percentile ticks, occasional rejected block placements at some spots, and the pumpkin:summon_command_regression GameTest fixture.

Thanks to Neon Swan and everyone who play-tested alpha.baconmc.net.

Full changelog: v1.0.0...v1.1.0

PEX 1.0.0

Choose a tag to compare

@Conman1533 Conman1533 released this 15 Oct 23:52
74d1a6a

PEX 1.0 is the first stable release of PEX, an experimental fork of Pumpkin, the Minecraft Java Edition server written in Rust. It runs Minecraft 26.3 (protocol 777) and includes everything in upstream Pumpkin as of 14 October 2026, plus about 140 PEX changes focused on reliability, vanilla parity and resource use.

Built from commit 74d1a6a.

Performance

Measured with the open gameplay benchmark: the same world and the same bot players (builders, miners, AFK players and explorers, with farms running) on both servers, each with 4 CPU cores and 8 GB.

Against Paper 26.3 (JVM) Paper PEX 1.0
Tick time, 8 players 12.4 ms 6.3 ms
Tick time, 24 players 20.5 ms 12.0 ms
Busiest thread, 24 players 42% of a core 23%
Memory (average) 1,607 MiB 582 MiB
Startup 42 s 0.5 s

In a 2-hour run against upstream Pumpkin, PEX wrote 214 MiB to disk where Pumpkin wrote 13,352 MiB, for worlds of the same size.

Highlights

Storage and reliability

  • Region files are written like vanilla's RegionFile: only changed chunks are rewritten, in place, with zlib compression. That cuts disk writes by up to 98% and keeps worlds fully vanilla-compatible.
  • Keeps running when the disk is full, and keeps unsaved chunks instead of dropping them. Failed region writes are retried on every save and their sectors freed.
  • Corrupt or truncated region data (a cut-off chunk header, a chunk too big for the header) is refused with an error instead of panicking or corrupting the file.
  • Block entities (chests, hoppers, furnaces) are saved before stop unloads their chunks.
  • Loads worlds saved by vanilla 26.3.
  • Overdue scheduled ticks run when an inactive chunk becomes active again.

Performance

  • Entity lookups use vanilla's per-section entity storage, and the entity tracker and natural-spawn mob counts run in parallel.
  • Smaller memory footprint: compact palettes for small block palettes, uniform light sections without arrays, no preallocated pathfinding heaps. On the glibc builds, freed memory is returned to the OS once a minute.
  • zlib via zlib-rs for chunk storage and network compression.
  • Optional per-tick and per-minute metrics, configured in pumpkin.toml.

Gameplay parity with vanilla

  • Mobs: vanilla despawning, peaceful-mode discarding, fish and squid swimming, suffocation only in blocks vanilla suffocates in, leads dropped on death and kept across chunk reloads, skeleton weapon goals, chicken eggs laid at the chicken.
  • Fishing: a complete fishing bobber (throwing, hooking blocks, mobs and players, bites, catches and events).
  • Hoppers: eject in the direction they face after a reload, correct cooldown chaining, whole-stack pickup.
  • Items and inventories: bundles (merging, weights, clicks, quick move), consumable items consumed only when their use ends, recipe book placement limits, off-hand pickup merging, chest boat inventories that save their contents and loot table.
  • Blocks: big dripleaf, sea pickles, crops and stems, sugar cane, farmland trampling, scaffolding, banners on walls, snow and fire updates, observer timing.
  • Merchants: the out-of-stock flag on offers is applied.

Packaging

  • Default MOTD "PEX, an experimental fork of Pumpkin", and "Pumpkin Experimental" in the F3 screen.
  • A Pelican/Pterodactyl egg (egg-pex.json).

Downloads

File Platform
pumpkin-X64-Linux Linux x86-64, glibc 2.35+ (Ubuntu 22.04+, Debian 12+). Built from the same code as the benchmarked build.
pumpkin-X64-Linux-musl Linux x86-64, static: runs on any distribution, including Alpine
pumpkin-ARM64-Linux Linux ARM64, glibc 2.35+ (Raspberry Pi OS 12+, Ubuntu 22.04+ on ARM)
pumpkin-X64-Windows.exe Windows 10/11 x86-64

SHA256SUMS lists the checksums. All four were built with full release optimisation (fat LTO). The x86-64 builds were run and tested before release. The ARM64 and Windows builds were cross-compiled and their dependencies checked, but they weren't run on real hardware for this release. macOS, Android, ARM64 Windows and ARM64 musl builds will follow from the nightly workflow.

Compatibility

  • From Pumpkin: drop the binary in place. Existing worlds and pumpkin.toml work. Missing settings are added with their defaults. Chunks Pumpkin saved with LZ4 are rewritten with zlib the next time they're saved.
  • From vanilla or Paper: worlds load as they are, and PEX saves them in the vanilla format.
  • Plugins: Pumpkin plugins work as they do on Pumpkin. Bukkit, Paper, Fabric and Forge plugins are not supported.

Known issues

  • PEX sends about 45% more network data to players than Paper under the same load.
  • PEX's slowest ticks (95th percentile) are about as slow as Paper's, even though its average tick is half as long.
  • At some building spots, block placements are occasionally rejected for a minute or more.
  • The embedded GameTest pumpkin:summon_command_regression can't run: its structure file fails to load ("Palette entry 0 is missing 'Name'").
  • forceload doesn't load chunks unless a player is near them.

PEX Alpha Build

PEX Alpha Build Pre-release
Pre-release

Choose a tag to compare

@Conman1533 Conman1533 released this 15 Oct 20:10
d6615b1

Alpha build of the alpha branch for testing before it is merged into master.

From commit: d6615b1
Built on: 2026-10-15 19:56 UTC, release profile (fat LTO)

Only one binary: x86-64 Linux, glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+). For other platforms use the nightly or canary build.

Changes since master

  • feat(config): configure the tick metrics in pumpkin.toml
  • fix(entity): match vanilla fish flop, squid idle stop and chicken egg pitch
  • fix(entity): queue the skeleton weapon reassessment for the next tick
  • refactor(entity): match FishingHook.tick's hooked and gravity checks
  • fix(entity): save the chest boat inventory and loot table like the minecart
  • fix(entity): discard mobs that are not allowed in peaceful
  • perf(world): keep indexed palette storage until the palette shrinks to 8
  • fix(world): test the nibble palette layout and warn once per section
  • fix(world): retry failed region writes on every save and free their sectors
  • fix(world): refuse a chunk whose sector count overflows the region header
  • fix(world): run overdue scheduled ticks once an inactive chunk ticks again
  • refactor(block): encode the eyeblossom trail particle through the protocol
  • fix(block): compare hopper ticked game time when chaining cooldowns
  • fix(protocol): apply the merchant offer out-of-stock flag when decoding
  • fix(item): merge a bundle insert into any matching stack
  • chore(repo): point the README, CI and Dockerfile at PEX
  • fix(entity): drop the lead when a leashed mob dies
  • fix(entity): only consume items with a consumable component when their use ends
  • fix(world): reject a region chunk header cut off by the end of the file

Canary Build

Canary Build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 06:09

From commit: bbc4cd0
Generated on: 2026-10-14 19:42 UTC

Canary build of master for testing, built without LTO. The fully optimized daily build is the Nightly Build release.

PEX Nightly Build

PEX Nightly Build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Oct 07:22

From commit: 51af900
Generated on: 2026-10-14 09:20 UTC