Skip to main content
PrismaUI F4V1-V12 API

PrismaUI F4

HTML, CSS, and JavaScript UI framework for Fallout 4

Ultralight 1.4.0 in-process. Native F4SE integration. Verified game-thread dispatch. Focused controller actions.

Current architecture

Build local web assets. PrismaUI renders them in Fallout 4 and exposes a versioned native bridge for lifecycle, focus, engine-thread work, input, controller actions, prompts, translations and game UI integration.

You writeHTML / CSS / JSLocal static assets owned by your mod.
Renders viaPrismaUI F4Ultralight 1.4.0 in-process with D3D11 GPU presentation and controlled CPU fallback.
Integrates withFallout 4 / F4SEFocus, input, controller routing and native engine handoff.
Current desktop API

V1-V12

One canonical PrismaUI_F4_API.h header contains V1 through V12. V11 adds verified Fallout window-thread dispatch and V12 adds focused-view controller actions.

Controller support

Framework-owned actions

Bind A/B/X/Y, shoulders, triggers, stick clicks, Start/Back, and D-pad actions to the exact focused Prisma view without a competing raw controller sink.

In-process runtime

Ultralight 1.4.0

PrismaUI runs Ultralight inside Fallout 4 with the rewritten D3D11 GPU-accelerated presentation path and a controlled CPU BitmapSurface fallback.

Web authoring

HTML / CSS / JavaScript

Use vanilla web assets or a compiled React, Vue, or Svelte build. Bundle required dependencies locally with your mod.

Runs in the game world

Build overlays and panels without editing Scaleform SWFs.

PrismaUI rendering an HTML interface in Fallout 4

Start with V12

Include the single PrismaUI_F4_API.h SDK header, request the exact runtime interface, null-check it, create the view, then bind controller actions after DOM-ready.

#include "PrismaUI_F4_API.h"

static PRISMA_UI_API::IVPrismaUI12* g_api = nullptr;
static PrismaView g_view = 0;

static void OnDomReady(PrismaView view) {
g_api->BindControllerAction(view, "X", "panel.secondary");
g_api->BindControllerAction(view, "LB", "panel.previous");
g_api->BindControllerAction(view, "RB", "panel.next");
}

// On kGameDataReady:
g_api = PRISMA_UI_API::RequestPluginAPI<PRISMA_UI_API::IVPrismaUI12>();
if (!g_api) return;

// Create your view after the game is ready:
g_view = g_api->CreateView("MyPlugin/index.html", OnDomReady);
Read the controller support guide →

Developer reference and Prisma MCP

The public repository carries the canonical V1-V12 SDK header, per-method reference pages, current controller and threading guides, and prisma-mcp so AI tooling can query the same verified API contract instead of guessing from older PrismaUI material.