Skip to content

Allow binding lower spell ranks separately on WoW Forever - #268

Open
cdhawke wants to merge 1 commit into
DanderBot:mainfrom
cdhawke:feature/forever-spell-ranks
Open

cdhawke wants to merge 1 commit into
DanderBot:mainfrom
cdhawke:feature/forever-spell-ranks

Conversation

@cdhawke

@cdhawke cdhawke commented Sep 25, 2026 •

Copy link
Copy Markdown

Problem

On WoW Forever, the spellbook lists each spell rank as its own spell ID (e.g. three Lesser Heal entries), but click-cast bindings store and cast by name only. So /cast Lesser Heal always uses the highest rank, and every rank's cell in the Binds grid shows as bound.

Change

  • GetAllPlayerSpells groups entries that share a name and tags each with its rank (C_Spell.GetSpellSubtext). Every rank below the highest gets pinRank.
  • Binding a pinned rank stores pinRank on the binding, and the macro casts Name(Rank N). This covers both the single-binding and combined friendly/hostile macro paths.
  • Binding the highest rank is unchanged: it casts by name, so it keeps upgrading as new ranks are learned. Existing bindings behave exactly as before.
  • UI:
    • Rank badges (R1, R2…) on grid icons.
    • Rank shown in list rows, the edit panel and Active Bindings.
    • Ranks sorted lowest first.
    • Bound highlighting and duplicate detection are per rank.

Retail and flavors without ranks are unaffected: a spell only gets rank handling when several spellbook entries share its name.

Testing

Tested in game on a WoW Forever priest:

  • Rank badges show on Lesser Heal and Smite.
  • A Rank 2 binding shows as "Lesser Heal (Rank 2)" and highlights only the R2 cell.
  • The existing unpinned Lesser Heal binding highlights only the top rank.
image image

Forever's spellbook lists each rank as its own spell ID, but bindings
stored and cast by name, so "/cast Lesser Heal" always used the highest
rank and every rank's cell showed as bound.

Ranks below the highest now set pinRank on the binding and cast
"Name(Rank N)". Binding the highest rank still casts by name so it keeps
upgrading. The spell grid shows rank badges, list rows and binding names
show the rank, and bound/duplicate matching is per rank.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant