Repository navigation
PEX 1.2.0
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 (
.pumpfiles). Existing servers keep the format set in theirpumpkin.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(oranvilorlinear). 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_placeoption, which is now ignored and can be removed frompumpkin.toml. - Saves use the 26.3 world data version (Pumpkin-MC#4094). Failures to replace
level.datare 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
/fillrun 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.tomlwritten by PEX 1.0 or 1.1 setstype = "anvil"under[world.chunk], so your world stays in Anvil format. If you removed that line, or you switch it topump, the world is converted on the next start and the Anvil files are deleted. Back up the world first.--convert-world anvilconverts 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_regressionGameTest fixture.
Thanks to everyone who play-tested alpha.baconmc.net.
Full changelog: v1.1.0...v1.2.0