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.

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]
Would wotlk profiles work here ?
 
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.

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]
Niceee
 
UPDATE 7
==========================

Bug fixes:
--------------

* Quest System (RunCode pipeline)
- ForcedCodeBehavior: PendingElement forwarded to CustomForcedBehavior
constructor via [ThreadStatic] — XElement.Element was null on all
dynamically-compiled behaviors
- ProfileBatchManager: Definition code strings carried forward when batch
is re-compiled mid-session — prevents helper functions (Log, etc.) from
going out of scope on subsequent RegisterBatch calls
- CompileBatch: Styx.Logic.BehaviorTree and TreeSharp added to implicit
using directives — TreeRoot.Stop() and PrioritySelector now compile
without explicit using in quest behavior C# blocks
- DelayCompiledExpression: IsCompiled property added — RunCode.MainCoroutine
now exits cleanly (marks behavior done) when compilation failed instead
of looping InvalidOperationException every tick

* Core
- WoWMovementInfo: Swimming / Flying / WaterWalk / Hover flag bitmasks
corrected from Offsets335.txt (previous values were wrong, causing false
IsSwimming / IsFlying reads)
- Profile: GrindArea now falls back to parent profile when not set on
the current child profile
- Profile: GetScopeSortedProfiles now sorted by nesting depth; previously
unsorted, causing wrong profile scope resolution order
- InventoryManager: debug log entry added for each mail rejection reason
(BagFull, CantMailSelf, ItemNotMailable, etc.) — aids profile debugging
- AreaManager.SetArea: accepts nullable GrindArea (null clears current area)
- RoutineManager: no-routine error message now names the character class and
suggests the Routines/ folder instead of a generic error string
- CharacterSettings: unused stub class removed

* Mount
- CanFly: was ignoring Flightor.CanFly; now delegates correctly
- Ghost Wolf (Shaman) and Travel Form (Druid) used as ground-speed fallback
when no mounts are available or player is in combat

* LevelBot
- Non-lootable corpses on off-navmesh terrain (DT_PARTIAL_RESULT,
unreachable): now logged and blacklisted on loot-attempt timer expiry;
replaces the previous approach that cleared the Decorator entirely
(Update 6) which left corpses accumulating without feedback

* Pathing
- Blackspot hit and path-failure log messages upgraded from WriteDebug /
WriteDiagnostic to Write — messages now visible in the default log view

* GatherBuddy
- Mining pick absent: explicit warning logged; previously silent failure
caused bot to attempt mining without a tool

* DungeonBuddy
- LFG_PROPOSAL_SHOW / LFG_ROLE_CHECK_SHOW: 750 ms polling fallback added
for cases where the Lua event fires but the HB event handler misses it
(observed on laggy realms)

* DiscoBot
- FormConfig: SplitContainer removed; layout flattened to single panel —
fixes rendering glitch at non-default DPI on Windows 11

* UI
- SettingsWindow: Report a Bug button added (opens Discord support link)

* Build / Obfuscation
- obfuscar.xml: SkipNamespace Tripper.Navigation replaced with
SkipType Tripper.Navigation.NativeMethods — only the internal P/Invoke
class (two DllImport without EntryPoint) is now excluded; all public
types in the namespace (Navigator, PathFindResult, etc.) are correctly
subject to KeepPublicApi rules


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

* Spell / Cast
- CooldownTimeLeft: corrected for non-English clients (was returning wrong
value when spell name lookup failed on localized clients)
- LOS check applied only to ranged spells (rangeId != 2); melee spells no
longer blocked by line-of-sight geometry
- Cast spam when target not in LOS: fixed; spell no longer retried every
tick while out of LOS
- Movement: bot now waits for facing to complete before entering cast branch
— prevents instant-cast → face → instant-cast loop

* Warrior
- Protection and Fury rotations updated (priority order corrected)
- Lowbie: melee chase added when mob kites out of melee range

* Shaman
- DisableTotems setting added to ShamanSettings — when enabled, all totem
drops are skipped (useful for stealth / AoE-sensitive content)
- Enhancement / Elemental / Totems: DisableTotems guard applied on all
totem drop sites
- CreateRecallTotems: throttle added; mounted check prevents recall cast
while mounted
- Weapon imbue spam and totem re-cast loop fixed
- Enchant ID checks replaced with IsValid — prevents crash on unknown
enchant IDs on non-standard server DBs

* Rogue
- UseStealthOnPull setting added — toggles pre-pull stealth for all specs
- Assassination: Sinister Strike fallback when Mutilate is unavailable
(level < 48 or target immune to poison)
- Combo-point finisher cast behavior adjusted — finisher no longer fires
at 0 combo points after target switch

* Hunter
- Raptor Strike: melee range check guard added for all specs and contexts
- Low-level Hunter freezing during movement fixed (was waiting for pet
that didn't exist at early levels)
- PetSpells cached — reduces per-tick Lua calls from 11 to 1

* Lowbie (all classes)
- Rest behavior (eat / drink via CreateDefaultRestBehaviour) added to all
class lowbie rotations — was missing, causing bot to fight at low health
- Priest / Druid Lowbie: WaitForCast added to prevent cast spam during
school lockout

* Movement
- UnfriendlyUnitsNearTarget and IsBoss: null-reference guard added;
was throwing NRE when target despawned mid-approach

* Group
- Healer / tank role detection: raid-only role API used with class-based
fallback for non-LFG groups (previously only checked LFG role flags,
missing manually-assembled groups)

* Helpers
- Throttle composite added — limits a sub-tree to one successful tick per
configurable time window; used by Shaman totem recall to prevent
re-cast spam


New:
--------------

* Tyrael botbase (port from MoP, adapted for WotLK 3.3.5a)
- Click-to-Move (CTM) toggle via Lua SetCVar autoInteract
- Pause / resume via TyraelUtilities.IsTyraelPaused flag
- PulseFlags reduced to Objects + Lua + InfoPanel while paused
- Windows Forms configuration UI (TyraelInterface)
- Persistent XML settings (TyraelSettings)
- Profile requirement override available on botbase start

* Quest Behaviors
- LoadRemoteCode: downloads a C# source file from a URL and executes it
as a quest behavior node; supports hot-patching profiles without
redistribution
- RemoteCode: companion behavior; executes a pre-downloaded remote
code block inline within a profile sequence

* Profiles
- First-generation placeholder profiles removed; current profile set
(Questbot leveling, GB, DungeonBuddy, travel profiles) is the
canonical set
- Default Profiles folder contains working example profiles and usage
demonstrations: RunCode_Test.xml (RunCode pipeline test, annotated),
Fishing SW 1-50 Test.xml (ProfessionBuddy fishing 1→50 with full
commentary), travel profiles (To Northrend, To Outlands, etc.)

* RunCode — tested and operational
- RunCode quest behavior fully validated end-to-end: XML profile →
CodeNode → ForcedCodeBehavior → CompileBatch (Roslyn) → coroutine
execution; see RunCode_Test.xml in Default Profiles for a complete
annotated example covering Log(), TreeRoot.Stop(), and async coroutines

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

Starting with this release the version format changes from v1.0.x to
Major.Minor.Patch.Build (four-part, e.g. 1.2.0.).
Previous releases: v1.0.5 (Update 5), v1.1.0 (Update 6).
This release: v1.2.0 (Update 7).


==========================
 
Back
Top