Collection of custom World of Warcraft AddOns specifically developed for Warmane's WotLK (3.3.5a) servers.
A big thanks goes to the owner of 3.3.5-interface-files GitHub repository, which I'm using a lot during the development.
π Tracks completed dungeon runs and stores both run history and aggregated per-character/per-instance stats.
- Main table UI (
/wit) now shows:CharacterInstanceTotal RunsAverage XPAverage TimeFastest TimeXP Per Minute
- Character rows include the latest known level in the table, for example
Baladie (42)- When a run is saved on that character, all of that character's saved rows are updated to the newest known level
- Existing old rows can be backfilled with
/wit updatewhile logged into that character
- Instance names in the table include level ranges where available, for example
Wailing Caverns (15 - 25) - Max-level and other no-XP runs are handled safely:
- Such runs still increase run counts and time statistics
- XP-based columns show
-when no XP-bearing runs exist for that character+instance row - XP averages are calculated only from XP-bearing runs, so level 80 clears do not drag XP averages down to zero
- Table quality-of-life features:
- Live text search filters rows as you type
- Character dropdown filter supports
Allplus multi-select toggles with instant checkmark updates - Clicking a column header sorts ascending/descending by that column
- Column widths are configurable in
addons/WarmaneInstanceTracker/vars/Constants.lua
- Table actions:
Settingsopens the configuration windowExportopens an in-game CSV export dialog with copyable text- Export is intentionally in-client only: WoW 3.3.5a addons cannot write files to arbitrary paths like
C:\wit-export
- Slash commands:
/witopens or closes the stats table/wit configopens or closes the settings window/wit updateupdates saved table rows with the current logged-in character's level- This does not update offline alts; WoW only exposes the current character's live level
- Settings window (
/wit config) includes persistent checkboxes:- User settings: instance tracking, party completion message
- Developer settings: debug printing, debug logging
- Debug commands (
/wit debug ...) includeon|off,state,target,simulate "Instance Name" duration xp, andlog on|off|status|clear. - On completion, can post one summary line to party chat:
[WIT] <instance> finished in <hh:mm:ss> | XP gained: <xp> | Runs till next level: <value>
- SavedVariables are split for clarity:
InstancesData(runs + aggregated stats)SettingsData(user/developer toggles)DebugData(debug death log)- Aggregated stats use a dedicated schema migration path so historical runs can be rebuilt after stat structure updates
β° Reminds you about upcoming Wintergrasp battle.
- Uses the in-game
GetWintergraspWaitTime()API for accurate battle timing - Shows notifications at 30, 15, and 5 minutes before battle
- Also shows notification right after the battle begins and ends
- Slash command
/wwr whento check time until next battle - Type
/wwror/wwr helpfor a list of available commands
βΉοΈ This AddOn is only activates if logged in as a level 80.
π Makes chat messages copyable on mouse click.
- Click on a channel name to copy the message into a new window
- For messages without a channel, click into the message directly instead
- You can copy messages from the copy window with
CTRL-C - Works with all message types (channels, system, say, ...)
- Does not intervene with item or quest links, usernames, etc.
- Copying more messages makes them appear under eachother in the click order
- Clear button to reset the copy window content
π― Automatically switches Hunter tracking based on target type.
- Smart tracking switching for Hunters
- Triggers only for neutral/hostile targets
- GCD-aware to prevent false switching
- Implemented to work with manual tracking switching as well
βΉοΈ This AddOn only activates if logged in as a Hunter.
for AI: create this section, should be similar to WarmaneHealerProtection below.
π¬ Warns your dungeon group when you have aggro as the assigned healer.
- Active only in 5-player dungeon instances
- Uses the assigned healer role from Blizzard's dungeon role API
- Sends
Healer Protection: I have aggro!to group chat with a configurable 15-second default cooldown - Slash command
/whpshows help and/whp delay <seconds>changes the saved warning delay between 5 and 120 seconds - Checks visible hostile targets and recent combat-log hits to detect mobs attacking you
π’ Automatically clears your <Away> status when you become active.
- This should be WoW's default behvaior, but I've been having problems with it on Warmane
- Uses Blizzard's built-in
autoClearAFKoption to keep behavior safe and lightweight - Re-enables AFK auto-clear when the AddOn loads and when entering the world
- No key listener, no polling loop, and no manual
/afksimulation
π§³ Backported third-party minimap button bag for Warmane's WotLK 3.3.5a client.
- Lives separately from first-party AddOns in
backports/MBB - Collects minimap buttons into a single pop-out menu
- Keeps the original AddOn identity while applying compatibility and bug fixes for this repository
- Includes English UI text only
A filterable, sortable in-game table tracking your dungeon runs with leveling context, XP/time averages, and copyable CSV export.
Timely reminder for Wintergrasp battles to ensure you never miss one again.
Separate window to copy any message from the chat, created by clicking on the channel name or into the message directly.
Reactive tracking system adapting to enemy types in PvP combat.
No more getting stuck with <Away> above your name after you are already back in action.
- Download the latest release
- Extract the AddOn folders from the
addons/directory to yourWorld of Warcraft 3.3.5a/Interface/AddOnsdirectory - Ensure AddOn names match exactly (case-sensitive)
- Restart WoW if it was running
All AddOns are standalone, install only the ones you want to use.
This project is being under active develompent as of April 2026.
- If you encounter a bug or have a feature request for existing AddOn, open a GitHub issue
- If you have an AddOn idea, you can email me on
info@matejkadlec.cz- If I'll find it interesting, there's a good chance I will create it for you for a voluntary donation
- If I don't find it interesting, I can still do it for a fixed price (I can provide an invoice)
- Feel free to you use any of my AddOns in your project, in that case a link back to this repository is appreciated
-
Contributors are welcome, just create a PR and assign it to me for a review
-
Some general rules for all PRs, as we don't want any spaghetti code:
- Follow Lua language conventions and WoW AddOn development best practices
- If you code in VSCode, I highly recommend WoW Bundle extension
- Use PascalCase for function names and camelCase for variable names
- Comment your code
- Update this file so the description and screenshot correspond to the latest AddOn version
- Follow Lua language conventions and WoW AddOn development best practices
-
Additional rules for for completely new AddOns for this repository:
- Follow the naming format
Warmane[AddOn][Name]for consistency - Each AddOn must be fully standalone with no cross-AddOn dependencies
- Required
.tocfile attributes:## X-Collaboration: Matej Kadlec (https://github.com/matejkadlec) ## X-Repository: https://github.com/matejkadlec/warmane-addons
- Follow the naming format
-
Otherwise, there are no rules for branch names etc., just make it that the commit messages make sense
If you are developing the AddOns, you can sync the whole addons/ directory into your WoW client with the helper script:
- Copy
.env.sync-addons.exampleto.env.sync-addons - Set
SYNC_ADDONS_DEST_DIRto the absolute path of yourInterface/AddOnsfolder - Decide whether
SYNC_ADDONS_AUTO_INSTALL_RSYNCshould betrueorfalse- Set it to
trueif you want the script to try installingrsyncautomatically withapt-get - Set it to
falseif you prefer the script to skip installation attempts and usecpfallback when needed
- Set it to
- Run
./scripts/sync-addons.sh
Optional variables:
SYNC_ADDONS_SOURCE_DIRif your sourceaddons/directory lives somewhere elseSYNC_ADDONS_RSYNC_BINif you want to point to a specificrsyncbinary
The real .env.sync-addons file is ignored by Git, while .env.sync-addons.example stays in the repository as the shared template.
Made with β€οΈ for the Warmane community


