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 |