Compatibility
Minecraft: Java Edition
1.21–1.21.4
1.20.1–1.20.6
Platforms
Supported environments
Client and server
Tags
Creators
Details
PistonProPlus
Make Piston Great Again.
A server-side Fabric mod for Minecraft that enhances piston behavior with configurable push limits, advanced block pushing control, and NBT data preservation.
Features
- Configurable Push Limit -- Break the vanilla 12-block restriction, set any limit from 1 to 4096
- Infinite Push Mode -- Set the limit to a negative value to enable virtually unlimited pushing
- Type-Based Block Control -- Individually toggle whether command blocks and all other blocks can be pushed
- NBT Preservation -- Block entity data (e.g. command block commands) is retained through piston pushes
- Hot-Reload -- Change configuration on the fly with
/pistonproplus reload, no restart needed - Full i18n -- English and Chinese built-in; easy to extend
Commands
Push Limit
| Command | Permission | Description |
|---|---|---|
/pistonproplus pushlimit set <limit> |
OP (level 4) | Set piston push limit (1-4096). Use -1 for infinite mode. |
/pistonproplus pushlimit get |
None | Display the current push limit and mode. |
Type Limit
| Command | Permission | Description |
|---|---|---|
/pistonproplus typelimit commandblock [true/false] |
OP (level 4) | Toggle or query command block pushing. |
/pistonproplus typelimit all [true/false] |
OP (level 4) | Toggle or query all-blocks pushing (except MOVING_PISTON and command blocks). |
Omitting the boolean argument displays the current status (ON/OFF).
Utility
| Command | Permission | Description |
|---|---|---|
/pistonproplus help |
None | Show the help menu. |
/pistonproplus reload |
OP (level 2) | Hot-reload configuration from disk. |
Configuration
Settings are stored in config/pistonproplus.json and can be edited directly or via commands.
{
"maxPushLimit": 12,
"allowInfinitePush": false,
"allowPushCommandBlock": false,
"allowPushAllBlocks": false
}
| Key | Type | Default | Description |
|---|---|---|---|
maxPushLimit |
int | 12 | Maximum blocks a piston can push (1-4096) |
allowInfinitePush |
boolean | false | When true, push limit becomes 4096 |
allowPushCommandBlock |
boolean | false | Allow pistons to push command blocks (NBT preserved) |
allowPushAllBlocks |
boolean | false | Allow pistons to push nearly all blocks (except MOVING_PISTON) |
Warnings
- MOVING_PISTON (block 36) can never be pushed. This is a hard safety constraint.
- Command blocks may lose NBT data in edge cases; the mod preserves NBT through capture/restore, but complex setups should be tested.
- Pushing all blocks may cause unexpected behavior. Attached blocks (redstone dust, torches, etc.) on slime blocks can behave unexpectedly during large pushes.
- Very high push limits may cause server lag. Test incrementally before deploying on production servers.
License
This project is licensed under the GNU General Public License v3.0.
Links
This mod is not affiliated with or endorsed by Mojang Studios. Minecraft is a trademark of Mojang Studios.


