Skip to content
Tuxedo CatSTUDIO
Menu

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.

  1. Enable SignalBus in the project.
  2. Declare a reflected payload USTRUCT.
  3. Choose a stable FSignalBusMessageId such as Game.Inventory.CountChanged.
  4. Subscribe through USignalBusWorldSubsystem or USignalBusGameInstanceSubsystem.
  5. 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.