Zone Mechanics¶
Small world systems that operate per zone: weather, graveyards, exploration XP and fishing zones.
Weather¶
game_weather defines per-zone weather chances for each season
(spring/summer/fall/winter × rain/snow/storm). The active season is derived from the server date in Weather.cpp:
season = ((yday − 78 + 365) / 91) % 4, so spring begins around 20 March. The server rolls
periodically (ChangeWeatherInterval in mangosd.conf) and broadcasts the
result to players in the zone; rolls under a 60 % threshold with grade below ⅓ resolve to
fair weather, keeping most zones clear most of the time. GMs can force weather with the
.wchange <type> <grade> command.
Graveyards¶
game_graveyard_zone links nearest-graveyard ids to zones (with
faction and patch filters). When a player dies, the core picks the
closest valid graveyard for the zone they died in; ghosts run back from there.
areatrigger_tavern marks tavern areas where logging out counts as "resting".
Exploration¶
exploration_basexp- base XP granted for discovering a zone at a given level.- Discovery state is stored per player as an exploration bitmask on
characters.
Fishing Zones¶
skill_fishing_base_level sets the minimum fishing skill
per zone/area. Fishing loot itself comes from
fishing_loot_template keyed by area id (entry 0 = junk on
failure) - see the Loot System.