# AdventureBot class combat and player instance groups Implementation target: Cataclysm 4.3.4. DungeonBot CreatureAI remains independent. ## Shared class behavior AdventureRotationPolicy supplies deterministic PvE priorities for the supported specializations. AdventureTalentPolicy supplies one canonical 41-point template per specialization (separate bear/cat templates). At lower levels native talent point, tier and prerequisite checks select the attainable prefix. The same class/spec/level uses the same rules; personality does not randomly select spells. Native player casts enforce ranks, cooldowns, resources, equipment, line of sight, range, procs, combo points and holy power. Successful casts use COMBAT_CAST logs. Each generated profile stores identity.solo_specialization alongside the existing group specialization and role. Older v2 profiles derive the same stable choice from their persisted seed. Solo choices are Arms/Fury, Retribution, Marksmanship/Survival, Assassination/Combat, Shadow, Frost/Unholy, Elemental/Enhancement, Arcane/Fire, all three Warlock specs, Balance/Cat. Group membership selects the profile group specialization. Leaving/kicking selects solo again at a safe out-of-combat opportunity. Reconciliation retries with a backoff. Named profiles share talent templates without replacing their inventory, professions or fixed level. Temporary poison/weapon imbues use native enchant/proc handling; no synthetic damage or generated combat resources. Generated loadouts reuse stored compatible equipment through native swaps. Full inventory cleanup protects strongest candidates for both loadouts. Level 85 uses native epic items of item level >=359 (no legendaries); class, stats, armor, native use and existing restriction checks still apply. Tank avoidance/mastery/stamina and healer spirit receive extra weight; resilience receives a PvE penalty. ## Group roles Healers prioritize living allies and summoned DungeonBots by missing health and attack pressure, with a large emergency-health priority. They use direct healing, HoTs/shields, suitable group healing, dispels and native mana abilities. They approach an injured ally when range/LOS prevents healing. Capable classes resurrect players outside group combat. Food/bandages yield to group combat; personal recovery rules otherwise remain unchanged. Tanks pick up attackers threatening non-tanks, use native taunts and AoE threat abilities, and do not taunt from recognized player or DungeonBot tanks. Damage bots prefer tank targets. Group protection supersedes solo first-damager focus; solo focus and the no-group-flight rule are unchanged. A leading tank can pull nearby hostiles while the player advances, or a valid player-selected target, after checking nearby companions, own health and healer mana. Missing roles do not block play and are not filled by changing somebody's profile. Secondary tanks stay near the leading tank in actual instance groups. Ranged classes attack from range; approaching melee assistants prefer the target's rear when another member tanks. Native spell validation and conservative AoE checks prevent casting into nearby unengaged hostile creatures. Hunter pets are loaded or created through native tame/pet functions; Warlock summons and Unholy ghouls use native spells. Pet AI assists against the owner's current combat target. ## Actual and performative visits Only player-containing groups enter actual encounter mode. Bot-only visits retain their existing abstract entrance stay, block deadline, exit and injury behavior. Following a player into an instance routes to a native entrance via TravelGraph and local MMAP, then submits the normal area-trigger handler: native access, difficulty and instance binding still apply. AdventureEncounterMgr pauses personal intent execution inside actual instances. An old abstract visit record is finished without abstract exit/injury before real play proceeds. The current civil-hour plan resumes outside, without replaying missed slots. A dismissed bot leaves to the native exit destination when safe. Dead bots accept native resurrection requests. Otherwise they wait while players or DungeonBot companions survive. After a full wipe they release, path to the outside entrance and re-enter with a 50% resurrection without sickness or additional spirit-healer durability penalties. Failed/rejected/stuck entrance paths allow an exterior entrance teleport. Bots gather inside before returning to the recorded death point; a living player in the instance takes precedence. A ghost login may reconstruct context from its native corpse. Surviving players outside cause companions to leave safely too. ## Encounter extensions and limits Register a map-specific C++ callback with AdventureEncounterMgr::Register(map, callback) during script registration. Return true when it owns that update; false runs the generic ground-avoidance behavior. An empty callback unregisters an override. Callbacks can inspect encounter states, spells, auras and threat, and delegate normal class casting to the common combat loop by returning false. Do not mutate the callback registry from concurrent map updates. The generic fallback detects hostile damaging DynamicObjects in the current phase and height band, then selects a complete, unsuspicious MMAP path to a safe endpoint. It retains an existing safe escape path and interrupts casting only when starting a necessary escape. It does not claim to understand every scripted NPC hazard, frontal attack, soak, stack mechanic, vehicle or special-action button. Those belong in later map/boss-specific callbacks. No specific boss scripts are introduced in this change. This is functional shared combat, not a promise of simulator-optimal DPS or verified completion of every raid. ## Cataclysm sources Retrieved 2026-10-28. Only the Cataclysm paths/isCata data were used; no TBC, Wrath, MoP or Retail builds were substituted. Talent positions and names were matched against local 4.3.4 Talent/TalentTab/Spell DBC data, including rejecting a duplicate obsolete Arcane talent whose spell no longer exists. Numeric DBC metadata needed for reproducible rank/tier/prerequisite tests lives in `tests/clientless/fixtures/cata_pve_talents.json`. - https://wowtbc.gg/cata/class-guides/arms-warrior/ - https://wowtbc.gg/cata/class-guides/fury-warrior/ - https://wowtbc.gg/cata/class-guides/protection-warrior/ - https://wowtbc.gg/cata/class-guides/holy-paladin/ - https://wowtbc.gg/cata/class-guides/protection-paladin/ - https://wowtbc.gg/cata/class-guides/retribution-paladin/ - https://wowtbc.gg/cata/class-guides/marksmanship-hunter/ - https://wowtbc.gg/cata/class-guides/survival-hunter/ - https://wowtbc.gg/cata/class-guides/assassination-rogue/ - https://wowtbc.gg/cata/class-guides/combat-rogue/ - https://wowtbc.gg/cata/class-guides/discipline-priest/ - https://wowtbc.gg/cata/class-guides/holy-priest/ - https://wowtbc.gg/cata/class-guides/shadow-priest/ - https://wowtbc.gg/cata/class-guides/blood-tank-death-knight/ - https://wowtbc.gg/cata/class-guides/frost-death-knight/ - https://wowtbc.gg/cata/class-guides/unholy-death-knight/ - https://wowtbc.gg/cata/class-guides/elemental-shaman/ - https://wowtbc.gg/cata/class-guides/enhancement-shaman/ - https://wowtbc.gg/cata/class-guides/restoration-shaman/ - https://wowtbc.gg/cata/class-guides/arcane-mage/ - https://wowtbc.gg/cata/class-guides/fire-mage/ - https://wowtbc.gg/cata/class-guides/affliction-warlock/ - https://wowtbc.gg/cata/class-guides/demonology-warlock/ - https://wowtbc.gg/cata/class-guides/destruction-warlock/ - https://wowtbc.gg/cata/class-guides/balance-druid/ - https://wowtbc.gg/cata/class-guides/feral-dps-druid/ - https://wowtbc.gg/cata/class-guides/restoration-druid/ - https://wowtbc.gg/cata/class-guides/feral-tank-druid/ Additional healing/tanking context: - https://www.icy-veins.com/cataclysm-classic/holy-priest-pve-rotation-cooldowns-abilities - https://www.wowhead.com/cata/guide/classes/warrior/protection/tank-rotation-cooldowns-abilities-pve ## Native integration correction Canonical Survival talents exposed a native Lock and Load (56342) crash: SpellMgr clears one effect slot, while SpellValue previously evaluated every slot unconditionally. Empty SpellEffectInfo also left its Scaling fields uninitialized. Empty scaling now initializes to zero and SpellValue evaluates only active effects. The native reproduction and regression test are separate from gameplay acceptance. Fury equipment additionally respects the canonical 31-point Titan's Grip unlock before choosing two-handed weapons.