Here are mulligan files for the decks I'm working on at the moment. I chose these becuase I'm still working on golden portraits and zoo because it's the cheapest deck in the meta and I can hopefully craft it soon on my ftp account. Taunt warrior was just to try and test out a new meta. So far in ranked it's been the weakest of the group. Rest have been pretty consistent.
aggro druid
mulligan.json
{
"GameCardId":"Mulligan",
"ConfigComment":"This is mulligan rules file for aggro druid created by BotWhat.",
"Mulligan":
{
"values":
[
{
"comment": "hold Innervate (EX1_169),Fire Fly (UNG_809),Bloodsail Corsair (NEW1_025),Enchanted Raven (KAR_300)",
"mulligan":"EX1_169,UNG_809,NEW1_025,KAR_300",
"condition": "*",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is rogue",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),rogue=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is warrior",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),warrior=true) > 0",
"value":"hold",
}
,
{
"comment": "discard all cards not listed as hold",
"mulligan":"*",
"condition": "my_hero(count(),druid) > 0",
"value":"discard",
}
],
},
}
Decklist
Innervate × 2
Enchanted Raven × 2
Mark of the Lotus × 2
Mark of Y'Shaarj × 2
Power of the Wild × 2
Savage Roar × 2
Shellshifter × 2
Living Mana × 2
Neutral Cards (14)
Name Cost
Bloodsail Corsair × 2
Fire Fly × 2
Patches the Pirate × 1
Bluegill Warrior × 2
Golakka Crawler × 2
Eggnapper × 2
Murloc Warleader × 2
Finja, the Flying Star × 1
Midrange Hunter
mulligan.json
{
"GameCardId":"Mulligan",
"ConfigComment":"This is mulligan rules file for midrange hunter created by BotWhat.",
"Mulligan":
{
"values":
[
{
"comment": "hold Alleycat (CFM_315),Fiery Bat (OG_179),Jeweled Macaw (UNG_912),Crackling Razormaw (UNG_915), Kindly Grandmother (KAR_005), Animal Companion (NEW1_031)",
"mulligan":"CFM_315,OG_179,UNG_912,UNG_915,KAR_005,NEW1_031",
"condition": "*",
"value":"hold",
}
,
{
"comment": "keep Eaglehorn Bow (EX1_536) when opponent is warlock",
"mulligan":"EX1_536",
"condition": "opp_hero(count(),warlock=true) > 0",
"value":"hold",
}
,
{
"comment": "discard all cards not listed as hold",
"mulligan":"*",
"condition": "my_hero(count(),hunter) > 0",
"value":"discard",
}
],
},
}
Decklist
Alleycat x2
fiery bat
jeweled macaw x2
crackling razormaw x2
kindly grandmother x2
knife juggler x2
scavenging hyena x2
animal companion x2
eaglehorn bow x2
kill command x2
rat pack x2
unleash the hounds x2
houndmaster x2
infested wolf x2
nesting roc x1
savannah highmane x2
MidRange Pally
mulligan.json
{
"GameCardId":"Mulligan",
"ConfigComment":"This is mulligan rules file for midrange paladin created by BotWhat.",
"Mulligan":
{
"values":
[
{
"comment": "hold Hydrologist (UNG_011),Vilefin Inquisitor (OG_006),Rockpool Hunter (UNG_073),Murlock Warleader (EX1_507)",
"mulligan":"UNG_011,OG_006,UNG_073,EX1_507",
"condition": "*",
"value":"hold",
}
,
{
"comment": "keep Stonehill Defender (UNG_072) when opponent is druid",
"mulligan":"UNG_072",
"condition": "opp_hero(count(),druid=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Stonehill Defender (UNG_072) when opponent is paladin",
"mulligan":"UNG_072",
"condition": "opp_hero(count(),paladin=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Stonehill Defender (UNG_072) when opponent is priest",
"mulligan":"UNG_072",
"condition": "opp_hero(count(),priest=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is hunter",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),hunter=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is mage",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),mage=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is rogue",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),rogue=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is shaman",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),shaman=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is warlock",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),warlock=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Golakka Crawler (UNG_807) when opponent is warrior",
"mulligan":"UNG_807",
"condition": "opp_hero(count(),warrior=true) > 0",
"value":"hold",
}
,
{
"comment": "discard all cards not listed as hold",
"mulligan":"*",
"condition": "my_hero(count(),paladin) > 0",
"value":"discard",
}
],
},
}
decklist
vilefin inquisitor x2
equality x2
golakka crawler x1
hydrologist x2
rockpool hunter x2
aldor peacekeeper x2
murloc warleader x2
stonehill defender x2
consecration x2
gentle megasaur x2
truesilver champion x2
stampeding kodo x1
ivory knight x1
spikeridged steed x2
sunkeeper tarim x1
the curator x1
primordial drake x1
ragnaros lightlord x1
tirion fordring x1
Taunt Warrior
Mulligan.json
{
"GameCardId":"Mulligan",
"ConfigComment":"This is mulligan rules file for taunt warrior, created by botwhat.",
"Mulligan":
{
"values":
[
{
"comment": "hold Fiery War Axew (CS2_106)",
"mulligan":"CS2_106",
"condition": "*",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Ravaging Ghoul (OG_149), Stonehill Defender (UNG_072), Fire Plume's Heart (UNG_934) when opponent is druid or paladin",
"mulligan":"EX1_007,OG_149,UNG_072,UNG_934",
"condition": "opp_hero(count(),druid=true) > 0 OR opp_hero(count(),paladin=true) >0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Ravaging Ghoul (OG_149), Stonehill Defender (UNG_072), Whirlwind (EX1_400) when opponent is hunter",
"mulligan":"EX1_007,OG_149,UNG_072,EX1_400",
"condition": "opp_hero(count(),hunter=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Dirty Rat (CFM_790), Stonehill Defender (UNG_072), Fire Plume's Heart (UNG_934) when opponent is mage",
"mulligan":"EX1_007,CFM_790,UNG_072,UNG_934",
"condition": "opp_hero(count(),mage=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), The Curator (KAR_061), Stonehill Defender (UNG_072), Fire Plume's Heart (UNG_934) when opponent is priest",
"mulligan":"EX1_007,KAR_061,UNG_072,UNG_934",
"condition": "opp_hero(count(),priest=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Dirty Rat (CFM_790), when opponent is rogue",
"mulligan":"EX1_007,CFM_790",
"condition": "opp_hero(count(),rogue=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Ravaging Ghoul (OG_149), Stonehill Defender (UNG_072), Fire Plume's Heart (UNG_934), Dirty Rat (CFM_790), when opponent is Shaman",
"mulligan":"EX1_007,OG_149,UNG_072,UNG_934,CFM_790",
"condition": "opp_hero(count(),shaman=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Ravaging Ghoul (OG_149), Brawl (EX1_407), when opponent is warlock",
"mulligan":"OG_149,EX1_407",
"condition": "opp_hero(count(),warlock=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Acolyte of Pain (EX1_007), Whirlwind (EX1_400), Stonehill Defender (UNG_072), Fire Plume's Heart (UNG_934), Dirty Rat (CFM_790), when opponent is warrior",
"mulligan":"EX1_007,EX1_400,UNG_072,UNG_934,CFM_790",
"condition": "opp_hero(count(),warrior=true) > 0",
"value":"hold",
}
,
{
"comment": "discard all cards not listed as hold",
"mulligan":"*",
"condition": "my_hero(count(),warrior) > 0",
"value":"discard",
}
],
},
}
Zoo
mulligan.json
{
"GameCardId":"Mulligan",
"ConfigComment":"This is mulligan rules file for zoo created by BotWhat.",
"Mulligan":
{
"values":
[
{
"comment": "keep Fire Fly (UNG_809), Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Possessed Villager (OG_241), Voidwalker (CS2_065) when opponent is Druid,hunter, or paladin",
"mulligan":"UNG_809,EX1_319,KAR_089,OG_241,CS2_065",
"condition": "opp_hero(count(),druid=true) > 0 OR opp_hero(count(),hunter=true) >0 OR opp_hero(count(),paladin=true) >0",
"value":"hold",
}
,
{
"comment": "keep Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Darkshire Councilman (OG_113) when opponent is Mage",
"mulligan":"EX1_319,KAR_089,OG_113",
"condition": "opp_hero(count(),mage=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Darkshire Councilman (OG_113), Soulfire (EX1_308) when opponent is Priest",
"mulligan":"EX1_319,KAR_089,OG_113,EX1_308",
"condition": "opp_hero(count(),priest=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Fire Fly (UNG_809), Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Possessed Villager (OG_241), Voidwalker (CS2_065), Darkshire Councilman (OG_113) when opponent is Rogue",
"mulligan":"UNG_809,EX1_319,KAR_089,OG_241,CS2_065,OG_113",
"condition": "opp_hero(count(),rogue=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Fire Fly (UNG_809), Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Possessed Villager (OG_241), Voidwalker (CS2_065), Ravasaur Runt (UNG_009) when opponent is warlock",
"mulligan":"UNG_809,EX1_319,KAR_089,OG_241,CS2_065,UNG_009",
"condition": "opp_hero(count(),warlock=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Fire Fly (UNG_809), Flame Imp (EX1_319), Malchezaar's Imp (KAR_089), Possessed Villager (OG_241), Dire Wolf Alpha (EX1_162), Ravasaur Runt (UNG_009) when opponent is Shaman",
"mulligan":"UNG_809,EX1_319,KAR_089,OG_241,EX1_162,UNG_009",
"condition": "opp_hero(count(),shaman=true) > 0",
"value":"hold",
}
,
{
"comment": "keep Fire Fly (UNG_809), Malchezaar's Imp (KAR_089), Voidwalker (CS2_065) when opponent is warrior",
"mulligan":"UNG_809,KAR_089,CS2_065",
"condition": "opp_hero(count(),warrior=true) > 0",
"value":"hold",
}
,
{
"comment": "discard all cards not listed as hold",
"mulligan":"*",
"condition": "my_hero(count(),warlock) > 0",
"value":"discard",
}
],
},
}
decklist
fire fly x2
flame imp x2
malchezaar's imp x2
possessed villager x2
souldfire x2
voidwalker x2
darkshire librarian x1
dire wolf alpha x2
knife juggler x2
ravasaur runt x2
darkshire councilman x2
devilsaur egg x1
silverware golem x2
defender of argus x2
ravenous pterrordax x2
doomguard x2
as always copy the globalvalues.json file from the default directory into the deck directory you are creating. Also don't forget to modify the deck_config file so the bot knows what directory matches up with what deck you are using in game. All of these are working fairly well for me except taunt warrior. Taunt warrior just seems to slow. Let me know your results.
thanks