Fork of Old-Man-Warcraft/mod-gold-rush — AzerothCore timed resource-rush world event with playerbot routing. Local fixes applied.
Find a file
Claude 6244e2bc65
fix: correct bot routing, node lifetime, reload cleanup and spawn placement
Four defects found reviewing this against AzerothCore efe123fab and
mod-playerbots 8d9f6aa6 (both 2026-08-14).

1. Bot routing did nothing. Engine::ChangeStrategy switches on name[0] and
   only handles '+', '-', '~' and '?'; a bare "new rpg" fell through every
   case. Bots still drifted toward the hotspot, but only because
   rpgInfo.ChangeToGoGrind() works and AiFactory already grants the strategy
   when AiPlayerbot.EnableNewRpgStrategy is on. Now sends "+new rpg", and
   only to BOT_STATE_NON_COMBAT -- the combat engine never carries it.

2. Node lifetime was off by 1000x. The respawnTime argument to
   Map::SummonGameObject lands in GameObject::SetRespawnTime(int32), which is
   seconds. Passing DurationMs made a 20-minute event's nodes live ~13.9 days,
   so they only ever vanished via the explicit despawn at event end.

3. LoadConfig cleared _spawnedNodes and _active without despawning, so a
   `.reload config` mid-event orphaned every node permanently (compounded by
   defect 2). It now tears the running event down first.

4. Spawns reused the anchor's exact Z for every scattered X/Y with no ground
   probe and no LOS check, leaving nodes floating or buried on the hilly zones
   in the default pool. Placement now probes ground height, rejects drift
   beyond 20y, requires LOS from the anchor, and retries up to 8 times.

Verified with a clang -fsyntax-only pass using the live build's own compile
flags plus the mod-playerbots include tree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019vTNrJGsprcjdjjjDJD5ZM
2026-09-03 16:49:09 +00:00
conf chore: initial standalone module import 2026-04-01 13:13:26 -04:00
src fix: correct bot routing, node lifetime, reload cleanup and spawn placement 2026-09-03 16:49:09 +00:00
CHANGELOG.md fix: correct bot routing, node lifetime, reload cleanup and spawn placement 2026-09-03 16:49:09 +00:00
LICENSE chore: initial standalone module import 2026-04-01 13:13:26 -04:00
mod-gold-rush.cmake chore: initial standalone module import 2026-04-01 13:13:26 -04:00
README.md docs: add compatibility notes for playerbots setups 2026-04-01 13:51:38 -04:00

mod-gold-rush

mod-gold-rush is an AzerothCore module that runs a timed, server-wide resource eruption event. When Gold Rush activates, the module selects an eligible open-world zone, anchors on a live player, spawns temporary resource nodes near the hotspot, announces the event to the server, and can route playerbots into the area to create a PvPvE scramble.

Requirements

Required dependency: mod-playerbots must be installed and enabled. Gold Rush includes direct playerbot integration and will not work correctly without the Playerbots module.

  • Requires AzerothCore.
  • Requires mod-playerbots.
  • Gold Rush bot routing, hotspot pressure, and related behavior depend on Playerbots APIs.

Compatibility

  • Built for AzerothCore-based setups that include mod-playerbots.
  • Not compatible with a stock AzerothCore setup that does not have mod-playerbots installed.
  • Gold Rush directly includes Playerbots headers and uses Playerbots runtime APIs for routing bots to event hotspots.
  • If mod-playerbots is missing, Gold Rush should be expected to fail to build or fail to function correctly.
  • Best fit: the same Playerbot-oriented AzerothCore environment this module is being developed and tested against.

Features

  • Schedules Gold Rush events on a random interval.
  • Announces an active hotspot with approximate location messaging.
  • Spawns temporary mixed ore and herb nodes around a live player anchor.
  • Supports dynamic zone selection with blacklist-based restrictions.
  • Exposes GM commands for status, force-start, test-start, stop, and reroute.
  • Routes random playerbots toward the active hotspot with faction pressure.
  • Writes diagnostics to a dedicated gold-rush.log logger/appender pair.
  • Supports verbose event logging for anchor, spawn, and routing behavior.

Commands

GM commands

  • .goldrush status - show current event state and telemetry.
  • .goldrush start [zone or area] - start Gold Rush in your current eligible zone or in a configured hotspot by name.
  • .goldrush teststart - force a hotspot at your current eligible location.
  • .goldrush stop - end the active event and despawn temporary nodes.
  • .goldrush reroute - refresh playerbot routing pressure.

Installation

  1. Make sure mod-playerbots is already installed in your AzerothCore setup.
  2. Place mod-gold-rush inside the AzerothCore modules/ directory.
  3. Re-run CMake so AzerothCore detects the module.
  4. Build and install/update your server.
  5. Copy conf/gold_rush.conf.dist to your generated module config directory as gold_rush.conf if you want local overrides.
  6. Restart worldserver.

Configuration

The module ships its defaults in conf/gold_rush.conf.dist.

Important options:

  • GoldRush.Enable
  • GoldRush.ZonePool
  • GoldRush.Blacklist
  • GoldRush.VerboseLogging
  • GoldRush.MinIntervalMinutes
  • GoldRush.MaxIntervalMinutes
  • GoldRush.DurationMinutes
  • GoldRush.MinNodes
  • GoldRush.MaxNodes
  • GoldRush.BotsPerFaction
  • GoldRush.BotPulseSeconds
  • GoldRush.SpawnRadiusYards
  • GoldRush.NodeEntries
  • GoldRush.StartMessage
  • GoldRush.EndMessage
  • GoldRush.Debug
  • Appender.GoldRushLog
  • Logger.module.goldrush

Behavior notes

  • Event locations are announced approximately, not with exact coordinates.
  • Hotspots are temporary and despawn at event end.
  • Eligible anchors must be in open-world, non-city, non-sanctuary zones.
  • mod-playerbots is required because Gold Rush actively routes random bots to the event hotspot.
  • Blacklisted zones and zone/area pairs are excluded from selection.
  • Node selection alternates between ore-like and herb-like entries when possible.
  • If configured hotspots are unavailable, Gold Rush can fall back to eligible live-player zones.

Repository contents

  • src/ - module implementation and script loader registration.
  • conf/ - distributed module configuration.
  • mod-gold-rush.cmake - AzerothCore build integration.

Status

This module is actively being iterated on. Recent work includes:

  • looser open-world zone eligibility,
  • corrected node entry parsing from config,
  • improved test-start behavior and hotspot fallback handling.