• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
Resource icon

Release MQ2AutoLoot

Joined
Mar 15, 2016
RedCents
5,113¢
MQ2AutoLoot - Version 1.11

Purpose
This plugin is designed to handle loot from within the advanced looting window. It uses a loot.ini file located in your macro folder to define what your characters should do with each item. It can be setup to handle looting if your soloing, in a group, or a raid. If you use the advanced loot list for an item, that action is takes precedence over of this plugin. IE if you have set an item to Always Need/Always Greed/Never/Autoroll that action will be done as opposed to what you have set in your loot.ini. This means that this plugin will only work on items you have not previously specified an action for on the advanced loot list.

The master looter will keep looting items until their number of free bag slots reaches SaveBagSlots. You can set up to 2 different bag to not count when checking for free bag space with ExcludeBag1/ExcludeBag2. If the master looter can't loot or doesn't want (ie items set to quest/gear) the item he will try to pass it out to others in the group. The rest of the group will either set the item to need or no.

When passing out loot the ML waits DistributeLootDelay (default is 5 seconds) for group members to set need/no before passing out items. If two items comes up it waits the value set by DistributeLootDelay for the first item, then passes it out. After that they go to the next item to be passed out and again wait the value set by DistributeLootDelay before passing out that item. If you have any problems with this taking too long you can shorten DistributeLootDelay.


Usage
1. Turn on advanced looting.
- Type: /advloot​
- Click the Loot Settings Button on the Advanced Loot Window​
- Select Use Advanced Looting​
2. Load the plugin.
- Type: /plugin MQ2AutoLoot​
3A. If your in a group set someone to be the master looter. If you don't the leader of the group will assign himself to be the master looter.
3B. If your in a raid set someone to be the master looter. If you don't the leader of the raid will act as the master looter.

Settings - MQ2AutoLoot.ini
1. lootini= XXX absolute path to your Loot.ini file
- /AutoLoot lootini FILENAME -> Will set your loot ini as FILENAME.ini in your macro folder​
2. UseAutoLoot=[0/1] turns [off/on] MQ2AutoLoot. Default is on.
- /AutoLoot turn [on|off] -> Toggle autoloot​

General Settings - Loot.ini
1. RaidLoot= [0/1] turns MQ2AutoLoot [off/on] when your in a raid. Default is off.
- /AutoLoot raidloot [on|off] -> Toggle raid looting on and off​
2. SpamLootInfo= [0/1] turns [off/on] loot action messages to the MQ chat window. Default is on.
- /AutoLoot spamloot [on|off] -> Toggle loot action messages​
3. LogLoot=[0/1] turns [off/on] logging loot action messages for the master looter. Default is off.
- /AutoLoot logloot [on|off] -> Toggle logging of loot actions for the master looter​
4. CursorDelay=#n time delay in seconds before MQ2AutoLoot auto inventory items on your cursor. Default is 10 seconds.
- /AutoLoot cursordelay #n -> You will wait #n seconds before trying to auto inventory items on your cursor​
5. NewItemDelay= #n time delay in seconds before the master looter will attempt to loot/distribute items not found in your loot.ini. Default is 0 seconds.
- /AutoLoot newitemdelay#n -> Master looter waits #n seconds when a new item drops before looting that item​
6. DistributeLootDelay= #n time delay in seconds before the master looter will attempt to distribute items to others in the group/raid. Default is 5 seconds.
- /AutoLoot distributedelay #n -> Master looter waits #n seconds to try and distribute the loot​
7. NoDropDefault= XXX default loot action for new no drop items. Default is quest.
- /AutoLoot nodropdefault [quest|keep|ignore] -> Will set new no drop items to this value​
8. QuestKeep= #n if nodropdefault is set to quest the quantity to keep will be #n. Default is 10.
- /AutoLoot questkeep #n -> If nodropdefault is set to quest your new no drop items will be set to Quest|#n​
9. SaveBagSlots= #n will stop looting when #n is the number of open bag slots, not including excludedbag1/excludedbag2. Default is 0.
- /AutoLoot saveslots #n -> Stops looting when #n slots are left​
10. ExcludeBag1= XXX will exclude bags named XXX when counting open bag slots. Default is Extraplanar Trade Satchel.
- /AutoLoot excludebag1 XXX -> Will exclude bags named XXX when checking for how many slots you are free​
11. ExcludeBag2= XXX will exclude bags named XXX when counting open bag slots. Default is Extraplanar Trade Satchel.
- /AutoLoot excludebag2 XXX -> Will exclude bags named XXX when checking for how many slots you are free​
12. BarMinSellPrice= #n the minimum price in plat you will barter all particular items, note you can set the individual item price minimum higher. Default is 1 plat.
- /AutoLoot barterminimum #n -> The minimum price for all items to be bartered is #n​
13. GuildItemPermission=[view only|public if usable|public]default permission for items placed in your guild bank. Default is "View Only".
- /AutoLoot guilditempermission "[view only|public if usable|public]" -> Change your default permission for items put into your guild bank​

Item Settings - Loot.ini
1. Keep
- Everyone will try to loot.​
- To set an item to keep. Put it on cursor and type : /SetItem Keep​
2. Sell
- Everyone will try to loot. During looting, this is treated the same as setting the item to "Keep".​
- To set an item to sell. Put it on cursor and type : /SetItem Sell​
3. Deposit
- Everyone will try to loot. During looting, this is treated the same as setting the item to "Keep".​
- To set an item to deposit. Put it on cursor and type : /SetItem Deposit​
4. Barter
- Example entry: Barter|#n​
- Everyone will try to loot. During looting, this is treated the same as setting the item to "Keep".​
- To set an item to barter. Put it on cursor and type : /SetItem Barter #n -> #n is the minimum price to sell that item when you use the barter functionality.​
5. Quest
- An example entry: Quest|#n​
- Everyone will try to loot up to #n of that item.​
- To set an item to quest. Put it on cursor and type : /SetItem Quest #n -> when someone gets #n of that item they will stop trying to loot them.​
6. Gear
- An example entry: Gear|Classes|WAR|PAL|SHD|BRD|NumberToLoot|#n|​
- Only classes listed will attempt to loot till they have #n.​
- To set an item to gear. Put it on cursor and type : /SetItem Gear, it will auto populate the entry and number to loot.​
7. Ignore
- Everyone will ignore these items.​
- To set an item to ignore. Put it on cursor and type : /SetItem Ignore​
8. Destroy
- The master looter will try and loot these items, once looted they will pick them out of your inventory and destroy them.​
- To set an item to destroy. Put it on cursor and type : /SetItem Destroy​
9. To check what an item is set to in your Loot.ini
- Put it on cursor and type : /SetItem Status​

Item Actions [Sell/Buy/Deposit/Barter]
1. Sell
- Target a Merchant.​
- Type: /AutoLoot Sell​
- The plugin will then sell every item marked "Sell" to that merchant.​
2. Buy
- Target a Merchant.​
- Type: /AutoLoot Buy "Item Name" #n​
- The plugin will then buy #n of that item from the merchant.​
3. Deposit - Personal Banker
- Target a personal Banker.​
- Type: /AutoLoot Deposit​
- The plugin will then deposit every item marked "Keep" into your personal banker.​
4. Deposit - Guild Banker
- Target a Guild Banker.​
- Type: /AutoLoot Deposit​
- The plugin will then deposit every item marked "Deposit " into your guild banker.​
- It will set the permission to either "view only|public if usable|public" depending on what you set "GuildItemPermission" in your Loot.ini.​
5. Barter
- Type: /AutoLoot Barter​
- It will attempt to barter everything marked "Barter|#n" in your Loot.ini as long as they meet your minimum price of #n plat.​

MQ2AutoLoot's TLO
AutoLoot.Active -> Will return true when you are using MQ2AutoLoot to handle your advanced looting .
AutoLoot.SellActive -> Will return true when your selling your items to a merchant.
AutoLoot.BuyActive-> Will return true when your buying itemat a merchant.
AutoLoot.DepositActive -> Will return true when your depositing your items to a personal/guild banker.
AutoLoot.BarterActive -> Will return true when your bartering your items.
AutoLoot.FreeInventory-> Will return the number of empty slots not in excludebag1 or excludebag2
 
Last edited:
Change log:
Updated to version 1.11 - Couple fixes thanks to @dreamflux related to raid looting (9/15/2018)
- Resolved issue when the master looter was set causing everyone to act as if they were the master looter.
- Fixed issue with passing out loot in a raid.

(1/15/19)
Updated to version 1.12
- When items are marked “destroy” MQ2Autoloot will ignore your “SaveBagSlots” limit and will keep looting and destroying items. This means that if you want to clear all the corpses in your camp your loot.ini needs to have SaveBagSlots greater then 0.
- There is a new loot setting. “NewItemDelay”, this allows people who are playing manually to pass out any new items before the plugin decides where they go. The command to change this setting is: /AutoLoot newitemdelay #n -> Master looter waits #n seconds when a new item drops before looting that item.
- Fixed CTD related to “/autoloot buy “Item Name” #Quantity” command.
- Removed the patterns code stuff by eqholic, it was only implemented for people not grouped. Since no one was using it, I pulled the code out.

(2/13/19)
- MQ2Autoloot will now use greed instead of need.
- Non-ML characters will now check how many items have been selected need/greed and will pause checking boxes when that is equal to their free inventory number. Before they went through the whole list as long as they had one open slot. This should fix the issue with non-ML characters getting items stuck on their cursors.
- Fixed a bug with passing out loot that would cause the wrong item to be distributed.
- Fixed a bug that caused items to be passed out when they shouldn't have.
- Fixed an issue when your ML has a lore item in parcels and the item dropped and your ML wanted it, this was due to the lore check not being able to determine what is stored in parcels. Tone, stop using parcels for storage.
- Fixed some issues with NewItemDelay. The ML is now the only one that can create new loot entries while the advanced looting window is open if NewItemDelay > 0. This fixes the issue where a non-ML toon creates the entry before the ML does, thus not giving you time to determine what to do with the item. Non-ML characters will check after all the items are cleared to make sure that their is an entry for new items, this will solve any issues related to using multiple loot ini files.

(2/20/19)
- Made it so /autoloot sell/buy/deposit/barter will still work when the plugin's looting functionality has been turned off

(5/14/19)
- /autoloot barter will now only try to sell to people using an exact match.

(6/24/19)
- Fixed bug where no drop items marked destroy were not destroyed.

(7/9/19)
- Fixed an issue in the plugin where it was using excludedbag1/2 rather then the standard excludebag1/2.. This was causing bags other then "Extraplanar Trade Satchel" to be rewritten over as "Extraplanar Trade Satchel" every time the plugin was started up.
- Fixed an issue when you were using different bags for ExcludeBag1 and ExcludeBag2 it would cause it to not function.


Requested Changes:
....
 
Last edited:
Thank you for posting the update. Unfortunately it looks like it is getting caught in a loop of "trying to pass loot to a mercenary, skipping!" and then crashes.
It prevents a relog unless I switch to the alt that got leader and remove the masterlooter flag.

I'm not refined enough to provide any real support for a plugin but since it's looping through party members maybe it should do an occasional scan of party and flag users that can go through the loot-passing-out-loop. Ignore mercs.

... I should probably turn logging on.
 
It was a No Drop Quest|1 item, looks like.
Also crashing when the ML is out of range of original loot. (item red/locked). Attempts to pass it out to other members, including mercs, crash!
2017-03-13.png


The plugin also isn't paying attention to LootIgnoreList=.. picking up a ton of runes and words, haha
 
Last edited:
It doesn't support LootIgnoreList at this moment. I am testing several major changes and I will be throwing the newest dll up after the patch. It has several big changes that should improve the functionality.

- - - Updated - - -

I uploaded the latest version of the dll. (3/15/17)

1. Added the command /AutoLoot setitem [Quest #n|Keep|Sell|Ignore|Destroy] -> Will set that value for the item on your cursor
2. The masterlooter will continue to loot items even when they run out of bag space if the item can be placed in a stack in their inventory. This will keep the loot more condensed on your characters.
3. When checking if an item is lore and on your person/bank it will now search items in the aug slots. This will prevent attempting to loot lore augs that you have on an item.
4. Fixed a couple bugs
5. If you have an item on your cursor, it will stop trying to loot on that character. The master looter will pass loot to others when this happens to them. I am in the process of working out the steps to take when items are on the cursor, but at this point it will just stop looting.
6. Fixed an issue where the master looter was passing items to group members when they were offline/not in zone.

Please let me know if any issues pop up
 
Really exciting plugin. Issue with cursor held items is that it locks up KA as far as I can tell. If there was a way to pass out loot before that happens or to pass master looter it could be incredible. On TLP at least bag space remains a concern.
 
Only time the cursor issue popped up for me is when i tried to loot a item that was bigger (giant) then my backpacks (large). I can't find a way to check the size of the item in advanced loot window till you have looted it and it is on your person or cursor.

Have you found another occurance where items get sent to your cursor?
 
This looks awesome... Might even be enough to get me to actually play everquest this weekend, just to see it in action.

Question: will this sell off your vender trash?
Question: can you change the name of the .ini file, for example I prefer naming my .ini files based on which server I'm playing on... Loot_server.ini
 
At the present it doesn't sell yet. That is 2nd on my to do list.

Yes each character name can have different loot ini files. I run different list on fv vs regular servers.
 
No, the masterlooter will keep looting till his free slots reach whatever number you set with saveslots and then will start passing to others in the group.

If for some reason he gets an item on his cursor he will start passing out items immediately.
 
This is working fantastic for me so far. I did have one crash of my ML overnight, but I'm not sure if that was because of the plugin or something else. I haven't been 100% stable this update.
 
I'll have to give this a try, I had been looking for something that could manage loot faster then ninjaadvloot :D
 
The basic advantage is that your macros keep killing/pulling/buffing etc while looting rather then pause and deal with the loot.
 
The loot function running in parallel wasn't my issue, my problem was just straight up loot speed vs the speed it was coming in. I'll give it a go and see how it goes.
 
plure,

I hadn't had time to mess around with mq2 in the last week, I had to reinstall Windows. I'm using a clean version of VV from here and use Innerspace to box. After the free heroics I'm no longer using mercenaries (for now) but am still experiencing the same crash:

Rich (BB code):
[2017/03/21 22:47:25] [MQ2] Looking for Close Range Mobs
[2017/03/21 22:47:25] [MQ2] PULLING-> a lizardman mystic <- ID:22600 at 439 feet.
[2017/03/21 22:47:25] [MQ2Nav] Navigating to spawn: a_lizardman_mystic04 (22600)
[2017/03/21 22:47:30] [MQ2AutoLoot] :: SList: Attempting to give Missing Journal Page to ENC
[2017/03/21 22:47:31] [MQ2AutoLoot] :: SList: Attempting to give Missing Journal Page to CLE
[2017/03/21 22:47:31] [MQ2Nav] Navigating to spawn: a_lizardman_mystic04 (22600)
[2017/03/21 22:47:32] [MQ2AutoLoot] :: SList: Attempting to give Missing Journal Page to WIZ
[2017/03/21 22:47:33] [MQ2AutoLoot] :: SList: Attempting to give Missing Journal Page to MAG
[2017/03/21 22:47:33] [MQ2Nav] Stopping navigation
[2017/03/21 22:47:34] [MQ2AutoLoot] :: SList: Attempting to give Missing Journal Page to BST

And then a crash. It's always when it's passing out Quest|# items that it seems to trip out and cause my ML to crash out.
The option to zip my crash logs for eqmule isn't working. :mystery:
 
If you are passing out lots of items that will slow it down. But you can lower the timer delay for passing out items by /AutoLoot distributedelay [#n] to something less then the default 5 seconds and that should speed it up.

- - - Updated - - -

I may have found your problem, i am trying to reproduce it to verify it is the problem. If this is the problem i have it fixed and will upload the newest dll.

- - - Updated - - -

I uploaded a new dll, it fixes the issue of crashing while passing out loot. That should no longer occur. Please let me know if any issues crop up.
 
Okay, so, it doesn't appear to be crashing anymore! The latest update has been running for hours unhindered.
 
Gotta say this plugin is absolutely amazing. Looting without interrupting macros is so nice. The ML continuing to loot items that can stack into existing inventory is likewise key as it stretches how long you can remain at a camp.

Side note - I think destroy is currently just ignoring, but that's OK. I miss having a totally clean camp, but the other benefits are just so worth it.
 
Adding the lootignorelist is 3rd on my list of features to add. I have coded the bit to deal with items on the cursor but don't have time to test it atm. Then i am going to add selling/depositting. Once that is done i am planning on adding the lootignorelist.
 
couple questions:
1. "/AutoLoot lootini [LOCATION] -> Will use the loot ini at LOCATION" by location do you mean filename or an actual game location (zone name)

2. I was playing around with adding bartering to ninjadvloot, mostly just curious if you have any thoughts on adding that to your plugin.
 
There are some simple macros that I use to handle selling and depositing. Having that automatically happen would be alarming to me. Are you going to include a switch to disable it?

Sent from my Nexus 6P using Tapatalk
 
By location it is the absolute file path to the loot ini. The next update will change it so you just put in the loot ini filename and it will assume it is in your macros folder.

I like the idea of adding barter as an option. At least on fv it would be useful, my other server no one uses it.

- - - Updated - - -

It would be a command you would have to type.
 
By location it is the absolute file path to the loot ini. The next update will change it so you just put in the loot ini filename and it will assume it is in your macros folder.

I like the idea of adding barter as an option. At least on fv it would be useful, my other server no one uses it.

- - - Updated - - -

It would be a command you would have to type.

interesting, I would have assumed the loot.ini file would be in your release folder with the plugin itself.
My effort with barter was to have items flagged with a minimum price that must exceed the value of the item if sold to a game vender. blahitem=barter|xx
the only real problem I ran into is the time it takes, barter was very slow, 5-10 minutes slow to go through your inventory.
 
It will take awhile to run through your inventory. I would have to figure out how to set it up to do barter actions only when it cannot do loot actions.
 
Yeah that makes it more consistent, i had thought setting it as a flag with a timer. So you could set barter true and to check once a day or whatever time interval you wanted. But, i like your idea better.
 
For setitem it would be amazing if you could set an item that you do not have. So, for instance, if you went to an area where you were after a specific drop on a specific character you could split them off onto another loot file and then set that item to quest|0 for the other group members and quest|1 (or whatever) for them. Not sure how hard that would be.
 
So this has been running absolutely perfectly since you pushed distributeloottimer. It looks like you already have a pretty solid list of things that you plan on incorporating into this in the future but I'm curious if there's a way to handle No Drop gear. Right now it rolls for all characters on loot in the advloot window but I have casters outrolling classes on gear that they cannot use.

Is it possible to get the classes/races/(deity?) that can use gear and only role if your class/race match?
 
I have that same problem and it sucks. I tried to make that happen and couldn't figure out a way to get that information before you loot an item. If someone knows how to pull that information when the item is in the advanced loot shared list I would gladly include that functionality in the plugin.
 
So if you put an item on your ${Cursor} in /echo you can string ${Cursor.Class[#].ShortName} to see if ${Me.Class.ShortName} matches it.

Christ. You can't use ${LinkDB} to try and extract the information and ${AdvLoot.SList[1]} can return the name but doesn't have classes.
Short of creating your own TLO that will look for a match of ${Me.Class.ShortName} to for i 1-16 of ${AutoLoot.SList[1].Class[${i}]} I'm not sure how you'd do it. That seems to be expert-level though.

If I say maskoi, redbot, or eqmule three times will they come to us and add the item datatype to the Advloot TLO?

You'd probably have to do a check for whether it's armor/jewelry/weapon to only run the section if true.

This is basically bullshit:
nodrop
/for i 1 to 16
/if (${AdvLoot.SList[1].Class[${i}].Find[${Me.Class.ShortName}]) {
<select need>
} else {
<select no>
}
/next i

not nodrop
/for i 1 to 16
/if (${AdvLoot.SList[1].Class[${i}].Find[${Me.Class.ShortName}]) {
<select need>
} else {
<select greed>
}
/next i

maskoi maskoi maskoi
redbot redbot redbot
eqmule eqmule eqmule
 
Are you providing the source code for this anywhere?
Can you PM me or Redbot the source code.
Looks like a great plugin but random Dlls posted without any Admin review makes me a little nervous.
 
I made a passing attempt to try and determine if some of the unknown data in the LOOTITEM/LOOTDETAILS struct was usable, ie class/race/size etc but was stymied by the fact I am not a real programmer just a lowly physicist that likes to pretend he programs.

If someone can determine that information is available, I can update the plugin to have you only loot items you an use.

I will send you the source for the current compiled dll, Maskoi.

- - - Updated - - -

With the data currently available the only work around would be to populate the class/race/deity in a seperate file/database when you first loot a quest item to your person. I am hoping to figure out a more elegant solution at some point.
 
Thank you for supplying RedGuides with the source code. We will check it out today.

Thanks for contributing. I think this will end up being a very popular plugin.
 
MQ2AutoLoot source code has been inspected by Redguides. The dll is safe to use and well done. Looking forward to the finished product.
 
Last edited:
Awesome, thank you maskoi. So about adding the TLOs needed to make this even better.. would that be something added via this plugin or could we request that the items subtype be included in the existing ${AdvLoot} TLO?
 
Thank you I plan on trying this out very soon!

1) How can we donate to you for this work?

2) Could you consider including an option for loading an user defined INI. For example, I might have a loot ini for a rogue to loot poisons, but destroy it in another ini file. Or if I'm questing on a toon in a zone, but not the others I might have one setup for a particular character/zone etc.

3) If you want to go really bold, if the plugin tracked the % drop rate of items from all redguides users.

I'd like to see a plugin that tracks the % drop rate of items, based on how many mobs are killed by people using the compile. A plugin that keeps track of:

a) zone it dropped
b) name of mob
c) mob count (how many times total it has been killed to date)
d) mob level
e) drop % rate of that mob name
f) mob type

Everything updated to a server to keep track in some type of web html format every month.

Similar to what magelo does, but the problem with magelo is it only lists the first 200 mob/object entries that uploaded to it. Collection would happen when you load the compile.

Its just me dreaming on this feature! Why would it be nice? I'll give an example.

Tradeskill usable ore drops of golem type mobs at 2x the drop rate as compared to humanoid or animal type mobs. While Pelts its 2x more frequently of animals vs other types, or silks 2x more frequently of spiders vs other types etc. This was stated by Ngreth many years ago.

So if I'm hunting for Tungsten Ore, I would know which zone and mob has the best drop rate etc. Magelo sorta solves this but the limit is 200 first entries that gets uploaded to the server and how many people actually run the program while they are hunting. So you are missing a lot of infomation on other mobs that could drop it etc and the rate is wrong in alot of the entries since < 1000 of the same type of mobs have been killed. So its inflating the rate on some of the entries showing only 20-30 mobs killed with drop rates showing as high as 75% even though in actuality its like 8%, unless you actually play close attention to those numbers on magelo.
 
Release MQ2AutoLoot

Users who are viewing this thread

Back
Top
Cart