Engine Tools

Multi window

The Multi window plugin enables developers to display multiple views simultaneously across different windows using simple Blueprint nodes. With support for advanced rendering and persistent cross-level windows, it is a versatile tool for complex UI and disp...

Multi windowEngine Tools

Resource overview

In a project with a busy Heads-Up Display (HUD), a secondary camera, or a tool panel that needs to stay accessible, 1 single viewport can feel restrictive. Multi Window is an Unreal Engine plugin that lets the runtime display multiple windows simultaneously, each 1 holding its own view. The entire system is exposed through Blueprint nodes, so setting up a 2nd window doesn't require dropping into C++.

Why a Blueprint-Driven Multi-View Window System

The plugin is based on a straightforward premise: different windows, different views, all running at the same time. Instead of writing custom native code to manage multiple viewports, developers can call Blueprint nodes that create and control new windows. The workflow centers on a small number of high-level functions, with the engine handling the heavy lifting behind rendering, input, and window placement. Because the plugin is Blueprint-first, it fits into projects where the team works primarily in the Editor rather than in an Integrated Development Environment (IDE).

Finding Multi Window Content in the Content Browser

Getting started is a matter of clicking through the Content Browser. In the upper right corner of the Content Browser, clicking the Settings button opens a menu for the current instance. Under the View category, checking Show Plugin Content makes the plugin's assets visible. The Multi Window > Content > Multi Window directory then contains sample Levels and related assets, giving developers a working reference to open and study.

Camera-Based Multi Window Creation Paths

The February 2026 update adds 2 camera-driven functions for generating windows: CreateMultiWindowByCamera_Capture and CreateMultiWindowByCamera_Advanced. The Capture variant uses SceneCapture to render into a Texture, keeping the cost lower while limiting Post-Processing and quality. The Advanced variant runs through the engine's rendering pipeline, supporting richer Post-Processing and quality controls at a higher performance cost. Choosing between them depends on whether the secondary window needs to be lightweight or visually faithful.

Windows That Persist Across Levels and Monitors

The CreateMultiWindowBySubsystem family introduces persistent, cross-Level windows that survive Level transitions. This is distinct from windows that are tied to a specific Level's lifecycle. In addition, the January 2024 update strengthened multi-monitor behavior with CreateRelativeMultiWindow, which calculates a window's coordinate position relative to a display based on a MonitorIndex parameter, and CreateMultiWindowByMonitor, which places a window directly on the selected monitor and sets it to full screen. GetMonitorCount and GetPrimaryMonitorIndex return the number of displays and the subscript of the primary display, while PrintToLog prints display information to help debug setups.

Input, Focus, and the Window Title Bar

Window behavior has been refined through a series of updates. The OnWindowMoved callback fires when a window is moved, as of the July 2024 update. That same update added ForceFocusToGameViewport, a parameter that pushes focus back to the main viewport; once enabled, keyboard events still work normally even when other windows are selected. For widgets inside windows, the April 2022 update enabled ContentWidget to respond to key events including OnKeyChar, OnPreviewKeyDown, OnKeyDown, and OnKeyUp. Window position can be set and retrieved through the set/get window position functions added in the same update. The June 2023 update introduced an IsTopmostWindow parameter at window creation, plus a template with a customized title bar that allows a custom icon and shows button names inside the window. The May 2024 update replaced that custom title bar with a WindowTitleBarArea control, which makes the window smoother to drag. Later that year, the September 2024 update added SetWindowMode, with testing suggesting WindowedFullscreen is the more effective mode. The March 2024 update fixed a bug where the OnWindowClose callback event was not triggered when SetWindowClose was called manually.

DPI Scaling, Window Info, and a Long Compatibility Trail

The plugin has grown to handle Dots Per Inch (DPI) changes over time. The original CreateMultiWindow function added a bIsAutoContentDPIScale parameter that automatically scales content according to DPI, defaulting to False. The January 2021 update included GetWindowSize and GetWindowDPI. In the May 2024 update, GetWindowDPI was replaced with GetDPIScaleFactor, and SetDPIScaleFactor was added so the scale can be adjusted after the DPI is calculated. The same update modified the underlying logic: after turning on bIsAutoContentDPIScale, the new SetDPIScaleFactor function is used after calculating the DPI. It also fixed an error message for sample Levels when packaging. GetWindowTitle retrieves the current title, and the display-information logger was renamed from PrintToLog to MW_PrintToLog.

The Changelog tracks a long engine compatibility trail. Support began with Unreal Engine 4.26 (UE4.26) in late 2020, then expanded to UE5.0, UE5.1, UE5.2, UE5.3, and UE5.4 over the following updates. Linux support was increased in the July 2024 update, and macOS support was expanded in the March 2021 update. The February 2026 update brings the plugin to UE5.7, making it viable for projects that have moved to the latest engine release.

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 archiveMulti window.7z

Related resources