Download
(49 Kb)
Download
Updated: 02/11/17 10:36 PM
Pictures
File Info
Compatibility:
Homestead (2.7)
Updated:02/11/17 10:36 PM
Created:06/21/15 08:39 PM
Monthly downloads:495
Total downloads:43,724
Favorites:48
MD5:
Categories:Bags, Bank, Inventory, Miscellaneous
Smarter AutoLoot (S.A.L.)  Popular! (More than 5000 hits)
Version: 1.7.1
by: Agathorn [More]
Smarter AutoLoot

IMPORTANT: The game's built-in AutoLoot must be turned off!

Smarter AutoLoot, or S.A.L., is a completely invisible little assistant that will give you much greater control over your every day looting and pillaging. Turn off the game's AutoLoot, and turn on SAL, set what you want to loot and what you don't, and forget about it. Whenever you loot, SAL will automatically take what you want, and leave the rest behind.

Inspired by AdvancedAutoLooter, Smart AutoLooter works a bit different and focuses solely on managing your looting rather than mailing items and other additional extras. Do one thing and do it well is the motto here!

Usage:
  1. Disable the stock AutoLoot
  2. Settings->Add-Ons->Smarter AutoLoot and enable the looter.
  3. Setup your filters as desired.

Whenever SAL detects a loot window, it will automatically take the items you said you care about and ignore the ones you don't. By default it will leave the loot window open if it did not take all the items, allowing you to manually grab those if desired. This also means that if SAL somehow gets his logic mixed up, you can still grab the items he should have grabbed, though hopefully this won't happen. Some other AutoLoot plugins loot everything, then destroy the non-matching items but I think this is dangerous and wasteful.

Features:
For a full list, see the settings screenshot. In summary:
  • Loot or Ignore stolen items
  • Crafting mats can bypass all filters if desired
  • Soul gems can bypass all filters if desired
  • Set a minimum quality level of items to loot
  • Option to always loot ornate and intricate items
  • Various filters for semi-desirable items like food, recipes, bait, etc

Changes:

1.7.1
  • Fixed missing tooltips on some controls (speeling matters!)
  • Added global flag to allow/disallow looting of stolen items

1.7
  • Updated for Homestead
  • Added filter for furniture crafting materials
  • Added an option to enable or disable the ability to destroy un-looted items
  • Fixed a bug that prevented the weapons filter from working properly.

1.6
  • Completely reworked filter settings UI as well as the backend code to allow far more granularity over your loot filter rules.
  • Added filters for Poisons, Potions, and Glyphs

1.5
[b]NOTE: This version is bugged, and the filters don't work as they should. Please do not use this version. Use 1.6.0+
  • Updated LibAddonMenu for One Tamriel. Fixed script errors caused by One Tamriel.

1.3
  • Added button to loot window that will close the window and DESTROY any items left in it. Use with caution as this is instant, and can't be undone!

1.2
  • Fixed filtering of lockpicks. Apparently ITEMTYPE_LOCKPICK isn't actually used!
  • Added ability to show links to looted items in chat window, so you know what was looted.
  • Removed some debug printing that I had accidently left in the last version

1.1
  • Fixed a variable typo that causes script errors under certain conditions
  • Added ability to filter looting of lockpicks
Credits:
Mandrakia - Inspired by Mandrakia's original AdvancedAutoLoot, but completely written from scratch

License:
You are hereby granted a free license to do whatever you want with this plugin and its code, so long as you give me credit for the original work. If I should disappear, which isn't too unlikely, anyone is free to pick this up and continue it.

The Future:
This is an initial version, to get the basics working. I have some plans for more advanced filter logic, but I wanted to get the working base in place. That said, no promises of anything. I made this for me, and I share it for anyone else to use. I promise no support, and no continued development.

Enjoy!
Optional Files (0)


Archived Files (6)
File Name
Version
Size
Uploader
Date
1.7.0
48kB
Agathorn
12/25/16 07:32 PM
1.5.0
47kB
Agathorn
12/24/16 07:47 PM
1.3.0
30kB
Agathorn
06/23/15 10:42 PM
1.2.0
30kB
Agathorn
06/22/15 08:15 AM
1.1.0
30kB
Agathorn
06/21/15 09:33 PM
1.0.0
29kB
06/21/15 08:39 PM


Post A Reply Comment Options
Unread 12/28/16, 02:12 PM  
Zeeber
 
Zeeber's Avatar

Forum posts: 0
File comments: 2
Uploads: 0
2 bugs that I've seen:

The first one is more of annoyance. When trying to steal collectibles/treasures the filter isn't working for both value and/or quality. I can't seem to get it to auto steal the items. Unlike the picture for the addon on the addon page, there isn't an option to enable or disable stealing items. I'm not sure if this is just an oversight in the UI if the setting just doesn't exist.

The other bug is like what Nannerpunk said below. I was crafting writs and while I was consuming materials, it wasn't keeping the crafted items. They were just gone. I then tried stealing some weapons to get my materials back and those too were just gone. Poof. As if I never got them in the first place (chat log showed otherwise) Is there a way to disable the destruction part of this addon? It's just eating up random stuff at this point.

For now I've had to disable the addon because it just isn't safe to use. I really like the filters, but until they work and the random distruction bug is fixed I can't use it.
Report comment to moderator  
Reply With Quote
Unread 12/28/16, 10:52 AM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
Originally Posted by Nannerpunk
Using the newest version, it completely ate up my rubedite, rubedo leather, ancestor silk, ruby ash wood, improvement items, trait items, style items, and several of my alchemy mats. I'm devastated.
So the bug still lives with the containers.
Report comment to moderator  
Reply With Quote
Unread 12/27/16, 07:07 PM  
Nannerpunk

Forum posts: 0
File comments: 1
Uploads: 0
Using the newest version, it completely ate up my rubedite, rubedo leather, ancestor silk, ruby ash wood, improvement items, trait items, style items, and several of my alchemy mats. I'm devastated.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 07:35 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
Originally Posted by Agathorn
@HowellQagan

Please understand that the version you have is bad in that none of the filters actually work as intended. I had changed the UI setup and never changed the back end code.

So it is really hard to say what is a bug and what is just not done yet with the version you have.

That said I am about to upload a new version. I worked on this most of the day to get the backend hooked up.

So get this new version and then let me know what still doesn't seem to work right. It is very hard to test every possible situation.
Not complaining, just throwing out ideas. Btw I'm still using 1.3 but with updated libs and I fixed some of the other things. So it works for me perfectly as of now, except for this one bug.

One thing is sure, SmarterAutoLoot:DestroyItems() gets stuck before it could actually get to the point of "self.destroying = false", but donno where :(

An ingame lua console would help I guess but I couldn't find one anywhere.

edit: actually I don't even get why it starts running this function if I'm using a container and don't click on the destroy button...
Last edited by HowellQagan : 12/25/16 at 07:57 PM.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 07:29 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
@HowellQagan

Please understand that the version you have is bad in that none of the filters actually work as intended. I had changed the UI setup and never changed the back end code.

So it is really hard to say what is a bug and what is just not done yet with the version you have.

That said I am about to upload a new version. I worked on this most of the day to get the backend hooked up.

So get this new version and then let me know what still doesn't seem to work right. It is very hard to test every possible situation.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 06:58 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
itemType == ITEMTYPE_ARMOR_TRAIT or itemType == ITEMTYPE_WEAPON_TRAIT

is a new thing maybe, probs they were the BOOSTER types before? IDK, didn't play back then yet.
I'm adding it to lootMats in mine.

Also got Gunny Wet Sacks again, gonna try something now, will edit this if I succeed.

edit:

nope.

Code:
function SmarterAutoLoot:DestroyItems()
	local num = GetNumLootItems()
	self.destroying = true
	self.control:RegisterForEvent(EVENT_INVENTORY_SINGLE_SLOT_UPDATE, function( _, ... ) self:OnInventoryUpdated( ... )  end)
	self.control:RegisterForEvent(EVENT_LOOT_CLOSED, function( _, ... ) self:OnLootClosed( ... )  end)
	for i = 1, num , 1 do
		local lootId,name,icon,quantity,quality,value,isQuest, isStolen = GetLootItemInfo(i)
		-- d("Looting item to destroy..."..name)
		LootItemById(lootId)
	end	
	self.destroying = false
	-- EndLooting()
end


function SmarterAutoLoot:OnInventoryUpdated(bagId, slotId, isNewItem, _, _)
	-- if (self.destroying) then
	if (true and isNewItem) then
		local link = GetItemLink(bagId, slotId)
		d("Destroying "..link)
		DestroyItem(bagId,slotId)
	end
end
It's definitely above part that's wreaking havoc. When I open the sack, there is no option to close it, it will be just an empty loot window. Clicking on the Destroy button doesn't close it. Pressing R to loot everything doesn't close it. If I move, it disappears but anything I loot will be destroyed by function SmarterAutoLoot:OnInventoryUpdated(bagId, slotId, isNewItem, _, _) until I /reloadui

I tried removing the comment mark from infront of EndLooting() but it didn't change.

Imo the destroy function should be taken out until there is a fix for this.

Also something else: I'm adding item type lure to the alchemy mats and other mats types because having them apart will only increase the amount of nodes/flying insects that do not have the material in them, only bait... I'll also leave them for "Looting bait" separately, coz there might be people who only want the bait, but not the mats. Who knows, but at least latter isn't a problem.
Last edited by HowellQagan : 12/25/16 at 07:14 PM.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 05:43 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
Re: Re: Issue

Originally Posted by Agathorn
Originally Posted by Diesosoon
Does not turn off chat notifications?
Sorry I don't know what you mean?
Code:
        d("got lootId: "..lootId)
        d("got link: "..link)
probably these, they are just thrown in there without any ifs, so it can't be toggled.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 05:37 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
isStolen

There is this:

Code:
local lootId,name,icon,quantity,quality,value,isQuest, isStolen = GetLootItemInfo(i)
but this dun do nufin, there should be something like OwnershipStatusType == OWNERSHIP_STATUS_STOLEN?

If I set the loot stolen items on, it doesn't change anything. When I added
isStolen = OwnershipStatusType == OWNERSHIP_STATUS_STOLEN
it just started ignoring the stolen status on anything (I set looting of stolen items off and still it looted them), even though this is how the whole thing starts:
if ((not isStolen) or (self.db.lootStolen)) then

I have no idea what's going on.

Okay, hopefully last edit on here, lololol:
switched
if ((not isStolen) or (self.db.lootStolen)) then
to
if (not isStolen or self.db.lootStolen) then
and now the switch works perfectly. If I have an item type selected to be looted and the stolen is off, I will only loot items that are legal. If I have an item type selected to be looted and the stolen is on, then it will only loot stolen items of selected item types.
Last edited by HowellQagan : 12/25/16 at 06:38 PM.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 05:07 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
Re: Re: Update

Originally Posted by Agathorn
Originally Posted by HowellQagan

Also ALCHEMY_BASE doesn't exist atm, it's either POTION_BASE or POISON_BASE, changed that.
Should be fixed next version, as well as separate filters for Potions and Poisons. I think it used to be alchemy before poisons were added in.
Yeah, that's correct.

Originally Posted by Agathorn
Originally Posted by HowellQagan
Plus I encountered a random bug (this was before I started changing too much of the stuff), yet to reproduce: after opening a Wet Gunny Sack, the loot window was left open. Then I started fileting the fish, and it deleted all my raw Fish from my ESO+ craft bag. Possible hazard, lucky it wasn't something more valuable. After a /reloadui, I wasn't able to reproduce and have no more Wet Gunny Sacks at the moment. Will be on the lookout about this.
There is a bug that causes container windows to remain open when you use the container from your inventory. I haven't tracked it down yet, but for example I see it all the time on writ turn ins.

When this happens make sure you manually close that window FIRST before doing anything else. What most likely happened in your case was a sequence of events that caused the auto destroy on close of the empty Gunny Sack to hit a different container. You could also turn off the destroy items option.

Eventually I will track this down but I haven't had the time yet to look into it. But it bothers me as well so I probably will soon.
How do I turn off the destroy items option? There isn't an option for it in the settings?
Last edited by HowellQagan : 12/25/16 at 05:14 PM.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 02:25 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
Re: Update

Originally Posted by HowellQagan

Also ALCHEMY_BASE doesn't exist atm, it's either POTION_BASE or POISON_BASE, changed that.
Should be fixed next version, as well as separate filters for Potions and Poisons. I think it used to be alchemy before poisons were added in.

Originally Posted by HowellQagan
Plus I encountered a random bug (this was before I started changing too much of the stuff), yet to reproduce: after opening a Wet Gunny Sack, the loot window was left open. Then I started fileting the fish, and it deleted all my raw Fish from my ESO+ craft bag. Possible hazard, lucky it wasn't something more valuable. After a /reloadui, I wasn't able to reproduce and have no more Wet Gunny Sacks at the moment. Will be on the lookout about this.
There is a bug that causes container windows to remain open when you use the container from your inventory. I haven't tracked it down yet, but for example I see it all the time on writ turn ins.

When this happens make sure you manually close that window FIRST before doing anything else. What most likely happened in your case was a sequence of events that caused the auto destroy on close of the empty Gunny Sack to hit a different container. You could also turn off the destroy items option.

Eventually I will track this down but I haven't had the time yet to look into it. But it bothers me as well so I probably will soon.
Last edited by Agathorn : 12/25/16 at 02:26 PM.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 02:14 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
Re: Re: Re: Update

Originally Posted by HowellQagan
Originally Posted by Agathorn
Originally Posted by HowellQagan
Lol, just updated this for myself a day ago because there are a few "errors"

This (or these as it is added more than once) part basically made everything autoloot that was above the selected quality:

Code:
	else
		if (quality >= self.db.minimumQuality) then
			-- d("Looting item with quality level "..quality)
			self:LootItem(link, lootId, quantity)
		end
	end
So I removed those and reorganised the settings too, around the change with the slider usage.
That is how it is supposed to work. If you set a quality threshold then the idea was that you wanted to loot ANY item that met or exceeded that threshold. Was there a different operation you were expecting?
In the filtered settings it was setup like this ~do you want xx to be looted EVEN IF under the set threshold? So basically "do you want the addon to ignore the quality requirement for this itemtype". What it did instead was looting anything that is above the set quality. So due to those parts it looted all armor, all weapons (not only intricate and/or ornate), glyphs, everything that was above the set quality (so if it's 1, it looted every item that is not trash quality).
Don't think that's supposed to work like that.
The original idea was essentially a two fold system:
1) Is this an item type I want
2) If it isn't, is it at least valuable in some way

If either was a match then it was looted. The new system gives you more fine grained control. So if for example you never ever want to loot armor regardless of its value or quality you can, by setting Armor to "never loot". I am almost finished wrapping that up now. It will no doubt require a patch or two of tweaking based on feedback, but should give you more control.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 02:06 PM  
HowellQagan
 
HowellQagan's Avatar

Forum posts: 11
File comments: 437
Uploads: 0
Re: Re: Update

Originally Posted by Agathorn
Originally Posted by HowellQagan
Lol, just updated this for myself a day ago because there are a few "errors"

This (or these as it is added more than once) part basically made everything autoloot that was above the selected quality:

Code:
	else
		if (quality >= self.db.minimumQuality) then
			-- d("Looting item with quality level "..quality)
			self:LootItem(link, lootId, quantity)
		end
	end
So I removed those and reorganised the settings too, around the change with the slider usage.
That is how it is supposed to work. If you set a quality threshold then the idea was that you wanted to loot ANY item that met or exceeded that threshold. Was there a different operation you were expecting?
In the filtered settings it was setup like this ~do you want xx to be looted EVEN IF under the set threshold? So basically "do you want the addon to ignore the quality requirement for this itemtype". What it did instead was looting anything that is above the set quality. So due to those parts it looted all armor, all weapons (not only intricate and/or ornate), glyphs, everything that was above the set quality (so if it's 1, it looted every item that is not trash quality).
Don't think that's supposed to work like that.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 01:30 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
Re: Issue

Originally Posted by Diesosoon
Does not turn off chat notifications?
Sorry I don't know what you mean?
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 01:27 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
Re: Question regarding 1.5

Originally Posted by HowellQagan
I was also wondering, reading the ~settings.lua where the choices are defined (I mean stuff like "only stolen", "only legal", etc). Or are these some kinda default ingame choices that are already defined?

Confused.
This is because of me uploading a dev version that wasn't complete. I was away from the game for a while then came back for the holidays and immediately fixed the script errors and uploaded a new version before I noticed that I was in the middle of rebuilding the loot filter behaviour.
Report comment to moderator  
Reply With Quote
Unread 12/25/16, 01:26 PM  
Agathorn
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 32
Uploads: 1
Re: Update

Originally Posted by HowellQagan
Lol, just updated this for myself a day ago because there are a few "errors"

This (or these as it is added more than once) part basically made everything autoloot that was above the selected quality:

Code:
	else
		if (quality >= self.db.minimumQuality) then
			-- d("Looting item with quality level "..quality)
			self:LootItem(link, lootId, quantity)
		end
	end
So I removed those and reorganised the settings too, around the change with the slider usage.
That is how it is supposed to work. If you set a quality threshold then the idea was that you wanted to loot ANY item that met or exceeded that threshold. Was there a different operation you were expecting?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: