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,606
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 11/27/20, 02:23 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
@Random, I took a short look at FcoisMarking and it definitly is possible but not very beautiful, neither in code nor for the user, as I didn't have that in mind when I wrote RbI. Same is partially true for a task "use item" as the actual functionality of "use" depends heavily on the item it is used on. Using a potion is an easy thing but a container needs to be looted too, with checks if space is available and such things. I know you linked code examples for this specific case, but I fear there is more to it than that and other item types as well.

While searching for a way to delay LLC and DLWC I did on the side implement a feature with which one does not anymore need to switch tabs at a crafting station and all tasks for the current station (refine, deconstruct, extract) can be executed immediately on interacting with the station. Thus said, when LLC or any other addon tries to craft or interact with the station there can be a race condition preventing either the other addon or RbI from succeeding, resulting in an output of success on RbI's side, maybe without it ever actually happening (and I don't even know what consequences for the other addon on failure).

Dolgubon (Author of LLC/DLWC) hinted me towards AutoReseach, an addon which delays LLC/DLWC execution till after it is finished, but I merely removes the event listeners of LLC/DLWC and calls their functions after it is finished manually. If I where to implement the same, I would need to check for AutoReasearch and remove it's event listeners to then call it, when RbI is done, or do the same as AutoResearch to LLC/DLWC, if AutoResearch is not around.
That's just too sketchy and who knows which other addons do the same which then would need a chain of these event listeners removals and oh gosh no. just no. ...
So, regarding LLC/DLWC, non of my attempts worked and as long as there is no feature introduced to LLC/ DLWC I would have to really fiddle, which at this point does not seem appropriate in my eyes.
If you have any idea, please let me know.

Regarding your guide, please share it with me/us when you're done, I would love to see an introduction to RbI written by a user.
Both the Wiki and RbI in general would probably profit highly from this
Last edited by TaxTalis : 11/27/20 at 02:32 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 11:18 PM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
Originally Posted by Akopian Atrebates
How does this addon compare to Item Trig?

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
I used Item Trig for a while to do some tasks, but RBI has completely deprecated that, and haven't looked back.

The ItemTrig interface looks snazzier... sure, but I found it a complete nightmare to actually work with. Felt like 500 clicks to get anything done, and then there were all types of actions which should have worked, but I never figured out how to make them work, etc. Also, it seems like it's development is mostly dead, not getting any updates. The odd bugs that caused things to silently fail, along with nightmare of keeping rules synced across chars broke me, and lead me to look for an alternate solution, which is how I landed here.

About the only thing you can do in ItemEdit that RBI doesn't support is applying FCOIS Marks. However, there's many a thing you can do with RBI that you just couldn't with ItemEdit, like automatically leave the bank screen with 5 of your favorite food in your bag, regardless how many you had before. You can also steer recipes to your master crafter if needed, or keep local if not, etc.

If you understood the logic in ItemEdit, you can adapt to the logic here, just after an adjustment period.

Originally Posted by TaxTalis
Please report if even with the update you encounter the problem again, maybe even go down with delay again to make it uhm easier to crash. Please also check if RbI in any case touches the items DLWC want's to move, that could lead to a slot beeing empty (because DWLC moved it) and RbI trying to move it too. Thanks!
Last couple days, I've not had any problems, either from the LUA error, or with the withdraw/store loop with the bag interface.
Thanks for looking into it!

PS - Working on a guide to help introduce RBI to my guildies.
Last edited by Random : 11/26/20 at 11:29 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 04:48 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
Originally Posted by Akopian Atrebates
How does this addon compare to Item Trig? I used to use inventory manager until it was a little slow to update a problem once, and I went to Item Trig.

What I like in general about Item Trig is the interface. This one looks a bit more difficult as you have to type out full commands, but I imagine that gives a little more flexibility too. Also, I have had a problem here and there with Item Trig.

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
Hi Akopian, thanks for considering RbI. Until now I have had never heard of ItemTrig before and from what I just read and saw on it's page I might never had developed RbI, if I only knew it was there (EDIT: oh wait, it just wasn't around back then). That said, from the given overview it actually seems more complicated to me than RbI even with RbI not providing an interface helping you to design the rules. This might be due to me having written it and having studied computer science, so I am very familiar with the boolean rule structure RbI uses.

RbI has defined "Entry points" (ItemTrig term) for each "action" (ItemTrig term) which in RbI are called "Tasks". The "rule" (RbI term) you have to write is the "condition" (ItemTrig term).
I am confident that anything possible in ItemTrig, as long as a Tasks exists matching the "entry point" and "action" of ItemTrig, is possible with RbI too, maybe with even more granularity available.

Nothing is stated about multi-character setups other than that you can import a trigger from another character or the gallery, my understanding of this is of cause vague to say the least.

First thing RbI is capable of is a differentiation of characters inside a rule itself. With for example the integration of craftstore (another addon) RbI is capable of checking if the current character is the first in line of a given list of character names who needs to learn a recipe. So one rule can be used for all characters and will evaluate differently on each one!

Second, RbI always execute a Rule on an item, like ItemTrig would do too, to see if it fits, or not.
To make the process of writing easier rules can be combined to RuleSets containing rules in two buckets:
EVERY rule for the first bucket has to be true for the item to be considered,
and ANY of the rules of the second bucket needs to fit the item too.
This allows for easy reusing of rules and allows users to keeps the size of rules small.
Individual rules can be added to tasks (which automatically form an ruleset internally)
or a whole ruleset can be saved of this and later loaded.
Both each rule and each created (not intenal) ruleset are available to all characters.
Editing a rule or ruleset on one will change them for all.

Last, the RuleSets (both created and internal) assigned to all available tasks can be saved to a profile to easily "copy" them to a different character.
Editing a profile on one character changes it for all, so you never have to do the work twice.

Please see the wiki for more information on rules, rulesets, tasks, profiles and what terms/functions to use in your rules.
If you have any further questions or encounter difficulties, feel free to ask.


Originally Posted by Random
Hmm. Yea, I was thinking of a moderately blunt hammer of "don't put stuff back into the bank at all if you're mid writ run". Which would serve my needs, but could easily be a bit too broad.

In other news, I left the task delay at 500, and didn't get a LUA error today.
Yes, sorry this is a too hard solution for me to take.
But don't worry I am still trying to figure it out, only encountering some slight problems with LLC and DLWC interactions. I am trying to delay all RbI execution to AFTER these are done on any interface (station/bank). Or do you think it would be better to delay THEM? Both routes have pros and cons...

Please report if even with the update you encounter the problem again, maybe even go down with delay again to make it uhm easier to crash. Please also check if RbI in any case touches the items DLWC want's to move, that could lead to a slot beeing empty (because DWLC moved it) and RbI trying to move it too. Thanks!
Last edited by TaxTalis : 11/26/20 at 05:01 PM.
Report comment to moderator  
Reply With Quote
Unread 11/26/20, 04:05 PM  
Akopian Atrebates

Forum posts: 9
File comments: 230
Uploads: 0
How does this addon compare to Item Trig? I used to use inventory manager until it was a little slow to update a problem once, and I went to Item Trig.

What I like in general about Item Trig is the interface. This one looks a bit more difficult as you have to type out full commands, but I imagine that gives a little more flexibility too. Also, I have had a problem here and there with Item Trig.

So I am just wondering if somebody else who is using this and looked at Item Trig might be able to tell me the advantages of this addon compared to that. It is no small thing to switch iver and recreate all my different rules on a new addon.
Report comment to moderator  
Reply With Quote
Unread 11/25/20, 04:50 PM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
Hmm. Yea, I was thinking of a moderately blunt hammer of "don't put stuff back into the bank at all if you're mid writ run". Which would serve my needs, but could easily be a bit too broad.

In other news, I left the task delay at 500, and didn't get a LUA error today.
Report comment to moderator  
Reply With Quote
Unread 11/25/20, 04:51 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
I'll try to push an update this week, hopefully fixing the lua error you're getting, though a bit hard without knowing its origin...

Originally Posted by Random
it looks like the main logic needed for a "is LazyWritCrafter running" function is:
Code:
if WritCreater then
  local _, hasAny = WritCreater.writSearch()
  return hasAny
else
  return false  -- DLWC not loaded
end
No, this will always return true if ANY writquest is active, regardless of if DLWC want's to draw from bank or not. Thus it would delay/prevent bank interaction of RbI indefinitely if one does not turn in a writquest for whatever reasons and is therefor not a considerable solution for me.
For crafting though I think I have found a solution, delaying all processing of RbI for the time LLC is still working at given station.
Last edited by TaxTalis : 11/25/20 at 04:52 AM.
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 04:25 PM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
Originally Posted by TaxTalis
@Random, is by chance this strange move from/to bank because of the quickslotted happening when the error occurs?
Hmm. I can't speak definitively to that. Currently, I do have Quickslotted() in my BankToBag rules. However, it's a 1 in 10 occurrance while doing daily writs... but not at other time when I'm romping around, and taking brief pauses to sort loot automagically.
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 12:42 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
@Random, is by chance this strange move from/to bank because of the quickslotted happening when the error occurs?
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 09:37 AM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
[quote=TaxTalis]
Originally Posted by Talegas
Does your rule touch the things DLWC is moving? And of cause the fix for quickslotted() isn't there yet (testing in progress). This seems to be a problem tied to one of these, as it appears mainly, in my thinking, when RbI does think there would be an item in a slot when in fact it is not.
I use FCOIS to mark all writ items with a custom marker and those from RbI, this might have always prevent errors.
I also have an FCOIS custom marker for my prebuilt items (had this long before RBI), and have them excluded from the rules. Added the BagToBank filter against these items to keep RBI from putting in what LWC took out.. this was a race condition as to which "won", but it didn't generate a lua error.

In this morning's run, I upped the task delay to 500 from default 200. Still got a lua error on one of my ten chars I do the run with. (again, a diff char each time)

Thanks for all the effort, mate!
Report comment to moderator  
Reply With Quote
Unread 11/24/20, 01:32 AM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
Originally Posted by Talegas
Cool man.. I was relying on the "safetyrule" configuration that is enabled by default where no action is taken on any item that either locked, legendary quality, ninrhoned or its value is above 10,000 g .. that is why i did not specify the "not locked()" function.

I truly did not check if my previous rules (before the new functions were incorporated) applied to any of my locked items. .most likely they were not, but now we know
huh there you're saying something I wonder about. How did a locked item go past the safety rule O.o
Need to investigate this asap. thanks!
EDIT: never mind, junk is classified as a non-dangerous task, so safety does not apply here. I updated the wiki to better clarify this distinction. In short, safety is only in place for Sell, Destroy, Fence, Deconstruct and Extract as those changes can't be reverted.

Originally Posted by Random
Had the LUA error happen again.

Circumstances: Had just logged in on character, and picked up the consumable writs off the board in Vivec City, then hopped over to the bank nearby for LazyWritCrafter to pull out some pre-built stuff. Error triggered right as bank opened. Afterwards, none of the junk/bag/bank tasks worked properly on that character. I follow the same writ pattern on 10 different characters, and I get the error roughly once a day, but not on the same character.
Does your rule touch the things DLWC is moving? And of cause the fix for quickslotted() isn't there yet (testing in progress). This seems to be a problem tied to one of these, as it appears mainly, in my thinking, when RbI does think there would be an item in a slot when in fact it is not.
I use FCOIS to mark all writ items with a custom marker and those from RbI, this might have always prevent errors. Again, until I will update this (taking your code into account, thanks, I am also in contact with Dolgubon), please try to increase the delay before a tasks starts a little more.


Thank you both for your feedback, reports and patience!
Last edited by TaxTalis : 11/24/20 at 02:37 AM.
Report comment to moderator  
Reply With Quote
Unread 11/23/20, 06:02 PM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
Had the LUA error happen again. I use an addon that shunts lua errors to notifications, so best I can get of the stack trace is a screen shot:
https://imgur.com/a/4fu3uIL

Circumstances: Had just logged in on character, and picked up the consumable writs off the board in Vivec City, then hopped over to the bank nearby for LazyWritCrafter to pull out some pre-built stuff. Error triggered right as bank opened. Afterwards, none of the junk/bag/bank tasks worked properly on that character. I follow the same writ pattern on 10 different characters, and I get the error roughly once a day, but not on the same character.

----

In other news, it looks like the main logic needed for a "is LazyWritCrafter running" function is:
Code:
if WritCreater then
  local _, hasAny = WritCreater.writSearch()
  return hasAny
else
  return false  -- DLWC not loaded
end

Cheers!
Report comment to moderator  
Reply With Quote
Unread 11/23/20, 05:21 PM  
Talegas

Forum posts: 0
File comments: 16
Uploads: 0
Originally Posted by TaxTalis
@Talegas: I will look into the issue with the collection functions as soon as I can.
EDIT: Found it, you just can't junk ingame locked items, I did not know that and well, FCOIS locks are excluded in generally, so, as your rule does not explicitly say "not locked()" RbI thinks it needs to junk it, while it can't. I will see to exclude ingame locked items generally from junking, I guess. Same for Selling, Fencing, Laundering, Destroying, Refining and Deconstructing.
Cool man.. I was relying on the "safetyrule" configuration that is enabled by default where no action is taken on any item that either locked, legendary quality, ninrhoned or its value is above 10,000 g .. that is why i did not specify the "not locked()" function.

I truly did not check if my previous rules (before the new functions were incorporated) applied to any of my locked items. .most likely they were not, but now we know
Report comment to moderator  
Reply With Quote
Unread 11/22/20, 03:16 PM  
TaxTalis
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 190
Uploads: 2
@Talegas: I will look into the issue with the collection functions as soon as I can.
EDIT: Found it, you just can't junk ingame locked items, I did not know that and well, FCOIS locks are excluded in generally, so, as your rule does not explicitly say "not locked()" RbI thinks it needs to junk it, while it can't. I will see to exclude ingame locked items generally from junking, I guess. Same for Selling, Fencing, Laundering, Destroying, Refining and Deconstructing.

@Random:
1) I will look into the issue with quickslotted as soon as I can.
EDIT: Found the problem, it lies in the speed RbI has when processing items. As quickslotted() looks at the bag/slot instead of an itemLink to tell if the item is quickslotted it encounters a problem when it reaches the slot RbI just put things to, as the game not yet knows they have been put there and the slot is still empty, thus not quickslotted, the rule failes and RbI puts it back to the bank (because RbI knows it's there and by the time RbI processes the next batch it is).

2) There is an option to increase the delay before the interactions are called, try increasing it to not interfere with DLWC. I will look into a delayed call when DLWC was detected running. A LUA error I never encountered, though RbI was working simultaneously with DLWC, but my rules are not interfering with DLWC, so it might have to do with that. The only error I sometimes get is from Advanced Filters when DLWC opens and closes the bank.

3) I thought about a "use" task before, yes. Now that I know it is a feature someone wants I will try to find time and see to implement it. No promises though, let me first fix the above mentioned bugs and then let me see what I can do.

Thanks for sharing your use of RbI, hope it can be of help saving time in the end.
Spread the word to your guildies
Last edited by TaxTalis : 11/23/20 at 08:55 AM.
Report comment to moderator  
Reply With Quote
Unread 11/22/20, 01:13 PM  
Random

Forum posts: 0
File comments: 46
Uploads: 0
I've noticed an odd behavior with how Quickslotted() interacts with BagToBank and BankToBag.
I've built an empty profile, with the exception of the following two rules:
Code:
BankToBag: CountBackPack("<", 5) and type("drink") and Quickslotted()
BagToBank: type("drink")
Everything works fine, except for the case where my bag is empty, but there are several in the bank. When I enter the back in this state, RBI BankToBag will remove 5 from the bank... and then BagToBank will immediately put all five back into the bank, which is not terribly helpful. If I change the `Quickslotted` rule to `name("Dubious Camoran Throne")` everything works as expected (but then needs me to make different profiles for everyone)

----

I've also noticed at times that RBI has some poor interactions with Dolgubon's Lazy Writ Crafter. Namely, when one goes to the bank, it's a race between DLWC closing the window before RBI finishes. Sometimes it generates a LUA error (sorry, don't have it handy, can capture it next time if needed). Also, care has to be taken to write rules that do not have RBI banking the items DLWC just withdrew for your writs. A minor issue is I've also seen the Refine task get clipped while DLWC crafting. What I've seen other inventory tools do is disable certain actions while DLWC was running. If you could write a `IsDLWCActive()` function, then I could add a negation of that to the "Fit All of These Rules" list for tasks that interfere, and then everything is happy.

----

"Btw. I would really love to see/hear what you all use RbI for"
Basically, I use inventory addons to make it where when I'm playing the game, I'm playing the game. I'll go on multi-hour boss/delve/dungeon runs with guildies, and they have to take these long breaks to clear inventory, restock needs, etc. Me? I pull up the merchant, interact & close, then banker, interact & close, and I'm good to go. The inventory left is things that merit my attention. I also want my morning daily writ runs (across 10 chars!) to be a braindead affair, where all I do is interact with the stations around Vivec City in a loop, and all the results just go where they belong.

One thing that is missing in this would be a "use" task. There's two main themes for this: recipes/motifs, and containers. Thanks to your craftstore integrations, I can get recipe/motifs onto the character I want them to land on. But it'd be nicer if they could automatically read them. :-) For containers, it'd be nice to have the ability to auto-open and auto-loot them. DLWC does this for the writ boxes, and Bandit's UI has a keybind that will open all in inventory, so you might be able to gather ideas on how to do that from them.
Report comment to moderator  
Reply With Quote
Unread 11/21/20, 02:35 PM  
Talegas

Forum posts: 0
File comments: 16
Uploads: 0
Re: Re: Chat message calls for junked items which are not

Originally Posted by TaxTalis
What exactly is happening? RbI says it would have junked stuff but it didn't?
Yes, RbI is displaying in the chat that an item was moved to "junk", but the item should not be moved because it is locked. And in fact, it was not moved at all.

Originally Posted by TaxTalis
Could you provide your rule ruleSet for that?
From what I tested so far there seems to be no issue for me, may it be the rule you set up is not fit for the task you thought it for?
Sure, here it is. The reason i say is the new functions is that they are the ones affecting the locked items i have (which are normally set items which i already have collected).

Code:
type("armor","weapon") and 
not (traitInfo("intricate") or quality("epic","legendary")) and 
(not set() or (setCollection() and setItemCollected()))
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: