Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Place Anywhere Core
The foundational mod that allows Minecraft blocks to exist at arbitrary decimal positions and arbitrary 3D rotations, completely bypassing the vanilla integer grid. Rewrites chunk storage, collision, rendering, raycasting, neighbor updates, redstone, and NBT serialization from the ground up.
How It Works
Every free block is stored in a parallel data layer overlaid on vanilla chunks — a compact palette + Structure-of-Arrays format per 16³ section. Blocks carry a DecimalBlockPos (double-precision coordinates) and a quaternion rotation, enabling placement and rotation at any angle and any sub-block position.
The mod injects into 22 Minecraft internals via mixins to make free blocks fully interactive: they render with correct lighting and block entity models, collide with players and entities using OBB collision detection, respond to raycasting for mining and interaction, propagate and receive neighbor updates, conduct redstone signals, open container GUIs, and save/load persistently alongside vanilla chunk data.
Features
Arbitrary Decimal Placement
- Place blocks at any
(x, y, z)coordinate — no longer limited to integer positions. - Block positions are stored as double-precision values and survive save/load.
Quaternion-Based Rotation
- Every free block can be rotated to any orientation using quaternion math — not limited to vanilla's 4 or 24 rotation states.
- Rotation is applied to collision shapes, rendering, and hitboxes.
Full Collision System
- OBB (Oriented Bounding Box) collision for rotated blocks using SAT (Separating Axis Theorem).
- Binary search movement clipping — per-axis bisection with 10 iterations for ~0.001 block precision.
- Slope auto-step — entities can walk up sloped rotated surfaces (up to 0.6 blocks).
- Residual penetration resolution — entities pushed out of small overlaps to prevent clipping.
- Full GJK + EPA implementation available for complex convex shape collision.
- Correct velocity multiplier, jump velocity multiplier, and travel friction for walking on free blocks.
- Auto-jump support for free block obstacles.
Rendering
- Full baked model rendering with quaternion rotation, correct RenderLayer per block type, and lightmap sampling.
- Block entity rendering with a deserialization cache to avoid per-frame NBT overhead (chests, barrels, shulker boxes, beacons, etc.).
- Rendered in the
AFTER_TRANSLUCENTpass for correct transparency blending (Iris/Sodium compatible). - Block outline (selection box) rendered as a cyan OBB wireframe when looking at a free block.
- 64-block render distance from camera.
Redstone
- Free blocks emit and receive redstone signals — both weak and strong power.
- Redstone wire connections are recomputed for free block positions, including SIDE, UP, and direction-dependent connections (repeaters, observers).
- Full wire power propagation with decay, respecting vanilla wire-to-wire rules.
- Four injected redstone methods ensure compatibility with all redstone components.
Neighbor Updates
- Vanilla neighbor changes propagate to nearby free blocks and vice versa.
- Capture-restore pattern: free blocks are temporarily placed on the integer grid for state updates, then captured and restored — supporting doors, pistons, and other state-reactive blocks.
Interaction & GUI
- Left-click to mine free blocks (with particles and drops).
- Right-click to interact — open chests, use crafting tables, toggle doors/buttons/levers.
- Container GUI support — BlockEntities are temporarily placed on the grid for GUI opening, NBT is saved back on close.
- Falling block support — anvils get temporary support blocks to prevent falling during GUI use.
Commands
| Command | Description |
|---|---|
/placefree <x> <y> <z> <block[state]> [qx qy qz qw] |
Place a free block with optional rotation |
/removefree <x> <y> <z> |
Remove the nearest free block |
/listfree |
List all free blocks within 32 blocks |
/padebug info |
Show position and collision state |
/padebug obb |
List nearby rotated block OBB details |
/padebug ground |
Check if feet are above a free block |
/padebug test <x> <y> <z> <sx> <sy> <sz> |
Test AABB-OBB intersection |
/padebug movetest <dx> <dy> <dz> |
Simulate clipped movement |
Persistence & Networking
- NBT save format embedded in chunk data (
placeanywhere_freecompound), backward compatible with saves missing quaternion data. - S2C chunk sync — full chunk free block data sent to all tracking players on change and on join.
- C2S interaction packets — server-authoritative placement and interaction.
Architecture
- Storage: Per-chunk, per-section
FreeBlockLayerwith palette deduplication and SoA parallel arrays. Swap-remove deletion. Sparse allocation (only sections with free blocks consume memory). - 12 common mixins + 2 client mixins — minimal footprint, targeted injection.
- HUD mod compatible —
World.getBlockState()interception allows Jade and similar mods to read free block states.
Requires
- Fabric API
- Java 21+
Active Version
Only the 1.21.1 Fabric build is actively maintained. Legacy versions (1.18.2 through 1.20.6) for both Fabric and Forge are available as historical releases but will not receive further updates.
License
LGPL-3


