Skip to content

qrender

qloak edited this page May 13, 2026 · 1 revision

qRender

HUD overlays, widgets, and particle helpers.

HUD Overlay

Register a HUD renderer during mod init:

HudOverlay.init();   // call once
HudOverlay.register((graphics, delta) -> {
    graphics.drawString(Minecraft.getInstance().font,
        Component.literal("Hello HUD"), 4, 4, 0xFFFFFF);
});

Widgets

Widgets are simple. Build a tree, render it.

QPanel panel = new QPanel(0, 0, 120, 50).background(0xCC000000);
panel.addChild(new QLabel(5, 5, Component.literal("Title")).color(0xFFAA55));
panel.addChild(new QProgressBar(5, 20, 110, 8).progress(0.75f));

// position panel on screen
HudAnchor a = HudAnchor.topRight(8, 8);
panel.setPosition(a.resolveX(panel.width()), a.resolveY(panel.height()));
panel.render(graphics, mouseX, mouseY, 0);
Widget What it does
QLabel Text with color and shadow
QProgressBar Horizontal bar, 0..1
QButton Clickable with hover state
QPanel Container with background, offsets children

QPanel uses pose translation so children are positioned relative to the panel origin. Don't set children to screen coordinates.

Anchors

HudAnchor.topLeft(8, 8);
HudAnchor.topRight(8, 8);
HudAnchor.bottomLeft(8, 8);
HudAnchor.bottomRight(8, 8);
HudAnchor.topCenter(0, 8);

Particles

// client-side burst
ParticleHelper.spawnBurst(level, ParticleTypes.PORTAL, centerVec3, spread, count);

// server-side (sent to all players)
ParticleHelper.spawn(level, ParticleTypes.FLAME, x, y, z, vx, vy, vz, count);

spawnBurst is client-only. spawn auto-detects side.

Clone this wiki locally