Minecraft Version: 1.21.1 | Mod Loader: NeoForge
Converts decorative entities (vanilla armor stands and entities from other mods) into blocks.
Why does this mod exist?
Decorative entities (armor stands, graffiti, statues, ...) are ticked, tracked and synced by the server like any other entity, even though they never move. Large builds full of them can cost a lot of performance on both the server and the client.
This mod exists for two reasons:
Entity Blockifier has no required dependencies. Armor stands are always supported, and support for each mod below switches on automatically when that mod is installed, and stays out of the way when it isn't.
This mod is the successor to Immersive Painting Blocks. Worlds made with Immersive Painting Blocks can be loaded with Entity Blockifier (in place of it) and their converted graffiti is kept.
Converts Armor Stands into blocks. Pose, arms, base plate, size, scale, invisibility, gravity, name, armour and held items are all kept exactly as they were. This includes armor stands edited with mods like Armor Poser, which only change these vanilla settings.
Ideal for invisible armor stands used to hold an item in place as decoration.
The block is placed in an empty block near the armor stand (its own block if possible), so armor stands sunk into floors, walls or furniture can still be converted. Marker armor stands have no hitbox, so they can only be converted with /blockifier convert.
Converts Paintings, Glowing Paintings, Graffiti and Glowing Graffiti into blocks.
Paintings
Graffiti
Converts Straw Statues into blocks. Skin, pose, scale, model parts, armour and held items are all kept exactly as they were.
All commands need operator permission (level 2) and work relative to where they are run from.
| Command | Description |
|---|---|
/blockifier convert <distance> |
Converts every supported entity within distance blocks. |
/blockifier revert <distance> |
Turns every converted block within distance blocks back into its entity. |
/blockifier thickness <thickness> <distance> |
Sets the thickness of every converted graffiti block nearby. (Immersive Paintings only) |
/blockifier stats <distance> |
Shows a breakdown of nearby entities and block entities on the sidebar. |
The distance that converted blocks render from the player can be configured in the Client Config.
The default is 256 blocks and can be increased to 512 and decreased to 16. Decreasing will improve clientside FPS performance. Increasing will reduce clientside FPS performance.
Each supported mod has its own module under com.entityblockifier.compat, and is only ever touched from ModCompat behind a ModList.isLoaded check, so its classes are never loaded when the mod is missing.
To add support for another mod:
init() that registers its blocks/items and an EntityConverter with ConverterRegistry.ModCompat.init() behind an isLoaded check (and from ModCompatClient for any renderers).optional dependency in neoforge.mods.toml, and as compileOnly/localRuntime in build.gradle.neoforge:mod_loaded condition.For static entities (statues, armor stands, paintings, item frames, ...), a snapshot block can usually be used instead of writing a custom block and renderer: register one with SnapshotBlocks.registerBlock(...) and a SnapshotConverter for the entity type ids. The entity's full NBT is stored in the block, rendered on the client by the entity's own renderer, and restored exactly on sneak + use.