Fixed Pistons
Fixed Pistons is a server-side Fabric mod that improves Minecraft pistons while keeping them vanilla-looking.
The mod lets normal pistons and sticky pistons carry simple push data directly on the item or placed block. This makes it possible to create stronger pistons with commands, maps, datapacks, or other mods without replacing Minecraft’s vanilla piston blocks.
The goal is to make pistons work more like they should: cleaner, more flexible, and easier for other mods to build on.
What It Does
Fixed Pistons adds custom piston data for:
- Normal pistons
- Sticky pistons
- Piston items
- Placed piston blocks
/give
/setblock
/fill
It also fixes custom piston data so the piston keeps its push strength after extending and retracting, instead of only working once.
Features
- Custom piston push strength
- Push data stored on piston items
- Push data stored on placed piston blocks
- Data kept when breaking and replacing pistons
- Cleaner
/give, /setblock, and /fill support
- Tooltip showing piston push strength
- Optional support for moving normally immovable blocks
- Optional support for moving indestructible blocks
- Server-side design
Default Values
Vanilla piston behavior:
strength:12
move_immovable:false
move_indestructible:false
Piston Items
Normal piston with Fixed Pistons data:
/give @p minecraft:piston[push={strength:12,move_immovable:false,move_indestructible:false}]
Sticky piston with Fixed Pistons data:
/give @p minecraft:sticky_piston[push={strength:12,move_immovable:false,move_indestructible:false}]
Stronger piston:
/give @p minecraft:piston[push={strength:24,move_immovable:false,move_indestructible:false}]
When placed, the piston block keeps its data. If broken, the dropped item keeps the same data.
Setblock
Place a piston with custom push data:
/setblock ~ ~ ~ minecraft:piston[facing=north,extended=false,strength:12,move_immovable:false,move_indestructible:false]
Fill
Place multiple pistons with custom push data:
/fill ~ ~ ~ ~4 ~ ~ minecraft:sticky_piston[facing=east,extended=false,strength:12,move_immovable:false,move_indestructible:false]
Special Block Options
Move blocks that vanilla pistons normally cannot move, such as obsidian:
/give @p minecraft:piston[push={strength:12,move_immovable:true,move_indestructible:false}]
Move indestructible blocks, such as bedrock:
/give @p minecraft:piston[push={strength:12,move_immovable:false,move_indestructible:true}]
Use both options:
/give @p minecraft:sticky_piston[push={strength:12,move_immovable:true,move_indestructible:true}]
Added Data
For /give:
push: Fixed Pistons item data container.
strength: max blocks the piston can push. Vanilla default is 12.
move_immovable: lets pistons move blocks that vanilla marks as immovable, such as obsidian.
move_indestructible: lets pistons move unbreakable blocks, such as bedrock.
For /setblock and /fill:
strength
move_immovable
move_indestructible
Compatibility
Fixed Pistons is useful for:
- Survival servers
- Technical servers
- Map makers
- Datapack creators
- Mod developers
- Mods that want stronger pistons without replacing vanilla pistons
Other mods can use Fixed Pistons as a small piston behavior layer by creating vanilla piston items or blocks with Fixed Pistons push data attached.