Player State Change Callbacks#
Player state change callbacks fire when players transition between different zone states (PvP, PvE, Raid, SafeZone).
Interface#
class PlayerStateChangeCallback
{
void OnPlayerEnteredPvP(PlayerBase player) {}
void OnPlayerExitedPvP(PlayerBase player) {}
void OnPlayerEnteredPvE(PlayerBase player) {}
void OnPlayerExitedPvE(PlayerBase player) {}
void OnPlayerEnteredRaid(PlayerBase player) {}
void OnPlayerExitedRaid(PlayerBase player) {}
void OnPlayerEnteredSafeZone(PlayerBase player) {}
void OnPlayerExitedSafeZone(PlayerBase player) {}
}
Registration#
Server-side only:
// In your mod's MissionServer.c file
modded class MissionServer
{
override void OnInit()
{
super.OnInit();
// Create and register the callback
MyStateCallback myCallback = new MyStateCallback();
PlayerZoneController.RegisterPlayerStateChangeCallback(myCallback);
}
}
// Define your callback class
class MyStateCallback : PlayerStateChangeCallback
{
override void OnPlayerEnteredPvP(PlayerBase player)
{
if (!player)
return;
// Your custom logic here
// Example: Enable PvP-specific features
Print("[MyMod] Player entered PvP zone");
}
override void OnPlayerExitedPvP(PlayerBase player)
{
if (!player)
return;
// Your custom logic here
}
// Implement all other methods...
}
Use Cases#
- UI Mods: Update HUD elements based on current zone state
- Sound Mods: Play state-specific background music or sounds
- Gameplay Mods: Enable/disable features based on zone state
- Anti-Cheat: Monitor state transitions for suspicious behavior