Menu

Guidefor players4 min read

EntityCulling and MoreCulling: modded blocks turn invisible

Culling mods approximate block shapes to decide what not to draw. Modded contraptions and multiblocks break that and vanish. The config keys that fix each mod.

The symptom, in two flavours

Install EntityCulling and your Create trains go invisible the moment they assemble. Install MoreCulling and the world develops holes, or a modded block renders as a hollow frame with nothing inside it.

These look like different bugs. They are the same bug wearing two hats. Both mods decide what not to draw by comparing a cheap approximation of an object's shape against what the camera can see, and modded content routinely violates the assumption baked into that approximation.

EntityCulling: the box is not the model

EntityCulling raytraces to an axis aligned bounding box. Its CullTask fetches that box through NMSCullingHelper.getCullingBox(entity), which returns entity.getBoundingBoxForCulling(), then asks culling.isAABBVisible(min, max, camera) whether any ray reaches it. If nothing does, the entity is not drawn.

For a cow that is fine. The box and the cow are roughly the same size. For a Create contraption it is not, because the contraption entity carries a small hitbox and a rendered model that can be tens of blocks across. The model is drawn far outside the box the mod is testing, so the mod concludes nothing is visible while most of the screen should be full of train.

That is exactly what the reports describe. Issue 76, filed in July 2022 and cross posted from Create, states that "Trains in Create 0.5 are invisible when they are created if Entity Culling is present." Issue 84 adds the partial version: "Different parts of the train get culled, resulting in different parts of it getting stretched all around, making the train incredibly confusing to use."

The same mismatch hits block entities. Issue 51, "RenderBoundingBox of BlockEntity is ignored for culling", reports that EntityCulling treated every block entity as a single block box regardless of what the block entity actually renders, which breaks any multiblock where one master block draws the whole structure. ProjectRed's lit lamps hit it from the other direction in issue 54: "Their lit lamps have what seems to be an entity of 'light' that surrounds the block that is incorrectly determined as out of the players' viewport." And in July 2026, issue 313 reported CC: Tweaked monitors losing their display quad when the lower left block leaves the frustum, leaving "a hollow frame, as if the display quad had been culled."

Fixing EntityCulling

Edit config/entityculling.json. There are three lists and they are not interchangeable: entityWhitelist, blockEntityWhitelist and tickCullingWhitelist. Add the offending registry ID to the one that matches what the object actually is.

The default config already carries the well known offenders, including create:contraption, create:carriage_contraption, create:gantry_contraption and create:stationary_contraption. Two more arrived through pull request 304, merged in June 2026, titled "Update default config to not break Create Big Cannons entities" and opened by Create Big Cannons' own author, adding createbigcannons:pitch_contraption and createbigcannons:cannon_carriage. That pull request is the cleanest evidence of the mechanism, because it includes screenshots of the box next to the model it is supposed to represent.

Wildcards are not supported. Entries are looked up as exact registry IDs and quietly discarded if they do not resolve, so there is no error to tell you your entry did nothing.

MoreCulling: a non-solid block treated as a full cube

MoreCulling's version of the mistake happens at block shape level. Issue 464, filed on 29 July 2026, pinned it precisely: when a model declares neither cullshapes nor useModelShape, the fallback calls getOcclusionShape without re-checking canOcclude first. As the report puts it, getOcclusionShape "defaults to state.getShape(...), and Block's default shape is a full cube", so "for canOcclude == false blocks without a getShape override the fallback manufactures a full-block cull shape."

The consequence is that a modded block which explicitly declared itself non-solid gets treated as a solid cube, and every neighbouring face touching it is culled. That is where the holes in the world come from. You are not seeing the modded block disappear, you are seeing the blocks around it disappear.

Fixing MoreCulling

Update first. Issue 464 was fixed in commit ade203b, contained in tags v1.7.3 and v1.8.1.

If you cannot update, set useOnModdedBlocksByDefault to false. It defaults to true and seeds a per-mod modCompatibility map, so turning it off keeps the optimisation on vanilla blocks while handing modded blocks back to Minecraft's own culling.

Not every MoreCulling report is this bug. Issue 465 covers backpack models from Sophisticated Backpacks and Traveler's Backpack vanishing depending on camera direction, and the fix there is the item frame options: useCustomItemFrameRenderer, itemFrameMapCulling, useItemFrameLOD and useItemFrame3FaceCulling. Issue 455 reports Farmer's Delight bamboo baskets being culled wrongly on 1.21.1 NeoForge and is still open.

The general rule

If something modded vanishes after you install an optimisation mod, do not start by turning the mod off. Work out which approximation it is using, then check whether the thing that disappeared honours it. An entity whose model is much larger than its hitbox, and a block that is transparent but does not describe its own shape, are the two shapes of content that break culling, and both mods give you a per-object escape hatch rather than an all or nothing switch.

Frequently asked

Does the EntityCulling whitelist support wildcards?

No. Every entry is matched as an exact registry ID. On the first client tick EntityCulling walks each list and looks the string up with BuiltInRegistries.ENTITY_TYPE.getOptional or BuiltInRegistries.BLOCK_ENTITY_TYPE.getOptional, then adds the result only if it is present. There is no pattern matching, so create:* will not whitelist every Create entity. Worse, an ID that does not resolve is dropped in silence, with no warning in the log, so a typo and a wildcard both look identical to a config that simply does nothing.

Which of the three EntityCulling lists should I put my ID in?

It depends on what the thing is. entityWhitelist is for entities and stops them being culled from rendering. blockEntityWhitelist is for block entities and takes block entity IDs, not entity IDs. tickCullingWhitelist stops an entity having its client tick skipped, which is what fixes animations that freeze or desync rather than things that vanish outright. Putting an entity ID into the block entity list is the most common mistake and it does nothing at all, because the lookup goes against a different registry.

Was the MoreCulling full-cube bug ever fixed?

Yes. Issue 464 was filed on 29 July 2026 and fixed in commit ade203b, whose message reads "use vanilla shapes if getOcclusionShape isn't overriden and block cant cull Fixes: #464". That commit is contained in tags v1.7.3 and v1.8.1. If you are seeing holes in the world on an older build, updating MoreCulling is the real fix and the config toggle is only a stopgap.

Why does turning off useOnModdedBlocksByDefault help?

It flips the default answer for whether MoreCulling applies its own culling logic to blocks from a given mod. The value seeds a per-mod map called modCompatibility, which ships with minecraft set to true. Setting useOnModdedBlocksByDefault to false means vanilla blocks keep the optimisation while modded blocks fall back to Minecraft's own culling, so a modded block with a badly behaved shape can no longer make its neighbours disappear.

Is this the mods being buggy, or the modded blocks being buggy?

Neither side is clearly at fault, which is why these reports stay open for years. A block that calls noOcclusion() and never overrides getShape is perfectly legal in vanilla, because vanilla never asks it that question in that order. An entity with a one block hitbox and a forty block model is perfectly legal too. Both mods are making an assumption that holds for every vanilla case and fails for a long tail of modded ones.

Do I have to choose between the optimisation and correct rendering?

Usually not. Both mods are built around per-object opt-outs precisely because the general case works and specific objects do not. Whitelisting a handful of contraption entities or excluding one misbehaving mod's blocks costs almost nothing in frame time, because the vast majority of the objects in a loaded world are still being culled normally.

Space NodePartner

Host Minecraft servers

Deploy a Minecraft server in under a minute. Installed, tuned and ready to play.

  • Instant deployment
  • Automatic updates
  • Ryzen CPUs
  • NVMe SSD
Deploy a serverFrom €0.90 per GB

Referenced on this site

Last reviewed 2026-08-06. Version data on this site updates automatically; this guide is reviewed by hand when the ecosystem changes.

Is this information wrong or missing something? .