Every failed scheduled start overwrote the rolled Min/MaxInterval with a hard-coded 5 minutes and never restored it, so on a server that sits empty the scheduler degenerated into a permanent 5-minute poll. The moment the first player logged in, an event fired within one retry window and anchored on their exact position, with a server-wide announcement -- login ambush rather than a scheduled world event. It also wrote a retry line to gold-rush.log every 5 minutes forever (Debug defaults to 1). StartEvent now counts eligible anchors when the schedule expires, holds without consuming the interval while below MinPlayersOnline, and inserts GraceMinutes once the world repopulates. The count runs only on schedule expiry, never per world tick. New config: GoldRush.RetryMinutes (5), GoldRush.GraceMinutes (15), GoldRush.MinPlayersOnline (1). GraceMinutes = 0 rolls a fresh interval instead. GM-forced starts pass scheduled=false and bypass both gates. Verified with clang -fsyntax-only against the live build's compile flags. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019vTNrJGsprcjdjjjDJD5ZM
158 lines
5 KiB
Text
158 lines
5 KiB
Text
[worldserver]
|
|
|
|
###################################################################################################
|
|
# GOLD RUSH LOGGING
|
|
###################################################################################################
|
|
|
|
Appender.GoldRushLog = 2,5,0,gold-rush.log,w
|
|
Logger.module.goldrush = 5,GoldRushLog
|
|
|
|
###################################################################################################
|
|
# GOLD RUSH MODULE
|
|
###################################################################################################
|
|
#
|
|
# GoldRush.Enable
|
|
# Description: Enable the Gold Rush world event scheduler
|
|
# Default: 1 (enabled)
|
|
# 0 (disabled)
|
|
|
|
GoldRush.Enable = 1
|
|
|
|
#
|
|
# GoldRush.VerboseLogging
|
|
# Description: Emit detailed event, spawn, and bot routing logs
|
|
# Default: 0 (disabled)
|
|
|
|
GoldRush.VerboseLogging = 0
|
|
|
|
#
|
|
# GoldRush.MinIntervalMinutes
|
|
# Description: Minimum number of minutes between Gold Rush events
|
|
# Default: 120
|
|
|
|
GoldRush.MinIntervalMinutes = 120
|
|
|
|
#
|
|
# GoldRush.MaxIntervalMinutes
|
|
# Description: Maximum number of minutes between Gold Rush events
|
|
# Default: 240
|
|
|
|
GoldRush.MaxIntervalMinutes = 240
|
|
|
|
#
|
|
# GoldRush.DurationMinutes
|
|
# Description: How long the event stays active once it starts
|
|
# Default: 20
|
|
|
|
GoldRush.DurationMinutes = 20
|
|
|
|
#
|
|
# GoldRush.RetryMinutes
|
|
# Description: How long to wait before trying again when a scheduled event cannot
|
|
# start (nobody online, no eligible zone, nowhere to place nodes).
|
|
# The rolled Min/MaxInterval is not consumed while holding.
|
|
# Default: 5
|
|
|
|
GoldRush.RetryMinutes = 5
|
|
|
|
#
|
|
# GoldRush.GraceMinutes
|
|
# Description: After the server has been sitting below MinPlayersOnline, wait this
|
|
# long once it repopulates before running an event. Stops the first
|
|
# person to log in from having a Gold Rush announced on top of them.
|
|
# Set to 0 to roll a fresh Min/MaxInterval instead.
|
|
# Default: 15
|
|
|
|
GoldRush.GraceMinutes = 15
|
|
|
|
#
|
|
# GoldRush.MinPlayersOnline
|
|
# Description: Minimum number of players standing in an event-eligible zone before
|
|
# a scheduled event may run. Playerbots count toward this. GM-forced
|
|
# starts ignore it.
|
|
# Default: 1
|
|
|
|
GoldRush.MinPlayersOnline = 1
|
|
|
|
#
|
|
# GoldRush.MinNodes
|
|
# Description: Minimum number of temporary nodes to spawn in the hotspot
|
|
# Default: 15
|
|
|
|
GoldRush.MinNodes = 15
|
|
|
|
#
|
|
# GoldRush.MaxNodes
|
|
# Description: Maximum number of temporary nodes to spawn in the hotspot
|
|
# Default: 25
|
|
|
|
GoldRush.MaxNodes = 25
|
|
|
|
#
|
|
# GoldRush.BotsPerFaction
|
|
# Description: Number of random bots per faction to steer toward the event
|
|
# Default: 6
|
|
|
|
GoldRush.BotsPerFaction = 6
|
|
|
|
#
|
|
# GoldRush.BotPulseSeconds
|
|
# Description: How often the module checks whether bot pressure needs a refresh
|
|
# Default: 30
|
|
|
|
GoldRush.BotPulseSeconds = 30
|
|
|
|
#
|
|
# GoldRush.SpawnRadiusYards
|
|
# Description: Radius around the anchor player used for temporary spawns
|
|
# Default: 25.0
|
|
|
|
GoldRush.SpawnRadiusYards = 25.0
|
|
|
|
#
|
|
# GoldRush.NodeEntries
|
|
# Description: Semicolon-separated list of temporary gameobject template entries.
|
|
# Defaults to a mixed endgame bundle.
|
|
# Default: 191133;190176;190171;190172;189973
|
|
|
|
GoldRush.NodeEntries = 191133;190176;190171;190172;189973
|
|
|
|
#
|
|
# GoldRush.ZonePool
|
|
# Description: Semicolon-separated list of eligible zones.
|
|
# Use Zone|ApproximateSubArea for a better announcement.
|
|
# Default: "Un'Goro Crater|Fire Plume Ridge; Winterspring|Frostfire Hot Springs; Eastern Plaguelands|Terrorweb Tunnel; Sholazar Basin|The River's Heart"
|
|
|
|
GoldRush.ZonePool = "Un'Goro Crater|Fire Plume Ridge; Winterspring|Frostfire Hot Springs; Eastern Plaguelands|Terrorweb Tunnel; Sholazar Basin|The River's Heart"
|
|
|
|
#
|
|
# GoldRush.Blacklist
|
|
# Description: Semicolon-separated list of zones or zone+area pairs to exclude.
|
|
# Default: "Stormwind City; Orgrimmar; Dalaran"
|
|
|
|
GoldRush.Blacklist = "Stormwind City; Orgrimmar; Dalaran"
|
|
|
|
#
|
|
# GoldRush.StartMessage
|
|
# Description: World announcement template for the event start.
|
|
# Use {} once for the location text.
|
|
# Default: "A seismic anomaly has exposed a massive vein of rich minerals in {}!"
|
|
|
|
GoldRush.StartMessage = "A seismic anomaly has exposed a massive vein of rich minerals in {}!"
|
|
|
|
#
|
|
# GoldRush.EndMessage
|
|
# Description: World announcement template for the event end.
|
|
# Default: "The Gold Rush in {} has been exhausted."
|
|
|
|
GoldRush.EndMessage = "The Gold Rush in {} has been exhausted."
|
|
|
|
#
|
|
# GoldRush.Debug
|
|
# Description: Enable informational log output for the event scheduler
|
|
# Default: 1 (enabled)
|
|
# 0 (disabled)
|
|
|
|
GoldRush.Debug = 1
|
|
|
|
###################################################################################################
|