{"build": "1.60.1.70630", "read": "2026-10-27", "license": "CC BY 4.0", "terms": "Licensed under CC BY 4.0: free to use and share, as long as you credit Forever News with a link to https://wowforever.news.", "knowledge": "2026-10-18", "checked_against": "1.60.1.70425", "about": "Who can do the jobs a raid needs covered (remove magic, curses, poison or disease, interrupt, purge, remove a Frenzy, bring back a dead player), and who has a healing cooldown or a defensive of their own: by class, spec, talent and pet, each with the words of its tooltip that show it.", "taken_over": "Guilds Forever's raid planner (toolkit.ts), 18 October 2026, as it was but for this: field names in the API's style (cls is class), each spell and talent named by its record's address (record, rests_on, talent), one quote written as its record writes the number (Rebirth's 2,800 mana), and the two cooldown kinds' labels and titles written from the planner's own description of them.", "jobs": [{"id": "magic", "label": "Magic", "title": "Remove Magic"}, {"id": "curse", "label": "Curse", "title": "Remove Curses"}, {"id": "poison", "label": "Poison", "title": "Remove Poison"}, {"id": "disease", "label": "Disease", "title": "Remove Disease"}, {"id": "interrupt", "label": "Interrupt", "title": "Interrupt"}, {"id": "purge", "label": "Purge", "title": "Remove an enemy's magic"}, {"id": "frenzy", "label": "Frenzy", "title": "Remove an enemy's Frenzy"}, {"id": "bres", "label": "Battle res", "title": "Bring back a dead player"}], "cooldown_kinds": [{"id": "healcd", "label": "Healing cooldown", "title": "A heal for others, or a way to make one instant, on a cooldown of 3 minutes or more."}, {"id": "defensive", "label": "Defensive", "title": "A button on a cooldown of 30 seconds or more that reduces, absorbs or avoids damage its own player takes. Each tooltip says against what (Barkskin and Evasion help only against physical hits, a Ward against one school). Racial spells are left out, and so are threat drops (Feint, Fade, Feign Death) and spells with no real cooldown (Mana Shield, Power Word: Shield)."}], "tools": [{"job": "magic", "class": "priest", "spell": "Dispel Magic", "record": "/api/v1/spells/priest-988", "rests_on": ["/api/v1/spells/priest-988"], "quote": "removing 2 harmful spells from a friend", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "magic", "class": "paladin", "spell": "Cleanse", "record": "/api/v1/spells/paladin-4987", "rests_on": ["/api/v1/spells/paladin-4987"], "quote": "removing 1 poison effect, 1 disease effect, and 1 magic effect", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "magic", "class": "warlock", "spell": "Devour Magic", "record": "/api/v1/spells/warlock-19736", "rests_on": ["/api/v1/spells/warlock-19736"], "quote": "Purges 1 harmful magic effect from a friend", "specs": null, "talent": null, "pet": "Felhunter", "note": null, "being_checked": []}, {"job": "curse", "class": "mage", "spell": "Remove Lesser Curse", "record": "/api/v1/spells/mage-475", "rests_on": ["/api/v1/spells/mage-475"], "quote": "Removes 1 Curse or Bane from a friendly target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "curse", "class": "druid", "spell": "Remove Curse", "record": "/api/v1/spells/druid-2782", "rests_on": ["/api/v1/spells/druid-2782"], "quote": "Dispels 1 Curse or Bane from a friendly target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "poison", "class": "druid", "spell": "Abolish Poison", "record": "/api/v1/spells/druid-2893", "rests_on": ["/api/v1/spells/druid-2893"], "quote": "Attempts to cure 1 poison effect on the target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "poison", "class": "paladin", "spell": "Cleanse", "record": "/api/v1/spells/paladin-4987", "rests_on": ["/api/v1/spells/paladin-4987"], "quote": "removing 1 poison effect, 1 disease effect, and 1 magic effect", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "poison", "class": "shaman", "spell": "Cure Poison", "record": "/api/v1/spells/shaman-526", "rests_on": ["/api/v1/spells/shaman-526"], "quote": "Cures 1 poison effect on the target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "disease", "class": "priest", "spell": "Abolish Disease", "record": "/api/v1/spells/priest-552", "rests_on": ["/api/v1/spells/priest-552"], "quote": "Attempts to cure 1 disease effect on the target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "disease", "class": "paladin", "spell": "Cleanse", "record": "/api/v1/spells/paladin-4987", "rests_on": ["/api/v1/spells/paladin-4987"], "quote": "removing 1 poison effect, 1 disease effect, and 1 magic effect", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "disease", "class": "shaman", "spell": "Cure Disease", "record": "/api/v1/spells/shaman-2870", "rests_on": ["/api/v1/spells/shaman-2870"], "quote": "Cures 1 disease on the target", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "interrupt", "class": "rogue", "spell": "Kick", "record": "/api/v1/spells/rogue-1769", "rests_on": ["/api/v1/spells/rogue-1769"], "quote": "interrupts spellcasting", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "interrupt", "class": "warrior", "spell": "Pummel", "record": "/api/v1/spells/warrior-6554", "rests_on": ["/api/v1/spells/warrior-6554"], "quote": "interrupts spellcasting", "specs": null, "talent": null, "pet": null, "note": "in Berserker Stance", "being_checked": []}, {"job": "interrupt", "class": "warrior", "spell": "Shield Bash", "record": "/api/v1/spells/warrior-1672", "rests_on": ["/api/v1/spells/warrior-1672"], "quote": "It also interrupts spellcasting", "specs": ["protection"], "talent": null, "pet": null, "note": "needs a shield", "being_checked": []}, {"job": "interrupt", "class": "mage", "spell": "Counterspell", "record": "/api/v1/spells/mage-2139", "rests_on": ["/api/v1/spells/mage-2139"], "quote": "Counters the enemy's spellcast", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "interrupt", "class": "shaman", "spell": "Earth Shock", "record": "/api/v1/spells/shaman-10414", "rests_on": ["/api/v1/spells/shaman-10414"], "quote": "interrupts spellcasting", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "interrupt", "class": "warlock", "spell": "Spell Lock", "record": "/api/v1/spells/warlock-19647", "rests_on": ["/api/v1/spells/warlock-19647"], "quote": "it will counter the enemy's spellcast", "specs": null, "talent": null, "pet": "Felhunter", "note": null, "being_checked": []}, {"job": "interrupt", "class": "priest", "spell": "Silence", "record": "/api/v1/spells/priest-15487", "rests_on": ["/api/v1/spells/priest-15487", "/api/v1/talents/priest-15487"], "quote": "interrupting their spellcasts for 3 sec", "specs": ["shadow"], "talent": "/api/v1/talents/priest-15487", "pet": null, "note": null, "being_checked": []}, {"job": "interrupt", "class": "druid", "spell": "Feral Charge", "record": "/api/v1/spells/druid-1238122", "rests_on": ["/api/v1/spells/druid-1238122", "/api/v1/talents/druid-1238122"], "quote": "interrupting any spell they are casting for 4 sec", "specs": ["feral_tank"], "talent": "/api/v1/talents/druid-1238122", "pet": null, "note": "in Bear Form", "being_checked": []}, {"job": "purge", "class": "shaman", "spell": "Purge", "record": "/api/v1/spells/shaman-8012", "rests_on": ["/api/v1/spells/shaman-8012"], "quote": "Purges the enemy target, removing 2 beneficial magic effects.", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "purge", "class": "priest", "spell": "Dispel Magic", "record": "/api/v1/spells/priest-988", "rests_on": ["/api/v1/spells/priest-988"], "quote": "removing 2 harmful spells from a friend or 2 beneficial spells from an enemy", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "purge", "class": "warlock", "spell": "Devour Magic", "record": "/api/v1/spells/warlock-19736", "rests_on": ["/api/v1/spells/warlock-19736"], "quote": "Purges 1 harmful magic effect from a friend or 1 beneficial magic effect from an enemy", "specs": null, "talent": null, "pet": "Felhunter", "note": null, "being_checked": []}, {"job": "frenzy", "class": "hunter", "spell": "Tranquilizing Shot", "record": "/api/v1/spells/hunter-19801", "rests_on": ["/api/v1/spells/hunter-19801"], "quote": "Attempts to remove 1 Frenzy effect from an enemy creature.", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "bres", "class": "druid", "spell": "Rebirth", "record": "/api/v1/spells/druid-20748", "rests_on": ["/api/v1/spells/druid-20748"], "quote": "restoring a dead target to life with 2,200 health and 2,800 mana", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "bres", "class": "warlock", "spell": "Soulstone", "record": "/api/v1/spells/warlock-20757", "rests_on": ["/api/v1/spells/warlock-20757"], "quote": "If the target dies while their soul is stored, they will be able to resurrect", "specs": null, "talent": null, "pet": null, "note": "placed before the death, not after", "being_checked": []}], "cooldowns": [{"job": "healcd", "class": "druid", "spell": "Tranquility", "record": "/api/v1/spells/druid-9863", "rests_on": ["/api/v1/spells/druid-9863"], "quote": "Regenerates all nearby party members within 20 yards for 285 every 2 sec for 10 sec", "specs": null, "talent": null, "pet": null, "note": "their party only", "being_checked": []}, {"job": "healcd", "class": "paladin", "spell": "Lay on Hands", "record": "/api/v1/spells/paladin-10310", "rests_on": ["/api/v1/spells/paladin-10310"], "quote": "Heals a friendly target for an amount equal to the Paladin's maximum health", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "healcd", "class": "druid", "spell": "Nature's Swiftness", "record": "/api/v1/spells/druid-17116", "rests_on": ["/api/v1/spells/druid-17116", "/api/v1/talents/druid-17116"], "quote": "your next Nature spell becomes an instant cast spell", "specs": ["restoration"], "talent": "/api/v1/talents/druid-17116", "pet": null, "note": null, "being_checked": []}, {"job": "healcd", "class": "shaman", "spell": "Nature's Swiftness", "record": "/api/v1/spells/shaman-16188", "rests_on": ["/api/v1/spells/shaman-16188", "/api/v1/talents/shaman-16188"], "quote": "your next Nature spell with a casting time less than 10 sec. becomes an instant cast spell", "specs": ["restoration"], "talent": "/api/v1/talents/shaman-16188", "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "warrior", "spell": "Shield Wall", "record": "/api/v1/spells/warrior-871", "rests_on": ["/api/v1/spells/warrior-871"], "quote": "Reduces the damage taken from all attacks by 60% for 12 sec", "specs": ["protection"], "talent": null, "pet": null, "note": "needs a shield", "being_checked": []}, {"job": "defensive", "class": "warrior", "spell": "Last Stand", "record": "/api/v1/spells/warrior-12975", "rests_on": ["/api/v1/spells/warrior-12975", "/api/v1/talents/warrior-12975"], "quote": "temporarily grants you 30% of your maximum health for 20 sec", "specs": ["protection"], "talent": "/api/v1/talents/warrior-12975", "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "rogue", "spell": "Evasion", "record": "/api/v1/spells/rogue-5277", "rests_on": ["/api/v1/spells/rogue-5277"], "quote": "The rogue's dodge chance will increase by 50% for 15 sec", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "mage", "spell": "Ice Block", "record": "/api/v1/spells/mage-11958", "rests_on": ["/api/v1/spells/mage-11958", "/api/v1/talents/mage-11958"], "quote": "protecting you from all physical attacks and spells for 10 sec", "specs": ["frost"], "talent": "/api/v1/talents/mage-11958", "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "mage", "spell": "Fire Ward", "record": "/api/v1/spells/mage-10225", "rests_on": ["/api/v1/spells/mage-10225"], "quote": "Absorbs 913 Fire damage", "specs": null, "talent": null, "pet": null, "note": "Fire only; Frost Ward does the same for Frost", "being_checked": []}, {"job": "defensive", "class": "hunter", "spell": "Deterrence", "record": "/api/v1/spells/hunter-19263", "rests_on": ["/api/v1/spells/hunter-19263", "/api/v1/talents/hunter-19263"], "quote": "increases your Dodge and Parry chance by 25% for 10 sec", "specs": ["survival"], "talent": "/api/v1/talents/hunter-19263", "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "druid", "spell": "Barkskin", "record": "/api/v1/spells/druid-22812", "rests_on": ["/api/v1/spells/druid-22812"], "quote": "Physical damage taken is reduced by 20%", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "paladin", "spell": "Divine Shield", "record": "/api/v1/spells/paladin-1020", "rests_on": ["/api/v1/spells/paladin-1020"], "quote": "Protects the paladin from all damage and spells for 12 sec", "specs": null, "talent": null, "pet": null, "note": null, "being_checked": []}, {"job": "defensive", "class": "warlock", "spell": "Shadow Ward", "record": "/api/v1/spells/warlock-28610", "rests_on": ["/api/v1/spells/warlock-28610"], "quote": "Absorbs 920 shadow damage", "specs": null, "talent": null, "pet": null, "note": "Shadow only", "being_checked": []}, {"job": "defensive", "class": "warlock", "spell": "Sacrifice", "record": "/api/v1/spells/warlock-19443", "rests_on": ["/api/v1/spells/warlock-19443"], "quote": "giving its owner a shield that will absorb 1,930 damage for 30 sec", "specs": null, "talent": null, "pet": "Voidwalker", "note": null, "being_checked": []}], "fields": {"answer": {"knowledge": "The version of what is written here: the day it last changed. It changes when we change it, not with the build.", "checked_against": "The build every piece was last checked against (being_checked says what changed since).", "taken_over": "Where it was first written, and what was changed when we took it over.", "jobs": "The jobs a raid needs covered, in a fixed order, each with its id (never changed), a short label and a title.", "cooldown_kinds": "The two kinds of cooldown a raid plans, each with its id (never changed), a label and what counts as one.", "tools": "Who can do each job, one entry for each class and spell, in a fixed order (a player is shown with the first that fits). Counts only: how many a fight needs is not said here.", "cooldowns": "Who has a healing cooldown or a defensive of their own, one entry for each class and spell, in a fixed order (a player is shown with the first that fits: a frost mage with Ice Block, another with a Ward).", "fields": "What each part and field means: this table."}, "each": {"tools": {"job": "The id of the job (of jobs, or of cooldown_kinds for a cooldown).", "class": "The class that has it.", "spell": "Its name, as a raid calls it.", "record": "The address of the spell's record, at its highest rank.", "rests_on": "The addresses of every record what is written here rests on: when the game changes one, this entry is to be checked again.", "quote": "The words of its tooltip that show it does the job, as the record's text has them.", "specs": "Only these specs of the class have it (a talent gives it, or it needs a shield, which only Protection carries); null when every spec does.", "talent": "The address of the talent that gives it: a player's own talents decide, a spec alone is a guess. null when no talent is needed.", "pet": "The warlock's demon that must be out for it (Felhunter, Voidwalker): it counts, but as a guess. null otherwise.", "note": "What is said beside it (needs a shield, before the pull). null when nothing.", "being_checked": "Added by the API: the addresses of the records it rests on that read otherwise now (name, rank, whether it is its spell's highest, text, ranks' texts, tooltip lines) than in the build it was last checked against (checked_against), or that are gone. While the list is not empty it is being checked; [] when nothing changed."}, "cooldowns": {"job": "The id of the job (of jobs, or of cooldown_kinds for a cooldown).", "class": "The class that has it.", "spell": "Its name, as a raid calls it.", "record": "The address of the spell's record, at its highest rank.", "rests_on": "The addresses of every record what is written here rests on: when the game changes one, this entry is to be checked again.", "quote": "The words of its tooltip that show it does the job, as the record's text has them.", "specs": "Only these specs of the class have it (a talent gives it, or it needs a shield, which only Protection carries); null when every spec does.", "talent": "The address of the talent that gives it: a player's own talents decide, a spec alone is a guess. null when no talent is needed.", "pet": "The warlock's demon that must be out for it (Felhunter, Voidwalker): it counts, but as a guess. null otherwise.", "note": "What is said beside it (needs a shield, before the pull). null when nothing.", "being_checked": "Added by the API: the addresses of the records it rests on that read otherwise now (name, rank, whether it is its spell's highest, text, ranks' texts, tooltip lines) than in the build it was last checked against (checked_against), or that are gone. While the list is not empty it is being checked; [] when nothing changed."}}}}