API reference

Module

Type Header Purpose
IPulseFoundation PulseFoundation.h Module interface: Get(), IsAvailable(), GetVersionString(); version macros, LogPulseFoundation
PULSE_FOUNDATION_VERSION_AT_LEAST(Major, Minor) PulseFoundation.h Compile-time version check
PULSE_WITH_DEBUG (module definition) 1 in non-shipping builds

Distribution

Namespace Pulse::Foundation, header Distribution/PulseDistribution.h. See Fab packages and separate plugins.

Function Purpose
GetHostPluginName() Plugin that holds this copy: PulseFoundation or the plugin of a Fab package
GetModuleName(), GetModulePrefix() Real name of the main module and the prefix of all modules (empty for the separate plugin)
IsBundled() True inside a Fab package
GetContentRoot(), MakeContentRoot(Plugin), MakeContentPath(Path) Content root of this copy (/PulseFoundation or /<Plugin>/Foundation) and full asset paths below it
FindCopies(Plugins), GetEnabledCopies() The copies of Pulse Foundation among plugins, the separate plugin first; the one of this process
IsActiveCopy(), IsActiveCopy(Copies, Plugin), HasCopyConflict() Whether this copy runs; whether several copies are enabled
MakeConflictMessage(Copies), JoinDisplayNames(Names) Texts for the conflict notice

Messages

Type Purpose
UPulseMessageSubsystem Get, Listen, Listen<T>, ListenWeak, Unlisten, Broadcast, Broadcast<T> (all with FPulseContext); Blueprint Broadcast Pulse Message, Listen (Pulse Message), Unlisten (Pulse Message)
UPulseListenForMessageAction Blueprint node Listen For Pulse Message (channel, payload, context)
UPulseMessageRelayComponent RelayToAll, RelayToOwner (with context), ForwardToClients, FindMessageRelay; the context carries the player id, clients find the player state again
Pulse::Messages::RegisterChannel, RegisterChannel<T>, UnregisterChannel, FindChannel, GetChannels, DescribeChannels Channel register (FChannelInfo: channel, payload, origin, description)
EPulseMessageOrigin Server, Client, Both
FPulseMessageTrigger Channel, match, conditions, value path, server only; Matches, PassesConditions, GetValue, Validate (editor)
Pulse::Messages::BindTrigger, UnbindTrigger, ShouldListen, MakeTriggerContext, FindValueProperty, ReadPayloadValue Listening for triggers, value paths
UPulseWaitForMessageTriggerAction Blueprint node Wait For Pulse Message Trigger
FPulseMessageRouter Plain router (tests, custom buses); Broadcast with a prepare callback for the listeners’ context
EPulseMessageMatch Exact, Partial

Players

Function (Pulse::Player / UPulsePlayerLibrary) Purpose
GetController, GetPlayerController, GetPlayerState, GetPawn, GetLocalPlayer Resolve a player from any of its actors
GetPlayerActors Actor, controller, player state, pawn
GetPlayerId, FindPlayerStateById (Blueprint Get Pulse Player Id, Find Pulse Player State By Id) The stable id of a player, and its player state found again by that id on every machine
FindComponentOnPlayer, FindInterfaceOnPlayer Find a component or interface on the player’s actors

Context and conditions

Type / function Purpose
FPulseContext Player, instigator, target, source, tags, amount and extra data of a condition, cost, reward or message (Conditions)
FPulseContext::GetPlayerController, GetPlayerState, GetPawn, FindPlayerComponent, GetExtra The player’s actors and components, the extra data
FPulseContextIds (PlayerId, SourceAsset, SourceTag), FPulseContext::Ids The ids of the player and the source next to the pointers (Conditions)
FPulseContext::GetIds, GetPlayerId, GetSourceAsset, SetPlayer, SetSource The ids a context names (live pointers win), change player or source and drop the old ids
Pulse::Context::GetSourceAssetPath, FillIds, FillPlayerId, ResolveFromIds The asset an object is; store the ids of a context that is kept; find the player state and the loaded source of the ids again
UPulseContextLibrary Blueprint: Make Pulse Context, Get Context Player Controller / Player State / Pawn, Find Context Player Component, Get Context Ids, Get Context Player Id, Set Pulse Context Player / Source
EPulseConditionResult Passed, Failed, Unknown (data missing here, the server decides)
FPulseCondition Base of conditions: Evaluate(Context), GetDisplayText(Context)
FPulseConditionList Mode (All, Any), Conditions; Evaluate, GetDisplayLines, IsEmpty, Add<T>
FPulseCondition_All, _Any, _Not Nested logic
FPulseCondition_ContextTags, _ActorHasTags, _ActorTagQuery, _ActorIsClass, _CompareAmount Conditions on the context
UPulseConditionObject, FPulseCondition_Blueprint Conditions made in Blueprint, one instance per entry
Pulse::Conditions::CombineAll, CombineAny, Invert, EvaluateAll, GetMissingDataResult, Compare, GetActorTags, GetContextActorTags, FindWorld, HasAuthority Helpers for own conditions
FPulseCostContext Context of a payment: Fraction, Offset, bReverse
FPulseCost Base of costs: CanPay, Pay, Refund (authority), GetDisplayText, GetLines
FPulseCostList Costs; CanPayAll, PayAll (all or nothing), RefundAll, GetDisplayLines, GetLines, IsEmpty, Add<T>
FPulseCostLine UI line of a cost: label, icon, have, need, IsMet
Pulse::Costs::GetAmount, GetEntryText Whole amounts rounded over the whole cost, entry lines
FPulseReward Base of rewards: Grant (authority), Reapply, GetDisplayText
FPulseRewardList Rewards; GrantAll, ReapplyAll, GetDisplayLines, IsEmpty, Add<T>
UPulseRewardObject, FPulseReward_Blueprint Rewards made in Blueprint, one instance per entry
UPulseConditionLibrary Blueprint: Evaluate Conditions, Get Condition Lines, Make Pulse Cost Context, Can Pay / Pay / Refund Costs, Get Cost Lines, Grant Rewards, Get Reward Lines

Teams

Type / function Purpose
Pulse::Team::GetTeam, IsSameTeam, SetTeam, FindTeamSource The team of any actor: own source, the player’s player state, the pawn of a controller, owners (Teams)
IPulseTeamInterface Own team logic: GetPulseTeam, SetPulseTeam (wins over a team component)
UPulseTeamComponent Replicated team tag (push model), GetTeam, SetTeam (authority), OnTeamChanged, OnTeamChangedNative
UPulseTeamLibrary Blueprint: Get Actor Team, Is Same Team, Set Actor Team
Pulse::Foundation::Tags::Team, Team_Player, Team_Enemy Pulse.Team, Pulse.Team.Player, Pulse.Team.Enemy

Sounds

Type / function Purpose
FPulseSoundRef A sound asset or a Pulse Sound event; IsSet, Validate (editor) (Sounds)
Pulse::Sound::Play, GetResolver Plays a reference 2D, at a location or attached (FPulseSoundPlayParams, EPulseSoundPlacement), returns EPulseSoundPlayResult
IPulseSoundResolver Modular feature of Pulse Sound that plays the events
UPulseSoundLibrary Blueprint: Play Pulse Sound Ref, Is Pulse Sound Ref Set

Areas

Type / function Purpose
UPulseAreaComponent Pulse Area: shape, tags, priority, falloff, conditions, events, Fixed Area Name, Get / Set Area Id
UPulseAreaSubsystem Find Pulse Areas, Get Pulse Area At / Id At, Find Pulse Area By Id, Is Player In Pulse Area, GetPlayersInside, OnAreaPlayerNative (by pawn), OnAreaOccupantNative (by player key), GetIndex
FPulseAreaId, UPulseAreaIdLibrary Area ids (stable for placed actors, from a name or a guid)
FPulseAreaHit, FPulseAreaMessage Query hits and the payload of Pulse.Message.Area.* (both with the area id)
FPulseCondition_InArea Condition In Area
Pulse::Area::FShape Shape math (depth, weight, bounds)
Pulse::Area::FAreaIndex, FAreaDesc, DiffInside, MakeAreaId, MakeStableAreaName The areas as plain data (pure, for specs and bridges)
Pulse::Area::MakeOccupantKey The key of a player for “who is inside”

Serialization

Type / function Purpose
Pulse::Serialization::StructToBytes, BytesToStruct, ReadVersioned, GetStructVersion Struct bytes
InstancedStructToBytes, BytesToInstancedStruct Instanced struct bytes with type
EPulseReadResult Success, Empty, Corrupt, TooNew
FPulseImportReport, FPulseImportMessage, UPulseImportReportLibrary Import reports
IPulseByteSaveable (GetSaveId, GetSaveIdentity, SaveToBytes, LoadFromBytes, timing) Objects that save themselves as bytes
FPulseSaveIdentity, EPulseSaveScope What an object saves (tag, key, scope) for stable save keys
FPulseSaveKeyParts, Pulse::Serialization::MakeSaveKey, GatherSaveKeyParts, GetSaveKeyStability, EPulseSaveKeyStability Save keys from their parts (pure) and how stable they are
Pulse::Serialization::MakeStableLevelName, GetStreamedLevelName Level names that are the same on every machine (no PIE prefix)
Pulse::Serialization::DescribeSaveId How far the default save id of an object can be trusted (checks)

Player settings

Type Purpose
UPulseSettingsSubsystem Per local player: register, query, set, apply, revert, reset, save, events
UPulseSettingsRegistry The registry behind the subsystem (C++ events OnSettingChanged, OnSettingsChanged, OnPendingChanged)
UPulsePlayerSettings, FPulsePlayerSettingsDeclarer, FPulseSettingDescriptorBuilder Settings from properties
UPulseSettingsCollection Settings asset
FPulseSettingDescriptor, FPulseSettingOption, EPulseSettingType, EPulseSettingApplyMode Descriptor types
FPulseSettingSource + _Property, _CVar, _GameUserSettings, _SoundClassVolume, _InputKey, _Custom Sources
FPulseSettingSource::CanWriteValue, EPulseSettingWriteCheck Whether a source takes a value, checked before Apply writes anything
UPulseSettingsRegistry::ApplyWithResult, UPulseSettingsSubsystem::ApplyChangesWithResult Apply with a result: refused values stay pending, values without target are dropped
UPulseSettingsRegistry::SetValues (optionally all or nothing), ResetToDefaultsWithResult, UPulseSettingsSubsystem::ResetToDefaultsWithResult Several values in one step (conditions see the values of the step)
FPulseSettingContext::GetValue, PlannedValues The value a condition sees: planned value first, then the registry
FPulseSettingsApplyReport, FPulseSettingRejection, FPulseSettingsPending, FPulseSettingChange Details of the results, pending values
UPulseSettingValueProvider Blueprint provider for custom sources
FPulseSettingCondition + _SettingValue, _Platform Conditions
FPulseSettingChangedMessage Payload of Pulse.Message.Settings.Changed
Pulse::Settings::BoolToValue, ValueToBool, FloatToValue, NormalizeValue, FormatValue, GetCategoryDisplayName, GetTabCategory Helpers

View models (PulseFoundationMVVM)

Type Purpose
UMVVMPulsePlayerViewModel Base of view models bound to a player (BindToPlayer, OnBoundToPlayer)
UPulsePlayerViewModelResolver Resolver that creates and binds them
UMVVMPulseSettings, UMVVMPulseSettingsCategory, UMVVMPulseSetting Settings menus

Debugging

Type / function Purpose
IPulseDebugSnapshotProvider, FPulseDebugSnapshot (+ Section, Row, Shape, FPulseDebugSummary), EPulseDebugValueKind, EPulseDebugState Snapshots, value kinds and summaries
Pulse::Debug::RegisterSnapshotProvider, UnregisterSnapshotProvider, GetSnapshotProviders, GatherSnapshot, AddSnapshotToVisualLog Snapshot registry
PULSE_DEBUG_EVENT, Pulse::Debug::RecordEvent, GetEvents, GetTimelineWorlds, GetTimelineWorldLabel, ClearTimeline, IsTimelineRecording Timeline
Pulse::Debug::BeginSpan, EndSpan, GetNumOpenSpans, RecordMarker, FPulseDebugEvent::Phase / SpanId Timeline spans and markers
Pulse::Debug::GetWorldDebugName, GetWorldDebugLabel World names of timelines and reports (PIE instances apart)
FPulseReport, FPulseReportEntry, FPulseReportBuilder, FPulseReportRecorder, FPulseReportPolicy Reports
Pulse::Debug::OnReportSubmitted, GetRecentReports, Pulse::Debug::Reports::* Report events and files
UPulseCheatExtension (ForwardToServer, PrintCheatMessage), UPulseFoundationCheats Cheats
IPulseFoundationDebug::RegisterSnapshotCategory Gameplay debugger categories
UPulseDebugLibrary (Blueprint, Pulse\|Debug), FPulseDebugSpanHandle Timeline events, spans, markers, events, snapshots and reports from Blueprints
UPulseDebugSnapshotComponent (Pulse Debug Snapshot), UPulseDebugSnapshotBuilder Snapshot provider for Blueprint actors (On Gather Snapshot)
UPulseDebugReportBuilder Report built in Blueprints (Begin Pulse Report)
UPulseDebuggerEditorLibrary::OpenPulseDebugger Opens the Pulse Debugger from Editor Utility Blueprints
IPulseFoundationEditor::RegisterDebuggerPage, OpenDebugger, FPulseDebuggerPage (Icon, OnSpawnWithContext) Pulse Debugger pages
FPulseDebuggerContext, Pulse::Editor::Style, SPulseDebugKeyValueTree, SPulseDebugSourceFilter, SPulseDebugSourceChip, SPulseDebugBadge, Pulse::Editor::MakeToolbarButton, AddObjectActions Building blocks for debugger pages (editor)
PULSE_LOG_OBJECT, PULSE_ENSURE_OBJECT Logging

Editor

Type Purpose
IPulseFoundationEditor::RegisterLevelMode, UnregisterLevelMode, GetLevelModes, OpenLevelMode, FPulseLevelMode Level editor modes of the plugins (Pulse window, Pulse.Mode)
UPulseEdMode, FPulseEdModeTool, FPulseEdModeFooter, FPulseEdModeMetric, IPulseLevelTool Level tools: mode base on the Interactive Tools Framework, palette, handles, footer, viewport overlay; tools add panel content and an overlay of their own (Editor kit)
Pulse::Editor::Kit::LevelTools::FUndoScope, FUndoInteraction, SetPropertyValue One undo step per action of a tool
Pulse::Editor::Kit::Views::RegisterView, UnregisterView, SetViewEnabled, FillViewsMenu, MakeGridAroundView, SampleGradient, GetCellCorners, IsInLegend, BuildView, FPulseViewportView, FPulseViewDrawing, FPulseViewContext Viewport views (Editor kit)
SPulseTransportBar, Pulse::Editor::Kit::Timeline::FormatTime, ParseTime, GetWindowStart Transport bar: play, pause, rewind, step, typed time, scrubbing, speeds (Editor kit)
SPulseTimeline, FPulseTimelineTrack, FPulseTimelineRange, FPulseTimelineMarker, FPulseTimeSpan, Pulse::Editor::Kit::Timeline::TimeToX, XToTime, GetRulerStep, FitView, MakeDragSpan Timeline: transport bar above a time ruler with tracks, markers, playhead and a loop span (Editor kit)
FPulseBackgroundTask, FPulseBackgroundTaskContext, Pulse::Editor::Kit::Tasks::Start, IsRunning, Cancel, GetProgress, Wait Background tasks with progress, Cancel and the status bar (Editor kit)

Utilities

Type Purpose
FPulseHandle, UPulseHandleLibrary Handles
FPulseInstancedStructSet, Pulse::Structs::* One instanced struct per type
Pulse::Loading::FLoadBundle, UPulseLoadAssetsAsyncAction Async loading
UPulseDeveloperSettings Settings base class
Pulse::Settings::AreSettingsPagesEnabled Whether the settings show as one page per plugin (Utilities)
Pulse::Editor::Settings::ShowSettings, GetSettingsLocation, GetSettingsPages, IsOnSettingsPage, IsSettingChanged, CountChangedSettings Settings pages: open the block of a class, its place as text, the pages, changed values (editor only)
Pulse::AutoComponents::MakeComponentName, HasFixedName The fixed name of automatic components (Pulse_<Class>_0)
Pulse::Testing::FTestWorld, SpawnTestPlayer (also SpawnTestPlayer(World, Name)), SpawnTestGameState, FTestObjects, FMessageRelayAccess (Receive, SetSendHook) Spec helpers
Pulse::Validation::AddIssue, GetIssuePath, MakeElementPath Problems of IsDataValid with the path of their value (editor only; the config workshop shows them on the node)
Pulse::Validation::IsPluginExample, ShareIdScope Whether a package is example content of a plugin (/<Plugin>/Examples/...); checks for unique ids compare project assets and plugin examples only among themselves (editor only)

Console

Command Purpose
Pulse.Debugger [Page] Opens the Pulse Debugger (editor)
Pulse.Mode [Mode] [Tool] Opens a level editor mode of a Pulse plugin (editor)
Pulse.Views [Id\|none] [on\|off] Switches viewport views (editor, PIE windows)
PulseDebugProviders Lists the snapshot providers of the world
PulseDebugDump [Category] Prints snapshots to the log
Pulse.Debug.Mark <Text> Writes a marker into the timeline of every running world
PulseDebugReportTest [slow] Publishes a test report (Pulse Debugger > Reports)
PulseDebugTimelineTest [Count] Records test events and spans into the timeline of the world
PulseMessageSend <Channel> Sends a message without payload
PulseMessageListeners Lists the listeners per channel

PulseFoundation plugin documentation.

This site uses Just the Docs, a documentation theme for Jekyll.