AutoGear is a World Of Warcraft addon that automatically rolls on and equips loot according to stat weights like WoWhead filters. AutoGear rolls "need" on upgrades and "greed" otherwise.
AutoGear also optionally interacts with quest NPCs, automatically accepting and completing quests, including deciding the best quest reward based on the same stat weights. If no item is deemed to be an upgrade, the item worth the most vendor gold is chosen.
Included in AutoGear are default stat weights for all specs of all classes. Using these weights, AutoGear will roll "need" on better loot and equip it for you when it can.
Stat weights work like the advanced filter on WoWhead. For example, if you specify that 1 point of strength is worth 1 point and 1 point of crit is worth 0.5 points, an item with 5 strength and 3 crit will be worth 6.5 points. That item might then replace an item in the same slot with 3 strength and 2 crit, worth 4 points. If the first item was presented in a loot roll, AutoGear would roll "need" and if you won the roll, it would equip the new item as soon as it could.
The default stat weights may not be what you prefer. If you want to change them, stat weights for all classes and specs can be found in the "SetStatWeights()" function in "[wow]\Interface\AddOns\AutoGear\AutoGear.lua". Simply edit the numbers there, save the file, and type "/run ReloadUI()" to update. A GUI for setting stat weights would be nice, but the authors haven't been motivated to make one yet. Code patches are welcome. This includes improvements to AutoGear's current stat weights, which sometimes need updating due to WoW class balance changes.
If you receive an upgrade mid-combat, AutoGear queues the upgrade to be equipped when combat ends. It used to equip weapon upgrades immediately because weapons could be changed in combat, but due to addons that automated weapon swaps in combat for DPS at maximum level, Blizzard now prevents addons from swapping weapons in combat automatically. You can still equip them manually earlier than AutoGear can if you notice you've received a weapon upgrade.
Chat commands:
/ag - options menu
/ag help - chat commands
/ag scan - manually run automatic gearing once (scan all bags for better gear)
/ag spec - query name of current specialization
/ag toggle/[enable/on/start]/[disable/off/stop] - toggle automatic gearing
/ag quest [enable/on/start]/[disable/off/stop] - toggle quest handling
/ag party [enable/on/start]/[disable/off/stop] - toggle automatic acceptance of party invitations
/ag verbosity [0/1/2]: set allowed verbosity level; valid levels are: 0 (errors), 1 (info), 2 (details)
Warning: AutoGear currently automatically rolls "greed" on everything that isn't a gear upgrade for the current spec, including mounts and crafting reagents. It works quite well for leveling quickly and conveniently, but you should disable it before loot rolls you want control over. To do so, simply run "/ag toggle" or toggle it from the options menu.
Warning: AutoGear is not recommended for use at max level. Its weights are not optimal, nor are stat weights ideal for determining upgrades in end-game content. AutoGear is meant primarily as a convenience for leveling quickly. Using it at max level, especially in team PvE or PvP, is likely to get you kicked from various groups and guilds. Calculating proper upgrades using SimulationCraft is preferable. This will be very time-consuming, but worth it for your powerful max-level character.
found a bug, possible incompatible with TheUndermineJournal
561x AutoGear\AutoGear.lua:2969: attempt to concatenate local 'name' (a nil value)
[string "@AutoGear\AutoGear.lua"]:2969: in function <AutoGear\AutoGear.lua:2964>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua"]:499: in function <...TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:493>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua"]:425: in function `SetTrainerService'
[string "*:OnEnter"]:3: in function <[string "*:OnEnter"]:1>
Locals:
tooltip = GameTooltip {
0 = <userdata>
SetQuestLogRewardSpell = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetText = <function> defined =[C]:-1
OnBackdropLoaded = <function> defined @SharedXML\Backdrop.lua:205
ItemTooltip = <unnamed> {
}
SetHyperlink = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
RightEdge = <unnamed> {
}
SetVoidWithdrawalItem = <function> defined =[C]:-1
ClearBackdrop = <function> defined @SharedXML\Backdrop.lua:335
Show = <function> defined =[C]:-1
SetLootCurrency = <function> defined =[C]:-1
SetLootItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
FadeOut = <function> defined =[C]:-1
SetQuestLogSpecialItem = <function> defined =[C]:-1
SetRecipeReagentItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetBuybackItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetMerchantItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetupTextureCoordinates = <function> defined @SharedXML\Backdrop.lua:267
TopRightCorner = <unnamed> {
}
SetTalent = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetBackpackToken = <function> defined =[C]:-1
GetEdgeSize = <function> defined @SharedXML\Backdrop.lua:241
updateTooltip = 0.033000
SetInventoryItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
TopEdge = <unnamed> {
}
hasMoney = 1
SetLootRollItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
CIMI_tooltipWritten = false
SetBagItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
numMoneyFrames = 1
BottomRightCorner = <unnamed> {
}
SetBackdropColor = <function> defined @SharedXML\Backdrop.lua:452
LeftEdge = <unnamed> {
}
SetCurrencyByID = <function> defined =[C]:-1
comparing = false
textLeft1Font = "GameTooltipHeaderText"
MAMover = TooltipMover {
}
SetCurrencyToken = <function> defined =[C]:-1
SetGuildBankItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetVoidItem = <function> defined =[C]:-1
TopLeftCorner = <unnamed> {
}
SetPetAction = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
Hide = <function> defined =[C]:-1
SetTrainerService = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetShapeshift = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetQuestRewardSpell = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
TextRight1 = GameTooltipTextRight1 {
}
SetExistingSocketGem = <function> defined =[C]:-1
ApplyBackdrop = <function> defined @SharedXML\Backdrop.lua:347
SetBackdrop = <function> defined @SharedXML\Backdrop.lua:382
HasBackdropInfo = <function> defined @SharedXML\Backdrop.lua:331
TopOverlay = <unnamed> {
}
GetBackdropBorderColor = <function> defined @SharedXML\Backdrop.lua:462
GetBackdrop = <function> defined @SharedXML\Backdrop.lua:400
SetItemByID = <function> defined =[C]:-1
SetHeirloomByItemID = <function> defined =[C]:-1
shoppingTooltips = <table> {
}
SetQuestItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetQuestCurrency = <function> defined =[C]:-1
SetBorderBlendMode = <function> defined @SharedXML\Backdrop.lua:319
SetToyByItemID = <function> defined =[C]:-1
GetBackdropColor = <function> defined @SharedXML\Backdrop.lua:443
SetMerchantCostItem = <function> defined =[C]:-1
SetInboxItem = <function> defined @TheUndermineJournal\libs\Li
In reply to ncplus:
Is that when you mouse over stuff that's in void storage? I've never used void storage myself.
In reply to BujuArena:
i dont use void storage
In reply to ncplus:
Weird. Well, I'm using TheUndermineJournal too and not seeing this issue. If you disable all other addons except AutoGear and TheUndermineJournal, does it still happen? Also, make sure you're on the latest versions of those.
Oh, sorry, Outlaw :)
Yes, and same for Subletly. Outlaw can equipping a dagger.
Hello.
Thanks for your work, I really like it! Sometimes AutoGear equips the wrong weapon for my rogue (pirate equip daggers and an assassin equip a slow weapon). I only notice it after death: D Is it possible to fix this?
In reply to l8ngin8v3:
Sounds like the issue is with a new spec for rogue called "pirate". @zeribus77 are you able to check this out?
In reply to l8ngin8v3:
Is Assassination equipping a weapon that is not a dagger?
there is bug with heart of azeroth, he is bean replaced with lower lvl neckless that dropped on raid hellfire cidadel
ive found a bug on classic when i'm mouse over weapons
51x AutoGear\AutoGear.lua:2941: attempt to concatenate local 'name' (a nil value)
AutoGear\AutoGear.lua:2941: in function <AutoGear\AutoGear.lua:2936>
[C]: ?
[C]: ?
[C]: ?
[C]: in function `SetCompareItem'
FrameXML\GameTooltip.lua:716: in function `GameTooltip_ShowCompareItem'
!MoncaiCompare\!MoncaiCompare-7.2.0.lua:48: in function <!MoncaiCompare\!MoncaiCompare.lua:46>
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: in function `SetItemByID'
AtlasLootClassic\Button\Item_type.lua:210: in function `OnEnter'
AtlasLootClassic\Button\Button.lua:111: in function <AtlasLootClassic\Button\Button.lua:104>
Locals:
tooltip = ShoppingTooltip1 {
0 = <userdata>
SetText = <function> defined =[C]:-1
SetHyperlink = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
SetCraftItem = <function> defined =[C]:-1
ClearLines = <function> defined =[C]:-1
ARKTTD = <table> {
}
TopOverlay = <unnamed> {
}
SetItemByID = <function> defined =[C]:-1
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
SetCompareItem = <function> defined =[C]:-1
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetTradeTargetItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
Atr_TooltipRenderd = true
updateTooltip = 0.200000
SetInventoryItem = <function> defined =[C]:-1
PawnIconFrame = <unnamed> {
}
FadeOut = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
needsReset = true
SetMerchantCostItem = <function> defined =[C]:-1
BottomOverlay = <unnamed> {
}
SetCraftSpell = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
name = nil
link = nil
(*temporary) = <function> defined @AutoGear\AutoGear.lua:66
(*temporary) = "AutoGear: No item link for "
(*temporary) = nil
(*temporary) = " on ShoppingTooltip1"
(*temporary) = "ShoppingTooltip1"
(*temporary) = ShoppingTooltip1 {
0 = <userdata>
SetText = <function> defined =[C]:-1
SetHyperlink = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
SetCraftItem = <function> defined =[C]:-1
ClearLines = <function> defined =[C]:-1
ARKTTD = <table> {
}
TopOverlay = <unnamed> {
}
SetItemByID = <function> defined =[C]:-1
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
SetCompareItem = <function> defined =[C]:-1
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetTradeTargetItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
Atr_TooltipRenderd = true
updateTooltip = 0.200000
SetInventoryItem = <function> defined =[C]:-1
PawnIconFrame = <unnamed> {
}
FadeOut = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
needsReset = true
SetMerchantCostItem = <function> defined =[C]:-1
BottomOverlay = <unnamed> {
}
SetCraftSpell = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
(*temporary) = "ShoppingTooltip1"
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to concatenate local 'name' (a nil value)"
weighting = <table> {
Intellect = 0.400000
DamageSpellProc = 1
DamageProc = 1
Agility = 0
Versatility = 0.800000
Spirit = 1
YellowSockets = 0
ArmorPenetration = 0
SpellHit = 10
Strength = 0
SpellCrit = 12
RangedProc = 0
RedSockets = 0
SpellPower = 0.900000
Mp5 = 0
SpellPenetration = 0.300000
Haste = 0.800000
ExperienceGained = 100
Dodge = 0
Armor = 0.000100
Block = 0
AttackPower = 0
Defense = 0
DPS = 0.010000
MeleeProc = 0
HealingProc = 0
Parry = 0
BlueSockets = 0
Multistrike = 1
MetaSockets = 0
Hit = 0
Stamina = 0.050000
Mastery = 0.900000
Crit = 0
Expertise = 0
}
In reply to ncplus:
ive disable the MoncaiCompare and AtlasLootClassic but still gives the same bug as if its enable, i also removed the addons but its the same
In reply to ncplus:
You must not have the latest AutoGear code. There's nothing like that at line 2941. I've checked just now. That line says
Try updating to the very latest version.
In reply to BujuArena:
im using the latest version
In reply to ncplus:
According to the stack trace you posted and cross referencing the latest version's code, that's not possible. Please double-check or delete the version you have and reinstall it.
In reply to ncplus:
ive reinstalled and now is giving a diferente bug after i deleted wtf and instaled again, it gives bug with ArkInventory but im using the latest 3.09.41.classic
7x AutoGear\AutoGear.lua:2969: attempt to concatenate local 'name' (a nil value)
AutoGear\AutoGear.lua:2969: in function <AutoGear\AutoGear.lua:2964>
[C]: ?
[C]: ?
[C]: ?
[C]: in function `SetCompareItem'
FrameXML\GameTooltip.lua:716: in function `GameTooltip_ShowCompareItem'
FrameXML\GameTooltip.lua:545: in function <FrameXML\GameTooltip.lua:543>
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
...
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: in function `SetBagItem'
FrameXML\ContainerFrame.lua:1327: in function `ContainerFrameItemButton_OnEnter'
ArkInventory\ArkInventory-30941.lua:9377: in function `Frame_Item_OnEnter'
[string "*:OnEnter"]:1: in function <[string "*:OnEnter"]:1>
Locals:
tooltip = ShoppingTooltip1 {
0 = <userdata>
FadeOut = <function> defined =[C]:-1
Atr_TooltipRenderd = true
SetCompareItem = <function> defined =[C]:-1
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
SetText = <function> defined =[C]:-1
SetHyperlink = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetMerchantCostItem = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
BottomOverlay = <unnamed> {
}
SetTradeTargetItem = <function> defined =[C]:-1
SetCraftSpell = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
SetCraftItem = <function> defined =[C]:-1
updateTooltip = 0.200000
SetInventoryItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
ClearLines = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
ARKTTD = <table> {
}
TopOverlay = <unnamed> {
}
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
needsReset = true
SetItemByID = <function> defined =[C]:-1
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
name = nil
link = nil
(*temporary) = <function> defined @AutoGear\AutoGear.lua:68
(*temporary) = "AutoGear: No item link for "
(*temporary) = nil
(*temporary) = " on ShoppingTooltip1"
(*temporary) = "ShoppingTooltip1"
(*temporary) = ShoppingTooltip1 {
0 = <userdata>
FadeOut = <function> defined =[C]:-1
Atr_TooltipRenderd = true
SetCompareItem = <function> defined =[C]:-1
SetInboxItem = <function> defined =[C]:-1
SetBuybackItem = <function> defined =[C]:-1
SetText = <function> defined =[C]:-1
SetHyperlink = <function> defined =[C]:-1
SetMerchantItem = <function> defined =[C]:-1
SetMerchantCostItem = <function> defined =[C]:-1
SetTradeSkillItem = <function> defined =[C]:-1
BottomOverlay = <unnamed> {
}
SetTradeTargetItem = <function> defined =[C]:-1
SetCraftSpell = <function> defined =[C]:-1
SetQuestLogItem = <function> defined =[C]:-1
SetSendMailItem = <function> defined =[C]:-1
SetCraftItem = <function> defined =[C]:-1
updateTooltip = 0.200000
SetInventoryItem = <function> defined =[C]:-1
SetTradePlayerItem = <function> defined =[C]:-1
ClearLines = <function> defined =[C]:-1
SetLootRollItem = <function> defined =[C]:-1
ARKTTD = <table> {
}
TopOverlay = <unnamed> {
}
SetAuctionSellItem = <function> defined =[C]:-1
SetBagItem = <function> defined =[C]:-1
needsReset = true
SetItemByID = <function> defined =[C]:-1
SetLootItem = <function> defined =[C]:-1
SetQuestItem = <function> defined =[C]:-1
SetAuctionItem = <function> defined =[C]:-1
}
(*temporary) = "ShoppingTooltip1"
(*temporary) = "dual wield"
(*temporary) = 1
(*temporary) = 3
(*temporary) = "Subtlety"
(*temporary) = nil
(*temporary) = 0
(*temporary) = nil
(*temporary) = 0
(*temporary) = "RogueSubtlety"
(*temporary) = "attempt to concatenate local 'name' (a nil value)"
weighting = <table> {
Intellect = 0
DamageSpellProc = 0
DamageProc = 0
Agility = 1.100000
Versatility = 0.800000
Spirit = 0
YellowSockets = 0
ArmorPenetration = 0
SpellHit = 0
Strength = 0
SpellCrit = 0
RangedProc = 0
RedSockets = 0
weapons = "dual wield"
Mp5 = 0
SpellPenetration = 0
Haste = 1.050000
ExperienceGained = 100
Dodge = 0
Armor = 0.001000
Block = 0
AttackPower = 1
Defense = 0
DPS = 3.075000
MeleeProc = 0
HealingProc = 0
Mastery = 1.500000
Parry = 0
BlueSockets = 0
Multistrike = 1
MetaSockets = 0
Hit = 1.750000
Stamina = 0.050000
Expertise = 1.850000
Crit = 1.100000
SpellPower = 0
}
Zan2017 here,
I'm going to look over it again. I missed some API items now have tables and will be working on that in the very near future. It's getting stuck on some quests on the PTR for Shadowlands as well. The updated API for Shadowlands is not compatible with BFA. Therefore the Alpha should not work for BFA. But in theory should work for Classic. But that will need testing.
In reply to zeribus77:
I've tested the latest version with your latest changes in Classic and it's working, so I've merged and tagged it as release. Thanks!
Zan2017 has submitted a pull request that apparently fixes AutoGear for Shadowlands PTR. Since I have no time to play WoW these days, can anyone please test the latest AutoGear alpha (from "Files") in Classic, BFA, and/or Shadowlands PTR and let me know of any bugs? Please report any issues on the github issue tracker here: https://github.com/AlexFolland/AutoGear/issues
Thanks to Zan2017 and thanks to everyone who's enjoying AutoGear for leveling!
do you have any version for the beta??
In reply to ncplus:
My first baby was born in April this year and I'm working a full-time job, so I have no time for WoW these days. I'm happy to review any pull requests on github that fix compatibility with Shadowlands though. If you can find someone who's willing to fix it up, please ask them to fork my repository, make their fixes, and submit a pull request. I'll review it and merge it, which will let this project be updated.
I'm sorry I can't give more than that. I'm very busy.