Skip to content

Game Events

The game event system (GameEventMgr, src/game/GameEventMgr.cpp) activates and deactivates world content on a schedule: seasonal world events (Noblegarden, Harvest Festival…), the AQ war effort, Darkmoon Faire and custom server events.


Defining an Event

game_event is the master table:

Field Meaning
entry Event id referenced by all game_event_* tables.
start_time / end_time The window in which occurrences of the event may start.
occurence Minutes between event starts (the cycle length).
length Minutes the event stays active each cycle.
holiday Link to a Holiday.dbc id - makes the client show the holiday calendar/announcement.
description Human-readable name.
hardcoded Event state driven by C++ (e.g. AQ) instead of the scheduler.
disabled Skip entirely.
patch_min / patch_max Progression gating.

An event is active when the current time falls inside an occurrence window; scripts and conditions can test this with CONDITION_ACTIVE_GAME_EVENT.


What Events Can Change

Table Effect while the event is active
game_event_creature Add/remove creature spawns (guid-based).
game_event_creature_data Override display/faction/equipment of spawns during the event.
game_event_gameobject Add/remove gameobject spawns.
game_event_quest Make quests available only during the event.
game_event_mail Send reward mails on event conditions.

Events can also be toggled manually by admins via the event commands (event list, event enable, event disable; see GM Commands); manual state is persisted in game_event_status.


Conditions & Scripts

  • Check active state from any condition: CONDITION_ACTIVE_GAME_EVENT (12).
  • Start/stop events from DB scripts: command 53 GAME_EVENT (DB Script Tables).
  • Hardcoded events (AQ gate progression) live in src/game/HardcodedEvents.cpp with hardcoded = 1.