Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

2 Pages12>
[TUTO] SilverFish - How To Set Your Own Mulligan Rules
oijkn
#1 Posted : Sunday, August 30, 2015 12:33:59 PM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
Hello everyone I will try to explain how to set the mulligan.txt file with SilverFish. For people who don't know what mean the term mulligan here is a quick explanation : It's at the very start when it gives you the option of returning some of your cards for new ones. Mulliganing refers to swapping the cards. If HearthStone gives you 6 cost cards at the beginning, those are not good to play at beginning. So you swap and hope for more useable cards (less mana). That would be a mulligan.
__________________________________________________________

24-09-2015: Updated for last changes mulligan rules from botmaker (here)
__________________________________________________________


First of all I want to thank botmaker for his excellent work (A.I.) and also JoyAdmin for its fabulous bot !! Thank you guys this great tools !!

Well, let's start the explanations :

STEP 1

First we need to create the file "_mulligant.txt" that will be in the same directory as the file "_carddb.txt",  you can find it in the following directory "HearthRanger-Folder\ExternBot\silverfish"

STEP 2

Then open this created "_mulligan.txt" file with an txt-editor of your choice, and you are ready to start creating your own mulligan rules.

A typical line of a mulligan file will look like this:

hold;mage;all;Card_A:1,Card_B,Card_C;coin;3 or discard;all;druid;Card_A,Card_B,Card_C;nocoin;4

EXPLANATION

Let's take this line as an example ==> hold;mage;all;Card_A,Card_B:1,Card_C;always;3

The first word can be "hold" or "discard" which tells to the A.I., whether you want to hold the following cards or discards them. After this keyword (hold or discard) you have to write a ";" (very important and without quote of course) !

The second item is the own class you will be using for the following rule. In our case, the rule in this line will be only used, whether you are using a mage.

Here is the list, which word you can use (instead of mage) : all, hunter, priest, druid, warlock, thief, pala, warrior, shaman or mage.

If you use the word "all" instead of a class-name, the own selected hero doesn't matter, the rule will be used for every class !

The third item (which stands right behind an ";") is the name of the enemy-class, which you are facing.

You can use this words again : all, hunter, priest, druid, warlock, thief, pala, warrior, shaman or mage.

If you use the word "all" instead of a class-name, the class of the enemy hero doesn't matter, the rule will be used against every class !

So the fourth "item" which is seperated by ";" is the list of the cards-id's, we want to hold/discard, in our case : Card_A,Card_B:1,Card_C

NOTE : you find the card-id in the "_carddb.txt" file! (search for the name and and a few lines above it you will find such a line : <Entity version="2" CardID="XXX-XXXX"> the XXX-XXXX is the cardid you are looking for !

The fifth "item" wich is seperated by ";" is the "coin" rule, use the hold/discard rule only if you holding the coin or not (or in both cases) :

hold;mage;all;Card_A,Card_B:1,Card_C;coin;     ==> will use this rule only if you are holding the coin, your enemy has first turn
hold;mage;all;Card_A,Card_B:1,Card_C;nocoin;3  ==> will use this rule only if you are starting first
hold;mage;all;Card_A,Card_B:1,Card_C;always;3 OR hold;mage;all;Card_A,Card_B:1,Card_C;;3 ==> will use this rule in both cases (you can use every word except "coin" & "nocoin") 

To create such a list, you have to follow this rules :

- consider upper and lower case!
- each card you want to hold/discard is seperated by a comma ! (like this : Card_A,Card_B,Card_C)
- for HOLD-rules, (a line which starts with the word "hold"), you are able to specific how mutch cards should be holded, by adding ":1" (if you want to hold just one card of this specific card) or ":2" (if you want to hold two cards of this specific card) right after the card-id ! (if you dont write :1 or :2 after the card id, the A.I. will hold 2 cards in the start-hand !)

So this line : hold;all;all;Card_A:1

Will discard one card ex: Elven Archer (Card_A), whether you got two of them in your starting hand !

- Also for HOLD-rules: you are able to add "condition-cards" for holding the specific card, by adding ":" and the cardid(s) you want in starting-hand, for keeping the selected card !

Example : hold;all;all;Card_A:1:Card_B

Will hold the card Card_A (one time), only if you also got a Card_B in the starting-hand. So if you don't hold a Card_B, "hold;all;all;Card_A:1:Card_B" will discard all Card_A !

Attention : this option requires the declaration of the number of cards you want to hold ! So Card_A:Card_B this is forbidden !!! Write Card_A:2:Card_B instead !!!

If you want to hold the card Card_A whether you also hold a Card_B ORCard_C just separate them (condition-cards) with a "/".

Example : hold;all;all;Card_A:1:Card_B/Card_C (you can add as many "condition-cards" as you want, like Card_A:1:Card_B/Card_C/Card_D/...)

If you want to hold the card Card_A whether you also hold a Card_B ANDCard_C just separate them (condition-cards) with a "+".

Example : hold;all;all;Card_A:1:Card_B+Card_C (you can add as many "condition-cards" as you want, like Card_A:1:Card_B+Card_C+Card_D+...)

Example : hold;all;all;Card_A:1:Card_B+Card_C/Card_D/Card_E+Card_F+Card_G (will holds Card_A if you are holding Card_B AND Card_C OR just Card_D OR Card_E AND Card_F AND Card_G

This allows to add rules like "hold Card_A and Card_B ONLY if you have all two of them, elsewise discard the card you are holding" Card_A:1:Card_B,Card_B:1:Card_A,... will hold Card_B only if you also have the Card_A on starting hand, and reverse. so you need both cards to hold them.

Tips : It will hold automatically 1 one card of every "case-card" that is fulfilling the holding-rule so if you are using this rule : hold;all;all;Card_A:1:Card_B+Card_C/Card_D and you have Card_ACard_B, 2 x Card_C and Card_G in your hand, it will automatically hold Card_A, Card_B and one Card_C (and it will throw a Card_C and Card_G away, if you don't have other rules). But if you are holding Card_ACard_BCard_CCard_D and Card_G it will only throw Card_G away !!

And the last "item" separated by a ";" is just a number (in our example a 3) : this adds the ability for HOLD-rules, to hold cards with LESS OR EQUAL mana costs, or discard them (for DISCARD-rules) whether they have HIGHER OR EQUAL mana costs !

Example : hold;all;all;CS2_222:1,EX1_019;;2

This line will hold all cards with mana <=;2 AND the one stormwind-champion and 2 shattered sun cleric's (if you have them in the starting-hand), this mana-border is OPTIONAL, you don't have to add this if you don't need it !

So just use : hold;mage;all;CS2_106,CS2_189:1,CS2_222 instead of hold;mage;all;CS2_106,CS2_189:1,CS2_222;;3 (whether you don't want to use this mana-border)

BUT if you want to add only a mana-border, (example 3 mana) you have to write : hold;all;all;;;3 (it needs 5 ";" before the mana-border)

Note : after you create a rule for Class_A, but you are boting with Class_B, but you don't made any rule for that hero, the Silver A.I. will use a simple default rule for mulligan.

I hope that the explanations are enough clear and i add colors in that way it's easier to understand, if you have any doubts or questions don't hesitate to comment this thread !!
__________________________________________________________


If this tuto help you please click the THANKS BUTTON :)



Source : From botmaker and HB.
19 users thanked oijkn for this useful post.
botmaker on 8/30/2015(UTC), metrix2k on 8/30/2015(UTC), Ultranist on 8/30/2015(UTC), IsGeorgy78 on 8/31/2015(UTC), Vick Nan on 9/7/2015(UTC), BlackOak on 9/15/2015(UTC), fryham on 9/23/2015(UTC), acheron55 on 9/26/2015(UTC), purpleehae on 10/15/2015(UTC), omgfrost on 12/5/2015(UTC), qqkkrandom3724 on 1/21/2016(UTC), look2hack on 1/21/2016(UTC), echomadness on 3/1/2016(UTC), etronpoilu on 3/12/2016(UTC), pnsteva on 3/25/2016(UTC), mixarms on 7/3/2016(UTC), Seirhna on 12/16/2016(UTC), ClydusMaximus on 2/5/2017(UTC), DizzyDwarf-JG on 7/26/2017(UTC)
IsGeorgy78
#2 Posted : Monday, August 31, 2015 12:46:42 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 91
Man
Location: NY

Thanks: 29 times
Was thanked: 3 time(s) in 3 post(s)
oijkn, great thanks for usefull guide.

Question: Can I setup coin-rule mulligan?

For example, I want to hold 2 mana cost cards for my 1st turn (hold;all;all;;2),
but if have a coin (my 2nd turn) hold 3 mana cost cards (hold;all;all;;3)

Is it possible?
Thanks.
1 user thanked IsGeorgy78 for this useful post.
stamataras611 on 4/13/2016(UTC)
oijkn
#3 Posted : Friday, September 04, 2015 5:39:21 PM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
IsGeorgy78;29027 wrote:
oijkn, great thanks for usefull guide.

Question: Can I setup coin-rule mulligan?

For example, I want to hold 2 mana cost cards for my 1st turn (hold;all;all;;2),
but if have a coin (my 2nd turn) hold 3 mana cost cards (hold;all;all;;3)

Is it possible?
Thanks.


Hi IsGeorGy78,

Sorry to reply you so late but i was very busy this last days...

Good question ! try to add this in your _mulligan.txt

Code:

hold;all;all;GAME_005e:1;3
hold;all;all;;2


The first line will use The Coin card with 3 mana cost and the second line without The Coin card for two mana cost.

Tell me if it's good !

Regards.
1 user thanked oijkn for this useful post.
IsGeorgy78 on 9/11/2015(UTC)
sadpwner
#6 Posted : Sunday, September 20, 2015 11:02:45 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 262
Location: somewhere

Thanks: 3 times
Was thanked: 64 time(s) in 54 post(s)
Wtf I wrote discard;warlock;all;;3 and it doesn't discard 3 mana cards?

How do I create a mana border such that it keeps only 2 2 mana cards max if going first and 1 3 mana card max if going 2nd?

Also, does this seem correct?

discard;warlock;pala;EX1_319,CS2_188,FP1_007,EX1_316,AT_026
hold;warlock;all;EX1_008
hold;warlock;all;FP1_002
hold;warlock;all;NEW1_019:1
hold;warlock;all;CS2_065
discard;warlock;thief;CS2_188
discard;warlock;warrior;EX1_008,EX1_316,FP1_007
hold;all;warlock;EX1_316:1:FP1_007/FP1_002
hold;all;thief;EX1_316:1:FP1_007/FP1_002
hold;all;warrior;EX1_316:1:FP1_007/FP1_002
hold;all;priest;EX1_316:1:FP1_007/FP1_002
hold;all;shaman;EX1_316:1:FP1_007/FP1_002
hold;all;mage;EX1_316:1:FP1_007/FP1_002
hold;all;hunter;EX1_316:1:FP1_007/FP1_002
hold;all;druid;EX1_316:1:FP1_007/FP1_002
discard;all;all;EX1_316
hold;warlock;all;CS2_188:1:EX1_008/FP1_007/FP1_002
hold;warlock;all;EX1_319
discard;warlock;priest;EX1_008

For some reason, It keeps discarding my voidwalker wtf and knife jungler.

Also, the bot usually keeps 1-3 mana cards if you don't setup mulligan rules. Will it still do that if I do? BEcause it keeps discarding my 1 drops if I don't include it in the rules.
Also, can I setup rules for multiple classes because I have to do this if I don't want the rule to apply 2 1 class? The missing class here is paladin.
hold;all;warlock;EX1_316:1:FP1_007/FP1_002
hold;all;thief;EX1_316:1:FP1_007/FP1_002
hold;all;warrior;EX1_316:1:FP1_007/FP1_002
hold;all;priest;EX1_316:1:FP1_007/FP1_002
hold;all;shaman;EX1_316:1:FP1_007/FP1_002
hold;all;mage;EX1_316:1:FP1_007/FP1_002
hold;all;hunter;EX1_316:1:FP1_007/FP1_002
hold;all;druid;EX1_316:1:FP1_007/FP1_002
oijkn
#7 Posted : Monday, September 21, 2015 10:28:07 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
Hi sadpwner,

Well i'm not the coder of silver but i will try to help as i can ;)

sadpwner;29681 wrote:
Wtf I wrote discard;warlock;all;;3 and it doesn't discard 3 mana cards?


Try so set only this line in the "_mulligan.txt" and see if it works. If it's the case the problem comes from other incompatible lines...


sadpwner;29681 wrote:
How do I create a mana border such that it keeps only 2 2 mana cards max if going first and 1 3 mana card max if going 2nd?


I don't know if the mulligan rules can manage it...try to ask it @botmaker

sadpwner;29681 wrote:
Also, does this seem correct?


Try this, i just regrouped the hold warlock settings

Code:

discard;warlock;pala;EX1_319,CS2_188,FP1_007,EX1_316,AT_026
hold;warlock;all;EX1_008,FP1_002,NEW1_019:1,CS2_065,CS2_188:1:EX1_008/FP1_007/FP1_002,EX1_319
discard;warlock;thief;CS2_188
discard;warlock;warrior;EX1_008,EX1_316,FP1_007
hold;all;warlock;EX1_316:1:FP1_007/FP1_002
hold;all;thief;EX1_316:1:FP1_007/FP1_002
hold;all;warrior;EX1_316:1:FP1_007/FP1_002
hold;all;priest;EX1_316:1:FP1_007/FP1_002
hold;all;shaman;EX1_316:1:FP1_007/FP1_002
hold;all;mage;EX1_316:1:FP1_007/FP1_002
hold;all;hunter;EX1_316:1:FP1_007/FP1_002
hold;all;druid;EX1_316:1:FP1_007/FP1_002
discard;all;all;EX1_316
discard;warlock;priest;EX1_008


Sorry for the rest i'm not an expert and English is not my native language. I hope i helped you a little and you will find the way to manage it as like you want :)

PS: If you have issue with mulligan try to take a log in the log perhaps you can find some more infos !

Regards.
fryham
#8 Posted : Wednesday, September 23, 2015 8:11:02 PM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 45
Location: usa

Thanks: 14 times
Was thanked: 12 time(s) in 8 post(s)
Code:
discard;all;all;CS2_203,CS2_188,EX1_610,EX1_536,EX1_539,EX1_538,GVG_096


Doesn't work - the bot just discards everything. Any idea what I'm doing wrong?

the log shows the bot is reading _mulligan.txt
oijkn
#9 Posted : Thursday, September 24, 2015 2:56:39 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
fryham;29794 wrote:
Code:
discard;all;all;CS2_203,CS2_188,EX1_610,EX1_536,EX1_539,EX1_538,GVG_096


Doesn't work - the bot just discards everything. Any idea what I'm doing wrong?

the log shows the bot is reading _mulligan.txt


Hi fryham,

It's normal because botmaker change the rules of the mulligan, i need to update this topic when i have some free time...

Your code bellow seams to be good, do you have any other lines in your _mulligan.txt ?

Code:

discard;all;all;CS2_203,CS2_188,EX1_610,EX1_536,EX1_539,EX1_538,GVG_096


Regards.
fryham
#10 Posted : Thursday, September 24, 2015 3:09:00 AM(UTC)

Rank: Advanced Member

Groups: Registered
Posts: 45
Location: usa

Thanks: 14 times
Was thanked: 12 time(s) in 8 post(s)
Nevermind, I realized I have to tell the bot each card I want to hold as well as each card I want to discard :) Working now.


discard;all;all;CS2_203,CS2_188,EX1_610,EX1_536,EX1_539,EX1_538,GVG_096
hold;all;all;EX1_029,EX1_412,EX1_554,FP1_002,NEW1_019,FP1_004,NEW1_031
oijkn
#11 Posted : Thursday, September 24, 2015 3:40:32 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
Ok well if you need help just ask it :-)
emilcoff
#12 Posted : Thursday, September 24, 2015 4:11:56 AM(UTC)
emilcoff


Rank: Advanced Member

Groups: Registered
Posts: 118
Location: Argentina

Thanks: 11 times
Was thanked: 29 time(s) in 10 post(s)
Awsome, can you make a tuto for combo ?
BlackOak
#13 Posted : Thursday, September 24, 2015 8:21:29 AM(UTC)
BlackOak


Rank: Advanced Member

Groups: Registered, HSModerator
Posts: 253
Man
Location: UK

Thanks: 62 times
Was thanked: 197 time(s) in 66 post(s)
@oijkn post needs updating to account for Botmaker's changes to _mulligan.txt management :)
oijkn
#14 Posted : Thursday, September 24, 2015 9:00:34 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
emilcoff;29818 wrote:
Awsome, can you make a tuto for combo ?


Hi emilcoff,

I will try to make it when i have more free time :)

BlackOak;29836 wrote:
@oijkn post needs updating to account for Botmaker's changes to _mulligan.txt management :)


Here you go mate ! I hope i don't make mistakes but i'm sure that botmaker will tell me it if it's the case :)

Regards.
1 user thanked oijkn for this useful post.
BlackOak on 9/25/2015(UTC)
cybercyb
#15 Posted : Saturday, October 03, 2015 8:58:11 PM(UTC)
Rank: Member

Groups: Registered
Posts: 12

Thanks: 2 times
Hello, is there a way to set up a rule which works with cards only holding when other cards are available too?
bobzen
#16 Posted : Sunday, October 04, 2015 10:36:58 PM(UTC)
Rank: Newbie

Groups: Registered
Posts: 6
Location: denmark

Thanks: 1 times
hmm i dont get this really :(

can someone give me the setting to not discard knife juggler for all classes please?
oijkn
#17 Posted : Tuesday, October 06, 2015 7:03:30 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
cybercyb;30472 wrote:
Hello, is there a way to set up a rule which works with cards only holding when other cards are available too?


Hi,

If you take the time to read the tuto you can see it's possible yes ;)

bobzen;30555 wrote:
hmm i dont get this really :(

can someone give me the setting to not discard knife juggler for all classes please?


Hi,

It's the same for you if you take the time to read a little you can find your answer !!

Code:

hold;all;all;NEW1_019


Regards
scarlet
#18 Posted : Thursday, October 08, 2015 3:19:12 AM(UTC)
Rank: Member

Groups: Registered
Posts: 10
Location: Singapore

I tried to set-up this mulligant while using silver.dll AI

Quote:

hold;hunter;all;FP1_028:1;always;3 //Undertaker
hold;hunter;all;FP1_002:1;always;3 //HauntedCreeper
hold;hunter;all;CS2_203:1;always;3 //Ironbeak Owl
hold;hunter;all;NEW1_019:1;always;3 //Knife Jugger
hold;hunter;all;EX1_609:1;always;3 //Snipe
hold;hunter;all;FP1_004:1;always;3 // Mad Scientist
hold;hunter;all;NEW1_031:1;always;3 //Animal Companion
hold;hunter;all;EX1_536:1;always;3 //Eaglehorn Bow
hold;hunter;all;EX1_617:1;always;3 //DeadlyShot
hold;hunter;all;EX1_539:1;always;3 // Kill Command
hold;hunter;all;GVG_096:1;always;3 // Piloted Shredder
discard;hunter;all;CS2_084;always;3
discard;hunter;all;DS1_184;always;3
discard;hunter;all;EX1_610;always;3
discard;hunter;all;EX1_611;always;3
discard;hunter;all;EX1_533;always;3
discard;hunter;all;EX1_538;always;3
discard;hunter;all;DS1_070;always;3
discard;hunter;all;EX1_537;always;3
discard;hunter;all;FP1_030;always;3
discard;hunter;all;EX1_534;always;3
discard;hunter;all;GVG_110;always;3


It's not doing what I want it to do . Anyway to set auto concede criteria with mullingan too ?
oijkn
#19 Posted : Thursday, October 08, 2015 6:37:45 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
scarlet;30745 wrote:
I tried to set-up this mulligant while using silver.dll AI

It's not doing what I want it to do . Anyway to set auto concede criteria with mullingan too ?


Hi,

I don't have the time to test it but try this :



Regards.
scarlet
#20 Posted : Thursday, October 08, 2015 7:03:14 AM(UTC)
Rank: Member

Groups: Registered
Posts: 10
Location: Singapore

What did you change ? Looks the same to me except the extra spacebar'ed line .
oijkn
#21 Posted : Thursday, October 08, 2015 7:18:56 AM(UTC)
oijkn


Rank: Advanced Member

Groups: HSModerator, Registered
Posts: 473
Man
Location: 127.0.0.1

Thanks: 76 times
Was thanked: 271 time(s) in 93 post(s)
scarlet;30748 wrote:
What did you change ? Looks the same to me except the extra spacebar'ed line .


That right ! Your comment must be before and not after i think !

Did you tried ?

Regards.
scarlet
#22 Posted : Thursday, October 08, 2015 3:12:51 PM(UTC)
Rank: Member

Groups: Registered
Posts: 10
Location: Singapore

Sorry for the late reply : It isn't working
2 Pages12>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.408 seconds.