I decided to write a guide about setting up Hearthranger with silverfish and custom files because over time the information about these topics got scattered more and more over the forum.
Most stuff in this post is already somewhere on the forum, I just hope this will give our new members less headache. Please note: This guide is based on playing with silverfish AI and custom files
Installing Hearthranger (HR)
Download the latest version of Hearthranger, found here:
Hearthranger download tread. Place it somewhere on your local disk. Open the executeable, this will start a small installation. Follow instructions and you are set. Make sure you open Hearthranger with admin rights to prevent it from not working correctly.
Still have problems? Watch this
detailed guide
Installing the latest version of Sepefeets silverfish
Visit the
Silverfish update tread Download the silverfish folder and replace the silverfish folder inside your "…Hearthranger\externBot" folder with it. Also make sure you unblock your silver.exe and silver.dll files. To unblock those 2 files, after you replaced the silverfish map you:
- Go to the HearthRanger folder
- Go to the ExternBot folder
- Go to the Silverfish folder and find those 2 files: “Silver.dll” and “Silver.exe”
- Right click on each, click properties, and click unlock. Do same on both files.
The properties screen looks like
thisIf you don’t want to manualy update silverfish after an update you can use
Oijkn’s Silverfish updater
NOTE: Silverfish has to be updated after every Hearthranger update
Setting up Hearthranger for the use of silverfish
Now that you both installed Hearthranger and Silverfish we need to set up Hearthranger so Silverfish is used correctly, just a few settings are used for this.
Open the bot and press “edit task” (the small paper and paperclip icon on the left-top) Asuming you know the basic settings of the bot (how to run x game with x class etc), iam just going to mention the settings needed for silverfish, and we just need one tab for that: Bot Control Options.
- Set “Maximum random wait time between actions” to 0 ms
- Check “Show mouse movement path” set “Mouse move speed” to 100 and “Mouse hovering..” to something you like (I use 5)
- Check or uncheck “never reply, squelch and decline” to what you want. I personally only check “never reply” to avoid being spot as a bot.
- Check Use extern A.I. module and select “Silver.dll”
Silver.exe will now start automaticly when you press "play" in hearthranger, it will also start when you press "edit task" don't start it manualy.
Pleae note!: The above settings are often reset for me after a HR update! Make sure you check them after!
Working with custom mulligan, combo and settings files
In many of the treads on this forum you will find custom files for a deck to be used in Silverfish. Most recently the files for allot of successful decks can be found in
The rank 5 tread, clicking the link to "download all decks at once" in the first post will give you allot of files. Of course you can also create them yourself. To start learning this start
here and
hereFor those custom files to work you just have to put your acquired _mulligan.txt, _combo.txt and settings.txt (and sometimes _discovery.txt) directly in you Silverfish folder (...HearthRanger\ExternBot\silverfish) overwriting you old files (if you have them). Your files will be loaded when you start Hearthranger untill you change them in the directory again. Also be aware you don't overwrite your settings with a silverfish update, or make sure you put your settings.txt back after a silverfish update.
Please note:"
- Note the _ before the mulligan and combo files.
- If no combo was posted make an empty notepad file and name it _combo.txt so it will override the previous used combo when switching.
- The ".txt" is added automaticly when you save it as textdocument with notepad, default windows won't show the ".txt" in explorer. So i.e. it will show as "_mulligan"
- Make sure silver.exe (the command window which starts when you start Hearthranger) says "read _mulligan" and "read _combo" else check if your files are named correctly
Adept settings.txt for your PC
The settings.txt file is provided by default by Silverfish itself. The file determines how many (and which) calculations the bot will do. The higher the numbers the more calculations it will do and the more calculations the bot does, the better the play will be.
The default settings that come with silverfish are good and safe for most PC's. But since this guide is mostly about ranking with the bot, we want to optimize these settings the best we can.
All decks In the Data-set in the rank 5 tread have their own settings.txt already and also when people post their custom files they will mostly post their settings as well, so people can use the deck with the exact same variables as the poster. But sometimes you can push these settings even further because you have a faster pc. On the other side, in some cases the bot will rope out because the settings are too high for your pc, so you want to lower them.
My advice is to use the settings generator by JerrySandusky in both cases. This settings generator can be downloaded here:
JerrySandusky's Settings GeneratorWhen you start the generator you just need to fill in one number: “Maxwide= …”. The default in silverfish and much other settings.txt files will be 5000. If you fill in 5000 and press generate it will make a settings text based on that. However with a few changes of the default silverfish settings. Let’s go over them first.
- “playarround = true” In silverfish default this is set to “false”. this option will enable calculation of possible enemy aoe effects and play around them. Currently this function it pretty outdated, and its safe to set this on false for now
- “useSecretsPlayArround = true” In silverfish default this is set to “false”. this option will enable calculation of possible enemy secrets and play around them. For ranking I would advise to keep this setting on “true”
These are the 2 differences and I advise to leave it as the generator sets it. The one thing you
do need to chance manualy is the “enfacehp = 15”. This is the amount of health the opponent needs to have before your hero attacks the enemy directly with a weapon. This changes per deck. Just check what this number is in the settings.txt u want to override and fill in the same number. To adjust it yourself you can keep these values in mind:
- Face: 30 - Straight to face no holding back
- Aggro: 29 - Allows for initial board control
- Tempo: 20 - Board control until stable
- Mid-Range: 15 - Full board control
- Control: 15 - Full board control
One other thing what you might need to change, but not that often is “behave = control” At this moment control is the one you need most of the time. But there are decks like facehunter which needs this setting to “behave = face”. In total there are 4 behaviour modes you can set it to:
- Control - Used mostly, this focuses on boardcontroll, clearing the board as best it can before going face.
- Mana - Allmost the same as "Control" but tries to not "over"-damaging a minion to kill it (i.e. not killing a 1/1 with a 7/8) (This mode is in testing phase)
- Rush - Will try to kill only the strong enemy minions on the board or when the oponent has more then 4 minions. But it will hit face more often then the previous 2
- Face - This mode will just go face unless there is a taunt or a few other very specific threats.
Beware!:
Never set “speed = true” This will cause missplays currently. I also recommend to leave “concedeOnBadBoard = false” it will win the odd match that your oponent has the board but you topdeck lethal.
optimizing settingsNow you know how to make a settings text with the generator. From here it is easy to optimize a current settings.txt. A step by step explanation:
- Open the settings.txt you want to optimize (either up- or downgrade) and look at the current maxwide
- Open the generator and fill in the new number you want to work with. So i.e. you want to try higher settings and the current settings.txt has “maxwide = 5000”. You can try 5500 or 6000, and if you want to lower it set it to 4500 or 4000.
- Press Generate and then manualy change the “enfacehp” if needed and maybe “behave” is that is different.
- Copy the text to notepad and save it as settings.txt.
- You can overwrite the settings.txt which you wanted to change with this new one now.
How to make combo's in _combo.txt
In this part I will try to explain how to write combo's for your _combo.txt by giving some general information and then a few examples you can edit and change to the combo you want.
To combo or not to combo, thats the questionNever make a combo in advance. Silver-AI usually plays the card correctly and there is no need for a combo. Some plays are just misplays, and although you can fix some misplays with combo’s, it’s better that a misplay gets fixed in the AI itself.
You want to make a combo when in a specific deck you want cards played together, cards played after each other, cards added or lowered in value, cards played on specific turns, etc. which does NOT count for those cards in general, but just in the use of the specific deck you are using. Again if a combo should happen in every situation, in every deck, with every class it should be posted as a misplay.
The very basicsThe most simple combo consists out of:
Code: CARD_ID,penalty;NEXT-CARD_ID,penalty
- The CARD_ID is the code of the card found in the "_carddb.txt"-file (inside silverfish folder)
- The penalty is a number (up to 3 digits) for using this card outside of the combo. The Number 0 will cause the cards to have no penalty for playing it outside the combo, where the number 500 will cause it to only be used while in the combo.
Example to play card-1 (CAR_001) and card-2 (CAR_002) with a small penalty for playing card-1 without card-2.
Code: CAR_001,15;CAR_002,0
Finding cards in carddb.txtCarddb.txt is a file inside the silverfish folder which contains all current cards. You can find cards with the search function (ctrl+f) for example if you search for “Darkshire Councilman” (without quotes) you will find the cardID just above the name of the card. (in the below example the CardID is OG_113
Code:
<Entity version="2" CardID="OG_113">
<Tag enumID="185" type="String">Darkshire Councilman</Tag>
You can find all cards like this, hero powers you can find by the name of the powers, but since not everyone knows these, I will list them here. Same for the coin which is harder to find for some:
The coin: GAME_005
Heropowers:Druid (Shapeshift) CS2_017
Hunter (Steady Shot): DS1h_292
Mage (Fireblast) CS2_034
Paladin (Reinforce) CS2_101
Priest (Lesser Heal) CS1h_001
Rogue (Dagger Mastery) CS2_083b
Warlock (Life Tap) CS2_056
Shaman (Totemic Call) CS2_049
Warrior (Armor Up!) CS2_102
List of commands you can use in the combo fileThese are the optional commands you can use in the combo file in combination with the very basic combo (explained above). After you see some more examples with it they will be more clear.
mana: - Use this to do the combo with a certain amount of mana
bonus: - to give the board a bonus for playing the whole combo
bonusfirst: - to give the board a bonus for playing the first part of the combo
bonussecond: - to give the board a bonus for playing the first part of the combo
hero: - allows to specific the class the combo is used
nxttrn - Used to make a 2-turn combo
Adding or lowering value to a single cardWhen you find some cards to be “wasted” i.e. a spell is used to kill of a minion but you want to keep the spell for face on a later stadium. Or a specific minion you want to keep in hand until it causes lethal (i.e. a big charge minion) In this case you might want to add value to the card. Again if the card should always have a higher value then it behaves you need to post is as a misplay. You add values when it’s because of the use in a specific deck.
To add value you use the line: cardvalue:CARD_ID,value(up to 3 digits). So to add 10 value to card1 (CAR_001) you use the combo:
Code: cardvalue:CAR_001,10
Trial and error is involved in the value number. 10 or 15 is a great number to start with in general. But sometimes it just needs 1 to make it behave to your likings. You need to test this in game or due simulating with the test.txt. When you raise the value to 500 it only will be played when it causes lethal.
This value works both ways; you can also lower the value of a card. By simply adding a – before the number. You can do this when your logs shows it holds a card which, in your specific deck you want to have played. Example:
Code: cardvalue:CAR_001,-10
examplesThe below examples are examples with real cards for real situations, but this does NOT mean they are good. Some may be combo’s for old and already fixed misplays. Some I had to make up to make the example. The reason to make examples with real cards is to make it clearer. Also text after // is just meant as plain text and is not read by silver.dll
one turn, 1-card combo’sCode:// [Nudge] Force [6] Savannah Highmane (EX1_534)
EX1_534,0;mana:6;bonus:10;hero:hunter
When playing Hunter, on turn 6 (6 mana) this forces to play Savannah Highmane over other options by adding 10 value to the playone turn, 2-card combo’sCode:// [Combo] [8] Grommash Hellscream (EX1_414) + [0] Inner Rage (EX1_607)
EX1_414,0;EX1_607,15;bonus:100;hero:warrior
When playing Warrior it plays Grommash Hellscream together with Inner Rage. When this combo is played it adds 100 value to the board, there is also a penalty of 15 for Inner Rage to be played outside of the combo. However there is no penalty to play Grommash Hellscream without the comboCode:// [Nudge] [0] The Coin (GAME_005) + [2] Shielded Minibot (GVG_058)
GAME_005,0;GVG_058,0;mana:1;bonus:50;hero:pala
When playing Paladin, on the first turn (1 mana) it plays the Coin and then Shielded Minibot. This play adds 50 value to the board. This is used to force this play over other possible starting boardsCode: // [NUDGE] [5] Thunder Bluff Valiant (AT_049) + [2] Totemic Call (CS2_049)
AT_049,25;CS2_049,0;bonus:50;hero:shaman
When playing Shaman, it adds 50 value to the board it’s in combination with hero power. Also in addition there is a penalty of 25 for playing it without hero powerone turn, 3-card combo’sCode:// [Nudge] [0] The Coin (GAME_005) + [1] Tunnel Trogg (LOE_018) + [1] Tunnel Trogg (LOE_018)
GAME_005,0;LOE_018,0;LOE_018,0;mana:1;bonus:50;hero:shaman
When playing Shaman, on the first turn (1 mana) It plays coin followed by 2x Tunnel Trogg. This play adds 50 value tot he board and is used to force this play over other possible starting boardstwo turn, 2-card combo’sCode: // [Nudge] [1] Tunnel Trogg (LOE_018) > [2] Totem Golem (AT_052)
LOE_018,0;nxttrn;AT_052,0;mana:1;bonusfirst:30;bonussecond:55;hero:shaman
When playing Shaman, on the first turn (1 mana) It plays Tunnel Trog and the next turn it will play Totem Golem. This adds 30 value tot he board fort he first part and 55 for the seccond part. When this combo is in the same file with the combo above. it will prefer this starter because the bonus is higher.Code:// [Nudge] [3] Carrion Grub (OG_325) > [4] Houndmaster (DS1_070)
OG_325,0;nxttrn;DS1_070,0;mana:3;bonusfirst:25;bonussecond:45;hero:hunter
When playing hunter, on turn 3 it will likely play Carrion Grub followed up by Houndmaster on turn 4. Adds 25 value tot he board for the first part and 45 for the seccondtwo turn, 3-card combo’sCode:// [Combo] [0] The Coin (GAME_005) + 2x [1] Argent squire (EX1_008) > 2 [2] Dire Wolf Alpha (EX1_162)
GAME_005,1;EX1_008,0;EX1_008,0;nxttrn;EX1_162,0;mana:1;bonusfirst:30;bonussecond:50;hero:warlock
When playing Warlock on the first turn (1 mana) it plays Coin and 2x Argent squire followed up by a Dire Wolf Alpha on the 2nd turn. This adds 30 value to the board on the first part and 50 for the 2nd part. In addition there is a very small penalty of 1 to use the coin outside of this combo.Code: // [9] Alexstrasza (EX1_561) > [8] Grommash Hellscream (EX1_414) + [2] Cruel Taskmaster (EX1_603)
EX1_561,25;nxttrn;EX1_414,25;EX1_603,10;bonusfirst:125;bonussecond:400;hero:warrior
When playing Warrior i twill play Alexstrasza followed up by Grommash Hellscream and Cruel Taskmaster on the turn after. This will add 125 value to the board for the first part and 400 for the seccond. In addition it has a penalty of 25 for playing either Alexstrasza and Grommash Hellscream, and a penalty of 10 for playing Cruel Taskmaster outside of the comboCardvaluesCode: // Cardvalue Doomguard
cardvalue:EX1_310,38
Adds a value of 38 to Doomguard, this causes it to play less or better said: more carefull.Code: // Cardvalue Lightning Bolt (EX1_238)
cardvalue:EX1_238,15
Adds a value of 15 to Lightning Bolt, this causes it to play less or better said: used for bigger minions / more treatning minions or leathal / leathal setup.Code: // Cardvalue Stampeding Kodo (NEW1_041)
cardvalue:NEW1_041,-1
Lowers the value of Stampeding Kodo by 1. This causes it to play more or better said: Played even when it cannot target an enemy minion, when it has nothing else to play.