Block Manipulator
By Luved · Minecraft 1.21.1 · NeoForge


Multiplayer and recovery
Edits are validated by the server and synchronized to players. Operators can use `/blockmanipulator list` and `/blockmanipulator inspect X Y Z` to locate and inspect edits. The audit log records accepted edits and their authors.
Need to troubleshoot a build? `/blockmanipulator mode logical` temporarily disables transformations in the current dimension without deleting saved edits. `/blockmanipulator mode transformed` restores them.

Know the limits and how it works
Redstone, neighboring-block updates, block support, fluid logic and other internal mechanics still use the original grid position. For example, a visually moved lever powers its original logical neighbors.

After moving it, it still powers the redstone!

Rotated collision uses conservative axis-aligned bounds, so empty space near angled corners may still block movement.
Transformations do not follow blocks moved by pistons or converted into Create contraptions. Multi-part blocks are edited per position. Arbitrary mod renderers, shaders and protection systems are not guaranteed compatible;
WHEN INSTALLING, test your setup in a backup world. This is not a suggestion.
Compability
This mod is very invasive with rendering, shaders and mixins, but should work with mods like "Flywheel", "Iris" and most shaders. Again, TEST your setup.
| Component | Tested version | What it supports |
|---|---|---|
| Vanilla renderer | Minecraft 1.21.1 | Transformed block models, block entities, breaking overlay, particles, collision, selection and lighting |
| Sodium | 0.8.13 for NeoForge 1.21.1 | Chunk rendering, face visibility/occlusion, and lighting handling for transformed blocks |
| Lithium | 0.15.4 for NeoForge 1.21.1 | Movement sweeps and cached ground-support collision near transformed blocks |
| Iris | 1.8.14-beta.1 for NeoForge 1.21.1 | Re-renders transformed geometry in the shader shadow pass |
| Flywheel | 1.0.6 | Transformed block entities leave Flywheel instancing and use their normal renderer instead |
| Create | 6.0.10 | Works through Flywheel fallback for static placed blocks |
Installation and settings
Requires Minecraft 1.21.1, Java 21 and NeoForge 21.1.248 or newer in the 21.1 series. Install the same version on clients and server.
World settings are stored in `serverconfig/blockmanipulator-server.toml`, including the per-chunk transformation limit (default 256), survival editing, and transformed contact effects. Server settings may require an active world and appropriate access in the configuration menu.
Lag and performance
This has been tested extensively with not much issue, being currently used in my 140+ mods hardcore forever world.
However, SOME blocks (with many complex shapes and collision slopes such as some modded ones, like a Backpack from Sophisticated Backpacks when placed) can produce lag when rotated. This is a WIP. If you're using this in a server, I strongly recommend you disable the "Survival players can edit blocks with the tool" in server.toml and keep it as a server admin only tool.
Configs:

Disclaimer and AI Usage
This mod was built using GPT 6 Astra on my Plus subscription and therefore I dedicate it to the public domain, do whatever you want with it. I estimate It has costed me around 3 dollars from my weekly quota.
I (Luved) am human and have tested it to the best of my ability, and I'm playing with it in my 1.21.1 forever hardcore world with over 140+ mods.
If you're an experienced java programmer, feel free to decompile and comment on Astra's code if you see any improvements.