Overview
Hands-on walkthroughs for building a virtual operating system in Unreal Engine. Each tutorial links to the matching C++ API types where relevant.
flowchart TB
subgraph start["Getting started"]
direction LR
Prerequisites["Prerequisites"] --> Demo["Try the demo map"] --> Actor["Create a device actor"] --> Device["Create a device"] --> OperatingSystem["Create an operating system"]
end
subgraph extend["Extend"]
direction LR
Examples["Examples & Patterns"] --> Program["Create a custom program"] --> Terminal["Custom terminal command"] --> Filesystem["Filesystem operations"]
end
subgraph integrate["Integrate"]
direction LR
GlobalMessenger["Using Global Messenger"] --- DeviceMessenger["Using Device Messenger"] --- SaveLoad["Save and load"]
end
OperatingSystem --> Program
Terminal --> GlobalMessenger
Program --> DeviceMessenger
OperatingSystem --> SaveLoad
Getting started
Section titled “Getting started”| Tutorial | Description |
|---|---|
| Prerequisites | Editor settings and plugin content before you begin |
| Try the demo map | Open DemoMap and explore a working OS |
| Create a device actor | Place AOperatingSystemDeviceActor in your level |
| Create a device | Configure UOperatingSystemBaseDevice with hardware |
| Create an operating system | Build UOperatingSystemNonUnix or UOperatingSystemUnix |
Programs and files
Section titled “Programs and files”| Tutorial | Description |
|---|---|
| Create a custom program | Blueprint program from UOperatingSystemBaseProgram |
| C++ program from scratch | Native program class with validation and widgets |
| C++ extension examples | Add/extend programs, commands, files, settings, messengers in C++ |
| Custom file type | Open files with UOperatingSystemFile subclasses |
| Filesystem operations | Create, move, and delete files and directories at runtime |
Terminal and world integration
Section titled “Terminal and world integration”| Tutorial | Description |
|---|---|
| Custom terminal command | Blueprint or C++ UOperatingSystemTerminalCommand |
| Using Global Messenger | Bridge terminal commands to actors in the game world |
| Using Device Messenger | Events scoped to a single running device |
Devices and persistence
Section titled “Devices and persistence”| Tutorial | Description |
|---|---|
| Portable device | Battery, charging, and AOperatingSystemPortableDeviceActor |
| Save and load | Program settings, OS state, and UOperatingSystemSaveGame |
| User accounts | Multi-user login with UOperatingSystemUserManager |
| Custom notifications | Toast notifications from Blueprint or C++ |
Extension patterns (cookbook)
Section titled “Extension patterns (cookbook)”| Tutorial | Description |
|---|---|
| Examples & Patterns | Cookbook index — all patterns with bundled asset references |
| Full Device Stack | Actor → device → OS → collections |
| Simple Blueprint Program | Calculator-style minimal app |
| Program with Data & Settings | Mail-style triple-class pattern |
| Terminal Command | BP_CMD_Help graph reference |
| C++ + Blueprint Child | Native logic + editor defaults |
| Custom Setting Module | Theme / Wallpaper module pattern |
| Custom File Type | Explorer double-click open |
| Messenger Bridges | Device vs Global Messenger |
| Extend Bundled Program | Duplicate + Blueprint child reskin |
| Portable Device & Battery | Battery simulation and events |
Reference
Section titled “Reference”- Blueprint Reference — common nodes and widget classes
- C++ Reference — modules, includes, and extension points
- Plugin Classes — architecture overview
Start with Getting Started if you have not enabled the plugin yet.