Events & Delegates
A reference for all ARDEM game events exposed as UE5 multicast delegates.
ARDEM exposes game events as UE5 multicast delegates on the UArdemEventManager class. You bind a lambda or a UFUNCTION to a delegate in StartupModule or Initialize, and remove it on shutdown.
Binding to a Delegate
cpp
#include "ArdemEventManager.h"
#include "ArdemPlayerController.h"
// In your module or subsystem Initialize():
UArdemEventManager* Events = IArdemModAPI::Get().GetEventManager();
// Bind with a lambda — store the handle to remove later
PlayerJoinHandle = Events->OnPlayerJoin.AddLambda(
[](AArdemPlayerController* Player)
{
if (Player)
{
Player->ClientSendChatMessage(TEXT("Welcome!"));
}
}
);
// Bind to a UFUNCTION on a UObject
Events->OnPlayerDeath.AddUObject(this, &UMyModSubsystem::HandlePlayerDeath);
// Remove on shutdown
Events->OnPlayerJoin.Remove(PlayerJoinHandle);
Events->OnPlayerDeath.RemoveAll(this);Player Delegates
| Delegate | Signature | Description |
|---|---|---|
| OnPlayerJoin | (AArdemPlayerController*) | A player connected to the server |
| OnPlayerLeave | (AArdemPlayerController*, ELeaveReason) | A player disconnected |
| OnPlayerDeath | (AArdemPlayerController*, AActor* Killer, FName Cause) | A player died |
| OnPlayerRespawn | (AArdemPlayerController*) | A player respawned |
| OnPlayerLevelUp | (AArdemPlayerController*, int32 NewLevel) | A player gained a level |
| OnPlayerChatMessage | (AArdemPlayerController*, FString Message, bool& bSuppress) | Chat message sent |
World Delegates
| Delegate | Signature | Description |
|---|---|---|
| OnDaytime | (int32 Day) | Day/night cycle switched to day |
| OnNighttime | (int32 Day) | Day/night cycle switched to night |
| OnWeatherChanged | (EArdemWeather From, EArdemWeather To) | Weather type changed |
| OnZoneEntered | (AArdemPlayerController*, FName ZoneName) | Player entered a named zone |
| OnZoneLeft | (AArdemPlayerController*, FName ZoneName) | Player left a named zone |
| OnAirdropSpawned | (FVector Position) | An airdrop was spawned in the world |
Item Delegates
| Delegate | Signature | Description |
|---|---|---|
| OnItemPickedUp | (AArdemPlayerController*, UArdemItem*, int32 Count) | Player picked up an item |
| OnItemDropped | (AArdemPlayerController*, UArdemItem*, int32 Count) | Player dropped an item |
| OnItemCrafted | (AArdemPlayerController*, UArdemItem*, int32 Count) | Player crafted an item |
| OnItemConsumed | (AArdemPlayerController*, UArdemItem*) | Player consumed a food or medical item |
| OnItemEquipped | (AArdemPlayerController*, UArdemItem*, EEquipSlot) | Player equipped an item |
Suppressible Events
Some delegates pass a bool& bSuppress parameter by reference. Setting it to true inside your binding will cancel the default engine behaviour — for example, suppressing a chat message or blocking an item pickup.