Web content on 3D surfacesKBVEWebSurface
A game-agnostic Unreal Engine plugin that renders interactive web content onto world surfaces — flat panels, curved or holographic meshes, and drop-in terminal or kiosk actors — built for reuse across chuckrpg, future KBVE titles, and external Fab distribution.
CEF is expensive
The plugin ships a per-surface frame-rate cap, offscreen pause, snapshot fallback at distance, and a UKBVEWebSurfacePool LRU cap on concurrent live surfaces.
- Good for — marketplaces, social screens, admin terminals, billboards.
- Not for — combat HUDs, per-NPC labels, hundreds of objects.
What it gives you
Features
Flat panel
UKBVEWebSurfaceComponent wraps a UWidgetComponent with an embedded UMG WebBrowser.
Curved / holographic
UKBVEWebRenderSurfaceComponent pipes the browser through a render target onto an arbitrary mesh + material.
Actor
AKBVEWebSurfaceActor ships as a drop-in for terminals and kiosks.
Input
UKBVEWebInputRouter maps player line traces to widget-pixel coordinates. Hit UVs come from FindCollisionUV, so Support UV From Hit Results must be enabled on the project.
Bridge
UKBVEWebBridge exposes a typed message bus between embedded JS and Blueprint/C++. Pages call window.kbveBridge.send(channel, payload); the bridge re-broadcasts via OnMessage.
Performance
Per-surface frame-rate cap, offscreen pause, snapshot fallback at distance, and a UKBVEWebSurfacePool LRU cap on concurrent live surfaces.
Backend
The default backend wraps Unreal's stock UWebBrowser (CEF). Alternate backends (Ultralight, WebUI) plug in via IKBVEWebBackend as separate plugins.
Fit & anti-fit
When to use it
Use cases
Section titled “Use cases”- Marketplace / auction house
- Account, guild, social screens
- Admin and debug terminals
- Patch notes, news boards
- In-world interactive billboards and kiosks
Anti-use cases
Section titled “Anti-use cases”- Combat HUD, health bars, minimap — use Slate/UMG.
- Per-NPC labels, shop signs, hundreds of world objects — too expensive per surface.
Questions
Frequently asked
What is the KBVEWebSurface plugin?
KBVEWebSurface is a game-agnostic Unreal Engine plugin that renders interactive web content onto world surfaces — flat panels, curved or holographic meshes, and drop-in terminal or kiosk actors — for reuse across chuckrpg, future KBVE titles, and external Fab distribution.
How does input work on a web surface?
UKBVEWebInputRouter maps player line traces to widget-pixel coordinates. Hit UVs come from FindCollisionUV, so the project must have Support UV From Hit Results enabled.
When should you not use KBVEWebSurface?
Avoid it for combat HUDs, health bars, and minimaps — use Slate or UMG instead — and for per-NPC labels, shop signs, or hundreds of world objects, where a CEF surface per object is too expensive.
