I'm noticing on a windwalker monk that they don't seem to be picking up new targets/attacking half the time. Generally they will start a fight ok with a target but after a mob dies they are not switching to a new target and just stand there. This was previously happening on demo warlock too but I updated to the latest singular and it seems resolved on that. I've attached a combat log, any ideas appreciated, thanks. Code: [15:43:33.350 D] Exception was thrown in BotBase.Root.Tick [15:43:33.351 D] System.NullReferenceException: Object reference not set to an instance of an object. at Singular.Helpers.Unit.IsBoss(WoWUnit unit) in c:\hb2\Routines\Singular\Helpers\Unit.cs:line 1080 at Singular.ClassSpecific.Monk.Common.<CreateChiBurstBehavior>b__de(Object req) in c:\hb2\Routines\Singular\ClassSpecific\Monk\Common.cs:line 778 at Styx.TreeSharp.Decorator.CanRun(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.CallWatch.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 1938 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.SingularRoutine.LockSelector.TickWithFrameLock(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 893 at Singular.SingularRoutine.LockSelector.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 886 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at ...() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.CommonBot.TreeRoot.() at Styx.CommonBot.TreeRoot.(Action , String , Boolean ) [15:43:33.432 D] Exception was thrown in BotBase.Root.Tick [15:43:33.433 D] System.NullReferenceException: Object reference not set to an instance of an object. at Singular.Helpers.Unit.IsBoss(WoWUnit unit) in c:\hb2\Routines\Singular\Helpers\Unit.cs:line 1080 at Singular.ClassSpecific.Monk.Common.<CreateChiBurstBehavior>b__de(Object req) in c:\hb2\Routines\Singular\ClassSpecific\Monk\Common.cs:line 778 at Styx.TreeSharp.Decorator.CanRun(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.CallWatch.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 1938 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.SingularRoutine.LockSelector.TickWithFrameLock(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 893 at Singular.SingularRoutine.LockSelector.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 886 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at ...() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.CommonBot.TreeRoot.() at Styx.CommonBot.TreeRoot.(Action , String , Boolean ) [15:43:33.517 D] Exception was thrown in BotBase.Root.Tick [15:43:33.517 D] System.NullReferenceException: Object reference not set to an instance of an object. at Singular.Helpers.Unit.IsBoss(WoWUnit unit) in c:\hb2\Routines\Singular\Helpers\Unit.cs:line 1080 at Singular.ClassSpecific.Monk.Common.<CreateChiBurstBehavior>b__de(Object req) in c:\hb2\Routines\Singular\ClassSpecific\Monk\Common.cs:line 778 at Styx.TreeSharp.Decorator.CanRun(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.CallWatch.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 1938 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Singular.SingularRoutine.LockSelector.TickWithFrameLock(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 893 at Singular.SingularRoutine.LockSelector.Tick(Object context) in c:\hb2\Routines\Singular\SingularRoutine.Behaviors.cs:line 886 at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at ...() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at ..Tick(Object ) at Styx.TreeSharp.Decorator..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.TreeSharp.PrioritySelector..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.Common.HookExecutor.Run(Object context) at Styx.TreeSharp.Action.RunAction(Object context) at Styx.TreeSharp.Action..() at Styx.TreeSharp.Composite.Tick(Object context) at Styx.CommonBot.TreeRoot.() at Styx.CommonBot.TreeRoot.(Action , String , Boolean )
Mylo, Thanks for taking the time to post. I see the copy/paste of a log excerpt, but don't see a complete Log attached. You will want to follow the steps in Reporting Bugs in Singular (click here) if you encounter future problems. I was able to look into this one and there is a bug in the behavior which handles Chi Burst when you do not have a current target. This will be fixed in the next release. Prior to then, you can work around this by choosing a Talent other than Chi Burst. Thanks for the post and good luck with your Monk, Bobby53
Hi Bobby53, Thanks very much for your advice, I have changed talents removing Chi Burst as mentioned and no longer get this issue. I will in future be sure to follow this guide on reporting bugs. Thanks again!
tomten, Thanks for the post. Unfortunately without the log I am not sure I fully understand the issue as there should be debug output present describing aspects of a flying/above ground target that would be needed. For a Warrior, if you are too close to cast Heroic Throw you should be close enough for other abilities that reach beyond melee ( Thunder Clap, Whirlwind, Storm Bolt, Dragon Roar, Shockwave, ...) In the next release I have modified the support for Warrior ranged attacks on flying targets in the Combat behaviors for each Warrior spec. Note: you will potentially have issues if your attacks do not aggro the target and bring it into range before the Warrior moves underneath it. Will be happy to look at possibly modifying that behavior as well, but will need a full debug log to assist. Thanks for the post and feedback and good luck with your Warrior, Bobby53
The height on TC, WW, SW and DR is about 4-6 yards afaik. You've done imperator ? When he flies up in the air nothing can hit him and you can't use heroic throw just under him, but if you jump and press mid air, most abilities hit. Your post gave a me a great workaround idea tho! If it works, only rogues should be problematic. Will get back to you, thanks
Hello. Workaround didn't work for a couple reasons. (Workaround was using interactwith and using taunt as spell. Problem is interactwith is suppressed while in combat and disabling combat in interactwith, bot dies before everything is pulled.) Here's a edited but more complete log of the issue. If singular would just use taunt the problem would be mostly gone and with heroic throw it should be complete gone. I don't even wanna think about enhance/rogue xD There's 2 counts of taunt in that log. both were on pull afaik. Once on start and once after a blacklist. My humble request: Add taunt/other ranged abilities to rotation when a target can't be reached. Add above to all tank classes and melee dps. Force bot to move from target so it can cast abilities with a minimum range requirement. Thanks Bobby! <3 Edit. Not sure if I had talented storm bolt in that log, it helps but waiting 30 seconds and hoping its not within the 20 second blacklist doesn't really work either.
Quest: Vanquishing Aquantion - Quest - World of Warcraft This quest is hell for frost mages, please could you make special allowances for this mob (maybe use fire spells only); Aquantion - NPC - World of Warcraft Please observe the wowhead comments which backups up what I'm saying.
*new* Singular v4.0.0.4603 available for download! Addition of Standard Offhealing support to DPS Druids. Fix for Warlock Pets and a few other items (see change log for full details.) Available for download from Post #1 of this thread Change History Code: --- Release 4.0.0.4603 --- General change- Trivial Mobs: mobs which are trivial are now identified by a difference in Level rather than difference in Max Health. See the new settings Trivial Mob Level Delta (default 8) and Trivial Mob Elite Delta (default 15) change- Pull More: can now be active when in a Group using the Instances behaviors. Note: if Pull More Allowed = 'Auto' (which is the default) this behavior is only allowed when using the Questing or Grind Bots, so will not interfere with use of DungeonBuddy or other BotBases. fixed - Ranged Pull Movement: in rage edge cases, was stopping at 40 yds but still unable to attack target. Have reduced desired range to 39 yds to provide small buffer change- Offheal: will now output message indicating when Group Offhealing has been activated (due to low group member health) and when it has deactivated (due to group health recovery) Druid *new* - All Specs - Root Break: will now shapeshift when Solo or in Battlegrounds and rooted *new* - Balance/Feral - Offheal Support: will now use the settings on Class Config -> General and Class Config -> Group Healing to control the offhealing of group members and companions. *new* - Feral - Bloodtalons: support for casting Healing Touch with 4+ combo points if Predatory Swiftness has procced change- Feral - Comb Points: was consuming Combo Points remaining at Rest for Savage Roar. Now saved for subsequent combat fixed - All Specs - Self-Heal Interruption; Healing Touch when non-instant and player is solo will now wait for cast completion to prevent other components from interrrupting cast in progress fixed - All Specs - Entangling Roots: cast only on melee attackers at range and only if it will not break current form fixed - All Specs - Solo Use of DPS Cooldowns: revised to avoid wasting if targets out of range. will also cast if in combat with a number of adds fixed - Resto - Rest: would sometimes interrupt drinking if group member needed heal. Will now complete mana replenishment first if in progress Monk fixed - All Specs - Chi Burst: was throwing an exception interfering with spell priority when no current target existed Rogue fixed - All Specs - Stealth; was previously not cast when Pull target is a trivial mob, and many mobs encountered while leveling were errantly being considered trivial. Method used for trivial mob detection in Singular has changed. While this does not represent a change directly to Stealth logic, you will notice Stealth being correctly cast i nmost cases now where it wasnt previously due to the trivial mob change Shaman fixed - Enhancement - Interupted Drinking/Eating: was in some cases interrupting eating/drinking to self-heal during Rest. Will now allow replenishment to complete Warlock fixed - All Specs - Pets: were not being sent to attack due to bug in warlock specific behavior priority Warrior fixed - Protection - Heroic Strike: was not being cast often enough as it was not correctly reflected in the spell priority. fixed - Protection - Ultimatum Procs: should now be recognized at highest priority. Will also emit log message indicating that was reason for the Heroic Strike fixed - All Specs - Ranged Attacks: will now use ranged attacks during Combat at the lowest priority (meaning Charge / Heroic Leap are on cooldown or not available.) change- All Specs - Ranged Attacks: previously only allowed Heroic Throw and Throw as attack on ranged mobs we cannot reach. Now will use other abilities which have a range which extends beyond melee if target will be hit
.4603 was a huge improvement but its still not using taunt. (It almost clears now but it comes down to luck and rng.) If the minimum range requirement on heroic throw fails, use taunt ? (Or just use taunt on cooldown on above ground targets) Would solve it, because thats the only issue atm. Its partially solved with storm bolt but taunt would completely remove the issue (Following classes needs similar treatment: Feral/Guardian. WW/BrM. Death knights. Arms/Fury. Maybe ret/prot but so many ranged abilities.) Gonna test rogue tomorrow and lvling a shamy so I can test with. Thanks a lot! Edit. Is there some way I can control singular settings from a questing profile ? Nothing specific, just general inquiry
Since this isn't a normal case and Heroic Throw doesn't have a cooldown after level 92, will add use of Taunt as highest priority. No, you do not have specific control over Singular settings in a Questing profile. You do have control over enabling/disabling general abilities of the Combat Routine however ( Movement, Facing, AOE, Gap Closer, MultiMobPull, etc.) via the RoutineManager.SetCapabilityState() method. See the doc on that for details. -Bobby53
Thanks Bobby! Totally unrelated warlock thing, possible to delay taking soulstone after getting ganked by an enemy player ? Looks bit suspicious taking insta ress against max level characters only to insta die twice... :-/ Edit. Noticed log output says waiting 10 seconds but its instantly, perhaps add enemy players to the "clear area" check ? Here's log incase its a bug.
I hadn't been on my shadow priest in a while, but I just ran an LFR and noticed if there is more than one mob he spams Mind Sear... Is there a way to turn off Mind Sear?
Guys, i'm using combat bot when soloing old raids (ICC, ulduar) with rogue. It uses vanish and evades bosses. Help please - how to manually disable combat leaving? Thank you.
Giwin, Thanks for the post with log file. Have accounted for in next release. This is an issue for one mob while leveling with one specialization using paid quest profiles, so will need your help testing or PM me a key. Issue is related to misses being due to RESIST rather than IMMUNE. I added this mob specifically to the immune list which should resolve the issue. Thanks again for the post and good luck with your Mage, Bobby53
tomten2, Thanks for the post with log. Although Soulstone is a Warlock spell, use of it applies to all classes/specs since it can be applied to other characters. While solo, this will affect Warlocks and Shaman (Ankh) the most. It is performing a check to ensure area is clear within a spell distance of 20 yds, which is out of aggro range for the majority of NPCs. It is close enough to be a problem with enemy players however. In reviewing the circumstance in your log where it was death by Rogue and the Rogue was still in melee range after immediate rez, I was able to compare your log with the code implemented and see that the Rogue must not have been appearing in the Questing BotBase Target list. I will change the enemy search method for the safe area check. Additionally, I added settings to allow the user to control some parameters for Self-Resurrection after death, specifically how long to wait and what the clear distance should be. The clear distance can be expressed differently for Solo, PVP, and Instances. Additionally, if you die due to Player attack while solo it will use the PVP setting even though you are Solo. Believe that should address it. Look for this in the next release. Thanks again for the log, -Bobby53
Question on targeting... Not sure if this is Singular or whether I need something else. When fighting Shadowmoon Voidtwisters, they often drop a totem that makes them virtually indestructible. (90% damage mitigation) When I'm being attacked by a group of monsters I see that the bot continues attacking the Voidtwister while ignoring everything else that is beating on him. Should Singular switch the target to the totem or something that can actually be hit? I don't know if this is something the combat routine should handle, or if I need some other plugin to handle advanced targeting in PVE. Just in case it helps, the totem is: <WoWUnit Name="Void Shield Totem" Entry="78025" /> The aura it provides: <Aura Name="Void Shield" SpellId="157425" StackCount="0" Creator="Void Shield Totem" CreatorGuid="1C11EC8B804C324000000A00002A9A52" TimeLeft="00:00:00" Flags="Cancelable" /> Did a little more research...Continuing to attacked the shielded enemy also causes more damage to the bot: Void Shield - Spell - World of Warcraft
Gouru, Thanks for the post. If you would like me to look into that further, please follow the steps described in Reporting Bugs in Singular (click here). That provides the context of the circumstances surrounding your combat with with mobs casting the totems which is needed. Targeting is the responsibility of BotBase. Singular performs some targeting but always attempts to do this within the context of the list of BotBase targets. Since targeting is the responsibility of the botbase, attempts to change the target by Singular can result in undesirable side-effects so are always done with knowledge of the specific context they are intended for. Will keep an eye out for your followup and see what changes can be made to support that encounter, -Bobby53
Thanks, that basically answered my question, targeting is the responsibility of the bot base. This is in the context of the questing bot, so I'm going to assume that it should be handled by it. I will follow up on that to see how I can get this kind of behavior from the questing bot base.
Hi, Great work on the Singular! I have a question on the Warlock. When leveling it would seem like a good thing to have the pet tanking for you. Like the voidwalker. But it seems like in destruction it will immediately sacrifice the pet. Which would probably be a good thing in instance/raids but for leveling it's not that great.