Choose what you want from your heroes and how many you want for each role. The generator finds the heroes that fit best, gives each hero one role, and takes the closest matches when nothing fits perfectly. Wishes with dots can be clicked again to raise the bar.
Each wish scores a hero from 0 to 1. A met wish scores 1 and a near miss scores in between: Durable 1 when you asked for 2 scores a half, and an ability that needs Aghanim's Scepter or Shard scores a half unless you count them. The fit is the average over your wishes.
A hero in its main role keeps its full fit. In its second role the fit drops by up to 30 percent, less when the hero plays that role almost as often as its main one. Supports never fill mid through a second role, because roaming supports are often logged in the mid lane. Between equal fits, the higher Legend+ win rate goes first.
Favorites are placed first, in their main role if you chose it, otherwise in their second. Then every open slot in every role is filled at once so the whole roster scores as high as possible, which can move a hero to the role where it fits best rather than the first role that wants it.
Tags, positions and win rates come from the Hero Stats table, where every tag has its definition. Ban lists come from the lane matchups shown in each hero's card there.
Complexity is Valve's own rating from dota2.com. Leave out Complex heroes drops the heroes Valve rates 3 of 3. It is off unless you turn it on.
RainbowCape is a fan project and is not affiliated with or endorsed by Valve. Dota 2 is a registered trademark of Valve Corporation. Win rates, lanes, last hits, tower damage, laning, matchups and game files from OpenDota (opendota.com). Hero complexity from Valve's dota2.com.
Ideas or corrections? Write to R4inb0wC4p3@pm.me.
Visits are counted with GoatCounter, without cookies or any personal data.