Quantcast
Download
(38 Kb)
Download
Updated: 09/09/20 06:01 AM
Pictures
File Info
Compatibility:
Stonethorn (6.1.5)
Greymoor (6.0.5)
Harrowstorm (5.3.4)
Dragonhold (5.2.5)
Scalebreaker (5.1.5)
Elsweyr (5.0.5)
Updated:09/09/20 06:01 AM
Created:09/11/18 09:42 AM
Monthly downloads:164
Total downloads:2,952
Favorites:16
MD5:
6.1.5
Rulebased Inventory
Version: 2.6.0
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.

Please see the Wiki for the documentation.
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
Supported addons and libraries



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 a crafting station UI)
  • Notification (is checked continuously (“on update”) for each new item)
  • Refinement (starts when opening the refinement tab of a crafting station UI)
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 (provided by LibPrice if installed), count of vouchers for masterwrits and the count you have in backpack, bank and craftbag
  • ...


Features and fixes in development (or at least considered)
  • Homebank
  • Guildbank
Needed libraries
Cumulative change log for version 2.6.0
  • needTrait and needLearn functions now support "no input" to check current character only

Cumulative change log for version 2.5.0
  • updated for Stonethorn API
  • added FCOIS marker to context menu output
  • corrected return of "locked"-function now correctly taking FCOIS "lock" into account

Cumulative change log for version 2.4.0
  • updated for Greymore API
  • updated usage of LibCustomMenu (thanks Baertram!)
  • fixed renamed function of LibSets
  • added function skillLineLevel
  • corrected typo in input data (corwnitem -> crownitem, corwnrepair -> crownrepair)
  • fixed file encoding in manifest
  • fixed error in FCOIS dependency

Cumulative change log for version 2.3.0
  • countbackpack/bank/craftbag will now return count when no input is given
  • replaced PreHookHandler with new SetHandler function (thanks sirinsidiator!)

Cumulative change log for version 2.2.1
  • fixed error on opening housebank

Cumulative change log for version 2.2.0
  • added function motifKnown
  • corrected testing of rule now also including items in subscriberbank

Cumulative change log for version 2.1.0
  • added Task CraftToBag which is executed on Bank visit and fetches items from craftbag to backpack
  • added simplification-functions "material" etc. (Wiki: Functions without input)
  • item-functions "name", "setName" and "creator" now support LibTextFilter (optional)
  • added context menu button in inventory to print most of the item's data for reference (requires LibCustomMenu) (optional)
  • fixed erroneous item-functions


Cumulative change log for version 2.0.0
  • Rules and Settings will be lost when updating to 2.0.0
  • Backup settings for reference by copying SavedVariables/RulebasedInventory.lua.
  • Be willing to rewrite your rules and recreate your profiles...
  • OR DO NOT UPDATE TO 2.0.0!
  • Complete rewrite
  • new rule syntax (sorry, for the now mandatory rewrite of rules)
  • added task for refinement
  • deconstruction now uses the game's multi-deconstruct feature
  • introduced RuleSets (two-leveled set of rules)
  • tasks can now have a RuleSet instead of a Rule (so, multiple rules per task instead of one!)
  • added support for LibSets and LibPrice
  • huge performance improvements (at least for me, tested on i7-7700k, GTX1080ti, 16gb DDR4)


Cumulative change log for version 1.6.2
  • Update 2.0.0 is right around the corner
  • Rules and Settings will be lost when updating to 2.0.0
  • Backup settings for reference by copying SavedVariables/RulebasedInventory.lua.
  • Be willing to rewrite your rules and recreate your profiles...
  • OR DO NOT UPDATE TO 2.0.0!


Cumulative change log for version 1.6.1
  • removed libstub (thank's Beartram!)

Cumulative change log for version 1.6.0
  • removed rulestring-colorization for output as it didn't work correctly anyway and furthermore could cause a game crash

Cumulative change log for version 1.5.2
  • Updated for API 100028
  • Source is now available at https://gitlab.com/taxtalis/rulebased-inventory, wiki there might be used in the future

Cumulative change log for version 1.5.1
  • Fixed an error with writworthy integration when ttc was not found

Cumulative change log for version 1.5.0
  • Updated for API 100027
  • renamed 'schematic' (derived from constant's name SPECIALIZED_ITEMTYPE_RECIPE_ENCHANTING_SCHEMATIC_FURNISHING) to 'praxis' (ingame name)
  • added writworthy integration with wwMatCost and wwMatCostPerVoucher (thx to ziggr)
  • added functions itemsetname and itemsetnamematch to filter for setnames

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 (20)
File Name
Version
Size
Uploader
Date
2.5.0
38kB
TaxTalis
08/11/20 10:59 AM
2.4.0
38kB
TaxTalis
05/25/20 02:34 AM
2.3.0
37kB
TaxTalis
02/26/20 12:20 PM
2.2.1
37kB
TaxTalis
01/07/20 01:05 PM
2.2.0
37kB
TaxTalis
12/30/19 02:22 AM
2.1.0
37kB
TaxTalis
12/25/19 12:17 PM
2.0.0
35kB
TaxTalis
12/18/19 05:03 AM
1.6.2
920kB
TaxTalis
11/27/19 01:48 PM
1.6.1
920kB
TaxTalis
09/06/19 08:47 AM
1.6.0
920kB
TaxTalis
08/31/19 04:02 PM
1.5.2
922kB
TaxTalis
08/14/19 09:25 AM
1.5.1
920kB
TaxTalis
05/25/19 02:57 AM
1.5.0
920kB
TaxTalis
05/24/19 10:07 AM
1.4.2
914kB
TaxTalis
10/27/18 09:00 AM
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 08/11/20, 02:18 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
Re: Re: fcoismarker

Originally Posted by TaxTalis
Correct, to this point the context menu does not show all values used by RbI for a given item.
I will see to include the FCOIS markers for you.

EDIT: the marker seems to not be called "sell" but "selling". Try this until I finish and test the update.
This is most helpful, thank you
Report comment to moderator  
Reply With Quote
Unread 08/11/20, 08:11 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
Re: fcoismarker

Correct, to this point the context menu does not show all values used by RbI for a given item.
I will see to include the FCOIS markers for you.

EDIT: the marker seems to not be called "sell" but "selling". Try this until I finish and test the update.

Originally Posted by FrostByghte
I'm attempting to work with fcoismarker("SELL") or at least figure out what designation the icon has. I enabled the context menu and I noticed that my FCOIS assigned icons don't appear to output anything? I can work with intricate, deconstruct etc with proper rules. Here is what I get on a properly marked deconstruct item:



My assumption here was that the context menu would output the fcois marked info as well?

So in short, I'm attempting to use fcoismarker("SELL") it doesn't match anything so I'm trying to use the context menu to figure out what the marker is, but the context menu isn't outputting anything in order to verify this.
Last edited by TaxTalis : 08/11/20 at 08:59 AM.
Report comment to moderator  
Reply With Quote
Unread 08/10/20, 05:22 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
fcoismarker

I'm attempting to work with fcoismarker("SELL") or at least figure out what designation the icon has. I enabled the context menu and I noticed that my FCOIS assigned icons don't appear to output anything? I can work with intricate, deconstruct etc with proper rules. Here is what I get on a properly marked deconstruct item:

------------ITEMDATA--------------
ItemLink: [Spinner's Ring]
bag: bank
slot: 65
armorType: none
bindType: onequip
equipType: ring
quality: superior
traitInfo: none
trait: jewelry_arcane
style: woodelf
type: armor
sType: s_typeless
weaponType: none
crownStore: false
crownCrate: false
weaponType: none
price: 47
My assumption here was that the context menu would output the fcois marked info as well?

So in short, I'm attempting to use fcoismarker("SELL") it doesn't match anything so I'm trying to use the context menu to figure out what the marker is, but the context menu isn't outputting anything in order to verify this.
Report comment to moderator  
Reply With Quote
Unread 06/15/20, 11:33 AM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
Thank you. I appreciate the additional information and yes that cleared it up. I was thinking all wrong about the relation between tasks, rulessets and rules.
Report comment to moderator  
Reply With Quote
Unread 06/15/20, 01:52 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
Originally Posted by FrostByghte
Yes, I have. I simply wasn't clear on if a profile or tasks could have multiples beneath them? As in my example, if I have a Sell task, does that mean I have one ruleset per task or can I define multiple per. My guess is one per task, but I initially thought it might be multiple per. Just wanted to clarify that one thing. Thank you.
Tasks are set by RbI, and could only be changed in code. When triggered by an event, which is also hard-coded, will check their current RuleSet and take action. The RuleSet set for a task and every underlying rule can be changed in the ingame menu of RbI.

A RuleSet is a collection of rules which you can set up to easily enable it on multiple profiles without having to look for the rules every time. You can only have one active RuleSet per Task, however this does not need to be a named/saved one. You can always just set up rules for a task and leave them as they are or load a RuleSet and add/remove rules, which will create a new, unsaved, unnamed RuleSet instead of overwriting the previously loaded RuleSet.

A profile is just a link between each task and a RuleSet (saved or unsaved) to easily load to a new character.

You can identify an unsaved RuleSet or Profile by the missing name in the RuleSet or Profile Dropdown. If there is no name written there, then a change had been made and the object did not match an already saved one. Fear not, you do not need to save a RuleSet or Profile to have it stay where it is after reloading UI or even do it's job. The save mechanism of RuleSets and Profiles is merely a simple way to hand it over to another character or in case of RuleSets even just to another profile.

Only the save mechanism of Rules is an important one, because an unsaved Rule will still evaluate its old content and the changes will be lost on reload UI or quitting the game.
Saving changes to a rule will immediately affect RuleSets, which use the changed rule.
Deleting a rule will also delete it from all RuleSets.
Changing and saving a RuleSet with the same name (thus overwriting it) will immediately affect profiles which use this RuleSet.
Deleting a RuleSet however will not (in therms of outcome), as the profile will keep a copy of the RuleSets underlying rules as an unsaved, unnamed RuleSet.


Hope this clears things up, feel free to ask if you have any questions left.


EDIT: I also tried to add more information to the Wiki.
Last edited by TaxTalis : 06/15/20 at 02:32 AM.
Report comment to moderator  
Reply With Quote
Unread 06/13/20, 01:22 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
Originally Posted by TaxTalis
@dorrson, sounds good. Glad you found a way!

@FrostByghte, Have you taken a look at the Wiki (link at the addon page) and the explanations there?
If yes, and things are still unclear, I will gladly try to answer any possible question you might have left unvoiced.
Yes, I have. I simply wasn't clear on if a profile or tasks could have multiples beneath them? As in my example, if I have a Sell task, does that mean I have one ruleset per task or can I define multiple per. My guess is one per task, but I initially thought it might be multiple per. Just wanted to clarify that one thing. Thank you.
Report comment to moderator  
Reply With Quote
Unread 06/13/20, 09:55 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
@dorrson, sounds good. Glad you found a way!

@FrostByghte, Have you taken a look at the Wiki (link at the addon page) and the explanations there?
If yes, and things are still unclear, I will gladly try to answer any possible question you might have left unvoiced.
Last edited by TaxTalis : 06/13/20 at 09:57 AM.
Report comment to moderator  
Reply With Quote
Unread 06/12/20, 08:51 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
@TaxTalis,

Could you clarify a bit for me here on Profiles, Tasks, Rulesets? So a profile represents multiple tasks, essentially each profile would represent whatever rules were defined for each of the supported tasks? Each task though can only have 1 ruleset or can they have multiple per task? If I want to define a sell rule, I should do it all in one single ruleset or if I want can I break it into multiple rules/rulesets per task?


This addon is a lot of fun
Report comment to moderator  
Reply With Quote
Unread 06/09/20, 07:35 AM  
dorrson

Forum posts: 0
File comments: 30
Uploads: 0
Originally Posted by TaxTalis
Originally Posted by dorrson
Originally Posted by TaxTalis
Further, @dorrson, I've added a function "SkillLineLevel()" to be used with a single (at the moment only crafting-) skill line like so: 'skilllinelevel("blacksmithing")' which returns the level of given skillline as an integer. So, use it like 'skilllinelevel("blacksmithing")<50'.
Thank you for using RbI, glad you like it, if you have any problems, please let me know.
Thank you! The new 'SkillLineLevel' function is working great!

Another question, is there (or could you put as something for future development) a way to utilize the NeedTraitInOrder function to allow for automatic research when opening a craft station?

Once again, this is an excellent addon! Keep up the great work!
Glade it is of use for you!
Regarding the automatic research, a rule then would need to produce only a single outcome or RbI had to chose an item at random - I can't see a sufficient solution to this at the moment and have to inform you that I don't plan to introduce such a feature in a future update as of yet. I'll keep that in mind though.
I believe I've found a way to do what I'm wanting. I'm using another mod that does the research. I can use the banktobag task married with the NeedTraitInOrder function. Then I can pull researchable items out of the bank using RBI and set the research mod to only research from my bag.
Report comment to moderator  
Reply With Quote
Unread 06/07/20, 07:05 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
Originally Posted by dorrson
Originally Posted by TaxTalis
Further, @dorrson, I've added a function "SkillLineLevel()" to be used with a single (at the moment only crafting-) skill line like so: 'skilllinelevel("blacksmithing")' which returns the level of given skillline as an integer. So, use it like 'skilllinelevel("blacksmithing")<50'.
Thank you for using RbI, glad you like it, if you have any problems, please let me know.
Thank you! The new 'SkillLineLevel' function is working great!

Another question, is there (or could you put as something for future development) a way to utilize the NeedTraitInOrder function to allow for automatic research when opening a craft station?

Once again, this is an excellent addon! Keep up the great work!
Glade it is of use for you!
Regarding the automatic research, a rule then would need to produce only a single outcome or RbI had to chose an item at random - I can't see a sufficient solution to this at the moment and have to inform you that I don't plan to introduce such a feature in a future update as of yet. I'll keep that in mind though.

Originally Posted by FrostByghte
@TaxTalis

Yesterday I put in a few more rules in order to sell ornate and trash. It appears to have gone away. If it happens again, I'll not make any changes and attempt to assist in troubleshooting the issue.
I see, it could also possibly be the item throwing the error has left your inventory (maybe it had a timer on it or something...). I'll try to check the questline @manavortex mentioned to better understand the inventory updates on which RbI triggers.




Thank you both for using RbI, if you have any questions left, feel free to ask!
Last edited by TaxTalis : 06/07/20 at 07:05 AM.
Report comment to moderator  
Reply With Quote
Unread 06/06/20, 05:22 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
@TaxTalis

Yesterday I put in a few more rules in order to sell ornate and trash. It appears to have gone away. If it happens again, I'll not make any changes and attempt to assist in troubleshooting the issue.
Report comment to moderator  
Reply With Quote
Unread 06/06/20, 05:38 AM  
dorrson

Forum posts: 0
File comments: 30
Uploads: 0
Originally Posted by TaxTalis
Further, @dorrson, I've added a function "SkillLineLevel()" to be used with a single (at the moment only crafting-) skill line like so: 'skilllinelevel("blacksmithing")' which returns the level of given skillline as an integer. So, use it like 'skilllinelevel("blacksmithing")<50'.
Thank you for using RbI, glad you like it, if you have any problems, please let me know.
Thank you! The new 'SkillLineLevel' function is working great!

Another question, is there (or could you put as something for future development) a way to utilize the NeedTraitInOrder function to allow for automatic research when opening a craft station?

Once again, this is an excellent addon! Keep up the great work!
Report comment to moderator  
Reply With Quote
Unread 06/05/20, 03:11 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
@FrostByghte
Thank you for using RbI! Glad you like it!

Could you please specify more?
Does this happen on every login, with every character with every ruleset?
What rule are you using for Notify (the task which is called in that very line)?
The event fires when a new item enters the backpack (well at least that's the intent) - is there anything moved to your backpack every time you login? O.o
The event code which fires there is called "EVENT_CONVERSATION_FAILED_UNIQUE_ITEM" and it has a stackCountChange of 1, that's why it goes through the filtering.
No idea though what that is or what triggers it, yet.

Edit: @manavortex hinted me that such a thing could possibly happen on transforming quest items, do you, by any chance, have an item called "Kollopi Essence" in you inventory and a corresponding quest you can't turn in because it is bugged? ... just a random thought though. could still be something similar, please check your items and quests for unique items and rewards with the same name or something...
Last edited by TaxTalis : 06/05/20 at 03:25 PM.
Report comment to moderator  
Reply With Quote
Unread 06/04/20, 08:47 PM  
FrostByghte

Forum posts: 0
File comments: 33
Uploads: 0
I've been getting this on login... I'm hoping the answer to this isn't staring me in the face. If so, I apologize. It doesn't appear to stop the addon from doing a thing, but I thought I would attempt to report it. Thank you, this addon is completely brilliant and geeky.

Code:
user:/AddOns/RulebasedInventory/Modules/Event.lua:72: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Event.lua:72: in function 'OnSlotUpdate'
|caaaaaa<Locals> eventCode = 131223, bag = 1, slot = 0, isNewItem = T, itemSoundCategory = 17, inventoryUpdateReason = 0, stackCountChange = 1 </Locals>
Report comment to moderator  
Reply With Quote
Unread 05/25/20, 02:39 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 118
Uploads: 1
The fix for LibSets, an API Bump and various other things just went live, look at the changelog for more information.

Further, @dorrson, I've added a function "SkillLineLevel()" to be used with a single (at the moment only crafting-) skill line like so: 'skilllinelevel("blacksmithing")' which returns the level of given skillline as an integer. So, use it like 'skilllinelevel("blacksmithing")<50'.
Thank you for using RbI, glad you like it, if you have any problems, please let me know.
Last edited by TaxTalis : 05/25/20 at 02:39 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.