Skip to content

Blueprint Reference

Quick reference for Blueprint authors. For every signature and member variable, use the C++ API browser.

flowchart LR
  DActor["AOperatingSystemDeviceActor"]
  Device["UOperatingSystemBaseDevice"]
  NonUnix["UOperatingSystemNonUnix"]
  Program["UOperatingSystemBaseProgram"]
  ProgWidget["UOperatingSystemProgramWidget"]
  Terminal["UOperatingSystemTerminalCommand"]
  File["UOperatingSystemFile"]

  DActor --> Device
  Device --> NonUnix
  NonUnix --> Program
  Program --> ProgWidget
  Program --> File
  Program --> Terminal
Blueprint parentPurpose
AOperatingSystemDeviceActorWorld-placed PC / kiosk
AOperatingSystemPortableDeviceActorBattery-powered device
UOperatingSystemBaseDeviceDevice config + hardware
UOperatingSystemNonUnixWindows-like OS
UOperatingSystemUnixUnix-like OS
UOperatingSystemBaseProgramDesktop application
UOperatingSystemTerminalCommandCLI command
UOperatingSystemFileSimulated file type
UOperatingSystemProgramSettingsSaved program prefs
UOperatingSystemProgramDataRuntime program state
Widget parentUsed for
UOperatingSystemWidgetFull desktop shell (taskbar, notifications)
UOperatingSystemDeviceWidgetDevice bezel / screen frame
UOperatingSystemProgramWidgetProgram main window content
UOperatingSystemProgramIconWidgetDesktop / start menu icon
UOperatingSystemWindowWidgetBaseDraggable window chrome
UOperatingSystemBiosWidgetFirmware UI
UOperatingSystemBsodWidgetCrash screen

Search the context menu with an Operating System or Global Message reference.

NodeTypical use
Get Operating SystemFrom program, file, or widget
Get Directory From PathResolve C:\... or /Users/...
Construct File / Construct DirectoryFilesystem — tutorial
Send NotificationToast — tutorial
Install ProgramAdd app at runtime
NodeScope
Get Global Message SubsystemWhole level — tutorial
Broadcast Message / Listen to MessageGlobal Messenger
Find Messenger from Operating SystemSingle device — tutorial
Broadcast / Begin ListeningDevice Messenger
NodeTypical use
Get Owning ProgramInside program widget
Get Program SettingsCast to your settings class
Save SettingsManual persistence
On ValidateProgram config validation event
EventWhen it runs
Process CommandNormal user
Process Command As RootElevated (Unix)
Continue ExecutionMust call when command finishes
Get Command ParametersParsed arguments
Asset typePurpose
Operating System Programs CollectionMust-have / store program lists
Operating System Directories CollectionDefault folder tree
Operating System Cmd CollectionTerminal command registry
Operating System Settings DataTheme, wallpaper modules

Duplicate from OperatingSystemContent/Shared/ — never edit plugin originals.

OS features filter by tags under the OperatingSystem.* namespace:

Tag categoryExample use
OperatingSystem.TypeUnix vs Non-Unix program support
OperatingSystem.DevicesWhich hardware types an OS supports
OperatingSystem.DirectoryDirectory icon mapping

Configure under Project Settings → Gameplay Tags and on class defaults.

ScenarioTutorial
All extension patterns (cookbook)Examples & Patterns · Pattern tutorials
First bootable OSCreate an operating system
New desktop appCreate a custom program
Program with Data + SettingsExamples & Patterns
CLI → gameplayCustom terminal command
ContentPath under plugin
Demo mapOperatingSystemContent/Demo/Maps/DemoMap
Non-Unix OS template.../Blueprints/OS/BP_OS_NonUnix
Default settings.../Programs/OperatingSystemSettings/BP_OS_Settings
Terminal commands.../Programs/Terminal/Commands/BP_CMD_*