Talent and ability descriptions for heroes in Heroes of the Storm in handy JSON format
Talent? Hah. That seems generous.
—Raven Lord
Example:
{
"id": "68",
"shortName": "malthael",
"attributeId": "MALT",
"name": "Malthael",
"icon": "malthael.png",
"role": "Assassin",
"type": "Melee",
"releaseDate": "2017-06-13",
"abilities": {
"Malthael": [
{
"name": "Soul Rip",
"description": "Extract the souls of nearby enemies afflicted by Reaper's Mark, dealing 100 (+4% per level) damage and healing Malthael for 25 (+4% per level) per target hit. Heroic targets heal Malthael for an additional 4% of the Hero's maximum Health.",
"hotkey": "Q",
"abilityId": "Malthael|Q1",
"cooldown": 2,
"manaCost": 25,
"icon": "storm_ui_icon_malthael_soulrip.png",
"type": "basic"
},
...
{
"name": "Tormented Souls",
"description": "Unleash a torrent of souls, continually applying Reaper's Mark to nearby enemies for 4 seconds.",
"hotkey": "R",
"abilityId": "Malthael|R1",
"cooldown": 80,
"manaCost": 100,
"icon": "storm_ui_icon_malthael_tormentedsoul.png",
"type": "heroic"
},
...
{
"name": "Reaper's Mark",
"description": "Basic Attacks cleave in an area in front of Malthael and afflict non-Structure targets with Reaper's Mark for 4 seconds. Marked enemies are revealed and take damage equal to 1.75% of their maximum Health every 1 second.",
"trait": true,
"abilityId": "Malthael|D1",
"icon": "storm_ui_icon_malthael_reapersmark.png",
"type": "trait"
}
]
},
"talents": {
"1": [
{
"tooltipId": "MalthaelDeathsReach",
"talentTreeId": "MalthaelDeathsReach",
"name": "Death's Reach",
"description": "Increase Wraith Strike's range by 35%.",
"icon": "storm_ui_icon_malthael_wraithstrike.png",
"type": "W",
"sort": 1,
"abilityId": "Malthael|W1",
"abilityLinks": [
"Malthael|W1"
]
},
{
"tooltipId": "MalthaelOnAPaleHorse",
"talentTreeId": "MalthaelOnAPaleHorse",
"name": "On a Pale Horse",
"description": "Gain an additional 20% Movement Speed while mounted.",
"icon": "storm_ui_icon_malthael_onpalehorse.png",
"type": "Passive",
"sort": 2,
"abilityId": "_stormhero|Z1",
"abilityLinks": [
"_stormhero|Z1"
]
},
{
"tooltipId": "MalthaelFearTheReaper",
"talentTreeId": "MalthaelFearTheReaper",
"name": "Fear the Reaper",
"description": "Activate to increase Movement Speed by 25% and pass through other units for 4 seconds.",
"icon": "storm_ui_icon_malthael_fearthereaper.png",
"type": "Active",
"sort": 3,
"cooldown": 25,
"abilityId": "Malthael|Active"
}
],
"4": [
...
]
...
}
shortName
is the hero’s name with periods, dashes, apostrophes, spaces, and capitalization removed; it is currently used as the name of a hero’s JSON file and imagemanaCost
is a string due to several Heroes (Azmodan, Arthas, etc.) having channeled abilities with per-second mana costsabilityId
can be used to link a talent to its related ability.abilityId
of HeroName|Active
. Ex: Fear the Reaper (seen above), Bolt of the StormabilityId
of HeroName|Passive
. Ex: On a Pale Horse (above), Burning Rage, ExecutionertalentTreeId
is the name of the talent as used in replay filessort
indicates the order of talents on that level/tiericon
is the image name for the talent from game filesSee the Contributing docs for more information on our process.
npm install --save git+https://git@github.com/heroespatchnotes/heroes-talents.git
heroes-talents includes basic support for loading hero data into your project. See
dist/test.js for an example, or dist/index.js for the source.
const HeroesTalents = require('heroes-talents')
async function test() {
try {
const heroes = await HeroesTalents.loadHeroJSONFiles()
const favoriteHero = heroes.alarak
console.log(`My favorite hero is ${favoriteHero.name}. He is an ${favoriteHero.role}.`)
} catch(err) {
console.log(err)
}
}
Abathur
Alarak
Alexstrasza
Ana
Anduin
Anub’arak
Artanis
Arthas
Auriel
Azmodan
Blaze
Brightwing
The Butcher
Cassia
Chen
Cho
Chromie
Deathwing
Deckard
Dehaka
Diablo
D.Va
E.T.C.
Falstad
Fenix
Gall
Garrosh
Gazlowe
Genji
Greymane
Gul’dan
Hanzo
Hogger
Illidan
Imperius
Jaina
Johanna
Junkrat
Kael’thas
Kel’Thuzad
Kerrigan
Kharazim
Leoric
Li Li
Li-Ming
The Lost Vikings
Lt. Morales
Lúcio
Lunara
Maiev
Malfurion
Mal’Ganis
Malthael
Medivh
Mei
Mephisto
Muradin
Murky
Nazeebo
Nova
Orphea
Probius
Qhira
Ragnaros
Raynor
Rehgar
Rexxar
Samuro
Sgt. Hammer
Sonya
Stitches
Stukov
Sylvanas
Tassadar
Thrall
Tracer
Tychus
Tyrael
Tyrande
Uther
Valeera
Valla
Varian
Whitemane
Xul
Yrel
Zagara
Zarya
Zeratul
Zul’jin