Download
(109 Kb)
Download
Updated: 10/22/23 04:35 PM
Pictures
File Info
Compatibility:
Endless Archive (9.2.5)
base-game patch (9.1.5)
Necrom (9.0.0)
Scribes of Fate (8.3.5)
Firesong (8.2.5)
Lost Depths (8.1.5)
High Isle (8.0.0)
Updated:10/22/23 04:35 PM
Created:09/11/18 09:42 AM
Monthly downloads:225
Total downloads:26,654
Favorites:55
MD5:
Rulebased Inventory  Popular! (More than 5000 hits)
Version: 2.31
by: TaxTalis, demawi, otac0n

Automated item distribution/action management (Bag, Bank, Junk, Use, Deconstruct, Sell, Fence, Launder, Destroy, Notify, CraftBag, FcoisMarking), where YOU rule! (this means: YOU have to define the rules yourself) (>>Wiki<<)

What does it do?
After installing it, it does nothing. It’s simple as that.
You have to define rules for different tasks which then are executed automatically. Please see the Wiki for further documentation (after that you can ask your questions here in the comment section or at RbI-ESO Discord)

Automated Tasks are:
  • Bank-related (task starts when opening the Bank UI)
    • BagToBank moves items from Backpack to Bank (also with Homebank-Support)
    • BankToBag moves items from Bank to Backpack (also with Homebank-Support)
  • Itemupdate-related (checks the specific item, when it comes in changes its status, like 'junk'-flag)
    • Junk marks items as 'junk' (there also exists a consistency mode option for UnJunk)
    • Destroy destroys defined items
    • Use uses items (like type('fish'), type('container') or type('recipe'))
    • Notifiy notifies the user, when a defined item is looted
    • CraftToBag moves items from CraftBag to Backpack (also triggers after eso automatic to craft bag transfer)
    • FCOISMark marks items with FCO Item Saver markings (there also exists a consistency mode option for FCSOISUnmark)
  • Vendor-related (task starts when opening the Store or Fence UI)
    • Sell sells items
    • Fence fences items
    • Launder launders items
    • Buy buys items
  • CraftingStation-related (task starts when opening the crafting station UI or the respective tab)
    • Deconstruct deconstructs items
    • Extract extracts items
    • Refine refines items

Other automation gimmicks:
  • Auto open bank/shop/assistant
  • Auto close bank/shop/craft (at station and or assistant) after RbI work done
  • Auto despawn assistant

Needed libraries
Recommended libraries
Supported optional addons and libraries
  • FCOIS (check and set item-markers)
  • CraftStore (adds functions to check what your others characters need to learn or already learned)
  • LibPrice (adds given price informations)
  • AutoCategory (check the autoCategory-names)
  • LibSets (check types of the set)
  • WritWorthy (adds costpervoucher-function)
  • LibTextFilter (support for LibTextFilter's extensive syntax in addition for 'freetext'-parameters)
  • AlphaGear (adds alphagear-functions)
  • Dolgubons Lazy Writ Crafter (compatibility with working queue and station closing)

Special mentions/thx to the following addons for some functions:
Special 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
  • ...

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.
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. (See the mentioned Wiki for this.
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.


Features and fixes in development (or at least considered)
  • ... see Wiki-Roadmap for further information. Currently it's a lot but we're always interested in your ideas.

Cumulative change log for version 2.31
  • added: AwesomeGuildStore integration. Recommended to use a rule reference, like `rule('Recipes for Main')`
  • re-fixed: text filter for `tag` function (sorry!)

Cumulative change log for version 2.30.2
  • references to the removed function IsInTutorialZone have themselves been removed.

Cumulative change log for version 2.30.1
  • bug fix for tag()

Cumulative change log for version 2.30.0
  • added characterLevel(), characterLevelMin(...), and characterLevelMax(...) functions.
  • added hasQuest() function, using quest name. ('Glitter and Gleam', etc.)
  • added characterName() function (similar to isCharacter(), but supports e.g. creator(characterName()))
  • added 'my_house' to ZoneTypes.

Cumulative change log for version 2.29.13
  • prevent unconstrained purchase by the Buy task.

Cumulative change log for version 2.29.12
  • removed references to FISHING_MANAGER for compatibility with upcoming releases
  • fixed: buy interaction now updates cache to prevent duplicate purchases

Cumulative change log for version 2.29.11
  • added buy interaction along with supporting functions: buyItemPrice, buyStackPrice
  • updated functions to support buy interaction: countStack, countStackMax
  • fixed: round displayed currencies to match guild store

Cumulative change log for version 2.29.10
  • fixed: countBag-function returned nil instead of 0 for items not present in bag

Cumulative change log for version 2.29.9
  • fixed: notify-task without LibPrice installed made problems

Cumulative change log for version 2.29.8
  • fixed: WritWorthy addon can return a nil matList, so canCraftMasterwrit had problems with some witches-recipes/writs

Cumulative change log for version 2.29.7
  • fixed: the new LibPrice dependency within the "price" function broke the safety function (thx@Sensei27)

Cumulative change log for version 2.29.4/2.29.5/2.29.6
  • fixed: under some circumstances zo_strformat(SI_UNIT_NAME, charName) does not uppercase the first character so for the mutichar-api we're now using zo_strformat("<<C:1>>", charName) (thx@punkfairie)
  • fixed: reconstructionCost wrongly returned a boolean for non reconstructable items, now it will return RbI.NaN (thx@Thiana)

Cumulative change log for version 2.29.3
  • added all currencies to loot informations
  • fixed targetBank with named chests

Cumulative change log for version 2.29.2
  • Fixed quest-cache error for masterwrit-handling, which occurs when LibCraftText isn't installed
  • Added default-argument for price-function. When there is no price. price will return NaN, while price(value()) will return the npcVendor price.
  • countBank can now also be used for homebanks
  • ItemInspector-Fix for inspecting an itemLink (there was a problem with autoCategory throwing a nil-error)

Cumulative change log for version 2.29.1
  • Fixed intern caching problem for bank2bag,deconstruction,sell tasks

Cumulative change log for version 2.29.0
  • Lightweight currency-transfer settings
  • Fixed craftingExtractBonus-function for enchanting (thx@altlavista)
  • New task/functionality for homebanks. This comes with 2 options
    • Target Mode: within BankToBag/BagToBank you can specify the target bank via targetBank-functionality
    • Task Mode: for every homebank (1-10) will be added a new task-pair HomebankXToBag/BagToHomebankX
  • New functions:
    • needForWrit() returns whether the item is needed for a crafting writ. This also includes masterwrits. (Addon-Dependency: LibCraftText)
    • needForWritCount() returns how much of the item is needed for a crafting writ. This also includes masterwrits. (Addon-Dependency: LibCraftText)
    • mountLevel(mountSkill) returns the current mount training level for stamina, capacity and speed
    • mountLevelMin(mountSkill, charNames) returns the minimum of the specified mount training level over all given chars
    • mountLevelMax(mountSkill, charNames) returns the minimum of the specified mount training level over all given chars
    • needMountLevel(mountSkill, charNames) returns if an of the given characters has not maxed the given mount training level
    • needMountLevelInOrder(mountSkill, charNames) returns true for the first character who hasn't maxed the given mount training level yet
    • task(taskName) if someone wants to unify some tasks in one rule
    • tradeableTemporarily() aka. tradeableTemp() returns true whether the item is temporarily tradeable
    • tradeableTemporarilyWithGroupMember() aka. tradeableGroup() returns true whether the item is temporarily tradeable with a member of the current group.

Cumulative change log for version 2.28.1
  • Fixed Quickslotted

Cumulative change log for version 2.28.0
  • Fixed autocategory function with casesensitivy=on
  • removed "OnQuest" as option for AutoOpenStore, as return-quest-dialog-options are indistinguishable from normal chatter for e.g. undaunted pledges
  • New functions:
    • zoneType(zoneTypeNames) returns true whether we're in a given zoneType (like "pve", "pvp", "dungeon"...)
    • groupSize() returns the current size of the group
    • groupRole(groupRoleNames) returns true whether we're in a given groupRole

Cumulative change log for version 2.27.2/2.27.3
  • fix for ItemInspector when CraftStore isn't installed

Cumulative change log for version 2.27.1
  • Fixed auto-close for controllerUI

Cumulative change log for version 2.27.0
  • Constant UI: As like rules now also constants can be defined. In rules they can be used via the new constant(constantName)-function. (This can be used e.g. to specify a specific character order.)
  • craftingType characteristic is now also determined for masterwrits
  • fixed function "craftingRank"s first argument: before it took an integer value, now it's corrected to crafttypeName
  • New functions:
    • All functions can now have an itemLink as first argument. When the first argument is identified as itemLink, it will be cut off and will be set as ctx.item.link (while ctx.item.bag and ctx.item.slot will be set to nil) for this function-call.
    • constant(constanName): use a predefined constant
    • needForDailyWrit(): returns true whether the item is needed for a crafting quest
    • needForDailyWritCount(): returns how much of the item is needed to fullfill a crafting quest. You could use: "needForWrit() and countBackpack('<', needForWritCount())" in Bank2Bag which ensures that you're pulling not more materials for writs than you need
    • inArmory(): return whether the item is part of an armory build
    • armorybuild(buildNames): return whether the item is part of one of the given buildNames
    • getRefined() which will return an itemLink, which can be used as parameter for other functions
    • reconstructionCost() will return the transmutation crystal costs for a reconstruction of the item
    • alphaGearBuild(buildNames) checks if the item is in the given alpha-gear-build referenced by build-name
    • alphaGearBuildNumber(buildIndex) checks if the item is in the given alpha-gear-build reference by index
  • New timesaver settings:
    • Auto open bank/shop/assistant with different options. Additionally with defining a prevent key.
    • Auto close bank/shop/craft with different options after RbI has finished. Additionally with defining a prevent key.
    • Auto despawn assistant: also despawn assistant after auto close.
  • Plugin system for other multi-character knowledge provider beside CraftStore.
  • RuleInspector now differs between Syntax and Unknown-term errors.
  • checked new version 8.0 "HighIsle" compability.

Cumulative change log for version 2.26.0/2.26.1
  • Fixed an error which occured with DLWC and/or long TaskDelay setting

Cumulative change log for version 2.26.0/2.26.1
  • Optimized loot-handling after container-use
  • Now all bags emitting an OnItemUpdate after specific status changes (also like FCOISMark or junk operations). Enhanced the performance for OnItemUpate.
  • Settings-Menu sightly changed in the task-section.
  • Compability with DolgobonLazyWritCrafter: waiting for DLWC to finish. RbI runs only when DLWC doesn't closes the station. So immediate DLWC and immediate RbI should be compatible now.
  • Auto-Data-Import for functions type and stype. Some keys have slightly changed.
    • type: armor_booster -> booster_armor
    • stype: removed "s_"-prefixes
    • stype: s_eventcontainer -> container_event
  • functions added:
    • needCraftingLevelInOrder: if the character you're logged in is the first one who has a craftingLevel (depending on the item) < 50 it will return true
    • craftingRankCount, which will counts how many characters have the same rank as the required rank for the item. With that we can determine if a ressource is need for daily quests or not. The first argument can be optional the craftingRank otherwise the requiredCraftingRank of the item will be used.
    • collectible: returns true when the item is a collectible item (like a set-item or a stylepage)
    • collected: returns true when an isCollectible already unlocked
    • tradeable: returns true when the item isn't bound in any way

Cumulative change log for version 2.25.0
  • Support for the new deconstruction assistant (thx @AndASM for code and testing)

Cumulative change log for version 2.24.9
  • Settings-Menu: Changed layout and added checkbox, when anyone don't want to use/see "ruleset"-template functionality.
  • Problem with FCOIS 2.2.5 fixed (thx @AndASM for a quickfix)
  • Refactoring: Eso event listening only after complete addon initialization.
  • Changed OnItemUpdate-task order. It's now FCOISMark, Junk, Use, Destroy. So Junk now can react on FCOISMarks.

Cumulative change log for version 2.24.8
  • under some circumstances (like using a container with a treasure map, while having the same treasure map already in the inventory) the UseTask took a long time (~80sec for the 5 retries) till it reports the failure, that the item can not be used. This should be registered much faster now (~5-6sec for the 5 retries).

Cumulative change log for version 2.24.7
  • for (custom-user) functions: enriched the ctx-object with ctx.task = {} and ctx.item = {bag = bag,slot = slot,link = itemLink} which will be completely reset accordingly to their lifecycle.

Cumulative change log for version 2.24.6
  • fixed filter comparison functionality for integer based functions like setId, id, instanceid..

Cumulative change log for version 2.24.5
  • fixed RbI.ConsistencyCheck at the beginning, when also FCOItemSaver is used (thx @AndyDrew for the hint)
  • removed itemLink from Iteminspector, istead the name will be shown

Cumulative change log for version 2.24.4
  • fixed incorrect profile initialization (which could occur under some circumstances)
  • fixed itemdata for the tag-function => cut of encoded language specific pronouns like "^f"

Cumulative change log for version 2.24.2+2.24.3
  • fixing colorized message output

Cumulative change log for version 2.24.1
  • fixed canCraftMasterwrit when no knowledge is needed. Added holidaywrit for stype function.

Cumulative change log for version 2.24.0
  • Selectable chat message color
  • Add task-option for Junk/FCOISMark tasks to also run their counterpart/reverse tasks (when checking an item, on manually task run/test and initial item-check) So we have two task types:
    • one-way marking: like Junk is/was initially designed. Additional manually markings won't be reverted.
    • two-way marking: implicit UnJunk/UnMark tasks will also be executed. Manually markings will be reverted.
  • rule-content limitation to 2000, because eso will not save greater content.

Cumulative change log for version 2.23.3
  • ItemInspector: corrected output for fcoisMarker
  • Fixed: after using and looting a container some consumables weren't checked for further tasks

Cumulative change log for version 2.23.2
  • When there are no rules specified, also the opposite task (UnJunk or FCOISUnmark) should not be called. Accidentally this was the case for new items and the item startup-check.

Cumulative change log for version 2.23.1
  • FCOISMark-tasks now using the constant icon name, so instead of fcoisMarker(1) we're using fcoismarker('lock') now. Just run a test with a wrong marker name and the RuleInspector will show you all static ids and language dependent names.
  • added scrollable for task-selection

Cumulative change log for version 2.23.0
  • added function cancraftmasterwrit, which determines if the current character has everything (knowledge and materials) for a masterwrit (needs addon WritWorthy)
  • support for anonym custom user functions...
    • added function call which will execute a lua-function and returns the return value of the function, like: call(function() d(ctx.itemLink) return false end) or call(function() return IsItemJunk(ctx.bag, ctx.slot) end)
    • populated the global to the ruleExecutionEnvironment. So global functions like IsItemJunk can be used.
    • populated a table-variable 'ctx' to the ruleExecutionEnvironment. So ctx.itemLink, ctx.bag, ctx.slot, ctx.station, ctx.taskName can be used.
    • added setting for activating case-sensitivity for rules. So we can reach all global-functions (and use variables like ctx.itemLink). Normally rules will be lowercased before execution. (After activating it, you have to use the lowercase or the official camel-case function names.)
    • refactored and generalized the multi-character functions (needTraitInOrder, needTrait, needLearnInOrder, needLearn, craftingLevelMin, craftingLevelMax, craftingRankMin, craftingRankMax). The refactoring will also reducing the introducing effort for other multi-character knowledge provider like CraftStore.
  • added task FCOISMark tasks, which automatically sets Fcois-Marker
  • functions id, instanceId, craftingrankRequired, glyphMinLevel and glyphMinCP can now used with arguments and works with arguments as a filter-function. So we can simplify something like id() == 2 or id() == 3 to id(2, 3)
  • added id print out for ItemInspector
  • change function fcoisMarker, when it's used without any argument it will not throw an error anymore. Instead it checks, whether if any marker exists. Additional now it also takes icon-ids (1-45) as argument, like fcoismarker(13) for the first dynamic icon-marker. Strings and iconIds can also be mixed.
  • optional item check after login (can be activated via settings), which checks the following tasks for the backpack: Junk (+Unjunk), Use, Destroy, FCOISMark (+Unmark). So it's the same as you would hit "Run" button for all of these tasks.
  • added "not companion()" as precondition for junk-task

Cumulative change log for version 2.22.4
  • deconstruction task: fixed test-run preview

Cumulative change log for version 2.22.3
  • fixed destroy task execution, when there are no junk or use-task rules defined

Cumulative change log for version 2.22.2
  • added loot-information, for use-task when the item is a container.

Cumulative change log for version 2.22.1
  • fixed: under certain conditions the use-action-output did not trigger

Cumulative change log for version 2.22.0
  • added 'use' task (will be released as 'beta')
    • currently I have tested following itemtypes: fish, container, currency_container, recipe, motif (are there more interesting use-types?)
    • usages will be delayed, when interacting elsewhere (like opened bank/mail/store, swimming, combat, looting)
    • fish-usage also will be delayed when running, because it needs an animation, that won't be executed when running
    • support for automated looting containers, with respecting transmutation crystal limit
  • new function 'usable()', which is used as precondition for the new 'use' task
  • added ItemInspector context menu for itemLinks (like chatLinks, guildtradinghouses, lootwindows, mailattachments)
  • added missing static key (SPECIALIZED_)ITEMTYPE_CONTAINER_CURRENCY for type and sType

Cumulative change log for version 2.21.0
  • added language independent shortnames for function trait. So trait-names like 'training', 'aggressive' can be used regardless of the language and regardless of whether it is armor, weapon or jewelry. Like trait('aggressive') or trait('training')
  • fixed data structure for data-types, especially language dependent for data-type 'trait'. Problem: Different traits (like armor_aggressive, jewelry_aggressive) that are mapping on the same key-name (like aggressive) currently will be overwritten
  • test method dumpWhen(<boolean>, ...) now returns the first argument instead of generally 'false'. For the generally 'false' return value it now gives dumpWhenF(<boolean>, ...)
  • ignoring 'do not translate' in given eso-translations. So they can not be found in dataTypes (like equipType) anymore.

Cumulative change log for version 2.20.0
  • optimized clipboard with title/footer and colorized content, which decides between language dependency and independency.
  • ItemInspector: grouped item charasteristics for gear and crafting-stuff.
  • ItemInspector: added function-listing at the end, which non-parameter functions will return true for an item
  • setId now also works as a filter so setId(1,2,3) will return true/false and setId() without argument will return the setId of the item as it was before.
  • on the other hand the following previous filter functions now return their value when using it without parameters: name(), setName(), creator()
  • workaround for a eso-bug at enchanting station, where a creation crafting-sound wants to be played, on extraction.

Cumulative change log for version 2.19.1
  • fixed ischaracter-function

Cumulative change log for version 2.19.0
  • fixed crowngems-soulgemtype for non-english-clients (they were processed as empty)
  • added filterType-function, which can itself have mutliple values for an item (like "armor" and "companion"), if only one argument matches one of the rule inputs the function will return true
  • added simplification function companion() for "filterType('companion')"
  • added companion trait types (aggressive...)

Cumulative change log for version 2.18.2
  • Fixed ItemInspector throwing error when not having CraftStore installed

Cumulative change log for version 2.18.1
  • Fixes the character-name validation
  • craftType(...) is not a simplifaction of "gearCraftingType(...) or recipeCraftingType(...)" anymore. It now works on craftingTypeGet()-function, which also delivers craftingType for raw jewelrytraits.

Cumulative change log for version 2.18.0
  • When running a rule test, the items from the craftbag also will be included now
  • changed gear() from "not equipType('none')" to "not equipType('none', 'poison', 'costume')"
  • added craftingTypeGet-Retrieval for "material_raw_jewelrytrait", because GetItemLinkCraftingSkillType returns 0 for them. Traits can not be assigned to craftingType in general, like armor-traits or weapon-traits.
  • New functions...
    • craftingTypeGet():string, Determines the craftingType of an item. Is used internally as default for the following crafting-functions.
    • craftingExtractBonus():int[0-3], which looks at the crafting skillline regarding extract/deconstruct skill
    • craftingRank():int[0-10], returns the rank of the craftingType
    • craftingRankMin(List<Charnames>):int[0-10], returns the minimum craftingRank over all given characters.
    • craftingRankMax(List<Charnames>):int[0-10], returns the maximum craftingRank over all given characters.
    • craftingRankRequired():int, which determines the required crafting rank for a material item
    • cSkillSpent(championStarName):int, returns the skill points spent on this star
    • cSkill(championStarName):int, return, if it is a slotable star it returns the skill points spent on this star, otherwise 0. So it returns only really used skill points.
    • cSkillSlotted(championStarName):bool, returns, whether the skill is currently slotted
    • cSkillSlotable(championStarName):bool, returns, whether the skill is 'TypeSlotable' and has enough points.
    • cSkillTypeSlotable(championStarName):bool, returns, whether the skill can be slotted in general
  • added more data for the ItemInspector including 'setId' and 'setName'
  • Hint: The refinement task with a rule with "cSkillSlotted('meticulousdisassembly') and craftingExtractBonus() == 3" ensures that you refine only with the best possible results. It works also with deconstruction/extraction, but of course for this tasks we have to define what gear/glyph should be deconstructed/extracted in the first place.

Cumulative change log for version 2.17.0
  • Optimized error handling and better feedback to the user due to Stacktracing!! for the rule/function environment (inclusive the list of used arguments), with hints what is wrong and which should be used instead. Just write and test a wrong rule stype("bla") or stttttype() or completely emtpy rule to see it :) Works also with new "rule"-function (see below) (btw.: Max-Stacktrace size is currently set to 30)
  • New functions...
    • gearCraftingType(<craftingTypes>). Select gear for a given crafting-type. (like gearCraftingType("woodworking"))
    • recipeCraftingType(<craftingTypes>). Select recipes for a given crafting-type. (like recipeCraftingType("blacksmithing"))
    • craftingType(<craftingTypes>), simplification function for "gearCraftingType(...) or recipeCraftingType(...)"
    • craftingLevel(optionalCraftingType):int[0-50] same as skilllinelevel (which is now marked as deprecated), but allow to leave out the argument. The "craftingType" (gear and recipes) will be automatically determined from the item.
    • craftinglevelmin(<charNames>):int[0-50], craftinglevelmax(charNames):int[0-50]. Returns the "craftinglevel" over all given characters (Requires CraftStore addon)
    • simplification function gear() for not equipType("none")
    • simplification function fragment() for sType("key_fragment", "recipe_fragment", "runebox_fragment", "collectible_fragment", "upgrade_fragment")
    • simplificationfunction glyph() for type("glyph_armor", "glyph_jewelry", "glyph_weapon")
    • rule("ruleName"):bool (an allias for rule is "_", so _("myRule") is also fine), which will call the given rule.
  • Test functions... (functions for testing purposes)
    • dump(output-expression) and dumpWhen(boolean-expression, output-expression), like dump(craftingType()) or dumpWhen(not craftingType("none"), craftinglevel()). When testing the rule, the outputs will written for each testing item.
    • ensure("rule-expression") like ensure("gear()"). Will throw an error when wrong items reach the ensurance function.
  • Renaming for rules. This will rename the rule itself and update the references in characters/profiles and rulesets. But it can not update the names when the rule is used from another rule via rule("myRule1")-function.

Cumulative change log for version 2.16.1
  • fixed an issue when laundering craftbag materials while having active esoplus

Cumulative change log for version 2.16.0
  • Trigger
    • Junk/Destroy-tasks are also triggered when an item state change (not only for new items). So now "junked()" can be used in a destroy rule and we can react on manually-junked items by the user.
    • CraftToBag-task now also triggers after the game had run his auto-transfer-to-craftbag-routine.
  • Character-related and CraftStore rules
    • Motif/style support for needlearn(...) and needlearninorder(...) including stylepages, -chapters, and -books
    • Introduced a inner-variable "defaultchars", which is automatically filled with all your characternames. So we can use 'needlearn(defaultchars)' (same for needlearninorder, needtraitinorder, needtrait) [The feature for self defining this variable is in the pipe.]
    • When using needlearninorder and needtraitinorder without an argument, the 'defaultchars'-list will be used (The default for needlearn and needtrait remains with the current logged in character).
    • A hint will be given, when using '...inorder'-functions with only one charname argument. Performance-wise it would be better to use the function without 'inorder'.
    • Character names will now ensure that all character data are correctly written and also available in craftstore. If you're getting an missingCraftStoreCharacter error, you have to relog into the specified character.
  • Item inspection via context menu
    • Fixed the output and inner-variable for style() combined with monstersets. Now it's really "undaunted".
    • Now all valid values will be shown (the fixed key-values and also the language dependent ones, which were introduced with version 2.15.1)
    • Errors now will be printed to clipboard
  • Clipboard-UI
    • Item inspector now prints the output to this separate "clipboard"-window (where you can scroll and strg+c).
    • Errors are also will be printed into this clipboard. Additionally argument-errors will also print all valid arguments.
  • Updated some tooltips in general settings (p.e. "Safety Rule" tooltip now shows directly the inner safety rule and to which tasks it will be applied)
  • Checked Blackwood API compatibility

Cumulative change log for version 2.15.3
  • fixed taskStartOutput setting not being used, thanks Friday_The13_rus!

Cumulative change log for version 2.15.2
  • fixed FCOIS issue when ControllerUI is enabled but FCOIS (which wouldn't work) isn't active or even installed

Cumulative change log for version 2.15.1
  • updated for Flames of Ambition API
  • added checking for ControllerUI which would make FCOIS functions unsound
  • new general setting: immediate execution at crafting stations. you now don't have to click on the deconstruction or refinement tab to start the task! just enable in menu
  • added function reconstructed() for getting items which where crafted via transmutation
  • added functions esoplus() and ischaracter() implemented by MegwynW
  • function inputs are now gathered from within the game where possible. Thus it is in your clients language and for now I won't provide a list of those. Please use the context menu to get the correct inputs. The previous data is left as legacy data and your rules will work normally. But new e.g. styles like "welkynar" (yes long time no update to the data) and sTypes like "toy" are added now, but exactly these will be in your clients language!

Cumulative change log for version 2.10.3
  • corrected unforeseen consequences of quickslotted function as the value needed to be stored in item lookup to be save to interleave tasks
  • excluded ingame-locked items from junking as it isn't possible anyway
  • excluded non-sellable items from selling

Cumulative change log for version 2.10.0
  • added function quickslotted (brilliant idea (and even implementation) by Random!)

Cumulative change log for version 2.9.2
  • for materials level function now returns highest craftable gear level
  • for materials cp function now returns highest craftable gear champion point level
  • for raw materials level and cp functions will refer to the materials refined form
  • added cp and level to context menu output

Cumulative change log for version 2.8.0
  • updated for Markarth API
  • added function freeSlots
  • added function setCollection
  • added function setItemCollected

Cumulative change log for version 2.7.0
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 (84)
File Name
Version
Size
Uploader
Date
2.30.2
105kB
otac0n
08/24/23 01:04 PM
2.30.1
105kB
otac0n
06/19/23 05:03 PM
2.30.0
105kB
otac0n
06/18/23 09:04 PM
2.29.13
110kB
otac0n
05/07/23 09:49 AM
2.29.12
110kB
otac0n
05/02/23 08:45 PM
2.29.11
104kB
otac0n
03/19/23 05:26 PM
2.29.10
102kB
TaxTalis
02/05/23 07:07 AM
2.29.9
103kB
demawi
11/06/22 10:23 AM
2.29.8
102kB
demawi
11/02/22 04:15 PM
2.29.7
102kB
demawi
08/29/22 06:13 PM
2.29.6
102kB
demawi
07/19/22 01:40 PM
2.29.5
102kB
demawi
07/17/22 05:10 AM
2.29.4
102kB
demawi
07/16/22 04:34 AM
2.29.3
102kB
demawi
07/14/22 05:11 AM
2.29.2
102kB
demawi
07/07/22 04:22 AM
2.29.1
102kB
demawi
07/01/22 04:30 PM
2.29.0
103kB
demawi
06/23/22 02:29 PM
2.28.1
96kB
demawi
06/06/22 01:11 PM
2.28.0
96kB
demawi
05/22/22 09:44 AM
2.27.3
92kB
demawi
05/16/22 02:31 AM
2.27.2
92kB
demawi
05/15/22 01:37 PM
2.27.1
92kB
demawi
05/11/22 02:14 PM
2.27.0
92kB
demawi
05/10/22 02:16 PM
2.26.2
76kB
TaxTalis
04/24/22 02:06 PM
2.26.1
75kB
demawi
04/23/22 11:55 AM
2.26.0
75kB
demawi
04/23/22 11:20 AM
2.25.0
71kB
demawi
04/10/22 11:51 AM
2.24.9
71kB
demawi
04/06/22 02:50 PM
2.24.8
70kB
demawi
02/02/22 11:07 AM
2.24.7
70kB
demawi
01/26/22 07:21 PM
2.24.6
70kB
demawi
01/19/22 03:20 PM
2.24.5
70kB
demawi
12/04/21 05:47 AM
2.24.4
70kB
demawi
09/06/21 05:43 AM
2.24.3
70kB
demawi
08/12/21 02:49 AM
2.24.2
70kB
demawi
08/10/21 10:36 AM
2.24.1
70kB
demawi
07/31/21 09:04 AM
2.24.0
70kB
demawi
07/30/21 04:02 PM
2.23.3
69kB
demawi
07/17/21 08:23 AM
2.23.2
69kB
demawi
07/15/21 05:07 PM
2.23.1
69kB
demawi
07/15/21 04:45 PM
2.23.0
69kB
demawi
07/15/21 07:38 AM
2.22.4
65kB
demawi
07/01/21 10:46 AM
2.22.3
65kB
demawi
06/28/21 04:29 AM
2.22.2
65kB
demawi
06/26/21 12:33 PM
2.22.1
65kB
demawi
06/26/21 09:06 AM
2.22.0
65kB
demawi
06/24/21 04:01 AM
2.21.0
62kB
demawi
06/09/21 12:27 PM
2.20.0
61kB
demawi
06/07/21 10:11 AM
2.19.1
59kB
demawi
06/02/21 01:33 PM
2.18.2
58kB
demawi
05/30/21 07:31 AM
2.18.1
58kB
demawi
05/28/21 08:40 AM
2.18.0
58kB
demawi
05/28/21 03:08 AM
2.17.0
54kB
demawi
05/22/21 06:46 AM
2.16.1
46kB
demawi
05/14/21 03:00 PM
2.16.0
46kB
demawi
05/13/21 09:25 AM
2.15.3
42kB
demawi
02/23/21 01:36 AM
2.15.2
42kB
TaxTalis
02/22/21 09:42 AM
2.15.1
42kB
TaxTalis
02/21/21 03:30 PM
2.10.3
39kB
TaxTalis
11/25/20 11:12 AM
2.10.0
38kB
TaxTalis
11/18/20 04:18 PM
2.9.2
38kB
TaxTalis
11/15/20 06:25 AM
2.8.0
38kB
TaxTalis
11/08/20 07:46 AM
2.7.0
38kB
TaxTalis
10/11/20 11:54 AM
2.6.0
38kB
TaxTalis
09/09/20 06:01 AM
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 04/23/22, 11:21 AM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
With todays new version 2.16 and the automated constant reading some 'type's and 'stype's have changed:

type
'armor_booster' => 'booster_armor'
'itemtype_deprecated' => 'deprecated'

Added:
'none' additionally to 'typeless'
'deprecated_2'
'recall_stone'
'group_repair'
stype
's_additiv' => 'additive'
's_ingridient_food_additiv' => 'ingredient_food_additive'
's_ingridient_drink_additiv' => 'ingredient_drink_additive'
's_eventcontainer' => 'container_event'

removed generally the 's_'-prefix:
's_material_weapontrait' => 'material_weapontrait'
's_soulgem' => 'soulgem'
's_material_refined_jewelrytrait' => 'material_refined_jewelrytrait'
's_booster_blacksmithing' => 'booster_blacksmithing'
's_disguise' => 'disguise'
's_dyestamp' => 'dyestamp'
's_material_refined_blacksmithing' => 'material_refined_blacksmithing'
's_spice' => 'spice'
's_lockpick' => 'lockpick'
's_material_refined_style' => 'material_refined_style'
's_booster_enchantment' => 'booster_enchantment'
's_material_raw_style' => 'material_raw_style'
's_fish' => 'fish'
's_material_refined_jewelry' => 'material_refined_jewelry'
's_material_raw_clothier' => 'material_raw_clothier'
's_aspect' => 'aspect'
's_trash' => 'trash'
's_avarepair' => 'avarepair'
's_armor' => 'armor'
's_glyph_weapon' => 'glyph_weapon'
's_material_armortrait' => 'material_armortrait'
's_booster_raw_jewelry' => 'booster_raw_jewelry'
's_booster_woodworking' => 'booster_woodworking'
's_material_raw_jewelrytrait' => 'material_raw_jewelrytrait'
's_tabard' => 'tabard'
's_masterwrit' => 'masterwrit'
's_material_raw_woodworking' => 'material_raw_woodworking'
's_potion' => 'potion'
's_material_refined_clothier' => 'material_refined_clothier'
's_crownrepair' => 'crownrepair'
's_flavoring' => 'flavoring'
's_lure' => 'lure'
's_mount' => 'mount'
's_potion_base' => 'potion_base'
's_booster_weapon' => 'booster_weapon'
's_potency' => 'potency'
's_costume' => 'costume'
's_poison_base' => 'poison_base'
's_material_raw_blacksmithing' => 'material_raw_blacksmithing'
's_booster_refined_jewelry' => 'booster_refined_jewelry'
's_plug' => 'plug'
's_essence' => 'essence'
's_crownitem' => 'crownitem'
's_glyph_jewelry' => 'glyph_jewelry'
's_container' => 'container'
's_glyph_armor' => 'glyph_armor'
's_material_upgrader' => 'material_upgrader'
's_booster_clothier' => 'booster_clothier'
's_material_raw_jewelry' => 'material_raw_jewelry'
's_material_refined_woodworking' => 'material_refined_woodworking'
's_tool' => 'tool'
's_treasure' => 'treasure'
's_poison' => 'poison'
's_weapon' => 'weapon'
's_booster_armor' => 'booster_armor'

Added:
'none' additionally to 'typeless'
'recall_stone_keep'
'group_repair'
'stylepage'
'dungeon_buff_ingredient'
'lancer'
'furnishing_attunable_station'
'container_stylepage'
Report comment to moderator  
Reply With Quote
Unread 04/12/22, 07:10 PM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
I also have a lot multi-character usage. Different storage-Twinks that hold different types of items.
That can be very complex. But I'm simplifying it more and more. I went the way that any Task only have one "root-rule" and over all characters it's the same root-rule. The advantage is, that rules are saved globally and can be edited from any character. Any item that is interested in sharing of any character will be in the Bag2Bank-task. Any character that want (for storage or usage) has it's condition in the Bank2Bag -task. He also wants to add the sharing items. But Bank2Bag is prioritized over that.
Also the usage of the "rule" (or "_")-function is very handy, with this I define predicates for different actions. Like my rule _("$BestExtractor") is defined as
Code:
cSkillSlotted("meticulousdisassembly") and craftingExtractBonus() == 3
or my root-rule "#Deconstruct/Extract" rule is defined as
Code:
_("$Extract4Learning") or 
not _("$CraftLearnGenerally") and _("$Extract4Resources")
or my root-rule "#Bank2Bag" begins as
Code:
_("#Sell")
or needLearnInOrder(defaultchars)
or ischaracter("Borexxar") and (type("furnishing"))
or ischaracter("Don Borex")...
My root-rule #Bag2Bank currently is
Code:
material()
or type("masterwrit", "recipe", "furnishing", "motif")
or stype("survey")
or gear() and junked() and _("$CraftLearnGenerally")
or glyph() and not crafted() and craftinglevelmin() < 50
or fragment()
or name("Analyseschrift")
or type("trophy")
Note: I do not auto-sell any junked items. I only use it as marker. RbI can do with a junked item what it wants: learn for any character, extract/deconstruct, sell, destroy. FCOISMark tasks I'm using to mark what an item is intended for (learn, analyze, deconstruct, sell). Looted set-items on my main char, won't be marked as junk in general, for most set-items I want to decide myself. But the items I don't want to use I only have to mark manually as junk. After that RbI can decide what to do with it
Because companion gear can not been junked, I need a slightly different solution for those.

Because RbI allows a lot of ways to fullfill the players desires (FCOIS allow even more ways), I'm also interested in any examples. I will check the wiki examples soon, perhaps I can add or change some examples.
Auto creation (as "construct") is also on the roadmap, but is of course a completely new field for RbI. Currently we only check the items we have and not the we want


Originally Posted by Akopian Atrebates
I think I used a lot of cross character rules by using dynamic FCOIS icons assigned to specific characters. I had one for each character and then when I went to the bank, anything designated for a different character would be off-loaded and anything in the bank for that specific character would be taken out. That allowed cross-crafting and such. By using FCOIS Gear icons I was also able to utilize some characters as storage for different items that might be of interest to such characters as mana builds or stamina builds, or whatever. I kind of felt like creatively using FCOIS with ItemTrig I was able to get around difficulties.

However, I can see where it would be nice to get even more complex with cross character rules. For instance, if I knew that the inventory for a particular potion was low on character B, wouldn't it be nice when I went to the alchemy crafting station for Character A, it would just automatically create more potions for character B.

I have not really tried to do that with your addon as I am not comfortable messing around with the rules. Maybe I should just dig in and try to figure it all out! Just afraid of messing up really badly! I guess if I had some good examples of how to build good rule sets, then I might feel a little better about doing it. I sort of think it would be nice to have a discord where people posted examples of stuff they had tried out. Then I would have someplace to start and could contribute my own ideas too!

Edit: I saw that there were "example rules" in a deprecated part of the wiki. I KNEW that there were examples but cold not find them after revisiting your addon. Anyway, maybe I can get my feet wet that way. Still, it would be nice for everybody to be able to post their best rules somewhere.

I really like the idea of complete control over all of this! Exciting but a little daunting.



Originally Posted by demawi
Originally Posted by Akopian Atrebates
I am glad that somebody is working on a project like this. Slowly, the one I currently use, ItemTrig is becoming unusable due to incompatibilities. Before that, I used inventory manager until it became unusable.

Strangely, with each new inventory management addon I see, though the flexibility and range of actions you can take expands, the interface becomes more difficult to use. I am just wondering if there is some way of contacting the old authors or at least looking at them to provide a little more usability.

Some of the routines I had developed in ItemTrig were quite complex and reliably reproducing equivalents has been quite daunting due to how exact I have to be when typing out long rules.

Anyway, just a thought. Obviously, this is a lot of work, and I myself, HATE, to work on interfaces for anything. So I certainly understand not wanting to work on creating an easy to use interface. What I think would be really nice would be for somebody to collaborate a little with you on this like one of the authors of older addons that did the same thing. I would do it if I had the skills! What your addon does is vital in my opinion! Saves hours of wasted inventory management time.
Before I took over the project I also tested both addons RulebasedInventory and ItemTrig. Sure the ItemTrig interface is really nice, but I missed too much base functionality. And it didn't give me a good overview of my complex cross-character rules at all. So it needs an interface which will help to create rules but didn't hide any functionality nor overview. Some helpful interface additions would be really nice, but currently I don't have a vision for that. If someone else have ideas or implementations to contribute of course that would be nice/helpful.
Last edited by demawi : 04/13/22 at 03:37 AM.
Report comment to moderator  
Reply With Quote
Unread 04/12/22, 06:21 PM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
Re: Auto Category - Revised

Originally Posted by Teva
Does this work with Auto Category - Revised or only the original Auto Category that hasn't been updated since 2018?
Since the original is outdated. Auto Category - Revised should be used. Haven't seen any incompabilities. I'm also using Auto Category - Revised.
Report comment to moderator  
Reply With Quote
Unread 04/12/22, 06:19 PM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
Originally Posted by Baertram
Just a hint: If you increase the version in the txt file you should also increas the tag AddOnVersion to the matching new major version, so other addons can add their dependencies to particular versions properly
## AddOnVersion: 224
-> ## AddOnVersion: 225

Does not always make sense if e.g. no new features are added. But IF new features are added the version of AddOnVersion e.g. prevents other addons to load if "the base" (your particular new version of the addon) is missing.
Sure! seems I missed it this time. Normally AddonVersion uses major+major-version.
Report comment to moderator  
Reply With Quote
Unread 04/12/22, 03:54 AM  
Akopian Atrebates

Forum posts: 9
File comments: 230
Uploads: 0
I think I used a lot of cross character rules by using dynamic FCOIS icons assigned to specific characters. I had one for each character and then when I went to the bank, anything designated for a different character would be off-loaded and anything in the bank for that specific character would be taken out. That allowed cross-crafting and such. By using FCOIS Gear icons I was also able to utilize some characters as storage for different items that might be of interest to such characters as mana builds or stamina builds, or whatever. I kind of felt like creatively using FCOIS with ItemTrig I was able to get around difficulties.

However, I can see where it would be nice to get even more complex with cross character rules. For instance, if I knew that the inventory for a particular potion was low on character B, wouldn't it be nice when I went to the alchemy crafting station for Character A, it would just automatically create more potions for character B.

I have not really tried to do that with your addon as I am not comfortable messing around with the rules. Maybe I should just dig in and try to figure it all out! Just afraid of messing up really badly! I guess if I had some good examples of how to build good rule sets, then I might feel a little better about doing it. I sort of think it would be nice to have a discord where people posted examples of stuff they had tried out. Then I would have someplace to start and could contribute my own ideas too!

Edit: I saw that there were "example rules" in a deprecated part of the wiki. I KNEW that there were examples but cold not find them after revisiting your addon. Anyway, maybe I can get my feet wet that way. Still, it would be nice for everybody to be able to post their best rules somewhere.

I really like the idea of complete control over all of this! Exciting but a little daunting.



Originally Posted by demawi
Originally Posted by Akopian Atrebates
I am glad that somebody is working on a project like this. Slowly, the one I currently use, ItemTrig is becoming unusable due to incompatibilities. Before that, I used inventory manager until it became unusable.

Strangely, with each new inventory management addon I see, though the flexibility and range of actions you can take expands, the interface becomes more difficult to use. I am just wondering if there is some way of contacting the old authors or at least looking at them to provide a little more usability.

Some of the routines I had developed in ItemTrig were quite complex and reliably reproducing equivalents has been quite daunting due to how exact I have to be when typing out long rules.

Anyway, just a thought. Obviously, this is a lot of work, and I myself, HATE, to work on interfaces for anything. So I certainly understand not wanting to work on creating an easy to use interface. What I think would be really nice would be for somebody to collaborate a little with you on this like one of the authors of older addons that did the same thing. I would do it if I had the skills! What your addon does is vital in my opinion! Saves hours of wasted inventory management time.
Before I took over the project I also tested both addons RulebasedInventory and ItemTrig. Sure the ItemTrig interface is really nice, but I missed too much base functionality. And it didn't give me a good overview of my complex cross-character rules at all. So it needs an interface which will help to create rules but didn't hide any functionality nor overview. Some helpful interface additions would be really nice, but currently I don't have a vision for that. If someone else have ideas or implementations to contribute of course that would be nice/helpful.
Last edited by Akopian Atrebates : 04/12/22 at 03:59 AM.
Report comment to moderator  
Reply With Quote
Unread 04/10/22, 07:12 PM  
Teva
 
Teva's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 162
Uploads: 1
Auto Category - Revised

Does this work with Auto Category - Revised or only the original Auto Category that hasn't been updated since 2018?
Report comment to moderator  
Reply With Quote
Unread 04/10/22, 12:26 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4993
File comments: 6047
Uploads: 78
Just a hint: If you increase the version in the txt file you should also increas the tag AddOnVersion to the matching new major version, so other addons can add their dependencies to particular versions properly
## AddOnVersion: 224
-> ## AddOnVersion: 225

Does not always make sense if e.g. no new features are added. But IF new features are added the version of AddOnVersion e.g. prevents other addons to load if "the base" (your particular new version of the addon) is missing.
Report comment to moderator  
Reply With Quote
Unread 04/07/22, 05:20 AM  
Zulunia
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally Posted by demawi
thx for your reports and sry for the inconvenience.
I will look into it immediately.

The new constants FCOIS_CON_ICON_SUFFIX_COLOR and FCOIS_CON_ICON_SUFFIX_NAME in FCOIS broke the automatic icon-id determination :-o

thx @AndASM for your investigation and quickfix.
No inconvenience at all ! Thanks for sorting it, everything seems to be working fine now !

Thanks again for a great addon!
Report comment to moderator  
Reply With Quote
Unread 04/06/22, 01:35 PM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
thx for your reports and sry for the inconvenience.
I will look into it immediately.

The new constants FCOIS_CON_ICON_SUFFIX_COLOR and FCOIS_CON_ICON_SUFFIX_NAME in FCOIS broke the automatic icon-id determination :-o

thx @AndASM for your investigation and quickfix.
Last edited by demawi : 04/06/22 at 02:01 PM.
Report comment to moderator  
Reply With Quote
Unread 04/06/22, 12:40 PM  
AndASM

Forum posts: 0
File comments: 1
Uploads: 0
Re: Errors after APR6 maintenance

Originally Posted by Zulunia
After todays maintenance I updated all addons, and was getting several errors and loss of functionality on load :
[...]
Love this addon thankyou so much for making it!
The problem is a new constant FCOIS_CON_ICON_SUFFIX_NAME and similar. It's poorly named. RulebasedInventory expects constants starting with FCOIS_CON_ICON_ to be icon id numbers. Not other random things.

On that Data.lua line 224 error, you need to check that value is a number before checking if it's greater than zero. Adding type(value) == "number" and before the value > 0.

Or in longer form:

You can correct it by finding this text at line 222 in Modules/Data.lua:

Lua Code:
  1. constantReader.addCallback('FCOIS_CON_', 'FCOIS_CON_ICON_(.*)',
  2.     function(key, value, origKey)
  3.         if(value > 0) then
  4.             result[key:lower()] = value
  5.             ids[value] = key:lower()
  6.         end
  7.     end
  8. )

Then change this:
Lua Code:
  1. if(value > 0) then
to be
Lua Code:
  1. if(type(value) == "number" and value > 0) then
Report comment to moderator  
Reply With Quote
Unread 04/06/22, 07:57 AM  
Zulunia
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Errors after APR6 maintenance

After todays maintenance I updated all addons, and was getting several errors and loss of functionality on load :

1
Code:
user:/AddOns/RulebasedInventory/Modules/Data.lua:224: operator < is not supported for number < string
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Data.lua:224: in function 'callback'
<Locals> key = "SUFFIX_COLOR", value = "color", origKey = "FCOIS_CON_ICON_SUFFIX_COLOR" </Locals>
user:/AddOns/RulebasedInventory/classes/Utilities.lua:74: in function 'callback'
<Locals> key = "FCOIS_CON_ICON_SUFFIX_COLOR", value = "color", baseKey = "FCOIS_CON_", callbackFns = [table:1]{}, regex = "FCOIS_CON_ICON_(.*)", callback = user:/AddOns/RulebasedInventory/Modules/Data.lua:223, match = "SUFFIX_COLOR" </Locals>
user:/AddOns/RulebasedInventory/classes/Utilities.lua:31: in function 'utils.readConstants'
<Locals> regex = "(.*)", callback = user:/AddOns/RulebasedInventory/classes/Utilities.lua:67, constants = [table:2]{}, key = "FCOIS_CON_ICON_SUFFIX_COLOR", value = "color", match = "FCOIS_CON_ICON_SUFFIX_COLOR" </Locals>
user:/AddOns/RulebasedInventory/classes/Utilities.lua:40: in function 'utils.readConstantsAll'
<Locals> callback = user:/AddOns/RulebasedInventory/classes/Utilities.lua:67 </Locals>
user:/AddOns/RulebasedInventory/classes/Utilities.lua:67: in function 'read'
user:/AddOns/RulebasedInventory/Modules/Data.lua:877: in function '(main chunk)'
<Locals> RbI = [table:3]{testrun = F, addonVersion = "2.24.8", savedVariableVersion = 2, CONTEXT_MENU_ENTRY = "RbI: Inspect Item", title = "Rulebased Inventory", wikiLink = "https://gitlab.com/taxtalis/ru...", NaN = -nan(ind), author = "TaxTalis, demawi", FIT_ALL = 1, FIT_ANY = 2, name = "RulebasedInventory", websiteComments = "https://www.esoui.com/download...", savedGlobalVariableVersion = 2, website = "https://www.esoui.com/download...", discord = "https://discord.gg/Y68mA3fkky...", startTime = 828946}, dataTypeStatic = [table:4]{}, itemCatalog = [table:5]{}, utils = [table:6]{}, dataTypeHandler = [table:7]{}, registerDataType = user:/AddOns/RulebasedInventory/Modules/Data.lua:86, removePrefix = user:/AddOns/RulebasedInventory/Modules/Data.lua:93, constantReader = [table:8]{}, switchName = user:/AddOns/RulebasedInventory/Modules/Data.lua:396, lvl = 0, cp = 50, RequirementSkillLevel1 = [table:9]{1 = 1}, RequirementSkillLevel2 = [table:10]{1 = 16}, RequirementSkillLevel3 = [table:11]{1 = 26}, RequirementSkillLevel4 = [table:12]{1 = 36}, RequirementSkillLevel5 = [table:13]{1 = 46}, RequirementSkillLevel6 = [table:14]{1 = 60}, RequirementSkillLevel7 = [table:15]{1 = 90}, RequirementSkillLevel8 = [table:16]{1 = 120}, RequirementSkillLevel9 = [table:17]{1 = 140} </Locals>
2
Code:
user:/AddOns/RulebasedInventory/Modules/DataCollected.lua:65: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/DataCollected.lua:65: in function '(main chunk)'
<Locals> RbI = [table:1]{testrun = F, addonVersion = "2.24.8", savedVariableVersion = 2, CONTEXT_MENU_ENTRY = "RbI: Inspect Item", title = "Rulebased Inventory", wikiLink = "https://gitlab.com/taxtalis/ru...", NaN = -nan(ind), author = "TaxTalis, demawi", FIT_ALL = 1, FIT_ANY = 2, name = "RulebasedInventory", websiteComments = "https://www.esoui.com/download...", savedGlobalVariableVersion = 2, website = "https://www.esoui.com/download...", discord = "https://discord.gg/Y68mA3fkky...", startTime = 828946}, collected = [table:2]{}, utils = [table:3]{}, dataTypeHandler = [table:4]{}, CollectByIterator = user:/AddOns/RulebasedInventory/Modules/DataCollected.lua:24, CollectSpecials = user:/AddOns/RulebasedInventory/Modules/DataCollected.lua:50 </Locals>
3
Code:
user:/AddOns/RulebasedInventory/Modules/Task.lua:505: operator .. is not supported for string .. nil
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Task.lua:505: in function 'RbI.GenerateTasks'
<Locals> languageData = [table:1]{Deconstruction = 9, Gear 4 = 7, Gear 3 = 6, Improvement = 10, Gear 2 = 4, Gear 5 = 8, Gear 1 = 2, Selling = 5, Research = 3, Lock = 1}, maxIconNr = 15, iconNr = 11 </Locals>
user:/AddOns/RulebasedInventory/RulebasedInventory.lua:112: in function '(anonymous)'
<Locals> event = 65536, addonName = "RulebasedInventory", thisCharacterSetting = [table:2]{}, allCharactersSettings = [table:3]{}, character = [table:4]{} </Locals>

Likely unrelated:
Code:
Error parsing Bindings XML[bindings.xml(line 0)]: Error=XML_ERROR_EMPTY_DOCUMENT ErrorID=13 (0xd) Line number=0
Appears to be related to FCOIS which was updated today to 2.2.5

Didnt have a lot of time to track down, I deleted both RBI and FCOIS savedvariables and the error persisted, it wasn't until I rolled FCOIS back to 2.2.4 that things were back to normal.

Workaround: Rollback FCOIS to 2.2.4 https://www.esoui.com/downloads/getf...=630&aid=38187

If I notice anything else I'll be sure to update here, not sure if it's a FCOIS issue there's no comments there relating to problems today

edit: just noticed when looting I'm also getting
Code:
user:/AddOns/RulebasedInventory/Modules/Event.lua:35: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Event.lua:35: in function 'OnSlotUpdate'
<Locals> eventCode = 131226, bag = 1, slot = 1, isNewItem = T, itemSoundCategory = 27, inventoryUpdateReason = 0, stackCountChange = 1 </Locals>

Love this addon thankyou so much for making it!
Last edited by Zulunia : 04/06/22 at 08:01 AM.
Report comment to moderator  
Reply With Quote
Unread 03/24/22, 06:33 PM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
Originally Posted by FlopsyPrince
Originally Posted by demawi
Originally Posted by FlopsyPrince
I am getting this error on some characters now:

user:/AddOns/RulebasedInventory/Modules/Event.lua:35: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Event.lua:35: in function 'OnSlotUpdate'
Hmm.. that's a weird location. Only once after loading a character or several times when you're playing that character?
If it occurs on one character, does it always happen on that character, after you logged into that character, or sometimes yes somtimes no?
Just once on loading my first character on EU. I can do a /reloadui and I do not get it. I do not recall seeing it on any of my other characters on EU. It does not happen on my full set of characters on NA.

I do not have any rules, in case that is why. Running "Test" for the selected rule generates a different error.
hmm.. it seems you're getting an OnSlotUpdate-Event during the addon-loading process. Don't know how this could happen, but I will check a solution.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 09:30 PM  
FlopsyPrince

Forum posts: 7
File comments: 105
Uploads: 0
Originally Posted by demawi
Originally Posted by FlopsyPrince
I am getting this error on some characters now:

user:/AddOns/RulebasedInventory/Modules/Event.lua:35: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Event.lua:35: in function 'OnSlotUpdate'
Hmm.. that's a weird location. Only once after loading a character or several times when you're playing that character?
If it occurs on one character, does it always happen on that character, after you logged into that character, or sometimes yes somtimes no?
Just once on loading my first character on EU. I can do a /reloadui and I do not get it. I do not recall seeing it on any of my other characters on EU. It does not happen on my full set of characters on NA.

I do not have any rules, in case that is why. Running "Test" for the selected rule generates a different error.

An error occured in rule Gear2Bank:
|cff0000Syntax error or unknown term.|r

Rulecontent:



Following constants/functions can be used:
>>Constants<<
defaultchars = 'Flopsy Princess', 'Silent Flopsy', 'Flopsy Warden', 'Flopsy Bamden'

>>Functions<<
_
armor_blacksmithing
armor_clothier
armorType
armortype
armortypegetvalue
armorTypeGetValue
autoCategory
autocategory
back
bag
baggetvalue
bagGetValue
bindtype
bindType
bindtypegetvalue
bindTypeGetValue
bound
call
cancraftmasterwrit
canCraftMasterwrit
canDeconstruct
candeconstruct
canextract
canExtract
canRefine
canrefine
companion
costpervoucher
costPerVoucher
countbackpack
countBackpack
countbank
countBank
countcraftbag
countCraftbag
countStack
countstack
countStackMax
countstackmax
cp
crafted
craftingextractbonus
craftingExtractBonus
craftinglevel
craftingLevel
craftingLevelMax
craftinglevelmax
craftingLevelMin
craftinglevelmin
craftingRank
craftingrank
craftingRankMax
craftingrankmax
craftingRankMin
craftingrankmin
craftingrankRequired
craftingrankrequired
craftingType
craftingtype
craftingtypegetvalue
craftingTypeGetValue
creator
crowncrate
crownCrate
crowngems
crownGems
crownStore
crownstore
cskill
cSkill
cSkillSlotable
cskillslotable
cskillslotted
cSkillSlotted
cSkillSpent
cskillspent
cSkillTypeSlotable
cskilltypeslotable
dump
dumpwhen
dumpWhen
dumpWhenF
dumpwhenf
ensure
equipType
equiptype
equipTypeGetValue
equiptypegetvalue
esoplus
fail
fcoismarker
fcoisMarker
fcoisPermission
fcoispermission
filtertype
filterType
filtertypegetvalue
filterTypeGetValue
fragment
freeslots
gear
gearcraftingtype
gearCraftingType
gearCraftingTypeGetValue
gearcraftingtypegetvalue
glyph
glyphMinCP
glyphmincp
glyphminlevel
glyphMinLevel
id
instanceId
instanceid
ischaracter
item_blacksmithing
item_clothier
item_enchanting
item_jewelry
item_woodworking
junked
level
locked
material
material_alchemy
material_blacksmithing
material_booster
material_clothier
material_enchantment
material_jewelry
material_jewelrytrait
material_raw
material_raw_booster
material_raw_trait
material_refined
material_refined_booster
material_refined_trait
material_style
material_trait
material_woodworking
motifKnown
motifknown
name
needlearn
needLearn
needLearnInOrder
needlearninorder
needtrait
needTrait
needTraitInOrder
needtraitinorder
price
quality
qualitygetvalue
qualityGetValue
quickslotted
recipeCraftingType
recipecraftingtype
recipeCraftingTypeGetValue
recipecraftingtypegetvalue
recipeKnown
recipeknown
reconstructed
rule
sellinformation
set
setbonuscount
setBonusCount
setcollection
setid
setId
setitemcollected
setItemCollected
setname
setName
setType
settype
skilllinelevel
soulGemType
soulgemtype
soulGemTypeGetValue
soulgemtypegetvalue
stackable
stolen
style
stylegetvalue
styleGetValue
sType
stype
stypegetvalue
sTypeGetValue
tag
trait
traitCategory
traitcategory
traitCategoryGetValue
traitcategorygetvalue
traited
traitgetvalue
traitGetValue
traitInfo
traitinfo
traitinfogetvalue
traitInfoGetValue
type
typegetvalue
typeGetValue
unique
usable
value
vouchers
weapon_blacksmithing
weapon_woodworking
weapontype
weaponType
weapontypegetvalue
weaponTypeGetValue

Further informations at: https://gitlab.com/taxtalis/rulebased-inventory/-/wikis/Home
Last edited by FlopsyPrince : 03/12/22 at 09:34 PM.
Report comment to moderator  
Reply With Quote
Unread 03/10/22, 04:00 AM  
Arterion

Forum posts: 10
File comments: 39
Uploads: 0
Originally Posted by demawi
Originally Posted by Arterion
Is there a way to bind a key to force rules to run? I have items I want marked as junk automatically (non-jewelry intricate rewards from writs), but they always fail to be marked.

However, if I open the addons setting page, select Junk, and push the Test button, the items that did not get auto-marked at identified correctly without fail! And clicking Run then marks them as junk as expected.

Why is it not happening automatically? Am I missing a way to trigger the rules? Do I have some conflicting setting? I am at a loss, but it's so frustrating.

I am thinking it's FCIOS interfering with the rules (something about protection and mark and sell, mark as junk, but I don't understand all the FCOIS settings, so many don't seem clear or seem contradictory), but if it works when I manually click the button, shouldn't it happen automatically? Or is there a way to trigger it manually without going into settings?
You're right: everything should happen automatically. Perhaps I can guess where the problem is, but I need some more information:
Do you use also the FCOISMark-Task? How does your Junk-Rule look? Do you use fcoisMarker-function in your Junk-rule?
EDIT:
UPDATE -- I was able to fix the problem by turning off FCOIS Automatic marking for Intricate, and then removing all the itemId's from Intricate marks in the FCOISItemSaver SsavedVariables. ($AccountWide>Settings>markedItems>12).

Here is this original post where I further explained my problem, in case it is useful to anyone:
Thanks for your reply. I am using two tasks with the following rules:

1. Junk (match any)
Code:
armor-weapons-notset-lowquality:
gear() AND quality("trash", "normal", "superior", "fine") AND NOT companion() AND NOT set() AND NOT item_jewelry()
fcois-sell:
fcoisMarker("sell")
intricate-lowlevel:
trait("intricate") AND cp() < 150
intricate-nojewelry:
trait("intricate") AND NOT item_jewelry()
trash-glyphs:
glyph() AND quality("trash", "normal", "fine") AND NOT name("Glyph of Prismatic Defense", "Glyph of Prismatic Onslaught", "Glyph of Prismatic Recovery")
2. FCOISMark: Intricate (match any)
Code:
fcois_jewelry-intricate:
item_jewelry() AND trait("intricate") AND cp() >= 150
Here is a link to an imgur album with screenshots showing both the Rule and Task correctly detect some pieces of gear, but they don't move to junk until I click the Run button in Tasks in RBI Addon settings. I would like to point out that the Rule also detected a staff, but for that staff the Junk Task worked, it was correctly moved to junk. Just not the armors.
Last edited by Arterion : 03/10/22 at 04:41 AM.
Report comment to moderator  
Reply With Quote
Unread 03/09/22, 09:03 AM  
demawi

Forum posts: 2
File comments: 105
Uploads: 0
Originally Posted by FlopsyPrince
I am getting this error on some characters now:

user:/AddOns/RulebasedInventory/Modules/Event.lua:35: attempt to index a nil value
stack traceback:
user:/AddOns/RulebasedInventory/Modules/Event.lua:35: in function 'OnSlotUpdate'
Hmm.. that's a weird location. Only once after loading a character or several times when you're playing that character?
If it occurs on one character, does it always happen on that character, after you logged into that character, or sometimes yes somtimes no?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: