Skip to main content

What is PrismaUI F4?

PrismaUI F4 is a native F4SE UI framework that lets Fallout 4 mods build interfaces with HTML, CSS, and JavaScript instead of authoring Scaleform SWFs.

The current public framework release is 2.2.0. It runs Ultralight 1.4.0 in-process and presents views through the framework's D3D11 compositor. The older legacy-runtime host/subprocess architecture is retired and is not part of the production package.

Why it exists​

Fallout 4's built-in menus use Scaleform. Editing those menus usually means working with SWF files and ActionScript. PrismaUI gives mod authors another path: build the new interface as ordinary web assets, then let an F4SE plugin control its lifecycle through a versioned C++ API.

You can still suppress selected vanilla HUD widgets or menus when replacing them, but PrismaUI does not require you to modify the original SWF files.

How it works​

  1. Build the view. Put your HTML/CSS/JS under your mod's Data/PrismaUI_F4/views/<PluginName>/ directory.
  2. Create it from C++. Request a PrismaUI interface and call CreateView("<PluginName>/index.html").
  3. Control its lifecycle. Use Show, Hide, Focus, Unfocus, Invoke, InteropCall, and listener APIs as needed.
  4. Let PrismaUI own the browser/runtime boundary. PrismaUI_F4.dll owns Ultralight, rendering, input routing, focus, and composition inside the Fallout 4 process.
Your HTML/CSS/JS
|
v
PrismaUI_F4.dll
Ultralight 1.4.0
view lifecycle + JS bridge
input/focus routing
validated D3D11 GPU presentation with CPU BitmapSurface fallback
|
v
Fallout 4 frame

There is no retired host component, previous browser runtime subprocess, shared legacy-runtime shell, or retired runtime library in the current release.

Supported desktop runtimes​

The current desktop provider supports:

  • Fallout 4 1.10.163 (OG)
  • Fallout 4 1.11.137 and later in the AE family when matching Address Library data is available

The intermediate 1.10.980-1.10.984 Next-Gen line is deliberately rejected by the framework. Do not advertise it as a supported runtime.

Fallout 4 VR uses a separate provider DLL and separate release artifact. PrismaUI_F4 2.2.0 publishes a dedicated VR package; VR features remain capability-gated and are not implied by desktop API availability.

What you get​

Versioned C++ API​

For new integrations, the preferred PrismaUI_F4_Modern_API.h surface exposes independently versioned Core, Controller, GameThread, Meta, View, Interop, Localization, Render, Input, and Menu tables. The stable compatibility header continues to expose IVPrismaUI1 through IVPrismaUI12.

auto* api = PRISMA_UI_API::RequestPluginAPI<PRISMA_UI_API::IVPrismaUI10>();
if (!api) {
return;
}

Existing numbered-interface consumers can continue using capability discovery where provided. For optional V10 input-region behavior, check the capability before depending on it:

if (PRISMA_UI_API::HasPrismaCapability(PRISMA_UI_API::PrismaCapability::InputRegions)) {
// FocusOverlay / SetInputRegions are available.
}

C++ and JavaScript bridge​

Push data into the view with InteropCall or Invoke, and receive events with RegisterJSListener or BindUIEvent.

g_api->InteropCall(view, "updateHealth", jsonPayload);

g_api->RegisterJSListener(view, "onClose", [](const char*) {
g_api->Hide(g_view);
});

Focus and panel coordination​

The API includes focus management, view roles, focused-view lookup, panel visibility checks, and V10 input-region support. This lets multiple PrismaUI mods coordinate instead of blindly opening interactive panels on top of one another.

Fallout integration​

The framework provides APIs for translations, controller prompts, selected vanilla UI suppression, view health, offscreen rendering, and other Fallout-specific UI tasks. Some calls have runtime-specific limits, so read the method documentation instead of assuming every feature is identical across OG and AE.

Web-platform expectations​

Ultralight is not previous browser runtime. Do not rely on old documentation that promised the complete previous browser runtime/Electron feature set.

For the current Ultralight runtime:

  • Standard HTML/CSS/JavaScript is the intended authoring model.
  • React, Vue, Svelte, and similar frameworks can be used when compiled/bundled into compatible static assets.
  • Self-host your JavaScript, styles, fonts, and other required dependencies with the mod.
  • Worker-style browser APIs are blocked by the Prisma sandbox.
  • Remote networking from the page is not a general-purpose plugin networking interface. Put required HTTP/WebSocket work in C++ and send results to the view through the Prisma bridge.
  • Arbitrary file:// access is not a supported content path.
  • The shipping renderer can use the validated D3D11 GPU-accelerated Ultralight path and falls back to CPU BitmapSurface rendering when acceleration is not eligible.

See Networking and Limitations.

What PrismaUI is not​

  • Not a Scaleform editor. It renders a separate UI layer and can optionally suppress selected vanilla UI at runtime.
  • Not the retired legacy runtime. The old host/subprocess architecture is not part of production.
  • Not unrestricted browser hosting. The framework deliberately confines local assets and network behavior.
  • Not a replacement for your native plugin logic. Game access, networking, and engine-heavy work belong in C++; PrismaUI handles the presentation and bridge.

Start here​

Getting Started walks through creating and deploying a consumer plugin. New integrations should start with the Modern API and PrismaUI_F4_Modern_API.h; the API Reference and PrismaUI_F4_API.h remain the V1-V12 compatibility path.