Message channels

Every channel the Pulse plugins broadcast on the message bus: its payload, where it is broadcast, what its context holds and what the amount means. The list comes from the channel register; Pulse.Messages.List prints the channels of the plugins enabled in your project (Console).

Reading the tables

  • Origin: Server messages are broadcast on the server and in standalone, Client messages on the machine of a local player. With Both every machine broadcasts its own; the section says which machines.
  • Context: each section names the fields its plugin fills; Notes add what differs per channel. Fields that are not named stay empty.
  • Amount: what Amount of the context holds. A channel without an amount of its own carries 1, so a message trigger that adds up values counts its messages.
  • An actor of a player is a pawn or controller with a player state, or a player state.

Pulse Foundation

Channel Payload Origin Amount Notes
Pulse.Message.Settings.Changed FPulseSettingChangedMessage Client 1 A player setting was written. Player: the controller of the local player; Tags: the setting.
Pulse.Message.Save.Started FPulseSaveStatusMessage Both 1 A save started (reported by the save system through UPulseSaveStatusSubsystem). Slot in the payload.
Pulse.Message.Save.Phase FPulseSaveStatusMessage Both 1 A save reached a phase (Collect, Write).
Pulse.Message.Save.Finished FPulseSaveStatusMessage Both 1 A save finished; bSuccess, Seconds.
Pulse.Message.Save.LoadStarted FPulseSaveStatusMessage Both 1 The game started loading (first hold of the load barrier).
Pulse.Message.Save.LoadFinished FPulseSaveStatusMessage Both 1 The game finished loading (last hold ended); bSuccess, Seconds.
Pulse.Message.Area.Entered FPulseAreaMessage (area id, area, tags) Both 1 A player entered a Pulse area with events: on the server for every player, with Events Everywhere also on the machine of a local player. Player and Instigator: the pawn; Target: the actor of the area; Source: the area; Tags: its tags.
Pulse.Message.Area.Left FPulseAreaMessage (area id, area, tags) Both 1 A player left a Pulse area with events, or the area went (sent after it is removed). Context as Entered.
Pulse.Message.Request.Failed FPulseRequestFailedMessage Client 1 A request of a local player failed on the server or got no answer. Player: the controller of the local player; Tags: the reason.
Pulse.Message.Loading.HoldChanged FPulseLoadingHoldMessage (change, hold, hold count, overall progress, text) Both 1 A loading hold of this machine was added, changed its progress (steps of 1 %) or text, or was removed. No actors in the context.
Pulse.Message.Clock.Jumped FPulseClockMessage Both Seconds jumped The time of a clock jumped: the game time was set or loaded, or the server time of a client caught up. Every machine broadcasts its own.
Pulse.Message.Clock.Paused FPulseClockMessage Both 1 The game clock stopped, on every machine.
Pulse.Message.Clock.Resumed FPulseClockMessage Both 1 The game clock runs again, on every machine.
Pulse.Message.Clock.RateChanged FPulseClockMessage Both The new rate The rate of the game clock changed, on every machine.

Pulse Core

Interaction

Sent wherever the interaction ability runs: on the local player, and on the server as well for replicated interaction. Context: the interactor (the avatar of the ability, usually the pawn) is Player and Instigator, the actor interacted with is Target, the interactable component (else the actor) is Source, the tags of the interactable (GetInteractableTags, InteractableTags on the interactable components) are the Tags.

Channel Payload Origin Amount Notes
Pulse.Message.Interact.Started FPulseInteractMessage Both 1 An interaction started.
Pulse.Message.Interact.Completed FPulseInteractMessage Both 1 An interaction took effect.
Pulse.Message.Interact.Ended FPulseInteractMessage Both 1 An interaction ended, completed or cancelled.

Combat

Sent on the server, and on every machine while the combat component has bReplicateDamageEvents (default). Context: the combatant is Target, the attacker, healer or killer Instigator; Player is the instigator when it is an actor of a player, else the target when it is one.

Channel Payload Origin Amount Notes
Pulse.Message.Combat.Damaged FPulseCombatMessage Both Damage Tags: the damage type.
Pulse.Message.Combat.Healed FPulseCombatMessage Both Healing  
Pulse.Message.Combat.Died FPulseCombatMessage Both 1 Instigator: the killer.
Pulse.Message.Combat.Revived FPulseCombatMessage Both 1 No instigator.

Crafting

Context: the owner of the crafting component is Player and Instigator, the owner of the station Target (none without a station), the recipe Source.

Channel Payload Origin Amount Notes
Pulse.Message.Crafting.Queued FPulseCraftingMessage Server Rounds queued  
Pulse.Message.Crafting.Crafted FPulseCraftingMessage Server 1 One round crafted and handed out.
Pulse.Message.Crafting.Completed FPulseCraftingMessage Server Rounds of the job The job finished all its rounds.
Pulse.Message.Crafting.Cancelled FPulseCraftingMessage Server Rounds left  
Pulse.Message.Crafting.RecipeUnlocked FPulseCraftingMessage Server 1 No target.

Gathering

Context: the harvester is Player and Instigator, the resource node Target, its definition Source, the resource tags of the definition (Pulse.Gathering.Resource.*) the Tags.

Channel Payload Origin Amount Notes
Pulse.Message.Gathering.Harvested FPulseHarvestMessage Server Items given Source in the payload: interaction, hit or other.

Respawn

Context: the player’s controller is Player; the target is the pawn (respawned) or the death bag (dropped).

Channel Payload Origin Amount Notes
Pulse.Message.Respawn.Respawned FPulseRespawnedMessage Server 1 Point id, place, and whether the player chose the point or the rule picked it.
Pulse.Message.Respawn.BagDropped FPulseDeathBagMessage Server Stacks in the bag The bag, its owner (player id), team rights and expiry.

Inventory, equipment and item use

Inventory and equipment messages are sent on the authority and on clients that replicate the component. Context: the owner of the inventory is Target (and Player when it is an actor of a player), the item definition Source, its tags the Tags.

Channel Payload Origin Amount Notes
Pulse.Message.Inventory.ItemAdded FPulseInventoryItemMessage Both How many A new stack counts its stack (also on clients); items added to a stack count only on the authority.
Pulse.Message.Inventory.ItemRemoved FPulseInventoryItemMessage Both How many A whole stack counts its stack (also on clients); a part of a stack only on the authority.
Pulse.Message.Inventory.ItemChanged FPulseInventoryItemMessage Both Stack count Count, place or traits of a stack changed.
Pulse.Message.Inventory.ItemDropped FPulseInventoryItemMessage Server Items dropped The pickup is in the payload.
Pulse.Message.Inventory.Equipment.Equipped FPulseEquipmentMessage Both Stack count Context of the equipped item.
Pulse.Message.Inventory.Equipment.Unequipped FPulseEquipmentMessage Both Stack count  
Pulse.Message.Inventory.Equipment.ActiveSlotChanged FPulseEquipmentMessage Both Stack count Context of the new active item; an empty slot has no source and no tags (amount 1).
Pulse.Message.Inventory.ItemUsed FPulseItemUsedMessage Server 1 A use completed. Player and Instigator: the owner of the item user component.

Frontend

Context: the controller of the first local player is Player. Both channels are sent on the machine of the player (module PulseFrontend, only with the frontend turned on).

Channel Payload Origin Amount Notes
Pulse.Message.Frontend.PhaseChanged FPulseFrontendPhaseMessage Client 1 From and to: boot, splash, title, menu, loading, in game.
Pulse.Message.Frontend.EntrySelected FPulseFrontendEntryMessage Client 1 Entry id and menu (main or pause), before the action of the entry runs.

Map

Context: the controller of the local player is Player, the map Source. Sent on the machine of the player (module PulseMapUI).

Channel Payload Origin Amount Notes
Pulse.Message.Map.Opened FPulseMapMessage Client 1 The world map opened. Map in the payload.
Pulse.Message.Map.Closed FPulseMapMessage Client 1 The world map closed.

Ping

Context: the sender’s controller is Player, the pinged actor the Target, the ping type in Tags (module PulsePing).

Channel Payload Origin Amount Notes
Pulse.Message.Ping.Sent FPulsePing Server Receivers Sender id and name, team, type, place and end on the server clock; sent after the rate limit and the team filter.

Locks

Context: who did it is Player and Instigator (empty for a script or a door that closed by itself), the door’s actor the Target, the door component the Source, the action in Tags (Pulse.Locks.Action.*; module PulseLocks).

Channel Payload Origin Amount Notes
Pulse.Message.Locks.DoorChanged FPulseDoorMessage Server 1 A door was opened, closed, locked, unlocked or picked; door, instigator, action and the state afterwards.

Pulse Quest

Sent on the authority and on the owning client of the quest manager. Context: the quest is Source and its tag in Tags; Player is the player of the host when it has exactly one (a player’s quest manager, a shared quest host with one player).

Channel Payload Origin Amount Notes
Pulse.Message.Quest.Started FPulseQuestMessage Both 1 Also when a quest is restored from a save game.
Pulse.Message.Quest.Finished FPulseQuestMessage Both 1 Succeeded, failed or stopped (Result).
Pulse.Message.Quest.ObjectiveFinished FPulseQuestObjectiveMessage Both 1 bSucceeded in the payload.

Pulse Dialog

Context: the controller of the initiator is Player, its pawn (else the controller) Instigator, the main speaker Target, the dialog Source with its tag in Tags, and FPulseDialogContextExtra (session, dialog) the Extra.

Channel Payload Origin Amount Notes
Pulse.Message.Dialog.Started FPulseDialogMessage Server 1 A dialog or cutscene started.
Pulse.Message.Dialog.Finished FPulseDialogMessage Server 1 Result in the payload.
Pulse.Message.Dialog.ChoiceSelected FPulseDialogMessage Server 1 Tags also hold the choice.

Pulse Skill

Sent on the authority and on clients that replicate the skill component. Context: the owner of the skill component is Player.

Channel Payload Origin Amount Notes
Pulse.Message.Skill.RankChanged FPulseSkillRankChangedMessage Both New rank Source: the skill, Tags: its tag. Unlocked, refunded, reset, set or loaded.
Pulse.Message.Skill.PointsChanged FPulseSkillPointsChangedMessage Both Available points Tags: the point pool.
Pulse.Message.Skill.LevelChanged FPulseSkillLevelChangedMessage Both New level Source: the progression, Tags: its tag.
Pulse.Message.Skill.ExperienceGained FPulseSkillExperienceGainedMessage Both Experience gained Only added experience (not loaded or set); on the authority and the owning client. Source: the progression, Tags: its tag and the source of the experience.

Pulse Achievement

Sent on the authority and on clients that replicate the achievement component. Context: the owner of the component is Target (a player state, or the world actor of world achievements); Player is that player state, else the player state of the instigator; Instigator is the pawn of the instigator, else its player state (not on clients).

Channel Payload Origin Amount Notes
Pulse.Message.Achievement.Unlocked FPulseAchievementUnlockedMessage Both 1 Source: the achievement, Tags: its tag.
Pulse.Message.Achievement.StatChanged FPulseAchievementStatChangedMessage Both Change of the stat Tags: the stat. 0 on clients.

Pulse Online

Context: Player is the player the message is about: the controller of a local user, else the player state with the net id while that player is in the world.

Channel Payload Origin Amount Notes
Pulse.Message.Online.RequestCompleted FPulseOnlineRequestMessage Both 1 Where the request ran. Player: the controller it acts for (may be empty); Source: the request.
Pulse.Message.Online.User.LoginStateChanged FPulseOnlineUserLoginMessage Client 1 Source: the user.
Pulse.Message.Online.PlayerPartyChanged FPulseOnlinePlayerPartyMessage Both 1 Party id or leader flag of a player in a game session. On the server for every player, on a client for its own player. Player: the player state.
Pulse.Message.Online.Chat.Received FPulseOnlineChatReceivedMessage Client 1 Player: the first local controller; Instigator: the sender while it is in the world.
Pulse.Message.Online.Commerce.EntitlementsChanged FPulseOnlineCommerceMessage Client Entitlements  
Pulse.Message.Online.Commerce.Purchased FPulseOnlineCommerceMessage Client Items bought Only successful purchases. Source: the purchase request.
Pulse.Message.Online.RatingChanged FPulseOnlineRatingChangedMessage Server Change of the ordinal Source: the queue, Tags: its tag.
Pulse.Message.Online.Matchmaking.StateChanged FPulseOnlineMatchmakingMessage Client 1 Source: the ticket, Tags: the queue.
Pulse.Message.Online.Safety.BlockListChanged none Client 1 Player: the first local controller.
Pulse.Message.Online.Safety.PlayerReported FPulseOnlinePlayerReportMessage Client 1 Target: the reported player while it is in the world.
Pulse.Message.Online.Server.Message FPulseOnlineServerMessagePayload Client 1 Message of the day, admin message, command result, kick notice. Player: the first local controller.
Pulse.Message.Online.Connection.Changed FPulseOnlineConnectionMessage Client 1 Only when the state changes. Player: the first local controller.
Pulse.Message.Online.Stats.Updated FPulseOnlineStatsMessage Both Stats in the update Where the stats were read or written (bWritten).

Pulse Water

Sent on the authority. Context: the actor the message is about is Target (and Player when it is an actor of a player), the liquid at it is Source with its tags in Tags, its location the Location.

Channel Payload Origin Amount Notes
Pulse.Message.Water.EnteredWater FPulseWaterContactMessage Server Speed in cm/s A floating object came into the water.
Pulse.Message.Water.LeftWater FPulseWaterContactMessage Server Speed in cm/s No liquid.
Pulse.Message.Water.Submerged FPulseWaterContactMessage Server Speed in cm/s Completely under the surface.
Pulse.Message.Water.Surfaced FPulseWaterContactMessage Server Speed in cm/s Back up.
Pulse.Message.Water.BoatWrecked FPulseWaterBoatMessage Server 1 Instigator: who caused the last damage; Player: the instigator when it is an actor of a player, else the boat when a player possesses it. No liquid.
Pulse.Message.Water.BoatSunk FPulseWaterBoatMessage Server 1 Like BoatWrecked.
Pulse.Message.Water.WaveEvent FPulseWaterWaveMessage Server Height of the crests in cm Only Location: the origin of the ring.
Pulse.Message.Water.StartedSwimming FPulseWaterSwimMessage Server 1  
Pulse.Message.Water.StoppedSwimming FPulseWaterSwimMessage Server 1  
Pulse.Message.Water.HeadUnderWater FPulseWaterSwimMessage Server 1  
Pulse.Message.Water.HeadAboveWater FPulseWaterSwimMessage Server Seconds under water  

Pulse AI

Sent while bBroadcastMessages is on (Project Settings > Pulse > AI, default on). Context: the pawn of the agent is Instigator, the actor it reacts to Target (and Player when it is an actor of a player), its profile Source, its team in Tags, its location the Location.

Channel Payload Origin Amount Notes
Pulse.Message.AI.AwarenessChanged FPulseAIAwarenessMessage Server New level 0 unaware, 1 suspicious, 2 alert, 3 combat. Target: the strongest perceived actor.
Pulse.Message.AI.Alarm FPulseAIAlarmMessage Server Allies that heard it Target: the target of the alarm; Location: where it was raised.

The encounters of the bridge Pulse AI Combat Bridge (PulseAICombatBridge): the encounter is Target with its EncounterId in Tags, its location the Location; no player, instigator or source. The amount is the number of waves started.

Channel Payload Origin Amount Notes
Pulse.Message.AI.Encounter.Started FPulseAIEncounterMessage Server 0 Sent after wave 0 spawned (a player came close, or Start Encounter).
Pulse.Message.AI.Encounter.Wave FPulseAIEncounterMessage Server Number of the wave Sent after the wave spawned; counted from 1.
Pulse.Message.AI.Encounter.Cleared FPulseAIEncounterMessage Server Waves started Sent when every agent of the last wave is dead or gone.
Pulse.Message.AI.Encounter.Reset FPulseAIEncounterMessage Server 0 Sent when all players went far away, the respawn time after clearing ran out, Reset Encounter was called, or a load ended a running fight.

Pulse Build

Context: the actor that did it is Instigator (and Player when it is an actor of a player), the piece definition Source, the tags of the definition, of its tier and its category Tags, the location of the piece Location, the actor of the piece (else its cluster) Target.

Channel Payload Origin Amount Notes
Pulse.Message.Build.Placed FPulseBuildMessage Server 1 Instigator: the builder.
Pulse.Message.Build.Changed FPulseBuildMessage Server 1 Moved, upgraded, damaged, repaired or finished; comes before those messages.
Pulse.Message.Build.Completed FPulseBuildMessage Server 1 A construction site or an upgrade was finished.
Pulse.Message.Build.Upgraded FPulseBuildMessage Server New tier Only when the tier rises.
Pulse.Message.Build.Damaged FPulseBuildMessage Server Damage Not for the hit that destroys the piece.
Pulse.Message.Build.Repaired FPulseBuildMessage Server Health restored  
Pulse.Message.Build.Destroyed FPulseBuildMessage Server 1 By damage or decay; comes after Removed. Target: as for Removed.
Pulse.Message.Build.Removed FPulseBuildMessage Server 1 Target: the cluster that held the piece (none for actor pieces).
Pulse.Message.Build.Collapsed FPulseBuildCollapseMessage Server Pieces collapsed Module PulseBuildIntegrity. Source: the definition all pieces share (else none), Tags: those of all pieces, Location: their middle, no target.

Pulse Time

Sent on every machine: each computes the same clock. No player in the context.

Channel Payload Origin Amount Notes
Pulse.Message.Time.HourChanged FPulseTimeHourChangedMessage Both The hour, 0 to 23 Also once after the clock was set, skipped or loaded.
Pulse.Message.Time.DayChanged FPulseTimeDayChangedMessage Both Days since the first day, 1 for the first  
Pulse.Message.Time.SeasonChanged FPulseTimeSeasonChangedMessage Both 1 Tags: the new season.
Pulse.Message.Time.WeatherChanged FPulseTimeWeatherChangedMessage Both 1 Source: the weather state, Tags: its tag.
Pulse.Message.Time.Scheduled FPulseTimeScheduledMessage Both 1 Tags: the event. Daily events on every machine (bServerOnly: server), events of ScheduleAt on the server.

Pulse Faction

Player: the actor with the faction component when it is a player (else it is the target), Source: the faction definition, Tags: the faction tag.

Channel Payload Origin Amount Notes
Pulse.Message.Faction.ReputationChanged FPulseFactionReputationChangedMessage Server The change Only within the limits; a reward passes its context on.
Pulse.Message.Faction.RankChanged FPulseFactionRankChangedMessage Server The new rank index After ReputationChanged; bUp for a higher rank.
Pulse.Message.Faction.Joined FPulseFactionMembershipMessage Server 1 Players and NPCs (Start Factions too).
Pulse.Message.Faction.Left FPulseFactionMembershipMessage Server 1 Also when loading drops a membership.
Pulse.Message.Faction.RelationChanged FPulseFactionRelationChangedMessage Server 1 Tags: both factions. No player.

Pulse Codex

Player: the player state with the codex component, Source: the entry asset, Tags: the entry tag and its category.

Channel Payload Origin Amount Notes
Pulse.Message.Codex.Unlocked FPulseCodexEntryMessage Server 1 Through the API, a trigger, a discovery volume or a cheat; a trigger passes the context of its message on. Not for entries unlocked from the start.
Pulse.Message.Codex.Read FPulseCodexEntryMessage Server 1 The first time the player opens the entry.

Pulse Sound

Player: the pawn of the first local player (its controller without a pawn), Target: the zone, Source: the profile, Tags: the bed.

Channel Payload Origin Amount Notes
Pulse.Message.Sound.AmbienceChanged FPulseSoundAmbienceMessage Client 1 The listener of the first local player is in another zone, or its zone plays another bed. Zone and bed empty outside every zone.
Pulse.Sound.Example.Event.ButtonPressed none Server 1 Only the example map: a player stepped on the bell button. Player and Instigator: the pawn, Target: the button.

Pulse World

Sent on the machine where the chunk changed: every machine loads its own chunks. Target: the chunk actor (empty for backends without actors), Source: the world definition, Location: the center of the chunk on the ground. No player in the context.

Channel Payload Origin Amount Notes
Pulse.Message.World.ChunkLoaded FPulseWorldChunkMessage Both 1 A chunk became active, also when it woke from sleep. Off with bSendChunkMessages.
Pulse.Message.World.ChunkUnloaded FPulseWorldChunkMessage Both 1 A chunk fell asleep or was removed.

Pulse Survival

Add-on of Pulse Core. Player and Target: the pawn with the survival component, Tags: the stat (Pulse.Survival.Stat.*) and the new band (Pulse.Survival.Threshold.*).

Channel Payload Origin Amount Notes
Pulse.Message.Survival.ThresholdChanged FPulseSurvivalThresholdMessage Server Value of the stat A stat (hunger, thirst) entered another band or left every band (new band empty). The payload has the old band and the maximum.

Your own channels

Register your channels the same way (Pulse::Messages::RegisterChannel, see Channel register), fill the context with what you know and give single events the amount 1. Two senders of Pulse Foundation send any channel: the cheat PulseMessageSend <Channel> (empty payload and context) and the relay component, which passes on what it is given.


PulseFoundation plugin documentation.

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