UI Reference
Reference notes and patterns for CSL UI drawing.
Core principles
Quick start: a simple HUD button
Player :: class : Player_Base {
ao_late_update :: method(dt: float) {
if this.is_local_or_server() {
draw_my_hud(this);
}
}
}
draw_my_hud :: proc(player: Player) {
rect := UI.get_safe_screen_rect()
.bottom_right_rect()
.grow(40, 150, 40, 150)
.offset(-50, 50);
bs := UI.default_button_settings();
ts := UI.default_text_settings();
if UI.button(rect, bs, ts, "Action").clicked {
log_info("action from %", {player.get_username()});
}
}Basic drawing
Quads and images
Text
Layout: start from rects
Use cut for layout
Auto-scaling and unscaled rects
Buttons
Button sprite rules
Modals
UI state management
IDs for repeated elements
Common sizes
Best practices
Last updated