Engine Tools

HTML Menus and PDF viewer Browser Plugin

Build user interfaces, inventory systems, and documents in Unreal Engine using HTML, CSS, JavaScript, and an integrated PDF viewer.

HTML Menus and PDF viewer Browser PluginEngine Tools

Resource overview

Replacing UMG with HTML and JavaScript Interfaces

Constructing intricate game menus and dynamic inventories entirely inside Unreal Engine's native UMG framework often presents rigid styling boundaries and time-consuming layout iteration. This plugin shifts interface authoring into standard web technologies, allowing developers to craft main menus, HUDs, and inventory systems using HTML, CSS, JavaScript, and libraries such as jQuery.

Web development delivers a vast ecosystem of existing design documentation, open styling resources, and responsive scripting examples. Rather than manually configuring complex canvas slots or vector curves in Slate, developers can generate tailored buttons, modal screens, and animated UI elements using familiar web style sheets. The underlying JavaScript library necessary to run these systems resides within the project directory at Engine\Plugins\Marketplace\HTMLMenuMain\HTMLMenu_basic, ensuring that all core scripts remain locally packaged alongside the engine structure for quick deployment.

Embedded C++ Web Server and Blueprint Communication

Serving local web assets inside an engine viewport can introduce security and file-path hurdles, particularly when dealing with complex script routines. Version 1.21 resolves this by embedding a small C++ web server directly into Unreal Engine, exposing its control surface directly to Blueprints.

This internal web server architecture significantly expands local browser functionality. Features such as hyperlink routing and lazy loading of media assets operate cleanly through the local host environment without triggering pathing errors. Blueprint users can exchange information between the engine logic and the browser document, supported by specialized helper nodes such as GetSytemType To detect the active operating system and custom Base64 processing functions. The plugin also maintains functional compatibility with the Simple Controller (Advanced Input Device) Plugin, ensuring external control layouts can hook cleanly into hybrid UI states.

Integrating the PDF Viewer Across Engine Generations

In-game manuals, documentation panels, and textual game artifacts frequently need pagination and clean typographic rendering that standard engine widgets struggle to deliver. The plugin incorporates a dedicated PDF viewer, originally established in version 1.11 and subsequently brought to both Android and iOS targets.

The PDF pipeline has been updated across multiple engine releases, including version 1.19, which adapted the viewing framework for Unreal Engine 5 workflows. This viewing component operates seamlessly within the browser runtime, enabling games or enterprise visualization tools to present architectural sheets, instructional handbooks, and static legal documents directly within the runtime interface without requiring players to launch third-party external applications.

Browser Debugging Tools and JavaScript Window Handling

Diagnosing interaction bugs between the DOM and engine events can be challenging without proper runtime insight. Version 1.15 introduced integrated browser developer tools, allowing programmers to open a dedicated debugging window to inspect elements, monitor console outputs, and verify JavaScript execution during live play sessions.

This toolset also provides native support for opening secondary windows driven by JavaScript calls. Communication between the browser environment and Unreal's core logic has been hardened over successive revisions. Version 1.17 addressed an issue where high-frequency messaging from JavaScript to the engine resulted in dropped packets on mobile hardware, ensuring that fast UI clicks and continuous inventory updates pass reliably. For modern engine builds from 5.2 through 5.8, version 1.22 repaired memory and cleanup handling by eliminating a bug that prevented the engine from properly destroying browser-backed widgets upon screen departure.

Platform Behaviors, Operational Constraints, and Setup Rules

Deploying web engines inside a real-time graphics pipeline requires careful adherence to specific engine and hardware limitations. The plugin functions across Windows 10, macOS Mojave 10.14.2, Android 7.1.2, iOS 12.1.2, and WebGL environments, but developers must account for structural constraints built into underlying platform wrappers.

Hardware-level input and capture features carry hard restrictions: microphone and camera access are not available within the embedded browser view, and JavaScript cannot directly access the host system's hard drive. Asian character entry using an Input Method Editor (IME) does not function inside the input fields. On mobile operating systems such as Android and iOS, the web browser widget renders permanently in the foreground, and certain UE4 versions suffer from an engine-level bug that renders a black texture when casting browser outputs to 3D in-world widgets. Blueprint nativization can trigger packaging conflicts and must be turned off for any Blueprints communicating with the plugin's browser systems. Teams working with third-party web content should always test remote pages within the integrated engine browser ahead of full interface deployment.

Related Resources Worth Checking

Free Download

Download this resource

Log in or create a free account to start your download.

Resources are manually reviewed before listing to improve quality and reduce obvious risks.

Resource archiveHTML Menus and PDF viewer Browser Plugin.7z

Related resources