Skip to content

VaCuus 1.0

Choose a tag to compare

@ufna ufna released this 15 Aug 12:25
· 23 commits to master since this release

HTML/CSS user interface for Unreal Engine, rendered off the game thread.

You author screens as .rml/.rcss documents — the web languages, not a UMG graph — and the
plugin runs them on its own UI thread: layout, styling and draw-command recording all happen
away from the game thread, which only enqueues input and reads back a snapshot. Optional
JavaScript (QuickJS) and a TypeScript/Preact workflow sit on top. Rendering goes through the
engine's RHI into a persistent render target that Slate composites, so a document can be a
full-screen HUD or a panel on a quad in the world.

Which file do I download?

A package is stamped with the engine that built it. Take the one matching your engine
the plugin refuses to load under a descriptor it was not stamped for.

Engine Download
UE 5.6 VaCuus-1.0-UE5.6.zip
UE 5.7 VaCuus-1.0-UE5.7.zip
UE 5.8 VaCuus-1.0-UE5.8.zip

All three are built from this one source tree, at commit ac611d1, which is what this tag
points at. Each archive carries a PACKAGE-MANIFEST.txt recording its commit, build time and
engine.

One disclosure about the 5.7 archive: it is the 5.6 build with the descriptor's
EngineVersion stamped to 5.7.0 — byte-identical otherwise. No 5.7 SDK exists on the
packaging host, so nothing was compiled against 5.7; 5.7 was verified separately by hand. The
archive's own manifest says this too. 5.6 and 5.8 are compiled on their own engines.

Install

The package root is the plugin folder — there is no extra directory level to strip. Drop it
so that VaCuus.uplugin lands at <YourProject>/Plugins/VaCuus/VaCuus.uplugin, then enable it
in Edit → Plugins or in your .uproject:

"Plugins": [
    { "Name": "VaCuus", "Enabled": true }
]

Your project must be a C++ project — a source install has to compile, and a Blueprint-only
project has no toolchain for it. Converting takes two minutes: Tools → New C++ Class → None.
The first editor launch compiles the modules once.

Verify it works: the console knows vacuus.M2Demo — run it and an interactive demo document
appears. Automation RunTests VaCuus runs the 227-test suite, which ships with the plugin on
purpose, fixtures and all.

docs/buyer/setup.md inside the package is the long version, including the two ways a shipped
copy differs from this repository.

What is in it

Source-only, 1028 files, no Binaries/ directory: the runtime core and its UI thread, the
record → RHI replay → Slate composite path, the JavaScript host, the editor live-reload module,
vendored RmlUi 6.x and QuickJS-ng with their licenses beside them, the shaders, the shipped
RML/RCSS documents, the optional TypeScript/Preact workspace, and the four buyer documents.

Platforms: Windows, macOS, Linux, Android and iOS. Consoles on request.

Verifying the download

39c1bac08b7e07c6fe9f99d89089291bf574048c71eaaca8d62a01a5dcabc5c7  VaCuus-1.0-UE5.6.zip
83ebafe07ff68224898b80cb015e8db987ffbcc2bc69749f7943171866d7d59f  VaCuus-1.0-UE5.7.zip
23b4a7d5f11b2b2f1973e7b7c40990e568ddb101d11faa1bbefda060f56cd4fb  VaCuus-1.0-UE5.8.zip

License

The plugin's own source is under the Business Source License 1.1 — free to read, modify and
use outside production, free in production for noncommercial purposes, and each version converts
to MIT four years after release. Commercial production use needs a purchased license; see
COMMERCIAL.md. Vendored RmlUi and QuickJS-ng are both MIT. Contributions require the CLA.

Issues and questions: https://github.com/ufna/VaCuus/issues