What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

HearthbuddyBeta GvG Release Thread

Status
Not open for further replies.

pushedx

Well-Known Member
Joined
Sep 24, 2013
Messages
4,252
HearthbuddyBeta GvG Release Thread

The GvG expansion broke large parts of our previous bot. As a result, we're been working on a new one. For those wondering why the "update" for Hearthbuddy has taken so long, that's why. This release represents the first user testable version of what we have so far. There's still a lot of work to do and things to address, but hopefully users will see the project is not dead, and we're working towards fixing all the previous known issues with the last version.

Expect bugs, possible crashes, lack of features, and for things to change, a lot. We'll be working as fast as possible to collect feedback and bugs, and fix them in batch.

Things To Know

* In order to receive Support, you must attach a full log from the bot session that you encountered a problem with. Please do not modify the log; we need all the information present. If your log file is too large to upload, please ZIP it first before attaching. For more information on this topic, please see the following guide: How to attach your log.

* The bot will stop as soon as an exception is hit. Please make a Support thread and include your log as soon as possible. As a result, we do not recommend trying to bot unattended, unless you're botting Practice games using a deck that is known not to cause any issues.

* Silverfish creates its own logs in "Routines\DefaultRoutine\Silverfish\UltimateLogs". If you have Silverfish errors to report to us, please attach those logs as well. We want to unify the setup of the logs to make life easier for users, but it was not possible without delaying the release longer.

* Please do not try to interact with the game while the bot is running. You'll interfere with it.

* We will be using a modified Silverfish AI as our default AI. However, the GvG update added a lot of cards and mechanics that need to be handled properly, so there will undoubtedly be a lot of things to fix as testing goes underway. We are grateful and appreciative for obtkamer's work and contributions to help modernize AI for Hearthstone bots. We're still working on a better layout and distribution for the logic itself, so the current implementation is very "messy" (e.g., namespaces for HREngine in his code have not been renamed, since properly setting up everything requires massive changes which breaks his workflow as well as anyone else who wants to help contribute using the Silverfish repo).

* Mulligan is currently hard coded to DefaultRoutine. We will be changing this system to something more dynamic and easy to use in the near future.

* ArenaDraft is pretty limited at this time. We'll be expanding the system and opening it to community development in the near future.

* A legacy API is currently being used to test Silverfish as it's the most complete (and by most, I mean only) GvG AI available. We will be eventually switching to a new API that will require the integration code for Silverfish to change for Hearthbuddy. That would delay a testable release for too long right now, so we're going with what we have.

* Community development is not ready to start yet. We know users want to start adding new features and various things for human like behaviour, but we need to get things setup differently first. Our options are to either start testing with what we have now, or delay a lot longer to try and find something that will work how we want.

* The bot has been updated to hopefully work correctly in any resolution. The way the bot interacts with the game has changed, and the previous version's code is no longer used. However...

* There are still some unsolved issues with the legacy AI and how it's currently used. For example, we changed the way card interactions work. The legacy AI does not implement the logic completely. It is possible for the bot to misclick and not perform the correct action due to a client lag spike or an animation taking a bit longer than calculated.

* Lastly there's a lot of stuff not explained or covered yet. We'll be working on that. For now, we need to fix any stability issues and get updates to the AI in place to take care of serious problems that make it unusable so people can get back to botting.
[/list]

Quick Start/Reference Guide

Please run the Buddy Dependency Wizard! first. It will update .Net 4.5.1, and all of the Visual C++ Runtimes we use.

Please note this guide is just a quick start/reference guide to help users get pointed in the right direction when using the new version. Hearthbuddy will change quite a lot in the upcoming months, so a lot of the images shown here will most likely not reflect the latest version of Hearthbuddy, or look different if you are not using Windows 8.1.
1. Download Hearthbuddy Beta build from http://updates.buddyauth.com/GetNewest?filter=HearthbuddyBETA. The new version starts with build #70. Please do not use or try to update old versions. It is suggested to not rename the zip file!
vT24OSn.png

2. Right click on the "Hearthbuddy" zip file and "Extract All...".
gsOvLeS.png

3. The Window's Extract Compressed (Zipped) Folders dialog opens. Simply click on the "Extract" button to begin extracting the bot.
Y3LAiFf.png

4. The bot will now begin to extract. This process might take a while for some users with slower PCs due to the number of files that must be extracted. Please wait patiently for it to finish.
pK97ShM.png

5. When the extraction process completes, a new Hearthbuddy folder will open. The directory layout will resemble this.
e0OERnR.png

6. Sometimes, Windows blocks new files on your PC when you download them from the net. Right click on "Hearthbuddy.exe" and choose "Properties".
cbfrqXp.png

7. If the file is blocked, you will need to "Unblock" it by clicking on the "Unblock" button, followed by "Apply" and/or "OK". Not all users might see this, so this step is only necessary if you do.
89pPMLC.png

8. Run Hearthbuddy by double clicking "Hearthbuddy.exe". Hearthstone must already be launched.

9. When Hearthbuddy starts, you will see a "Configuration Window". For now, simply click "Select" to use the "Default" configuration.
QLy7qMP.png

10. Next, the "Hearthbuddy Key" window will be shown. Enter your Hearthbuddy key and press "Login".
TSpfWpD.png

11. Hearthbuddy will now start. Please wait a moment for it to fully load and compile bots, plugins, and routines. This "Main" tab is where you will be able to change bots/routines, and start/stop the bot.
PfygmXU.png

12. The "Plugins" tab will list currently loaded plugins. By default, a simple "Stats" plugin is auto-enabled. Plugins are a future development focus, and are not ready to be user created yet.
l3KNVzg.png

13. The "Settings" tab provides one play to manage settings for the program, the current bot, the current routine, and any enabled plugins. The "Configuration" tab lists the current configuration Hearthbuddy is using, which should be "Default" by default.
R2flaXb.png

14. The "Global" tab tab lists a few global settings, such as your Hearthbuddy key, the ability to disable update checks (disabled by default), and if Hearthbuddy will auto-login to BuddyAuth (enabled by default).
5HdwBjQ.png

15. The "Main" tab lists a few application specific settings. It shows the last bot/routine used, the currently enabled plugins, as well as some application position/size data. The last two options will be covered later, but for now, don't worry about changing them.
zZMlNIs.png

16. The "DefaultBot" tab can only be seen because "DefaultBot" is the active bot selected from the "Main" (non-settings) tab as previously shown in #11. This tab provides users a means to change various settings for this bot. The "*CustomDeck" fields are strings that should be set to the actual name of the deck to use, and not a number. The rest of the options should be self explanatory, and the Friendly mode will be talked about in more detail later. Hover over the text labels on the left side for additional information. Please see the DefaultBot Settings Guide in the next post for more information.
gH2zGyc.png

17. The "DefaultRoutine" tab can only be seen because "DefaultRoutine" is the active routine selected from the "Main" (non-settings) tab as previously shown in #11. This tab provides users a means to change various settings for this routine. The current options that can be configured are the priority of arena heroes when no quests are active. With the default settings, Hunter is prioritized the highest, followed by Warlock, Pried, Rogue, and Warrior. If none of these heroes are available, a random hero is chosen.
1VOSA2W.png

18. The "Stats" tab can only be seen because "Stats" is an enabled plugin activated from the "Plugin" tab as previously shown in #12. This plugin's options are pretty simple; you can view the current wins, losses, and choose to reset them with a click of the button.
sjE9Hfe.png

19. The "Dev" tab provides a means to execute code at runtime. It's an advanced feature, and will not be talked about here yet.
A7JqAfb.png

20. The "Tools" tab is currently empty and might be removed, depending on how various tools are implemented.
ELmju1g.png

21. After going though the GUI, and changing settings as needed for DefaultBot and DefaultRoutine, return to the "Main" tab and click "Start". Hearthbuddy will now navigate it's way to the selected game mode and start botting away.
 
Last edited by a moderator:
Versions

#90 [Next Version]
  • Experimental fix for UseAt. It now implements more logic to try and place cards at the correct position. Please report any continued oddities with where cards should be placed, vs what is actually done/logged.
  • The automatic custom deck caching on startup has been disabled to be reworked in the future.

#88 [07 Jan 15 21:38]
  • Added a new feature for the bot to not draft arena and just stop instead.
  • Added a new feature to stop the bot at arena rewards, so users can manually open them.
  • Caching has been added to some of TritonHs API functions to help address performance issues.
  • Silverfish is now updated outside the framelock. This should reduce the "freeze" during it's update phase.
  • The bot should now play though Naxx scenarios if they are manually started by the user (e.g., you start the bot at Mulligan).
  • Added TritonHs.IsQuestForClass. This function can be used to check if a quest is a victory quest for a specific class.
  • AchievementData now stores the id, which is what needs to be used for localization issues as opposed the name.
  • ArenaDraftLogic in DefaultRoutine now uses IsQuestForClass to implement proper arena quest support for any language.
  • The bot will cache custom decks on startup.
  • Added settings to DefaultBot's gui to set NeedsToCacheCustomDecks and NeedsToCacheQuests on demand.
  • A new class, CustomDeckCache has been added. This class holds cached deck info for persistence and uses JsonSettings for saving/loading.
  • Utility.CacheCustomDecks has been rewritten to use the new CustomDeckCache class.
  • MainSettings now holds an ObservableCollection of CustomDeckCache objects that represent the current cached decks.
  • A new event was added, GameEventManager.CustomDecksCached. This is called when the bot has cached the current custom decks, and users can make use of MainSettings.CustomDecks.
  • TritonHs.IsQuestForSpecificClass added. This can be used to know if a quest is a class specific win quest.
  • TritonHs.GetBasicHeroCardIdFromClass / TritonHs.GetBasicHeroClassFromCardId added. These allow easier mapping between card ids and basic hero classes (as opposed to calling an API function for HS).
  • The initial Quest plugin logic has been implemented. It will attempt to use custom decks to complete quests, and then fall back to basic decks unless otherwise configured.
  • The Quest plugin is now included with the bot for users to test: https://www.thebuddyforum.com/heart...dybeta-gvg-release-thread-21.html#post1810795
  • A bug where the bot was unable to continue due to a HS client state issue involving PLAY_QUEUE has been found and fixed.

#86 [02 Jan 15 17:18]
  • Various GvG null exception fixes based on logs.
  • Fixed a client issues where the status was set to COLLECTION in the hub scene.
  • SeasonEndDialog should now be clicked though correctly.
  • GameEventManager.StartingNewGame added. This is called when the bot is in the process of starting a new game.
  • The AutoStop plugin now offers a StopAtRank feature.
  • TritonHs.MyRank added for users to check the current constructed rank.
  • Stats plugin now adds total program runtime to the bottom left corner of the GUI.

#85 [29 Dec 14 16:48]
  • "Keep Constructed Rank" has been renamed to "Keep Constructed Rank/MMR" and now applies to both unranked and ranked constructed games. Please re-enable this Constructed setting as it uses a different internal name now.
  • Two non-gui options have been added. DefaultBotSettings.AutoConcedeMinDelayMs and DefaultBotSettings.AutoConcedeMaxDelayMs. These settings make the bot wait 15-30s by default to concede on the next constructed game to avoid the issues of double concedes as well as adding some randomness when the concede is done. Users can edit their DefaultBot.json files for their current configuration when the bot is not running to change these.
  • Concedes are now manually tracked and triggered though GameEventManager.TriggerGameOver.
  • The Stats plugin now distinguishes between losses and concedes. The GUI has been updated so users can test the plugin itself.
  • The plugin must now be enabled before the Config button works on the Plugin tab. Before, the settings would show for disabled plugins.
  • A new plugin, AutoStop, has been added. This plugins provided extended functionality for the old "Stop after X games" feature.

#83 [28 Dec 14 19:15]

#82 [26 Dec 14 12:54]
  • Mulligan logic now only executes once as opposed to infinitely. Before, it was possible for the game to be disconnected, and Mulligan logic would run forever.
  • The bot will no longer cancel the "Beat Down" quest. It was just meant as an example, so it shouldn't have been doing it. It will still "view" quests though.
  • GameEventManager.MulliganConfirm added. This is triggered when the bot confirms the Mulligan, and can be used to know when/if the bot handled Mulligan logic for the current game.

#81 [25 Dec 14 06:43]

#77 [24 Dec 14 04:27]
  • The PLAY_QUEUE state is now handled from the GameplayScene.
  • Users will now see a different message when there's a specific error authenticating the key. Rather than a "System.InvalidOperationException" error message box, they will see: "There was an error authenticating your key with the server. Please try again or use a different key."
  • DefaultRoutine should now properly target Weapon card's with a battlecry rather than your own hero.

#76 [23 Dec 14 11:42]
  • Another null exception in getHPBuffPenality should now be fixed.

#75 [23 Dec 14 03:39]
  • Concede logic changed a little since it seems the dialog might not exist for all users.

#74 [22 Dec 14 19:12]
  • Concede logic update to try and identify some exceptions reported from null objects.
  • The bot will now keep on trying to concede until it works. If it continues to have issues, we'll have to switch the method used.
  • The issue with minions being targeted when it was disallowed should now be fixed.
  • SF should now calc card placement.
  • UseAt now outputs the position it is moving to, in order to try and work out placement issues with the new GvG client.

#73 [22 Dec 14 04:10]
  • Added the old AutoConcede feature using the new setup.

#72 [22 Dec 14 01:51]
  • Some extra delays were added after performing actions. The new bot runs much faster than the previous one did, so it's possible the AI runs too soon after performing an action, which results in it performing the wrong action because the client has not fully updated yet.
  • "Friendly" mode now uses the correct settings.
  • ConstructedCustomDeck / FriendlyCustomDeck / PracticeCustomDeck are now checked for being empty before selecting a custom deck. The bot will now stop if it's unable to know which custom deck the user wants.

#71 [21 Dec 14 03:27]
  • DefaultRoutine now uses OrderByDescending rather than OrderBy for ArenaValues. Cards with higher value should be taken as opposed to lower.
  • Fix for the exception thrown from having "Dark Wispers" in your hand.

#70 [20 Dec 14 14:31]
  • Initial version.

F.A.Q.

Q. Which pre-requites do I need to run HearthbuddyBeta?
A. Problems with a new install of a Buddy product? Try the Buddy Dependency Wizard!

Q. Can I click and interact with the game when the bot is running?
A. No. The bot must perform actions like a human would, which requires using keyboard and mouse input. If you attempt to interact with the client while the bot is running, you'll interfere with the bot.
 
Last edited:
This thing looks amazing! Currently running on my first game. Nice new settings. And he automatically does the daily quests? nice!
 
This thing looks amazing! Currently running on my first game. Nice new settings. And he automatically does the daily quests? nice!

The bot now has support for quests, but we don't have full logic in to do them all in an ideal way other than the win games using a certain hero in Arena. Users will also be able to cancel them on startup and after a quest update as well (e.g., daily reset while you're playing). In addition, we can only support English clients right now until we are able to work in correct localization (which is big on the todo list, but we have to have something working first to localize!)
 
great work guys. thanks for putting the time into this and getting it released.
 
Sorry if im asking a stupid question, but i dont see any option to run ranked games ? only arena constructed fiendly and practice ?
am i missing something ?
appriciate help
 
Constructed has the option to do rankeds in the settings. you can choose between casual and ranked (dropdown menu)

Edit: btw where do I see the statistics?
 
Thank you.
About applying additional time from the downtime.
Are you guys gonna update the expired sessions automatically, or should we contact you?
 
Thank you for this update. I just went through 2 games of botting and there have been some problems with cards buffing another card, and then the buffed card not actually attacking. Here's the log, when I buffed nerubian to 2 attack it did not attack unit or face
 

Attachments

Why the bot all time try to attack with minion wich is already attacked? "This character already attacked" Its waste of time wich is limited in hearthstone as you know.
 
Last edited:
An issue arises whilst playing the Druid class.
Every time Dark Wispers is in hand, the bot will crash.
Has happened 3/3 times I've tested the theory.

Aside from that obscure issue, the bot looks good!
Really appreciate the work you guys put in for us!
 
How do i get it to run random custom decks? and get it to aotomaticly chose one of my custom deck for daily exemple win 2 games with warrior..
 
I also wanted to point out very odd card choice in the arena.
Picking cards purely based off of mana cost, and disregarding the effect of the card.

ie.
Picking:
In certain class vs card vs mana cost scenarios, there definitely could be improvements made in deck construction when it comes to Arenas.
PM me if you would require any help in regards to this.
 
Last edited:
Hello,

Tried the bot in casual. It tried to play the minion twice every time .. for every minion.

I'll report more bugs


Thanks
 
Status
Not open for further replies.
Back
Top