Shared Slate UI libraryKBVEUI
A shared Slate UI component library for KBVE Unreal games — game-agnostic Core + Slate visual primitives like movable frames, settings rows, hotbar, slots, tooltips, info panels, an equipment paper-doll, a loading panel, and a dev overlay HUD.
Core + Slate, dependency-light
The base module stays Core + Slate so the primitives are game-agnostic. Domain-aware UI — Supabase auth, irc chat — composes on top via KBVEUIAuth and KBVEUIChat, pulling in Engine, HTTP, and KBVESupabase only when a game links them.
- State —
FKBVEUIStatepanel-flag masks. - Dev HUD —
SKBVEDevOverlayFPS/ms.
What it gives you
Features
Visual primitives
Movable frames, settings rows (toggle / slider / combo), hotbar, slots, tooltips, and info panels.
Equipment & loading panels
SKBVEEquipmentPanel paper-doll (11 generic equip slots) and SKBVELoadingPanel full-screen loader.
UI state helpers
FKBVEUIState tracks open panels and derives cursor / movement / camera policy without re-rolling the bitfield.
Composable auth & chat
KBVEUIAuth (Supabase login / account) and KBVEUIChat (irc-gateway window) layer on the pure base.
What it ships
Overview
Shared Slate UI component library for KBVE Unreal games — game-agnostic visual
primitives (Core + Slate only): movable frames, the settings frame + reusable
settings rows (toggle / slider / combo), hotbar, slots, tooltips, info panels,
the SKBVEEquipmentPanel paper-doll (11 generic equip slots via EKBVEEquipSlot),
the SKBVELoadingPanel full-screen loader (InitialMessage + UnitLabel args,
SetProgress/SetMessage), and the SKBVEDevOverlay debug HUD (self-computed
FPS/ms; entity-count and ping fed via FKBVEDevOverlayIntProvider delegates so the
widget needs no Engine or Mass dep — the game supplies the numbers).
Also holds UI state — FKBVEUIState (panel-flag set + cursor/movement/camera
policy masks + Has/Set/Diff/NeedsCursor/BlocksMovement helpers) and
KBVEUIFlag common flag bits — so a controller tracks which panels are open and
derives input/cursor mode without re-rolling the bitfield. Stays Core+Slate;
domain-aware UI (item-aware inventory, Supabase auth/chat) composes on top.
Layering
Modules
KBVEUI— base library, Core + Slate only. The agnostic visual primitives and UI state above.KBVEUIAuth— Supabase auth surface (SKBVELoginWidgetemail/password + Discord/GitHub/Google OAuth + guest,SKBVEAccountPanelnick/avatar/sign-out). DrivesUKBVESupabaseSubsystem; status/profile pushed in via setters so the game owns the auth event wiring. Login title is aSLATE_ARGUMENT. This module pulls in Engine + HTTP + KBVESupabase, so the baseKBVEUImodule stays pure — linkKBVEUIAuthonly when a game wants the Supabase UI. Hencedependency_plugins: packages/unreal/KBVESupabase.KBVEUIChat— irc-gateway chat window (SKBVEChatPanel): movable frame, channel tabs, scrollback, slash commands, input history. Dispatches throughUKBVESupabaseSubsystem’s chat object; inbound lines/state are pushed in viaOnChatLine(FKBVEChatLineView)/OnChatStateChanged(bool)so the game owns the event-bus wiring, and geometry persistence is delegated out (OnSaveGeometry/OnLoadGeometry) — no game settings type leaks in. Shares the sameKBVESupabasedependency asKBVEUIAuth.
Plugin source ships via its own PR; this entry wires it into the build/release pipeline alongside the other UE plugins.
Questions
Frequently asked
What is KBVEUI?
KBVEUI is a shared Slate UI component library for KBVE Unreal games, providing game-agnostic Core + Slate visual primitives — movable frames, settings frame and rows, hotbar, slots, tooltips, info panels, an equipment paper-doll, a loading panel, and a dev overlay HUD.
What modules does KBVEUI ship?
It ships KBVEUI (the pure Core + Slate base library and UI state), KBVEUIAuth (a Supabase auth surface with login and account widgets), and KBVEUIChat (an irc-gateway chat window), keeping the base module free of Engine and HTTP dependencies.
Why is KBVEUI kept to Core and Slate only?
Keeping the base module Core + Slate makes the primitives game-agnostic and dependency-light. Domain-aware UI such as Supabase auth or chat composes on top via KBVEUIAuth and KBVEUIChat, which pull in Engine, HTTP, and KBVESupabase only when a game links them.
