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

DelegateSignatureDescription
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

DelegateSignatureDescription
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

DelegateSignatureDescription
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.