Examples
A small scene that uses the main parts of PulseFoundation from Blueprint, without C++. In the docs tab of the editor each block can be created in your project; create the tag table first.
What happens when you play it (listen server with a client):
- Three color switches and four lamps stand in the level. When the host walks over a switch, the switch sends the message
Message.Example.Lamp.Colorwith its color, and its relay component brings it to every machine. Every lamp listens for that message and takes the color. - A panel shows the last lamp message (a listener with match Partial on
Message.Example.Lamp), the UI theme and the lamp brightness. - T switches the UI theme of the own player: default, light and an example theme that only changes colors.
- B changes the player setting “Example lamp brightness”. The lamps react to
Pulse.Message.Settings.Changed; the setting only changes the lamps of the own player and is stored between sessions. - The Pulse Debugger (Tools > Debug > Pulse Debugger) shows the scene: every switch press is a timeline event, every lamp has a snapshot on the Live page (category
Example), and a report checks the scene at the start.
Tags
Add the table to Project Settings > Gameplay Tags > Gameplay Tag Table List.
Message bus
The switch only broadcasts on the server (overlap with Has Authority) and finds the player with Get Pulse Player State. Its UPulseMessageRelayComponent needs an actor that every client knows, so the switch replicates and is always relevant. See Message bus. It also records who pressed it as a Pulse Debugger timeline event (Record Pulse Debug Event).
The lamp starts two Listen For Pulse Message nodes side by side: one with the payload type LinearColor for the color, one with PulseSettingChangedMessage for setting changes. Get Instanced Struct Value reads the payload. Its Pulse Debug Snapshot component (category Example) shows the color and intensity on the Live page of the Pulse Debugger, see From Blueprints.
Player settings without C++
A Pulse Settings Collection with two settings: the lamp brightness, whose value a Blueprint provider holds (the registry stores it, Store Value is on), and the frame rate limit from the game user settings. See Player settings.
UI theme
A theme that inherits everything from DA_PulseTheme_Default and only changes the accent and highlight colors. See UI themes.
The panel gets its look only from style roles (Pulse Style component on the panel and every text), shows key icons with UPulseUIKeyCap and pops in with Play Motion.
Pulse Debugger
The switch and the lamp above already write to the Pulse Debugger (see From Blueprints). A third actor records a report when the game starts: Begin Pulse Report returns a builder, Begin Section / Add Entry / End Section fill it, Finish shows it on the Reports page. It runs only on the server (Has Authority).
Putting it together
The player controller registers the settings of the collection for its local player (Register Setting), creates the panel and handles the keys: Set Player Theme for T, Set Float Value and Save Settings for B. The game mode uses this controller and the engine DefaultPawn.
To try it, create an empty level, set the game mode in the world settings and place the three switches (set a different Color on each) and a few lamps.
The engine DefaultPawn only moves on its own machine, so in a network game only the host can press the switches. With a pawn whose movement replicates (e.g. a character) every player can.