Repository navigation
Merged
Conversation
Enforce strict 100% own-race racial mount selection for random pool and hired bots (disallowing cross-race mounts), while leaving player alts ungated. Add explicit vendor mount lists for all 10 playable races, enforce tier-based mount preference (epic > normal > turtle), and ensure bots initializing at level 18+ receive proper racial mounts and riding skills.
fix: bots ride their own race's mounts (goblin Rocket Cars/Shredders, epic only at 60)
…#895) Protocol v12: BOT_BATCH carries 'instance' (Map::GetInstanceId(), 0 in the open world) and 'subgroup' (raid subgroup) per unit, additive; an older module omits them and the daemon falls back to one run per map. Daemon: internal/state/dungeons.go groups the roster into runs — one per (map, instance) copy of a dungeon or raid with at least one bot in it; open world and battlegrounds are never runs, a player alone in an instance is neither. GET /api/v1/dungeons serves the runs with members (bots and real players), first-seen per game-server session. Dashboard: new read-only Dungeons tab — list of runs (dungeon name + copy number, player or 'no player', bots, down, short state, seen-for) and a live view per run reusing the Commanders card and map renderer; the real player is marked apart (gold dot ring, badge). Raid runs read as compact subgroup blocks of 5. The world map's 'in instances' line and a bot profile link to the bot's run.
The normal pass rejects every candidate for some slots, and the old backstop only covered level < 30 and eight slots, skipping the item-level cap. Trinkets with class restriction had zero stat weight because the no-stat rule compared the AllowableClass bitmask to a class id. A slot still empty after the normal pass now takes the best candidate that passes the same hard gates (level, item-level cap, quality band, fresh-seed provenance, paired duplicate, game equip check). Shirt and tabard are left alone.
Chain propagation now comes from quests on a raid map or started by a raid-exclusive item. Raid-type and raid-scale quests stay raid themselves but no longer taint their successors. Standalone test updated.
…tance Chain sources are quests on a raid map, quests started by a raid-exclusive item, and raid-type quests whose zone is not a non-raid instance area. Raid-scale quests stay raid but do not taint successors.
…-weight cache The backstop only saw items with a non-zero stat weight for the spec (equipCache), so a fresh level-5 tank ended with no head, neck, shoulders or second ring while the DB held qualifying items. RandomItemMgr now keeps a per-slot index of every item info cache entry (ring and trinket items under each slot they occupy). The backstop tries weighted candidates for the spec first, then the index. Same hard gates and ranking as before.
fix: no raid quest rewards on pool bots, and fill empty gear slots when a fitting item exists
feat(dashboard): Dungeons tab with a live view of every dungeon run (#895)
Sagiroth
marked this pull request as ready for review
October 19, 2026 12:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release batch from
dev. Merge it with a merge commit.Players
Operators and tools
TBDASH_MAP_DIRis set (same folder as the Commanders tab), otherwise the grid.instanceandsubgroupper unit. An older dashboard ignores them; with an older module the Dungeons tab shows one run per map.AiPlayerbot.RandomBotShopMounts = 1still restores every mount.Testing
Closes #895