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:198
Total downloads:26,602
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 02/27/20, 02:13 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
The functions you are using have not been touched by the last update, but maybe something changed at ZOS?...
Selling involves another rule in background, the 'safety rule', please read more here.

Check if the items somehow apply to this, maybe someone sold it in a guild store for a tremendous amount or something. You could use the context menu to print the data of the specific item to compare it. (Requires LibCustomMenu)

Your rule looks fine, I think. Do sets only drop above normal and fine quality? Otherwise you would sell a divines necropotence set piece, if it was to be of this quality. Be careful about that.

Looking forward to hearing from you and thank you for using RbI!

Originally Posted by Balmeri
I'm having a weird issue with my Sellable rule since the update and didn't have time to test/investigate until now. Some trash items and uncrafted consumables just won't sell automatically.

The original version of the rule (removed huge list of alts, but otherwise direct):

Code:
NOT (unique() OR locked() OR quality("epic", "legendary") OR crafted() OR bound() OR traitInfo("intricate") OR price() > 1000) AND ((type("armor", "weapon", "glyph_armor", "glyph_jewelry", "glyph_weapon") AND ((cp() < 150 OR NOT set()) OR quality("normal","fine"))) OR (equipType("neck","ring") AND quality("normal")) OR type("trash", "treasure", "potion", "poison", "food", "drink") OR sType("monstertrophy", "s_treasure") OR (sType("recipe_drink", "recipe_food") AND (NOT needLearn("Balmeri", "OtherAltNames"))))
I also tried adding an OR fcoismarker("Selling") in there for good measure since the items being skipped all have this marker, but same result.

I usually use it paired with a rule that's basically NOT fcoismarker("Lock"), but for testing removed that to try to isolate the problem, and the items still don't sell.

When I run test for the rule it picks up the three items as "Sellable", but when I test it from the Sell function with only that rule applied it comes back with no matches. I did try applying the rule under all or any separately.



For good measure the items in my inventory with mouse highlighting the coin marker from FCOIS:

Last edited by TaxTalis : 02/27/20 at 10:03 AM.
Report comment to moderator  
Reply With Quote
Unread 02/27/20, 03:15 PM  
Balmeri

Forum posts: 0
File comments: 26
Uploads: 0
Thanks for the reply.. I do have LibCustomMenu, so I'll try to use that to get the data on a similar set today.

I also did pick up an additional piece of information that may moot the issue for me, but I'm curious to solve what's happening anyway. When I remove the FCOIS selling tag the items sell just fine. I thought at first it might be that sell was also applying lock, but I'd removed that from the criteria. The safety rule may have grabbed a bad "lock" though. I noticed Baertram updated FCOIS while I slept, so maybe that fixes it too. At any rate, worst case once mystery solved is that over time I remove the FCOIS selling tags, which I don't really haven't needed for a while since RBI.

Oh, and for the selling a valuable green set item, the sanity check is hopefully on the 1001g in the first checks. It's possible that a 952g green BOE set item that was undervalued could be a "hidden" purple 15000g piece, but if I miss one of those in favor of dumping most of the cheap green Diagna or Vampire Lord or Twin Sisters hats without clicking I'll be ahead in the long run.

Too lazy to edit, but got in game and found some similar items today, and they sell, so the FCOIS update fixed it. My hunch is that something not mentioned in the update somehow resolved it. I might try reverting to see if it reproduces and what the context menu dump will say.

Thanks again.
Originally Posted by TaxTalis
The functions you are using have not been touched by the last update, but maybe something changed at ZOS?...
Selling involves another rule in background, the 'safety rule', please read more here.

Check if the items somehow apply to this, maybe someone sold it in a guild store for a tremendous amount or something. You could use the context menu to print the data of the specific item to compare it. (Requires LibCustomMenu)

Your rule looks fine, I think. Do sets only drop above normal and fine quality? Otherwise you would sell a divines necropotence set piece, if it was to be of this quality. Be careful about that.

Looking forward to hearing from you and thank you for using RbI!
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 06:04 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4989
File comments: 6040
Uploads: 78
Last FCOIS update fixed the API functions in total. e.g. FCOIS:IsVendorSellLocked etc.
They are all using the FCOIS:CallItemSelectionHandler function internally and there was an error in the parameters which made the function not use the bagId and slotIndex of items properly.
So could be this was your problem here.

But: the items marked for sell can only be sold if you have enabled this in the FCOIS settings! All marker icons "protect" the marked items if no exclusions are set (via dynamic icon settings if it's an dynamic icon, or via the normal anti-protection settings for general marker icons).

Originally Posted by Balmeri
Thanks for the reply.. I do have LibCustomMenu, so I'll try to use that to get the data on a similar set today.

I also did pick up an additional piece of information that may moot the issue for me, but I'm curious to solve what's happening anyway. When I remove the FCOIS selling tag the items sell just fine. I thought at first it might be that sell was also applying lock, but I'd removed that from the criteria. The safety rule may have grabbed a bad "lock" though. I noticed Baertram updated FCOIS while I slept, so maybe that fixes it too. At any rate, worst case once mystery solved is that over time I remove the FCOIS selling tags, which I don't really haven't needed for a while since RBI.

Oh, and for the selling a valuable green set item, the sanity check is hopefully on the 1001g in the first checks. It's possible that a 952g green BOE set item that was undervalued could be a "hidden" purple 15000g piece, but if I miss one of those in favor of dumping most of the cheap green Diagna or Vampire Lord or Twin Sisters hats without clicking I'll be ahead in the long run.

Too lazy to edit, but got in game and found some similar items today, and they sell, so the FCOIS update fixed it. My hunch is that something not mentioned in the update somehow resolved it. I might try reverting to see if it reproduces and what the context menu dump will say.

Thanks again.
Originally Posted by TaxTalis
The functions you are using have not been touched by the last update, but maybe something changed at ZOS?...
Selling involves another rule in background, the 'safety rule', please read more here.

Check if the items somehow apply to this, maybe someone sold it in a guild store for a tremendous amount or something. You could use the context menu to print the data of the specific item to compare it. (Requires LibCustomMenu)

Your rule looks fine, I think. Do sets only drop above normal and fine quality? Otherwise you would sell a divines necropotence set piece, if it was to be of this quality. Be careful about that.

Looking forward to hearing from you and thank you for using RbI!
Last edited by Baertram : 02/28/20 at 06:07 AM.
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 07:34 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
@Balmeri, your problem is solved then?

@Baertram, thanks for clarifying!
(Are you watching over all addon's comments or do you somehow get notified when "FCOIS" is typed? )
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 09:47 PM  
Balmeri

Forum posts: 0
File comments: 26
Uploads: 0
Originally Posted by TaxTalis
@Balmeri, your problem is solved then?

@Baertram, thanks for clarifying!
(Are you watching over all addon's comments or do you somehow get notified when "FCOIS" is typed? )
Yeah, all works post update. Also, Baertram sees all.
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 05:18 AM  
LeinadOrarogep

Forum posts: 0
File comments: 11
Uploads: 0
This might have already been notified to you, but just to be sure: it seems that the types ITEMTYPE_CROWN_ITEM and ITEMTYPE_CROWN_REPAIR are misspelled as "corwnitem" and "corwnrepair" on the page https://gitlab.com/taxtalis/rulebase.../Manual/Inputs

It seems that this is the case also in the code, because if you use type("corwnitem") it works, while if you use type("crownitem") it does not.
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 05:47 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
No, i was unaware of this typo, will fix this in the next update, thanks!
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 06:02 AM  
LeinadOrarogep

Forum posts: 0
File comments: 11
Uploads: 0
Is there a way to have a rule applied only to a specific character? I'm thinking of a function that would be like charactername().

I have a farmer toon which should gather all the surveys/maps from the bank, while all the other toons must deposit them in the bank. I don't know how could i achieve this currently.

Thanks for you wonderful addon, by the way!

edit: i know i could have different profiles, but i would like to keep the same profile for all toons, so that it's easier to update the rules globally!
Last edited by LeinadOrarogep : 03/07/20 at 06:02 AM.
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 06:12 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
hm yea this would be possible, but the way to do this for now is the "different profile" approach.
the rules forming the profile will update on other profiles too, same is for rulesets, so you can still "globally" update even across different profiles.

Originally Posted by LeinadOrarogep
Is there a way to have a rule applied only to a specific character? I'm thinking of a function that would be like charactername().

I have a farmer toon which should gather all the surveys/maps from the bank, while all the other toons must deposit them in the bank. I don't know how could i achieve this currently.

Thanks for you wonderful addon, by the way!

edit: i know i could have different profiles, but i would like to keep the same profile for all toons, so that it's easier to update the rules globally!
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 08:01 AM  
LeinadOrarogep

Forum posts: 0
File comments: 11
Uploads: 0
Yes, it seems to be working: i loaded the profile on the farmer toon, then added a new rule. It seems that this rules is applied only to the toon, and not "saved back" to the profile.

The other toons only use the profile.

Everything seems to be working out - thanks a bunch!
Report comment to moderator  
Reply With Quote
Unread 03/07/20, 10:19 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
correct, the profile is only updated if and only if you save it again.
the char where you added the rule to a task now has no named profile.

Originally Posted by LeinadOrarogep
Yes, it seems to be working: i loaded the profile on the farmer toon, then added a new rule. It seems that this rules is applied only to the toon, and not "saved back" to the profile.

The other toons only use the profile.

Everything seems to be working out - thanks a bunch!
Last edited by TaxTalis : 03/07/20 at 10:20 AM.
Report comment to moderator  
Reply With Quote
Unread 03/25/20, 03:08 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4989
File comments: 6040
Uploads: 78
Hey TaxTalis,

Please read this and change your context menu on the inventory rows to use LibCustomMenu properly instead to assure all addons can work properly together and to benefit from LibCustomMenu's code (assures there won#t be any insecure error messages due to inventory context menu "hooks"):
https://www.esoui.com/forums/showthread.php?t=9052

Many thanks!
Report comment to moderator  
Reply With Quote
Unread 04/15/20, 08:24 AM  
ShiroiKuma

Forum posts: 0
File comments: 9
Uploads: 0
I have BagToBankAlt and BankToBagCrafter RuleSets setup as follows:

Code:
                    ["BankToBag"] = 
                    {
                        ["ruleSetName"] = "BankToBagCrafter",
                        ["ruleSet"] = 
                        {
                            ["StockItems"] = 2,
                            ["Surveyer"] = 2,
                            ["Sell"] = 2,
                            ["!FCOIS"] = 2,
                        },
                    },
                    ["BagToBank"] = 
                    {
                        ["ruleSetName"] = "BagToBankAlt",
                        ["ruleSet"] = 
                        {
                            ["BagToBank"] = 2,
                            ["FCOIS"] = 1,
                        },
                    },
With the following rules:

Code:
                ["rules"] = 
                {
                    ["StockItems"] = "countbackpack(\"<\", 50) AND ( name(\"Lockpick\") or (type(\"soulgem\") and quality(\"fine\"))  or (type(\"soulgem\") and quality(\"normal\")) or (type(\"tool\") and level() == 50) ) ",
                    ["BankToBagCrafter"] = "(type(\"masterwrit\",  \"armor\", \"weapon\") OR item_enchanting() OR equipType(\"neck\", \"ring\") OR (traitInfo(\"intricate\") and cp() >= 150))",
                    ["BagToBank"] = "(\r\n        Type(\"tool\",\"soulgem\",\"masterwrit\",\"recipe\",\"motif\")\r\n        OR (\r\n            (\r\n                Type(\"armor\",\"weapon\",\"glyph_armor\",\"glyph_jewelry\",\"glyph_weapon\")\r\n                OR equipType(\"neck\",\"ring\")\r\n            )\r\n            AND NOT Crafted()\r\n            )\r\n        OR SType(\"treasuremap\",\"survey\")\r\n        OR TraitInfo(\"intricate\")\r\n        OR Name(\"Key Fragment\")\r\n        OR (Type(\"potion\", \"poison\", \"drink\", \"food\") and not (crafted() and quality(\"epic\",\"legendary\")))\r\n)",
                    ["!FCOIS"] = "fcoismarker(\"SELLING\")",
                    ["NoCraft"] = "NOT Crafted()",
                    ["Sell"] = "junked() OR fcoismarker(\"SELLING\")",
                    ["NoCrown"] = "NOT CrownStore() AND NOT CrownCrate()",
                    ["FCOIS"] = "NOT fcoismarker(\"LOCK\", \"WRIT\",\"SELLING\")",
                    ["Surveyer"] = "stype(\"survey\")",
                },
If I run the Tests under the related Tasks I cannot see anything wrong and works as expected.



However, when I got to my bank I get the following error

Code:
bad argument #1 to 'pairs' (table/struct expected, got nil)
stack traceback:
[C]: in function 'pairs'
user:/AddOns/RulebasedInventory/Modules/Task.lua:85: in function 'GetSlotFromDatas'
|caaaaaa<Locals> slotDatas = [table:1]{}, bagToCount = 0, slotFromDatas = [table:2]{}, bagCount = [table:3]{} </Locals>|r
user:/AddOns/RulebasedInventory/Modules/Task.lua:290: in function 'CheckByItemLink'
|caaaaaa<Locals> singleItemLink = "|H0:item:43549:2:41:0:0:0:0:0:...", status = T, finished = T, actionCount = 0, bagFrom = 1, lookupBagFrom = [table:4]{}, bagFromOccupied = [table:5]{}, bagToOccupied = [table:6]{}, itemLinkForSorting = "|H0:item:43549:2:41:0:0:0:0:0:...", slotDatas = [table:1], bagToCount = 0 </Locals>|r
user:/AddOns/RulebasedInventory/Modules/Task.lua:465: in function 'Interleave'
|caaaaaa<Locals> ExecuteTask = [table:7]{}, executeTaskArguments = [table:8]{1 = "|H0:item:43549:2:41:0:0:0:0:0:..."}, executeTaskLastResults = [table:9]{status = T, totalActionCount = 0, finished = F}, InterleaveTask = [table:10]{}, interleaveTaskArguments = [table:11]{1 = "|H0:item:43549:2:41:0:0:0:0:0:..."}, interleaveTaskLastResults = [table:12]{status = T, totalActionCount = 0, finished = F} </Locals>|r
user:/AddOns/RulebasedInventory/Modules/Task.lua:508: in function 'RbI.TaskStarter'
|caaaaaa<Locals> ExecuteTask = [table:7], ExecuteTaskItemLink = "|H0:item:43549:2:41:0:0:0:0:0:...", InterleaveTask = [table:10], InterleaveTaskItemLink = "|H0:item:43549:2:41:0:0:0:0:0:...", executeTaskArguments = [table:8], interleaveTaskArguments = [table:11], executeTaskLastResults = [table:9], interleaveTaskLastResults = [table:12] </Locals>|r
user:/AddOns/RulebasedInventory/Modules/Event.lua:29: in function 'Pop'
|caaaaaa<Locals> itemLink = "|H0:item:43549:2:41:0:0:0:0:0:..." </Locals>|r
EsoUI/Libraries/Globals/globalapi.lua:207: in function '(anonymous)'
And the item get's withdrawn and put back into my bank.



Is there any way to fix this? I can't see what's wrong here.

EDIT: This only occurs when items are taken from the Bank by RbI. If I manually move the item from the Bank to Bag, this never occurs.
Last edited by ShiroiKuma : 04/15/20 at 08:27 AM.
Report comment to moderator  
Reply With Quote
Unread 04/15/20, 09:12 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
Hi there and thank you for using RbI!

First, this is the same bow which is stored and then received, is that correct? That should not be possible by design, by the way, so I am very confused.
Second, just as a wilde guess, do you have ESO+?
Third, can you somewhat tell me about the timing, the tasks seem to run fine, at least they're posting end results and everything, so I am even more confused, when does the error appear? Does the error occur even when no items are transferred or does it need at least one, or a very special one like this bow?
Last for now, would you be so kind to provide me with your full savedVariable, so I can check if other rules somehow interfere with something there?
Last edited by TaxTalis : 04/15/20 at 09:14 AM.
Report comment to moderator  
Reply With Quote
Unread 04/15/20, 10:14 AM  
ShiroiKuma

Forum posts: 0
File comments: 9
Uploads: 0
Been using RbI for awhile now, but this is the first time I started including FCOIS rules.

It's the exact same bow, I can see it vanish from the bank to appear again a few seconds later.
I do have ESO+ on this account.
The error only happens when atleast a single is transferred. It happened with 21 items and with 1 item, I did those tests early myself too. (Also to speed up the debugging/screenshots from being too long).

It's so far happened with multiple green/white bows, but ONLY with FCOIS Marked for Selling items.

One interesting fact that might be useful (and only just occurred while doing my writs) was that adding
Lua Code:
  1. or fcoismarked("SELLING")
to auto junk items marked for sale by FCOIS itself, were not being junked, but using
Lua Code:
  1. or (traitinfo("ornate"))
directly in the rules works fine. This particular issue seems like a race condition, it might be that the rule is not always running after FCOIS has applied it's marks. (Seems a little hit and miss). <-- Alt Profile

The above new information might be the cause of the initial error, it's moving the item and FCOIS Marks don't yet exist and so it's moving it back?

I've just put !FCOIS back in BankToBagCrafter for my MasterCrafter Profile ad uploaded here https://pastebin.com/Paf5QUQm (24 hrs before it auto deletes)
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: