Getting Started
Review draft. This source page has not completed website editorial and release-specific verification.
SignalBus is a standalone Unreal Engine plugin for typed, local publisher-subscriber messages. It supports World and Game Instance scopes, Immediate and Queued dispatch, C++ and Blueprint use, and optional runtime diagnostics.
First Message
Section titled “First Message”- Enable SignalBus in the project.
- Declare a reflected payload
USTRUCT. - Choose a stable
FSignalBusMessageIdsuch asGame.Inventory.CountChanged. - Subscribe through
USignalBusWorldSubsystemorUSignalBusGameInstanceSubsystem. - Publish through the same subsystem scope.
USTRUCT()struct FInventoryCountChanged{ GENERATED_BODY()
UPROPERTY() int32 Count = 0;};
const FSignalBusMessageId MessageId(TEXT("Game.Inventory.CountChanged"));USignalBusWorldSubsystem* Bus = World->GetSubsystem<USignalBusWorldSubsystem>();FSignalBusSubscriptionHandle Handle = Bus->Subscribe<FInventoryCountChanged>( MessageId, Owner, FSignalBusMessageCallback::CreateLambda([](const void* Data) { const FInventoryCountChanged& Payload = *static_cast<const FInventoryCountChanged*>(Data); }));
Bus->PublishImmediate(MessageId, FInventoryCountChanged{ 3 }, Owner);See C++ Usage, Blueprint Usage, and Architecture for scope, lifetime, and delivery details. Use SignalBus Runtime Inspector to observe live activity and SignalBus Runtime Controls to change diagnostic capture settings.