Skip to main content
Version: 26.1.x

Renderers & Model Layers

Three registries handle the rendering of custom entities and block entities. Register all of them from client-side code.

Entity renderers

dev.architectury.registry.client.level.entity.EntityRendererRegistry

Bind an EntityRenderer to your entity type:

EntityRendererRegistry.register(MyMod.MY_ENTITY, MyEntityRenderer::new);

The first argument is your entity type supplier (the RegistrySupplier you got when registering the entity); the second is an EntityRendererProvider<T>.

Model layers

dev.architectury.registry.client.level.entity.EntityModelLayerRegistry

Register a LayerDefinition for a ModelLayerLocation, so the model's geometry is available to your renderer:

public static final ModelLayerLocation MY_LAYER =
new ModelLayerLocation(Identifier.fromNamespaceAndPath(MyMod.MOD_ID, "my_entity"), "main");

EntityModelLayerRegistry.register(MY_LAYER, MyEntityModel::createBodyLayer);

Block entity renderers

dev.architectury.registry.client.rendering.BlockEntityRendererRegistry

Bind a BlockEntityRenderer to your block entity type:

BlockEntityRendererRegistry.register(MyMod.MY_BLOCK_ENTITY.get(), MyBlockEntityRenderer::new);