What's new
  • NEW: Happy Cataclysm gaming! The fresh 4.3.4 Cataclysm Repack V20.0 is now live - and downloadable from our brand-new Emucoach App.
    Download it now
  • Mists of Pandaria is calling! Heya - did you know that the newest 5.4.8 MoP Repack - version 7.1 - is now live?
    Download now

Copilotbuddy, a bot for WotLK 3.3.5a RELEASED

CopilotBuddy — HonorBuddy for WotLK 3.3.5a

Five months in. Reverse-engineering HB 4.3.4 and adapting it for WoW Wrath of the Lich King 3.3.5a (build 12340).

People have been asking for a working HB on WotLK for years. So I built one.
View attachment 5400
View attachment 5399
What's done:

  • Navigation — based on HB WoD/Legion navigation.
  • Bot API — 98% parity with HB 4.3.4. Some parts had to be adapted or stubbed since they simply don't exist in WotLK.
  • UI — HB WoD version.
  • Singular — ported from HB 4.3.4.

If you know XML and a bit of C#, and you want to help — test, write profiles, report bugs or nav blackspots — DM me.

WotLK original only. Build 12340. No Warmane, no custom servers.



Discord has a dedicated section for discussion and bug reports.

[Hidden content]
.
 
UPDATE 11 on Discord!
==========================

New features — Battlegrounds:
--------------

* BGBuddy: 6 BG map ported (HB 4.3.4 reference parity)
- ArathiBasin (map 529, 5-flag node control)
- WarsongGulch (map 489, flag carrier priority by spec)
- AlteracValley (map 30, NPC flag carriers)
- EyeOfTheStorm (map 566, 4 tower + central flag)
- TwinPeaks (map 726, Cataclysm WSG variant)
- BattleForGilneas (map 761, Cataclysm WSG variant)

* WoWInternals: BG plumbing
- Lua wrappers for GetBattlefieldStatus, AcceptBattlefieldPort,
JoinBattlefield, LeaveBattlefield (HB 4.3.4 BG API)
- DBC/Map: IsBattleground / IsArena fields + map id tables
- WoWLandMark: 6 BG-specific landmark conversion helpers
(ToArathiBasin / EyeOfTheStorm / BattleForGilneas /
AlteracValley / IsleOfConquest / StrandOfTheAncients)
- Battlegrounds: per-slot queue type tracking
- InfoPanel: exposes IsMeasuring / BGsCompleted / BGsPerHour
- BGBuddy: PrioritySelector no longer stuck on the first child
when the BG is in a non-combat phase

* WoWUnit.IsFriendly / IsHostile: now uses a reciprocal
WoWUnitReaction check. Fixes cross-realm ally detection in BGs
that the old IsHorde == IsHorde override was breaking

* BgMeshNavigator: HandleDoors overridden to no-op in BGs
(base MeshNavigator was spam-clicking WSG/IoC/SotA/AV gates
before the server-side open animation reached the client)

New features — DungeonBuddy:
--------------

* LFG: QueueRole enum (Auto / Tank / Healer / Damage) +
DungeonBuddySettings Role/TankInRandomGroups. SetLfgRoles()
implementation (was a stub) is now called before the first queue

* ScriptHelpers (HB 4.3.4 ports, previously stubs)
- CreateCastRangedAbility: class-based ranged pull, faces target,
stops movement, casts, then waits the cast time
- CreateWaitAtLocationUntilTankPulled: follower stays at
waitAtLocation until the tank engages
- GetRangedSpell: per-class ranged pull spell table (DK, Druid,
Hunter, Mage, Paladin, Priest, Rogue, Shaman, Warlock, Warrior)
- CreatePullNpcToLocation: tank drives to pull location, pulls
via ranged ability, waits for NPC to arrive. 4 overloads route
to the full 6-arg version with sensible defaults
- CreateMoveToContinue (WoWObject + WoWPoint overloads): return
Failure on MoveResult.Failed / PathGenerationFailed instead of
looping forever

* DungeonBuddy.cs: CreateLeaderMovementBehavior — leader/tank now
drives the dungeon via Profile.BossEncounters.PathBreadCrumbs
regardless of QueueType (was SoloFarm-only in Update 10).
Followers (DPS/healer) still use CreateFollowBehavior

* LfgManager.QueueForRandomDungeon / QueueForRandomHeroic: switched
from the LFD UI click (LFDQueueFrame_Join) to the direct WotLK
3.3.5a API. Hard-coded dungeon IDs (261 = Random Normal,
262 = Random Heroic) taken from LFGDungeons.dbc. The old UI
approach inherited whatever tab was last open in the LFD frame

* SpellDb: HasSpellByName() — fallback lookup against the full
Spells.bin for talents/passives the player hasn't actively cast
(Vengeance, Meditation, etc.). Used by role identification

New features — Extractor (MaNGOS vmap/mmap tools):
--------------

* vmap-extractor: extract WMO doodads (M2 placed inside WMO root
+ group chunks).
* All mesh regenerated in addition to sirius
--------------

New features — Core plumbing:
--------------

* WoWPulsator: port from HB 6.2.3. Pulse order is now Objects ->
ObjectManager.Update + Blacklist.Flush -> Lua.ProcessEvents ->
InfoPanel.Update -> Looting -> Targeting + HealTargeting ->
BotEvents -> Plugins -> Routine. WoWChat, WoWMovement.Pulse and
Mount.Pulse removed (not in HB 6.2.3)

* PartyBot IPC: RemotingClient / RemotingServer include public
fields in JSON (de)serialization

* TreeSharp.Switch: yield Failure instead of throwing on no match

* LocalPlayer: fixed Specialization spec detection (was returning
0 on some client builds because of a wrong field offset)

* ClientDb: dropped a few HB 4.3.4-only DBC entries that don't
exist in the 3.3.5a client (was throwing on startup in some
locales)

* SourceCompiler: pre-load + reference WCF assemblies so
plugins / quest behaviors touching System.ServiceModel can be
compiled at runtime. csproj ships the WCF reference set +
CopyLocalLockFileAssemblies

* UI/MainWindow: process lookup also matches the Luacct.exe
variant used by some private-server clients chinese.

Bug fixes — Singular wotlk:
--------------

* Warrior Protection (PvP + Normal Pull): damage spells (Heroic
Throw and friends) now gated by !Spell.IsGlobalCooldown +
Spell.WaitForCastOrChannel. The 4.3.4 reference port had no
gating so Heroic Throw fired on every pulse while on its 1.5s
CD, producing 40+ log lines in 2.4s

* Helpers/Spell: IsGlobalCooldown() (reads
SpellManager.GlobalCooldown — Spell.FixGlobalCooldown is not
exposed in 3.3.5a CopilotBuddy) + WaitForCastOrChannel(). Port
of Singular 5.4.8 Helpers/Spell.cs:512 and :622

Version numbering:
--------------

This release: v1.4.2 (Update 11).
Previous: v1.4.1 (Update 10).
 
Back
Top