• Visit Rebornbuddy
  • [Bot] Garrisonbuddy - An official Garrison Bot

    Discussion in 'Botbases' started by Apoc, Apr 16, 2015.

    1. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Garrisonbuddy
      A Garrison botbase that handles all your daily Garrison needs. Fully automated, and configurable!

      How does Garrisonbuddy work?
      Just hit start. There is no required configuration needed. However, feel free to configure it as you see fit to set work order limits, mission planning strategies, etc.

      Feature Set
      • Work Orders
        All buildings are handled. This includes the War Mill daily quest for follower weapons/armor tokens. (Non-DE builds only)
      • Shipments
        All buildings are handled.
      • Completing missions
      • Starting Missions
        All missions can be started. Extensible API is provided to allow 3rd parties access to providing new "mission planners". By default, Garrisonbuddy ships with 6 common planning strategies. (Experience, Experience Per Hour, Garrison Resources, Gold Gained, Success Chance, and a "Debug" strategy which includes even further filtering and sorting)
      • Follower Upgrades
        Will "open" all follower upgrade tokens, and attempt to keep all followers at roughly the same item level (prioritizing Legendary/Epic followers first) using the follower tokens you have in your bags. (The bot will not pull tokens from the bank)
      • Full harvesting of the mine, and herb garden
        (Not available in HonorbuddyDE.)
      • Complete Trading Post support
        Includes the ability to "buy" from the current trader (defaults are set to purchase 200 of the best-priced items when you have more than 7500 garrison resources), as well as configurable work orders for the current work order NPC at the trading post.
      • Barn Work Orders
        The bot will put in work orders for all the traps you have available (prioritizing Massive traps before normal ones)
      • Garrison Cache Collection
        The bot will collect the Garrison cache when below 9500 resources (to avoid wasting the cache and over-capping the player)
      • Opening Salvage
        Bags, Crates, etc are opened automatically by the bot.
      Download
      No download necessary--this bot ships with Honorbuddy. (Currently only Beta builds contain Garrisonbuddy)​

      Thread Management Rules
      Posts that have been archived from this thread are available here:

      Posts are archived according to the following rules:
      • Posts older than 30 days are archived.
        Unless there is a significant reason they should remain.
      • Bug reports without FULL, unedited logs attached will be immediately archived without comment.
      • Either report bugs properly, or do not report them at all.
        We cannot look into bugs that have little to no information.
        Bugs reported in such a fashion will be immediately archived without comment.
      • If you derail this thread, you will be muted for up to 30 days. No questions.
      • Archiving may not be immediate, but occur every few days.
       
      Last edited by a moderator: Apr 18, 2015
      KBK2006 and ginuwine12 like this.
    2. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      [SIZE=+1]FAQs[/SIZE]
      • "Does Garrisonbuddy do questing to open up the work orders for each building?"
        Not at this time. But, this has been captured as feature request HB-2234. Even if the feature is implemented, it will be unavailable to HonorbuddyDE users.

      • "Does Garrisonbuddy do profession quests?"
        Not at this time. But, this has been captured as feature request HB-2229.

      • "Does Garrisonbuddy skip HBRelog tasks when it finishes?"
        Yes, it does. But, it only works in non-HonorbuddyDE builds.

      • "For the Trading Post configuration, what does "KeepMinimum and KeepMinimumSecondary" means?"
        For almost all work orders, there is only 1 reagent needed to place the work order (the only exception as of right now, is Engineering, which requires 2. Hence the "Secondary" value)

        Setting either value will ensure the bot will not place a specific work order, if you have less than the "KeepMinimum" value of that item available. Eg; for the "Forge", if you set KeepMinimum to 100, the bot will not place work orders that take you below 100 ore on your character.

        This is simply for users who like to pool some resources for other things, and not spend them all on work orders.

      • "Can you describe how the follower weapon/armor upgrade tokens are applied?"
        Follower tokens are common enough to just use as you get them. The bot will only upgrade level 100 followers.

        The +9 tokens are only used on followers who are >= 645 ilvl to avoid wasting the more rare tokens. It will also try to keep your followers at roughly the same item level so mission success chances are kept high.

        More people requested that upgrades were on by default, than those who asked otherwise. So majority wins in this case.

      • "Does this bot use a lot of LUA?"
        This bot uses very little LUA. In total, there are about 8 LUA functions it uses. (Mainly related to mission starting and completing, and work orders)
        It also includes some other LUA to make the UI not quite so finnicky.
        All calls have been confirmed safe.

      [SIZE=+1]Making Custom Mission Planners[/SIZE]
      Garrisonbuddy ships with a way to "plan" missions by any logic you choose. Simply inherit from GarrisonBuddy.Planning.Missions.IMissionPlanSorter and implement your sorting logic.

      For example, here is the logic for the "By Success Chance" planning strategy:

      Code:
              internal class BySuccessChanceSorter : IMissionPlanSorter
              {
                  public string Name { get { return "By Success Chance"; } }
                  public List<MissionPlan> SortMissionPlans(List<MissionPlan> plans)
                  {
                      List<MissionPlan> output = new List<MissionPlan>();
      
                      foreach (var plan in plans)
                      {
                          // Plan has no valid groups for it, so don't process it.
                          if (plan.Groups == null || plan.Groups.Count == 0)
                              continue;
      
                          // Use List.Sort as it's far faster than an OrderBy
                          // 
                          // We want the higher values to be *lower* in the list. First index is always the first-used group.
                          plan.Groups.Sort(Comparer<MissionGroup>.Create((x, y) => -x.SuccessChance.CompareTo(y.SuccessChance)));
      
                          // Success chance doesn't meet the threshold defined in the settings.
                          // NOTE: This line is actually "fluff", as the main planner itself will filter out any groups with lower-than-set success chances
                          //         before ever getting to this point.
                          if (plan.Groups[0].SuccessChance <= GarrisonBuddySettings.Instance.MinimumMissionSuccess)
                              continue;
      
                          // Add the plan to our outgoing list.
                          output.Add(plan);
                      }
      
                      // Sort all the missions themselves, by the best success chance of the groups.
                      // Remember: Invert here since we want higher succcess chances at lower indices in the list.
                      output.Sort(Comparer<MissionPlan>.Create((x, y) => -x.Groups[0].SuccessChance.CompareTo(y.Groups[0].SuccessChance)));
                      return output;
                  }
              }
      
      Simply implementing your IMissionPlanSorter will have it loaded, and usable by the bot. You can do this via Plugins quite easily.

      Before any missions are started, the bot will calculate all possible groups for all available missions. It will also calculate some modifier-based information (estimated XP gained, gold/resource modifiers, etc) for every group. You will have all useful mission data available to you!

      [SIZE=+1]"Faction Change" Related Bugs[/SIZE]

      Unfortunately, Blizzard has a few Garrison-related bugs when doing faction/race transfers. There are currently two known bugs, both of which include settings for users to "fix" these themselves. Unfortunately, since every user is different, and each circumstance is different, we cannot automate this process. However, fixes have been kept as simple as possible.

      The current fixes will all be found inside your GarrisonBuddySettings.xml for your specific character, usually near the bottom of the file. (Use any text editor you please, such as Notepad, Notepad++, etc. Do not use an RTF editor such as WordPad, as this tends to break the settings file to a point that .NET cannot read it correctly)

      Shipment counts are not correct
      Some users will see that the bot (and the in-game UI) reports incorrect numbers for the amount of "shipments available for pickup". This usually means you did a faction/race transfer before you had all your shipments cleared out. This causes the bot to think that there are extra shipments to be picked up, and it will sit around waiting.

      You will find this chunk of XML inside of the settings file. Simply find the building you have the issue with, and set the ShipmentCount value to the value you see in game when there are no actual available shipments. This will tell the bot to offset the count the client gives us, with the value you give us, to resolve the issue. These values expect positive integer values.

      HTML:
        <BlizzardBug_TransferFixes>
          <ShipmentTransferFix BuildingType="Unknown" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Mines" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="HerbGarden" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Barn" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="LumberMill" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Inn" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="TradingPost" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Menagerie" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Barracks" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="WarMill" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Stables" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="SpiritLodge" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="SalvageYard" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Storehouse" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Alchemy" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Blacksmithing" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Enchanting" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Engineering" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Inscription" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Jewelcrafting" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Leatherworking" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Tailoring" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Fishing" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="GladiatorsSanctum" ShipmentCount="0" />
          <ShipmentTransferFix BuildingType="Workshop" ShipmentCount="0" />
        </BlizzardBug_TransferFixes>
      
      The bot thinks a quest is not complete
      Some users will have quests that they completed on the opposing faction, show up as non-complete on the current faction they transferred to. Unfortunately, this too is another bug that Blizzard has with their transfer system. But, there's a fix!

      Unfortunately, the fix here is slightly more complicated due to some other requirements, but it should still be fairly simple. If the following XML does not exist in your settings file, feel free to add it in! (You may find a blank element called BlizzardBug_QuestTransferFixes, if so, just remove it, and paste the XML below with your modifications)

      Please note: The BuildingType parameter here has the full listing above, so you can find the correct name to put.

      Do not add fixes for buildings that do not need fixes unless you know what you're doing. This will override the pre-quest completion logic and force the bot to assume the quest has been completed.


      HTML:
        <BlizzardBug_QuestTransferFixes>
          <QuestTransferFix BuildingType="SalvageYard" PreQuestCompleted="true" />
          <QuestTransferFix BuildingType="StoreHouse" PreQuestCompleted="true" />
        </BlizzardBug_QuestTransferFixes>
      

       
      Last edited by a moderator: May 11, 2015
    3. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      [size=+1]GarrisonBuddy under heavy refactoring...[/size]
      With the upcoming "Shipyard" garrison changes, I've gone ahead and re-organized all of the Garrisonbuddy code-base. This means I've fixed numerous bugs (both by proxy, and on purpose), and probably introduced quite a few more.

      Buildings are now self-contained logic systems, with each having their own settings. These settings have been wrapped in the UI (I may have possibly missed a setting or two, but I'm fairly confident I got all the ones that are implemented currently)

      You can now enable/disable a building completely. Enable/disable shipments, work orders, or other building-specific things (such as collecting herbs/minerals, using mining items, etc) on a per-building basis. This allows much better control over what GSB will do for you automatically.

      I've also introduced the idea of building "Priority", which will allow you to change what order GSB handles doing any given building. For instance; if you want to have the bot do the Blacksmithing building before Jewelcrafting (so you don't waste all your BS daily materials putting in JC work orders), you can now do this. This option is not currently exposed in the UI, but will be coming soon (via drag-drop style reordering, if I can get it working :p)

      Settings have also been moved to JSON instead of XML. Mainly due to the extra control afforded by the JSON library we use. (Those of you familiar with Wildbuddy, will recognize the settings system being used)

      I've also included the ability to manually add your own profession tradeskills (please note: tradeskills are still early beta support, so don't expect them to work 100% if you add custom ones). This allows you guys to add/remove anything you want, and have the bot automatically craft things. I will still add in "default" tradeskills if requested, and there's enough requests behind them.

      Please report any bugs you may find. (I've completely overhauled the looting logic in GSB, which is going to be an early test for possibly moving into the core HB logic) It should be far more responsive, and work far faster than the old logic.
       
      Last edited by a moderator: Jun 7, 2015
      nooblet likes this.
    4. chinajade

      chinajade Well-Known Member Moderator Buddy Core Dev

      Joined:
      Jul 20, 2010
      Messages:
      17,540
      Likes Received:
      172
      Trophy Points:
      63
      Additional data points folded into HB-2758

      Hi, all, and many thanks for those logs.

      We've added these reports to HB-2758("Harvesting the Mines problem on Garrisonbuddy with map SMVAllianceGarrisonLevel2") as additional data points. As always, the bug is prioritized in the master list. Hopefully, the additional reports will raise its priority to be repaired.

      For the non-actionable 'reports' in this thread (e.g., didn't contain competent problem description or log), we've simply archived them per the thread management rules.

      cheers,
      chinajade
       
      Last edited: Feb 5, 2016
    5. fpsware

      fpsware Community Developer

      Joined:
      Jan 15, 2010
      Messages:
      5,287
      Likes Received:
      133
      Trophy Points:
      63
      The Salvage Yard is undergoing an upgrade but GarrisonBuddy is still trying to salvage items.

      Log attached, clearly showing this bug.
       

      Attached Files:

    6. hodge74

      hodge74 Member

      Joined:
      Oct 12, 2012
      Messages:
      400
      Likes Received:
      1
      Trophy Points:
      18
      bot wont lumber runs to a tree and just stands and stares at it lol... here the log
       
    7. fpsware

      fpsware Community Developer

      Joined:
      Jan 15, 2010
      Messages:
      5,287
      Likes Received:
      133
      Trophy Points:
      63
      Unable to navigate into the mine from the mine work orders NPC.
       

      Attached Files:

    8. lyvewyre

      lyvewyre Member

      Joined:
      Jan 3, 2013
      Messages:
      418
      Likes Received:
      12
      Trophy Points:
      18
      Having similar mine issues with level 3. Exits to hand in but gets stuck because it can detect more nodes but cannot generate a path to them. Only way to solve so far is manually clear the mine, then it is good. Recent log attached. View attachment 4976 2016-02-08 15.20 - Copy.txt.zip

      Cheers.
       

      Attached Files:

    9. Lurky

      Lurky New Member

      Joined:
      Apr 14, 2013
      Messages:
      8
      Likes Received:
      0
      Trophy Points:
      1
    10. Thickchesthair

      Thickchesthair New Member

      Joined:
      May 29, 2013
      Messages:
      165
      Likes Received:
      0
      Trophy Points:
      0
      Is there a way to blacklist items that gets mailed away at the end of a Garrisonbuddy session? My guys currently mail away the stuff needed for work orders needed for the next session.

      It would be nice if he mailed the ore/herbs etc, but you could tell it not to mail x dust, etc for work orders.
       
      Last edited: Feb 15, 2016
    11. bonsai

      bonsai New Member

      Joined:
      Nov 20, 2013
      Messages:
      37
      Likes Received:
      0
      Trophy Points:
      0
      Bot continuously runs in and out of mines and then attempts to place mining workorders repeatedly. Eventually stops because it's not accomplishing anything without finishing other garrison tasks. Log attached.

      View attachment 62560 2016-02-19 09.11.txt
       
    12. mhyr

      mhyr Member

      Joined:
      Nov 30, 2013
      Messages:
      162
      Likes Received:
      1
      Trophy Points:
      18
      Same problem. Did 2 toons just fine, now it keeps having fun running around.
       
    13. mhyr

      mhyr Member

      Joined:
      Nov 30, 2013
      Messages:
      162
      Likes Received:
      1
      Trophy Points:
      18
      The bot is not buying anything off the Trading Post vendor. It's enabled and I marked which items to buy, minimum quantity is set to 200 and I have 10k resources.
       
    14. Dragonheart

      Dragonheart New Member

      Joined:
      Jul 19, 2012
      Messages:
      77
      Likes Received:
      1
      Trophy Points:
      0
      Edit: Sorry, wrong post
       
    15. Spewer

      Spewer Member

      Joined:
      Sep 17, 2010
      Messages:
      202
      Likes Received:
      0
      Trophy Points:
      16
      Same problem for me
       
    16. CKTisdale

      CKTisdale Member

      Joined:
      Oct 16, 2013
      Messages:
      118
      Likes Received:
      0
      Trophy Points:
      16
      Is this botbase still supported?
       
    17. Thickchesthair

      Thickchesthair New Member

      Joined:
      May 29, 2013
      Messages:
      165
      Likes Received:
      0
      Trophy Points:
      0
      I have been wondering this as well. The last update by Apoc was a long time ago D:
       
    18. Thickchesthair

      Thickchesthair New Member

      Joined:
      May 29, 2013
      Messages:
      165
      Likes Received:
      0
      Trophy Points:
      0
      For what it is worth, my character isn't starting blacksmithing work orders or doing the daily truesteel cooldown.

      View attachment 10144 2016-02-27 21.11.txt

      Edit: Figured this one out, but not solved. The bot is mailing everything away, then saying it doesn't have the ingredients...

      Edit 2: commented out both ores on the forcemail list, and now it does the truesteel daily, but not the work orders: View attachment 6912 2016-02-27 21.52.txt
      I did this run on a different character, but settings are the same and work orders are enabled.

      Edit 3: Bot is again not doing truesteel daily even though I have enough materials to do so. He is also mailing away luminous shards so I can't do the enchanting daily - and I don't see them in any file to edit so he doesn't mail them away like the ore.
       
      Last edited: Feb 29, 2016
    19. Nightcrawler12

      Nightcrawler12 New Member

      Joined:
      Mar 18, 2012
      Messages:
      765
      Likes Received:
      11
      Trophy Points:
      0
      Probs; give em time lads
       
    20. Pochizzle

      Pochizzle Member

      Joined:
      Mar 5, 2012
      Messages:
      204
      Likes Received:
      0
      Trophy Points:
      16
      Gets stuck in War Mill level 2. Tries to run out the wall, and gets stuck.
       

    Share This Page