Skip to content

Client Registration

Moth edited this page Aug 9, 2026 · 4 revisions

Client Registration

Butterfly API provides ClientRegistrar for common client-side registration tasks.

Client registration must only be performed on the physical client.

Getting the Client Registrar

From your ModContext:

MOD.client();

This should normally be used from your Fabric client initializer.

public class ExampleModClient implements ClientModInitializer {

@Override
public void onInitializeClient() {
    ClientRegistrar client = ExampleMod.MOD.client();
}

}

Calling MOD.client() on a dedicated server will throw an IllegalStateException.

Block Render Layers Cutout MOD.cutout(EXAMPLE_BLOCK);

Multiple blocks can be supplied:

MOD.cutout( EXAMPLE_BLOCK, SECOND_BLOCK, THIRD_BLOCK ); Cutout Mipped MOD.cutoutMipped(EXAMPLE_BLOCK);

In the current 1.21.11 implementation, cutoutMipped(...) uses the same CUTOUT render layer as cutout(...).

Translucent MOD.translucent(EXAMPLE_BLOCK); Entity Renderers MOD.entityRenderer( EXAMPLE_ENTITY, ExampleEntityRenderer::new );

The equivalent ClientRegistrar method is:

MOD.client().entity(...); Block Entity Renderers MOD.blockEntityRenderer( EXAMPLE_BLOCK_ENTITY, ExampleBlockEntityRenderer::new );

The equivalent ClientRegistrar method is:

MOD.client().blockEntity(...); Screens

Register a handled screen with:

MOD.screen( EXAMPLE_SCREEN_HANDLER, ExampleScreen::new ); Model Layers MOD.modelLayer( EXAMPLE_MODEL_LAYER, ExampleModel::getTexturedModelData ); Particle Factories MOD.particleFactory( EXAMPLE_PARTICLE, ExampleParticle.Factory::new ); Related Pages Mod Context Registration

Clone this wiki locally