RankSwap 1.02
What's new
RankSwap Changelog
For World of Warcraft: Forever (client 1.60.1).
1.02 — 2026-11-04
Current version. Verified working on live Forever. Not yet uploaded to CurseForge.
Added
- Trainer report on opening a class or profession trainer: lists
ranks that are unlocked and not bought yet — higher ranks of
spells already on your action bars, plus new spells available
at that trainer. Run
/rs trainermanually at any time while a trainer is open to see the list again after buying something. - Level-up reminder to visit a class trainer, since that is when new ranks usually unlock.
/rs trainerprobe— dumps the raw trainer services while a trainer is open, for diagnosing a trainer list that does not match what the addon reports./rs probe— dumps the raw spellbook returns (bank value, skill lines, slots 1–20 with and without the bank argument, item types, andIsSpellKnown/ spellbook-slot results for each bar spell)./rs debug— lists bar spells with no learned spellbook match or an outdated rank./rs fill— places every learned spell that is on no bar. Run once after installing if spells learned while the old version was broken are still missing from your bars.
Changed
- Automatic scans after closing a trainer (and after learning a
spell or leaving combat) are now quiet: they print nothing
unless something was actually upgraded or placed, or a
placement failed. No "Scanning..." and no "Scan complete."
Manual
/rsis still verbose. - Automatic trainer-open reports are silent when nothing is
waiting at that trainer. Manual
/rs trainerstill says "no new ranks" so you know the check ran. - The scan's "maximum rank" message now says maximum learned rank, since a rank at a trainer does not count until you buy it.
Removed
- Future-rank warnings. Spellbook
FUTURESPELLentries and trainer services marked "unavailable" (not unlocked yet) are no longer reported — only ranks that are actually unlocked and not bought yet are shown, and only at a trainer.
Fixed
- Profession icons reverting to a jewel icon when clicking
RankSwap. Professions (Tailoring, Cooking, First Aid, and
the other nine) have no Rank N, so the old map builder kept
the last rank-0 spellbook entry for a name on a tie — and
if that last entry was a different spellID with the same
name but a different icon, the bar button was swapped to
it. RankSwap now excludes all 12 Forever professions by
name from the spellbook scan, from bar upgrades, from
new-spell placement, and from trainer reports, and only a
strictly higher rank now replaces an entry in the map.
Profession buttons on your bars are left exactly as you
set them.
/rs debugnow says "profession, skipped on purpose" for a profession bar spell, so you can check that the exclusion is working. - Rank swapping on live Forever. The launch version stopped
ranking anything up and never placed newly learned spells.
The rewrite now:
- Scans the spellbook flat, keeping only learned
SPELLentries, and picks the highestRank Nfor each spell name — unlearned future ranks are never picked as "highest". - Places spells with
C_SpellBook.PickupSpellBookItemusing the exact spellbook slot, instead ofC_Spell.PickupSpell, which silently does nothing for many spells on this client. - Only reports "Updated" when something was actually on the cursor after pickup. A failed pickup now reports "Could NOT place … (bar left unchanged)" instead of a fake success.
- Places newly learned spells on the first empty main-bar slot (never form/stealth bonus bars 73–108). The first scan of a session is a baseline, so it does not flood your bars with your whole spellbook.
- Listens for
SPELLS_CHANGEDandLEARNED_SPELL_IN_SKILL_LINEin addition toTRAINER_CLOSED, so spells learned outside a trainer close are picked up too. - Retries the spellbook scan leniently if the strict scan finds 0 learned spells, and a 0-count scan never becomes the session baseline.
- Defers scans out of combat instead of failing silently.
- Registers events with
pcall, since an unknown event name throws on this client and can abort the whole file.
- Scans the spellbook flat, keeping only learned
Notes
- RankSwap never buys spells from a trainer — it only places ranks and spells you have already learned. It does not run on regular vendors or merchants, only on class and profession trainer windows. Weapon-skill services are filtered out of the new-spells list.
- The hunter ammo checker/popup, minimap button, and addon compartment hooks are unchanged.
Before 1.02
The version that worked during the Forever beta and broke at
launch on 2026-11-04: it matched spells by name with no rank or
learned check, used C_Spell.PickupSpell without checking the
cursor, only scanned bars that already had a spell on them, and
only listened for TRAINER_CLOSED. All of the fixes above are
in 1.02.
This mod has no additional files

