Quantcast
Download
(914 Kb)
Download
Updated: 10/27/18 09:00 AM
Pictures
File Info
Compatibility:
Murkmire (4.2)
Wolfhunter (4.1)
Summerset (4.0)
Updated:10/27/18 09:00 AM
Created:09/11/18 09:42 AM
Monthly downloads:89
Total downloads:765
Favorites:10
MD5:
4.2
Rulebased Inventory
Version: 1.4.2
by: TaxTalis [More]
YOU ARE USING THIS ADDON AT YOUR OWN RISK!
I will not be hold responsible for any damage or inconvenience this addon might cause for any reason.
This said, I have tested this addon on my main account for quite some time and try to do everything I can to make your experience with this addon as good and as safe as possible.

The main documentation is located at the addon's folder, there are all possible terms and functions for rules noted and it is quite impossible to go without it.
I admit, this is not an addon for everyone. There is no interface defining the rules for you by clicking buttons, you have to insert them by text.
A wrongly defined (but valid) rule may cause severe damage when fencing, destroying or deconstructing as the items will never return after such an action was taken.

Needed libraries
  • LibStub
  • LibAsync
  • LibAddonMenu-2.0
  • LibCustomMenu
Supported addons
  • FCOIS
  • CraftStore
  • AutoCategory
  • Master Merchant
  • Tamriel Trade Centre


About Rulebased Inventory
After installing it, it does nothing. It’s simple as that.
You have to define rules for different tasks which then are executed automatically.
Tasks to define rules for are:
  • Move from Backpack to Bank (starts when opening the Bank UI)
  • Move from Bank to Backpack (starts when opening the Bank UI)
  • Sell at Store and Fence (starts when opening the Store or Fence UI)
  • Launder (starts when opening the Fence UI)
  • Junk (is checked continuously (“on update”) for each item on the backpack)
  • Destroy (is checked continuously (“on update”) for each item on the backpack)
  • Deconstruct (starts when opening the deconstruct tab of an Crafting Station UI)
  • Notification (is checked continuously (“on update”) for each new item)
Currencies and Homebank are not supported. Please see features in development.



Key Features
  • take actions on specific amounts of an item, not only on a whole stack (e.g. keep only 100 lockpicks in inventory)
  • check if your current character is the first one of a defined list in need of an item for research or a recipe to learn (so you can "hand down" a recipe if your main crafter doesn't need it to your secondary and further) (CraftStore needed)
  • save profiles and load them on multiple characters
  • a notification will include pricing from MM and TTC, count of vouchers for masterwrits and the count you have in backpack, bank and craftbag
  • ...


Features and fixes in development
  • event-based deconstruct
  • event-based refine
  • Homebank
  • Guildbank
Example rules "MasterCrafter"
Bag-To-Bank (Exclude Bank-To-Bag is on)
Lua Code:
  1. NOT (JUNKED) AND NOT FCOISMARKER("LOCK") AND
  2. ((tool)
  3. or (soulgem)
  4. or (survey)
  5. or (masterwrit)
  6. or (treasuremap)
  7. or (intricate)
  8. or (recipe)
  9. or (((armor) or (weapon)) and not crafted)
  10. or ((item_enchanting) and not (crafted))
  11. or (item_jewelry))
Transfer all lockpicks (tools), soulgems, surveys, masterwrits, treasuremaps, intricate items, recipes, non-crafted equipment and glyphs and all jewelry to the bank as long as they are not marked as "Locked" via FCOIS.
Except items which would be transferred from bank to backpack!

Bank-To-Bag (Exclude off, otherwise rules are blocking themselves)
lua Code:
  1. NOT FCOISMARKER("LOCK") AND
  2. (((itemnamematch("lockpick") or ((soulgem) and (fine)) or ((tool) and level == 50)) and countbackpack < 50)
  3. or (learnlist("Caelean", "Seika Kitamura",  "Gilvalar Merohin") and ((recipe_drink) or (recipe_food)))
  4. or (learnlist("Caelean", "Seika Kitamura", "Gilvalar Merohin") and not ((recipe_drink) or (recipe_food)))
  5. or (masterwrit)
  6. or (treasuremap and itemname("XXX"))
  7. or (survey)
  8. or (item_jewelry)
  9. or (item_clothier)
  10. or (item_blacksmithing)
  11. or (item_woodworking)
  12. or (item_enchanting)
  13. )
This will transfer lockpicks and soulgems to the backpack until there are 50 of each or no more available in bank. Furthermore all types of Masterwrits, recipes this character is first of the list needing it (here: different lists for food/drink and other recipes though they list is - for now - the same), glyphs, armor, weapons and jewelry will be transferred as long as they are not marked as "Locked" via FCOIS. All these items will be excluded from the previous task as the exclude-switch there is active. This only means for example soulgems and lockpicks ABOVE 50 in backpack will be transferred to bank.

Junk
Lua Code:
  1. NOT FCOISMARKER("LOCK") AND
  2. (
  3. (trash)
  4. or (junk)
  5. or (treasure)
  6. or (ornate)
  7. or (monstertrophy)
  8. or (((potion) or (poison) or (drink) or (food)) and not ((crafted) or itemnamematch("crown", "gold")) and (cp < 150 or (normal)) and not (itemname("Essence of Health", "Essence of Stamina", "Essence of Magicka")))
  9. or ((((weapon) or (armor) or (item_enchanting)) and (cp < 150 or quality <= normal)) and not ((crafted) or (intricate) or (item_jewelry)))
  10. )
This will junk any trash, treasure, ornate items, potions (includes poisons), drinks and food which are not crafted, do not have "crown" or "gold" in their name and are below cp 150 or of normal or lower quality. Further all items of the lowest quality (named "junk") (like rotten food) and all weapon, armor and glyps which are not crafted, lower than cp 150 or lower or equal to normal quality and neither intricate nor jewelry items are junked. Again except the item is marked as with "lock" via FCOIS.

Destroy
Lua Code:
  1. (stolen) and (tool)

Will destroy all stolen lockpicks (and other stolen items of type tool, if there are any)
Needed libraries
  • LibStub
  • LibAsync
  • LibAddonMenu-2.0
  • LibCustomMenu

Cumulative change log for version 1.4.2
  • fixed usage of AutoCategory function

Cumulative change log for version 1.4.1
  • added general option for a message when starting a task
  • added support for AutoCategory
  • added function: autocategory("category1",...)
  • fixed multiple bugs which occurred on a full bag
  • fixed test of deconstruct
  • fixed test of notification not using an unsaved rule
  • fixed an issue where in bagCache the count of an item would not be updated

Cumulative change log for version 1.2.2
  • added filters for events to not listen to unnecessary ones
  • rewrite of action- and event-queue
  • rewrite of action execution
  • rewrite of bagCache and generation of actions from task
  • rewrites for integration of LibAsync to reduce runtime per frame for less lag
  • API bump for Murkmire

Cumulative change log for version 0.10.1
  • dropped library because of instability: LibLoadedAddons
  • functions fcoismarker and fcoismarkermatch now support the custom names for fcois markers
  • safe rule switch for deconstruct now has the tooltip it deserves
  • events (junk/notification/destroy) now only are accepted when items were added to the bag to reduce lag
  • fixed notification to try to notify about already again empty slots (like loot containers directly extracted by other addons)
  • optimized events (junk/notification/destroy) to only create a cache of the whole bag if necessary to further reduce lag

Cumulative change log for version 0.8.0
  • tasks are only executed if a rule was defined
  • output now shows intricate and ornate symbols
  • added itemdata: fcoisismarked (replaces fcoislocked)
  • added itemdata: fcoismarker
  • added function: fcoismarker
  • added function: fcoismarkermatch

Cumulative change log for version 0.6.1
  • fixed variables leaking into global namespace (thanks Votan!)
  • added German translation
  • added itemdata: tags
  • added function: itemtag
  • added function: itemtagmatch
  • added itemdata: reagenttraits
  • added function: reagenttrait
  • added function: reagenttraitmatch
  • minimum delay and timeout lowered

-Version 0.4.2 was initial release-
Archived Files (6)
File Name
Version
Size
Uploader
Date
1.4.1
914kB
TaxTalis
10/26/18 02:36 PM
1.2.2
911kB
TaxTalis
10/12/18 01:27 PM
0.10.1
910kB
TaxTalis
09/26/18 12:27 PM
0.8.0
911kB
TaxTalis
09/16/18 01:58 PM
0.6.1
909kB
TaxTalis
09/15/18 07:08 AM
0.4.2
903kB
TaxTalis
09/11/18 10:06 AM


Post A Reply Comment Options
Unread 02/11/19, 11:19 AM  
ovinnik

Forum posts: 18
File comments: 81
Uploads: 0
Originally Posted by TaxTalis
I think you only need to enable or disable the “System“ output for the tabs you want RbI to show up or not show up. Further I think any addon is only able to post the this system output, thus I cannot change this behavior. Hopefully I could help with this.

Originally Posted by ovinnik
Hi there,

a request, though I've no odea if this is even possible: A setting to define which chat tab any and all chat output should show up in. For instance, I'd like for the output to be sent to my very first, general chat tab, but not to more specialised ones like "Guild" or "Group".

Cheers.
Well, I assumed that by turning off the "System" output, I wouldn't see notifications about friends logging in and the like. I'd prefer to keep those, which is why I brought it up here. In any case, I guess it can't be helped. Thanks for letting me know regardless.
Report comment to moderator  
Reply With Quote
Unread 02/11/19, 07:26 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
I think you only need to enable or disable the “System“ output for the tabs you want RbI to show up or not show up. Further I think any addon is only able to post the this system output, thus I cannot change this behavior. Hopefully I could help with this.

Originally Posted by ovinnik
Hi there,

a request, though I've no odea if this is even possible: A setting to define which chat tab any and all chat output should show up in. For instance, I'd like for the output to be sent to my very first, general chat tab, but not to more specialised ones like "Guild" or "Group".

Cheers.
Report comment to moderator  
Reply With Quote
Unread 02/09/19, 02:42 AM  
ovinnik

Forum posts: 18
File comments: 81
Uploads: 0
Hi there,

a request, though I've no idea if this is even possible: A setting to define which chat tab any and all chat output should show up in. For instance, I'd like for the output to be sent to my very first, general chat tab, but not to more specialised ones like "Guild" or "Group".

Cheers.
Last edited by ovinnik : 02/11/19 at 11:15 AM.
Report comment to moderator  
Reply With Quote
Unread 02/06/19, 02:41 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
Re: Performance issues while RbI is active

Originally Posted by Lifeseeker128
I really love this mod and how open it is with managing my bank and bag contents, but I have one gripe.

I've been having framerate drops while Rulebased Inventory is enabled. It's worse when I have FCOIS enabled, too, but I've tested that RbI is definitely the cause. The framerate drops occur whenever I loot an item. It's extremely noticeable whenever I fish. Sometimes, I get down to the 20's and teens for fps.

I don't know what part of the addon is causing the frame drops, but they still occur no matter what rules I use or how few. It even occurs whenever I loot something which goes into my craft bag.

If this is a known problem, be sure to reply with information on any fixes available.

Thanks in advance for any advice.
There is a sort of "known issue" with MasterMerchant which causes lag when asking for pricing for items, but I have never encountered any framedrops with the current version of RbI on my machine, thus I have not been able to provide any further help. There are some optimizations I have in mind for the next version, but haven't even begun to code as I am very busy at the moment and more interested in playing than coding in my free time. Please let me know if you find anything regarding this issue and thank you for using RbI. I'll try my best to release a new version for Elsweyr, but no promises. Thank you
Report comment to moderator  
Reply With Quote
Unread 02/05/19, 12:17 PM  
Lifeseeker128
 
Lifeseeker128's Avatar

Forum posts: 7
File comments: 6
Uploads: 0
Performance issues while RbI is active

I really love this mod and how open it is with managing my bank and bag contents, but I have one gripe.

I've been having framerate drops while Rulebased Inventory is enabled. It's worse when I have FCOIS enabled, too, but I've tested that RbI is definitely the cause. The framerate drops occur whenever I loot an item. It's extremely noticeable whenever I fish. Sometimes, I get down to the 20's and teens for fps.

I don't know what part of the addon is causing the frame drops, but they still occur no matter what rules I use or how few. It even occurs whenever I loot something which goes into my craft bag.

If this is a known problem, be sure to reply with information on any fixes available.

Thanks in advance for any advice.
Report comment to moderator  
Reply With Quote
Unread 12/22/18, 02:14 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
Re: OMG Why didn't I know about this add-on?

Oh, WritWorthy Integration, what a brilliant addition! I will incorporate this in the next update, thank you for this and your kind words!


For general information: I have not yet begun coding, but I am still here watching over RbI and at least thinking about my next steps regarding RbI, thanks for your patience

Originally Posted by ziggr
This is my new most favorite add-on. I've wanted a text-rule-based inventory manager for a while now, and was just sitting down to write it when I found Rulebased Inventory. Thank you!

One rule that I needed to write that RbI lacked was "Master Writs that cost more than N gold per voucher to craft". I sell off anything that costs 300g+ per voucher.

So here's the change I made to RbI to integrate with WritWorthy and add wwMatCost and wwMatCostPerVoucher fields for rules like ((masterwrit) AND (wwMatCostPerVoucher < 300))

on GitHub

Modules/Data.lua
Lua Code:
  1. RbI.enrichRuleBasedata = {
  2.     ...
  3.     ,["wwmatcost"] = "item.wwMatCost"
  4.     ,["wwmatcostpervoucher"] = "item.wwMatCostPerVoucher"
  5.     ...

Modules/Item.lua
Lua Code:
  1. function RbI.GetItemData(bagId, slotIndex)
  2.         ...
  3.         -- WritWorthy Integration (initialize values even if ttc not loaded)
  4.         item.wwMatCost = -1
  5.         item.wwMatCostPerVoucher = -1
  6.         if (WritWorthy ~= nil) then
  7.             if 0 < (item.vouchers or 0) then
  8.                 local matCost = WritWorthy.ToMatCost(itemLink)
  9.                 item.wwMatCost = matCost
  10.                 item.wwMatCostPerVoucher = matCost / item.vouchers
  11.             end
  12.         end
  13.         ...

Again, thank you so very, very much for this add-on. You just made my Inventory Management Mini-Game days a lot less tedious.

--Z
Report comment to moderator  
Reply With Quote
Unread 12/21/18, 04:30 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 18
File comments: 134
Uploads: 7
OMG Why didn't I know about this add-on?

This is my new most favorite add-on. I've wanted a text-rule-based inventory manager for a while now, and was just sitting down to write it when I found Rulebased Inventory. Thank you!

One rule that I needed to write that RbI lacked was "Master Writs that cost more than N gold per voucher to craft". I sell off anything that costs 300g+ per voucher.

So here's the change I made to RbI to integrate with WritWorthy and add wwMatCost and wwMatCostPerVoucher fields for rules like ((masterwrit) AND (wwMatCostPerVoucher < 300))

on GitHub

Modules/Data.lua
Lua Code:
  1. RbI.enrichRuleBasedata = {
  2.     ...
  3.     ,["wwmatcost"] = "item.wwMatCost"
  4.     ,["wwmatcostpervoucher"] = "item.wwMatCostPerVoucher"
  5.     ...

Modules/Item.lua
Lua Code:
  1. function RbI.GetItemData(bagId, slotIndex)
  2.         ...
  3.         -- WritWorthy Integration (initialize values even if ttc not loaded)
  4.         item.wwMatCost = -1
  5.         item.wwMatCostPerVoucher = -1
  6.         if (WritWorthy ~= nil) then
  7.             if 0 < (item.vouchers or 0) then
  8.                 local matCost = WritWorthy.ToMatCost(itemLink)
  9.                 item.wwMatCost = matCost
  10.                 item.wwMatCostPerVoucher = matCost / item.vouchers
  11.             end
  12.         end
  13.         ...

Again, thank you so very, very much for this add-on. You just made my Inventory Management Mini-Game days a lot less tedious.

--Z
Last edited by ziggr : 12/21/18 at 08:36 PM.
Report comment to moderator  
Reply With Quote
Unread 11/05/18, 04:16 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
Oh, don't worry, I merely copied it to not rewrite it on mobile (which I commented from) rather than pointing out you should have known that already!
Please be very patient for the next update, the next few month might be tough and I do not know when I will have time to spare to code again. Game will be first before addon for now, so I don't loose the fun in this.

Originally Posted by SlippyCheeze
Originally Posted by TaxTalis
Originally Posted by SlippyCheeze
I don't seem to be able to auto-sell anything that has an FCOIS ItemSaver mark on it at a regular merchant.

When I run a test, it works as expected, and lists the items. When I visit the merchant, however, it doesn't sell them, silently. Looks like it maybe skips over them?
Stated a few messages before:
Originally Posted by TaxTalis
I have to inform about another issue I am sort of aware of regarding FCOIS: there is an option to "disable" the protection for e.g. deconstruction for a marker when at a specific station. Though I am not totally sure how this works and if this is an issue as I never used this, there might be a problem because RbI collects the information about protections without checking for a station dependency. It so might happen that an marked item even if deconstructable by hand, is not deconstrucatble via RbI. If this is the case please notify me and I will look deeper into this.
I will look into this.

In Extension: FCOIS protections are applied on lowest possible base so are not dependent on rules.
Thus if a protection for the item exist for this action it indeed is skipped.
“Station” also refers to shop.
I'm sorry that I missed the earlier statement. That sounds like the root cause of the issue.

FCOIS itself has an option to disable or enable selling things based on marks, and it also has an option to permit it in certain circumstances, which I have enabled. So, it doesn't block manual selling.

I'm not sure how that is intended to be handled with the API. Thanks for noting that, and I'll absolutely hang out and wait until it is figured out, or whatever.
Report comment to moderator  
Reply With Quote
Unread 11/02/18, 03:01 PM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 234
Uploads: 1
Originally Posted by TaxTalis
Originally Posted by SlippyCheeze
I don't seem to be able to auto-sell anything that has an FCOIS ItemSaver mark on it at a regular merchant.

When I run a test, it works as expected, and lists the items. When I visit the merchant, however, it doesn't sell them, silently. Looks like it maybe skips over them?
Stated a few messages before:
Originally Posted by TaxTalis
I have to inform about another issue I am sort of aware of regarding FCOIS: there is an option to "disable" the protection for e.g. deconstruction for a marker when at a specific station. Though I am not totally sure how this works and if this is an issue as I never used this, there might be a problem because RbI collects the information about protections without checking for a station dependency. It so might happen that an marked item even if deconstructable by hand, is not deconstrucatble via RbI. If this is the case please notify me and I will look deeper into this.
I will look into this.

In Extension: FCOIS protections are applied on lowest possible base so are not dependent on rules.
Thus if a protection for the item exist for this action it indeed is skipped.
“Station” also refers to shop.
I'm sorry that I missed the earlier statement. That sounds like the root cause of the issue.

FCOIS itself has an option to disable or enable selling things based on marks, and it also has an option to permit it in certain circumstances, which I have enabled. So, it doesn't block manual selling.

I'm not sure how that is intended to be handled with the API. Thanks for noting that, and I'll absolutely hang out and wait until it is figured out, or whatever.
Report comment to moderator  
Reply With Quote
Unread 11/02/18, 04:51 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
Originally Posted by SlippyCheeze
I don't seem to be able to auto-sell anything that has an FCOIS ItemSaver mark on it at a regular merchant.

When I run a test, it works as expected, and lists the items. When I visit the merchant, however, it doesn't sell them, silently. Looks like it maybe skips over them?
Stated a few messages before:
Originally Posted by TaxTalis
I have to inform about another issue I am sort of aware of regarding FCOIS: there is an option to "disable" the protection for e.g. deconstruction for a marker when at a specific station. Though I am not totally sure how this works and if this is an issue as I never used this, there might be a problem because RbI collects the information about protections without checking for a station dependency. It so might happen that an marked item even if deconstructable by hand, is not deconstrucatble via RbI. If this is the case please notify me and I will look deeper into this.
I will look into this.

In Extension: FCOIS protections are applied on lowest possible base so are not dependent on rules.
Thus if a protection for the item exist for this action it indeed is skipped.
“Station” also refers to shop.
Last edited by TaxTalis : 11/02/18 at 04:55 AM.
Report comment to moderator  
Reply With Quote
Unread 11/01/18, 07:48 PM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 234
Uploads: 1
I don't seem to be able to auto-sell anything that has an FCOIS ItemSaver mark on it at a regular merchant.

When I run a test, it works as expected, and lists the items. When I visit the merchant, however, it doesn't sell them, silently. Looks like it maybe skips over them?
Report comment to moderator  
Reply With Quote
Unread 10/29/18, 05:37 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
Could just look in code, there is an error, but this doesn’t break it but only call it more often then necessary.
But a -feature- I use might cause destroy to not destroy a whole stack: to be more sure a slot did not move or a different item was put there in between actions, only event-actions may do an actual destroy. This works for threshold if the stack needed to be split, as then there will be an event. But if there just needs to be a whole stack to be destroyed then the addon can’t get it done as there was no event, only a task. I will see how to solve this, but will not test or code anything during this events as I want to have some playtime for now and destroy is a delicate thing and needs massive testing.

Originally Posted by SlippyCheeze
Originally Posted by TaxTalis
I am not sure if I understand. If threshold is enabled the whole bag is checked on ... well... every occasion an bagupdate is coming in. So what is missing for you? Or did this functionality break with the major update to 1.x.x?

Originally Posted by SlippyCheeze
wishlist: apply the "destruction" rule first to the new item, and then repeatedly to everything in inventory, until we are below the threshold.

right now, if I pick up a non-destruction item while my inventory is full enough, it simply fills.
Oh. Uh, huh. I'm not sure. It seemed only to destroy the item that was just collected. Perhaps I was confused.
Last edited by TaxTalis : 10/29/18 at 05:52 AM.
Report comment to moderator  
Reply With Quote
Unread 10/28/18, 11:12 AM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 234
Uploads: 1
Originally Posted by TaxTalis
I am not sure if I understand. If threshold is enabled the whole bag is checked on ... well... every occasion an bagupdate is coming in. So what is missing for you? Or did this functionality break with the major update to 1.x.x?

Originally Posted by SlippyCheeze
wishlist: apply the "destruction" rule first to the new item, and then repeatedly to everything in inventory, until we are below the threshold.

right now, if I pick up a non-destruction item while my inventory is full enough, it simply fills.
Oh. Uh, huh. I'm not sure. It seemed only to destroy the item that was just collected. Perhaps I was confused.
Report comment to moderator  
Reply With Quote
Unread 10/28/18, 10:06 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 58
Uploads: 1
I am not sure if I understand. If threshold is enabled the whole bag is checked on ... well... every occasion an bagupdate is coming in. So what is missing for you? Or did this functionality break with the major update to 1.x.x?

Originally Posted by SlippyCheeze
wishlist: apply the "destruction" rule first to the new item, and then repeatedly to everything in inventory, until we are below the threshold.

right now, if I pick up a non-destruction item while my inventory is full enough, it simply fills.
Last edited by TaxTalis : 10/28/18 at 11:04 AM.
Report comment to moderator  
Reply With Quote
Unread 10/28/18, 09:13 AM  
SlippyCheeze
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 234
Uploads: 1
wishlist: apply the "destruction" rule first to the new item, and then repeatedly to everything in inventory, until we are below the threshold.

right now, if I pick up a non-destruction item while my inventory is full enough, it simply fills.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: