Skip to content

v1

Choose a tag to compare

@ynazar1 ynazar1 released this 26 Jan 15:56
· 14 commits to main since this release
2bfd91a

SmartBuff Retail

v1 (2026-01-26)

Full Changelog Previous Releases

  • Update README to remove deprecated macro usage
    Removed outdated instructions for using Smartbuff in macros.
  • Add GitHub Actions workflows for automated packaging and releases (#79)
    • Adding GitHub workflows and new release prep

    Workflows

    • Added release.yml for tag-based packaging with BigWigs packager
    • Added sync-externals.yml for manual library updates from CurseForge
    • Added README.md documenting workflow setup and usage

    Broker_SmartBuff

    • Updated TOC interface version to 120000 for Midnight compatibility
    • Updated version to 1.120000 in TOC manifest
    • Added clarifying comment for modern API usage

    Release

    • Bumped SmartBuff.toc version to 36.120000 in preparation for release
    • Updated changelog in localization.en.lua with r36.250126 user-facing changes
    • Updated version comment in SmartBuff.lua to reflect optional version bumps

    Packaging

    • Added documentation comments to .pkgmeta explaining external library strategy

    Development

    • Added .cursorrules with project development guidelines and git commit message format
    • Nit fixes from code review
    • allow manual trigger for release workflow from actions.
    • chore: Update external libraries from CurseForge and GitHub
      Auto-synced external libraries:
    • LibStub (CurseForge)
    • CallbackHandler-1.0 (CurseForge)
    • LibSharedMedia-3.0 (CurseForge)
    • LibDataBroker-1.1 (GitHub)
    • updating release to be able to do a manual vs release action and get a proper zip file
    • debugging manual execution.
    • nit: artifact path fix.
    • nit: more release debug
    • nit2. more manual testing
    • fix for popup of new changes. It seems to have become broken at some point or another...

    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Merge pull request #78 from ynazar1/fix-buff-order-reaarange-from-main
  • Fix: Preserve custom buff order and filter toys correctly
    • Fix buff order reset when opening/closing options window
    • Fix buff order reset when toggling "Include Toys" setting
    • Add toy filtering when "Include Toys" is disabled
    • Improve InitBuffOrder() to preserve custom order while cleaning up
      Fixes issues where user's custom buff arrangements were lost.
  • Merge pull request #77 from ynazar1/fix-data-bugs-and-add-help-overlay
  • Refactor item detection and fix ITEM type buff handling
    Unified Item Search Functions:
    • Merged SMARTBUFF_CountReagent() and SMARTBUFF_FindItem() into shared SMARTBUFF_FindItemInternal() function
    • Both functions now use identical search logic with consistent ItemLink extraction for Dragonflight item qualities
    • SMARTBUFF_CountReagent() returns total count across all bags and item ID
    • SMARTBUFF_FindItem() returns first match location, stack count, and texture
    • Eliminated ~50 lines of duplicate code while maintaining backward compatible return values
      ITEM Type Buff Initialization Fix:
    • Modified SMARTBUFF_SetBuff() to skip item count filtering for SMARTBUFF_CONST_ITEM type during setup
    • ITEM type buffs (Create Healthstone, etc.) are now kept in buff list even when count == 0
    • Item existence check moved to runtime in SMARTBUFF_BuffUnit() where it correctly triggers creation spells
    • Prevents conjured item buffs from being incorrectly removed during initialization when items don't exist yet
      ITEM Type Buff Runtime Handling:
    • Removed premature r=20 assignment in SMARTBUFF_BuffUnit() ITEM type handling block
    • Added early return when item found in inventory to prevent false "item not found" warnings
    • Added check timer reset (tLastCheck = GetTime()) in UNIT_SPELLCAST_SUCCEEDED handler for ITEM type spells
    • Prevents extra out-of-order checks immediately after casting creation spells before item appears in inventory
      Performance and Code Quality:
    • Optimized SMARTBUFF_SetBuff() to extract both minLevel and texture from single C_Item.GetItemInfo() call
    • Fixed variable shadowing by renaming local 'texture' to 'chainTexture' in ITEM type fallback logic
    • Reused buffTexture from initial GetItemInfo() call instead of making redundant second call
    • Added comprehensive inline comments documenting all local variables in SMARTBUFF_BuffUnit() function
      Item Data Loading Enhancement:
    • Enhanced GetItems() function in SmartBuff.buffs.lua with two-stage validation and loading pattern
    • Stage 1: Validate item IDs using C_Item.GetItemInfoInstant() for instant, cache-independent validation
    • Stage 2: Async load localized item links using Item:CreateFromItemID() and ContinueOnItemLoad()
    • Chains now store numeric IDs initially, updating to localized links as async callbacks complete
    • SMARTBUFF_FindItem() handles both numeric IDs and item link strings seamlessly
  • Clarifying that it's not name but itemlink that's being generated due to caching and api availability
  • Fixing init on ui reload not triggering in correct order.
  • Fix: Read definition data from cBuffs[] instead of profiles
    • Fix Bug #1: SMARTBUFF_CheckUnitBuffs() reads Type/Links from cBuffs[]
    • Fix Bug #2: SMARTBUFF_SetInCombatBuffs() copies all definition data
    • Add help overlay for reset buttons in options frame
    • Update version comment clarifying version bump requirements
      Definition changes in buffs.lua now work after /reload without profile resets.
  • Merge pull request #76 from ynazar1/midnight-fixes
  • Removed/Commented Out Spells
    Trueshot Aura (288613) — Commented out (doesn't exist in retail WoW)
    Bark of the Wild (159988) — Commented out (removed)
    Greater Blessing of Kings (203538) — Commented out (doesn't exist per Wowhead)
    Embrace of the Shale Spider (90363) — Commented out (doesn't exist per Wowhead)
    Strength of the Earth (160077) — Commented out (doesn't exist per Wowhead)
    Invigorating Roar (50256) — Commented out (doesn't exist per Wowhead)
    Qiraji Fortitude (90364) — Commented out (doesn't exist per Wowhead)
    Sturdiness (160014) — Commented out (doesn't exist per Wowhead)
    Savage Vigor (160003) — Commented out (doesn't exist per Wowhead)
    Roar of Courage (93435) — Commented out (doesn't exist per Wowhead)
    Keen Senses (160039) — Commented out (doesn't exist per Wowhead)
    Spirit Beast Blessing (128997) — Commented out (doesn't exist per Wowhead)
    Plainswalking (160073) — Commented out (doesn't exist per Wowhead)
    IMPPRISBARRIER — Removed from mage buff list (undefined)
    Restored/Added Spells
    Amplifying Poison (381664) — Restored and added to rogue buff list
    Atrophic Poison (381637) — Already restored (from previous commit)
    Chain Updates
    S.ChainWarriorStance — Removed SMARTBUFF_GLADSTANCE (commented out)
    S.ChainWarriorShout — Removed SMARTBUFF_COMMANDINGSHOUT (commented out)
    S.ChainPaladinAura — Added SMARTBUFF_CRUSADERAURA, removed SMARTBUFF_RETRIBUTIONAURA (not defined)
    S.ChainRoguePoisonsLethal — Added SMARTBUFF_AMPLIFYPOISON
    S.LinkStats — Removed undefined variables and commented out removed spells
    S.LinkSta — Removed undefined variables and commented out removed spells
    S.LinkAp — Removed entirely (only contained BATTLESHOUT, which doesn't need to link to itself)
    S.LinkMa — Removed entirely (empty after all spells commented out)
    Buff List Updates
    PWF — Removed S.LinkSta reference (chain only contains PWF itself)
    BATTLESHOUT — Removed S.LinkAp reference (chain only contained BATTLESHOUT itself)
    TRUESHOTAURA — Commented out from hunter buff list
    AMPLIFYPOISON — Added to rogue buff list
    Code Cleanup
    Normalized blank lines (removed excessive consecutive blank lines)
    Normalized line endings (CRLF)
  • Bringing back missing buffs
  • Removed vscode files.
    Oops.
  • Midnight
    Prep for Midnight, updated TOC, added new raids and translations, added flasks and corrected SpellId's etc.
  • Merge pull request #75 from ynazar1/augment-rune
  • Adding Ethereal Augment Rune in 11.2.0
  • Merge pull request #73 from ynazar1/release-updates
  • 11.2 ToC Bump
  • Merge pull request #70 from ynazar1/release-updates
  • release notes and internal version bump
  • Merge pull request #68 from speedwaystar/main
  • removed legacy Dragonflight raid templates
    cf. #48
  • Merge pull request #67 from speedwaystar/main
    • ADDED: horrific visions template
      • FIXED: incorrect itemIds for Oil of Beledar's Grace, Oil of Deep Toxins and Algari Mana Oil
      • ADDED: guns and warglaives to SMARTBUFF_WEAPON_STANDARD
      • ADDED: warglaives to SMARTBUFF_WEAPON_SHARP
  • Merge pull request #66 from speedwaystar/main
  • fix: GROUP_ROSTER_UPDATE bug workaround disabled since it was prevented Delve detection
  • Merge pull request #65 from speedwaystar/main
  • new: Delve template support
    new: Liberation of Undermine raid template
    new: Delicate Ebony Parasol toy
    new: Stylish Black Parasol toy
  • Merge pull request #64 from speedwaystar/main
  • new: support for "Hearty Well Fed" buff
    new: localized string SMARTBUFF_LOC_HEARTY = "Hearty"
    refactored: SMARTBUFF_IsPicnic(unit)
    added: SMARTBUFF_IsWellFed(unit)
  • Merge pull request #61 from ynazar1/11.1.5-fixes-2
    • Adding Symbiotic Link for druids The way it works is bad because its a targeted buff with cast time... But you can has reminder I guess.
    • BugFix: Fix weapon buff due to itemlink change
  • Merge pull request #60 from ynazar1/11.1.5-fixes
    • Better loading order of things
      • ToC Bump
      • Tutorial fix due to api changes
  • Merge pull request #59 from ynazar1/mounted-init-bug
  • Fixing mounted init bug not setting template
  • Merge pull request #58 from ynazar1/#57-keybindings-fix
  • toc bump and keybindings fix
  • Merge pull request #56 from ynazar1/miscoptimize
  • Whoops TWW flasks different rank bug and toc bump
  • better location for optimize. allows init after login while mounted
  • Don't redo buffs while mounted or in combat or flying. fixes stagger while gathering for outdoors raid/boss
  • Merge pull request #54 from ynazar1/reset-buffs-not-all
  • Merge pull request #53 from ynazar1/evoker-fix
  • No more antidaze.
    More nil checks
  • reset buffs, not UI settings on new releases
  • Fix source of magic logic
  • Merge pull request #52 from ynazar1/sanity
  • Using one variable to compare versions.
    Removed unused variables
    Adding notes on how to release
  • Merge pull request #51 from ynazar1/evokerbuff-and-bump
  • Moving visage to racials. Bumping ToC
  • Merge pull request #50 from ynazar1/misc-fixes
    • Shield localization, just in case.
      • Refresh buff list on respec event
      • Cleanup SL raids, add TWW raid to profiles.
  • Merge pull request #49 from ynazar1/paladin-hero-buff
  • Adding endless scales toy too
  • Fix duration
  • Paladin heroic weapon buffs. Fixing TOC addon icon and title
  • Merge pull request #46 from ynazar1/tidecaller-and-levelup
  • Add soulwell for warlocks
  • correct spellid
  • Issues fixing this should deal with #14 and #45
  • Merge pull request #44 from ynazar1/roster_update_bug
  • Sync with Curse version
  • Avoid acting on event spam in delves/instances. Fixes performance issue #43
  • Merge pull request #42 from ynazar1/tab-to-spaces-quest
  • delete trailing spaces
  • nit: newline
  • third time is happy spanish?
  • spanish attempt #2
  • spanish localization fix
  • nit: tabs-to-spaces cleanup
  • Merge pull request #41 from ynazar1/hearty-food-tww
  • Adding 'hearty' food version for tww and deprecating some of the old food items to improve performance
  • Merge pull request #39 from ynazar1/debug-text-fix
  • Nit: Fixing debug error text
  • Merge pull request #38 from ynazar1/TTW-Items
  • Attempt at keeping git inline with curse.
  • Merge pull request #37 from ynazar1/TTW-Items
  • Fixing spell/item calls
  • Adding TWW food items programmatically
  • Nit. Rename TWW augment rune
  • TWW Weapon Oils and Stones
  • Adding TWW Flasks
  • Merge branch 'Softrix:main' into main
  • Merge pull request #35 from ynazar1/ynazar1-1102-toc-bump
  • Merge pull request #2 from ynazar1/ynazar1-1102-toc-bump
    Update SmartBuff.toc
  • Update SmartBuff.toc
    ToC Bump for 11.0.2
  • Merge pull request #1 from Softrix/main
    Sync from upstream
  • Merge pull request #34 from ynazar1/mass-barrier
  • Adding mass barrier for mages
  • Restored libs / removed workflow (for now)
    Fixes:

    • Better soul stone detection with talents
    • Evoker missing buff and fixed buff duration.
      Info:

    Removed release workflow for now until I can focus more. Restored lib folder back into repo since last merge which removed them.
    Mirrored the default message settings of classic, normal and warning are off, errors are on - less spammy for new users.
  • Merge pull request #33 from ynazar1/evoker-fixes
    Evoker and warlock bugfixes
  • Merge pull request #32 from ynazar1/attempt-at-release
  • #4 the blessing is bugged... so let's just move it to self-buff
  • Addressing #1
    Evoker: Adding missing sense power aura
    Evoker (and others?): Range check fix
    Warlock: Fixing warlock demonic healthstone check
  • Merge pull request #3 from Softrix/main
    Syncing from original
  • Merge pull request #2 from Softrix/main
    Syncing with main
  • Delete Libs/LibSharedMedia-3.0 directory
  • Delete Libs/CallbackHandler-1.0 directory
  • Delete lib
  • Update .pkgmeta
  • 11.0 - Bumped TOC & Version - Released to Curse
  • Merge pull request #31 from ynazar1/Combined-TWW-fixes
  • Merge pull request #1 from ynazar1/Combined-TWW-fixes
    Combined tww fixes
  • More API changes based on globe recommendations
  • Fixing additoinal aura names and nil comparisons while mounted or shapeshifted
  • attempt at pkg release
  • Adding thunderstrike ward
  • Nit fixes
  • First pass at missing TWW fixes
  • Cleanup, cooldown fix, texture fix
  • Wrong number of args for GetSpellTexture
  • Fix no ids on game load, fishing + bugs.
  • Fix spell names and duplication
  • Nil concatenation
  • Remove temp hack
  • Fix ever multiplying list.
  • Always reset buff list
  • Quick fix for 11.0
  • Updated Github in line with current retail build.
  • Fixed Amplify Poison (marked as non-lethal)
  • Bug Fixes & Updated TOC
    Fixed buff order not saving, fixed issue where you wouldnt get prompts without first reloading the ui, added some evoker abilities.
  • Fix Macro Casting and Command Line
    Fixed macro casting and command line, i.e. /smartbuff wasnt working due to duplicate SLASH init.
  • Merge pull request #29 from speedwaystar/main
    Aberrus autotemplate and Fix Casting bugfix
  • merge fix
  • Merge branch 'main' of https://github.com/speedwaystar/SmartBuff-Retail

    Conflicts:

    localization.en.lua

  • fix for C_CVar.SetCVar ActionButtonUseKeyDown debacle
  • fix capitalization for "Aberrus, The Shadowed Crucible"
  • Merge pull request #27 from speedwaystar/main
  • ensure O.SBButtonDownVal is initialized correctly (hack)
    fixes: #26
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Fixes / OCD Changes :)
    Slight fixes and o.c.d changes ;-) Matched the width of the splash options to that of the splash screen. Fixed the credits not showing on first load of a new version. r21 is now uploaded to Curseforge.
  • Merge pull request #25 from speedwaystar/main
    ensure B table correctly initialized (thanks MyTechnoHunter)
  • fix #23: B table not initialized (thanks MyTechnoHunter)
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Merge pull request #24 from speedwaystar/main
    10.1 maintenance update
  • C_Minimap.SetTracking() fix (thanks Codermilk!)
    bumped TOC version to 100100 (10.1: Embers of Neltharion)
    bumped addon date to
    fixed DK pet typo 100523
    some calls to the C_CVar namespace were still using deprecated globals
    replaced "time" local variable with GetTime() calls
    removed deprecated call to getglobal()
    added "Abberus, The Shadowed Crucible" as a custom auto raid template
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • r20 Curse Release
    Updated for r20 Curse Release
  • Merge pull request #22 from speedwaystar/main
    register sounds with Shared Media Library and prevent template being automatically reset after manual selection
  • prevent template being automatically reset after manual selection
  • Merge branch 'main' of https://github.com/speedwaystar/SmartBuff-Retail
  • register sounds with Shared Media Library
  • Merge pull request #15 from speedwaystar/main
    SMARTBUFF_SetTemplate() fixes and data purge request popup on major version change
  • initial support for LibSharedMedia-3.0
  • force a data purge request popup if the major version number (SMARTBUFF_VERSIONNR) changes
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • SMARTBUFF_SetTemplate() now correctly completes group setup if O.AutoSwitchTemplate is turned off
  • Merge pull request #13 from speedwaystar/main
    GetSpellBookItemName now used to iterate over spellbook
  • GetSpellBookItemName now used to iterate over spellbook instead of GetNumSpellTabs, since the latter does not reliably return all known spells.
    fixes:#9
    credit: Mokay https://discord.com/channels/697774223833170000/864095814950977557/1066432962582806548
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Merge pull request #11 from speedwaystar/main
    Added Evoker 'Visage' ability
  • Added Evoker 'Visage' ability
  • r18 release deployed to Curse
  • Merge pull request #10 from speedwaystar/main
    suppress unnecessary template change messages
  • Merge branch 'main' of https://github.com/speedwaystar/SmartBuff-Retail
  • suppress unnecessary template change messages
    fixes: https://discord.com/channels/697774223833170000/866292302008025098/1067290567597363200
  • Merge pull request #8 from speedwaystar/main
  • fixes #7
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Added Warlock Inquisitors Gaze back / default splash screen font change
    It appears my changes got overwritten in the initial merge with speedwaystars branch - oops
  • Merge pull request #6 from speedwaystar/main
    actually change default font for real this time >_>
  • actually change default font for real this time >_>
  • Merge pull request #5 from speedwaystar/main
    changed default font to GameFontNormalHuge, and removed some stray de…
  • changed default font to GameFontNormalHuge, and removed some stray debugging print statements
  • Merge pull request #4 from speedwaystar/main
    auto templates now correctly detect named raid instances
  • auto templates now correctly detect named raid instances
    templates now update asynchronously using ZONE_CHANGED_NEW_AREA and GROUP_ROSTER_UPDATE events instead of every second using OnUpdate
    fixes softrix/smartuff-retail#3 #3
    • auto templates now correctly detect named raid instances
      • templates now update asynchronously using ZONE_CHANGED_NEW_AREA and GROUP_ROSTER_UPDATE events instead of every second using OnUpdate
      • fixes softrix/smartuff-retail#3 #3
        Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Merge pull request #1 from speedwaystar/main
    v16beta.100002.speedwaystar
  • version bumped to r16beta.100002
  • library metas for vs code
  • Merge branch 'main' of https://github.com/speedwaystar/SmartBuff-Retail
  • added changelog.txt, again for convenience
  • added .vscode metafiles to repository for convenience
  • updated enumeration utility functions
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • adjusted scrollbar height
  • helper functions: enum(t), dict(t), tinvert(t), switch(case), printd(...), printf(f,...), dump(t, startkey)
  • added slashcommands: /sb changes, /sb reload
    Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Version change triggers a BuffOrderReset()
  • weapon buffs default to mainHand enabled
  • fix broker icon toggle
    • use item hyperlinks instead of item names
      • FOOD: added Timely Demise (70 Haste)
      • FOOD: added Filet of Fangs (70 Crit)
      • FOOD: added Seamoth Surprise (70 Vers)
      • FOOD: added Salt-Baked Fishcake (70 Mastery)
      • FOOD: added Feisty Fish Sticks (45 Haste/Crit)
      • FOOD: added Aromatic Seafood Platter (45 Haste/Vers)
      • FOOD: added Sizzling Seafood Medley (45 Haste/Mastery)
      • FOOD: added Revenge, Served Cold (45 Crit/Verst)
      • FOOD: added Thousandbone Tongueslicer (45 Crit/Mastery)
      • FOOD: added Great Cerulean Sea (45 Vers/Mastery)
      • FOOD: added Fated Fortune Cookie (76 primary stat)
      • FOOD: added Feast: Grand Banquet of the Kalu'ak (76 primary stat)
      • FOOD: added Feast: Hoard of Draconic Delicacies (76 primary stat)
      • AUGMENT RUNE: added Draconic Augment Rune
      • VANTUS RUNE: added Vantus Rune: Vault of the Incarnates
      • WEAPON BUFF: added Buzzing Rune
      • WEAPON BUFF: added Chirping Rune
      • WEAPON BUFF: added Howling Rune
      • WEAPON BUFF: added Primal Weightstone
      • WEAPON BUFF: added Primal Whetstone
      • WEAPON BUFF: added Completely Safe Rockets
      • FLASK added Phial of the Eye in the Storm
      • FLASK: added Phial of Still Air
      • FLASK: added Phial of Icy Preservation
      • FLASK: added Iced Phial of Corrupting Rage
      • FLASK: added Phial of Charged Isolation
      • FLASK: added Phial of Glacial Fury
      • FLASK: added Phial of Static Empowerment
      • FLASK: added Phial of Tepid Versatility
      • FLASK: added Aerated Phial of Deftness
      • FLASK: added Steaming Phial of Finesse
      • FLASK: added Charged Phial of Alacrity
      • FLASK: added Crystalline Phial of Perception
      • FLASK: added Phial of Elemental Chaos
      • FLASK: added Aerated Phial of Quick Hands
      • WARLOCK PET: added Summon Imp
      • WARLOCK PET: added Summon Fellhunter
      • WARLOCK PET: added Summon Voidwalker
      • WARLOCK PET: added Summon Succubus
      • WARLOCK PET: added Summon Infernal
      • WARLOCK PET: added Summon Doomguard
      • WARLOCK PET: added Summon Felguard
      • WARLOCK PET: added Summon Fel Imp
      • WARLOCK PET: added Summon Voidlord
      • WARLOCK PET: added Summon Shivarra
      • WARLOCK PET: added Summon Observer
      • WARLOCK PET: added Summon Wrathguard
      • HUNTER PET: added Call Pet 1
      • HUNTER PET: added Call Pet 2
      • HUNTER PET: added Call Pet 3
      • HUNTER PET: added Call Pet 4
      • HUNTER PET: added Call Pet 5
      • TOY: added Wayfarer's Compass
      • TOY: added Golden Dragon Goblet
      • TOY: added Lucky Duck
      • GROUPS: removed old custom locations: Icecrown Citadel, Trial of the Crusader, Ulduar, Molten Core, Onyxia's Lair, Blackwing Lair, Naxxramas, Ahn'Qiraj, Zul'Gurub
      • GROUPS: added LFR, Mythic Keystone, Castle Nathria, Sanctum of Domination, Sepulcher of the First Ones, Vault of the Incarnates
      • increased size of SmartBuff splash window to allow for longer itemLink text
      • tidied up some code and re-indented the most egregious examples nested IF statements
      • bumped version to r16alpha
      • added changelog to WHATSNEW
      • TODO: non-English localization
      • TODO: rewrite to use itemID instead of itemLink
      • TODO: add new buffs from Dragonlands class talent trees
        Signed-off-by: speedwaystar speedwaystar@gmail.com
  • Initial commit