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.
Fixed Pistons adds custom piston data for:
/give/setblock/fillIt also fixes custom piston data so the piston keeps its push strength after extending and retracting, instead of only working once.
/give, /setblock, and /fill supportVanilla piston behavior:
strength:12
move_immovable:false
move_indestructible:false
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.
Place a piston with custom push data:
/setblock ~ ~ ~ minecraft:piston[facing=north,extended=false,strength:12,move_immovable:false,move_indestructible:false]
Place multiple pistons with custom push data:
/fill ~ ~ ~ ~4 ~ ~ minecraft:sticky_piston[facing=east,extended=false,strength:12,move_immovable:false,move_indestructible:false]
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}]
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:
strengthmove_immovablemove_indestructibleFixed Pistons is useful for:
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.