Provides a wide variety of functions for you to manage items in your various inventory bags: Main Inventory, Equipped Items, Armory, Saddlebags, and Retainer bags.
Regarding the filter expression language. Say you have 100 equipment items in your inventory, and you wanted to see only those items that were for a Sage or a Monk, but with an ilevel greater than 480. You could do that with the following filter expression: (SGE or MNK) and ilevel > 480. Or maybe you want to sell off a bunch of junk you've accumulated while botting dungeons. You might select those items using a filter expression (which is one I actually use) such as: sellable and (cloth or stone or reagent or lumber or metal or ingredient or leather or demimateria or medicine or bone or seafood), and then use the Sell function. You can also filter items by name, using exact match or LUA patterns. Perhaps you only want to see all the Craftsman's materia in your inventories to trade them to your alt. You could select them with the filter expression: /Craft.*Materia/ and the use the Trade function to trade them all to your targeted alt. The filter expression language, a unique feature of Material Girl, is extensive and supports the arbitrary grouping of subexpressions via parenthesis and boolean logic. This powerful feature is fully described in the Filter Expression section.
You must also download MistahMikeysLib from the store. It's free, of course.
Currently, Material Girl only supports FFXIV 6.x, and only in English.
You must ensure FFXIV, Minion, and Material Girl are always updated to their latest versions.
To use the automatic functions provided by Material Girl, you must ensure you have turned off conflicting functions (materia extraction, repair, and desynthesizing) of other Addons you are running, or bad things might happen.
Material Girl provides some powerful options to manage your inventories, but with great power comes great responsibility. Material Girl requires you to be extremely careful when you use destructive functions like discard or desynthesize. While it will try to help you not do the wrong thing by prompting you to continue before you attempt destructive operations, you still need to pay attention, especially in automatic mode. So, for example, if you enable automatic desynthesizing, forget to turn it off after you're done running dungeons, and then buy that really expensive piece of gear you've been saving up for, Material Girl will turn it into detritus as soon as it hits your inventory. Material Girl will detect if you begin to craft in automatic desynthesize mode, and will automatically disable it (you an override this behavior in settings if you wish to level desynthesis.) But if you get lazy or sloppy while using destructive functions, you might lose cherished items. So be careful out there - you have been warned.
You start Material Girl via the FFXIVMinion menu drop down. It's under the “MistahMikey” menu item. Clicking “Material Girl” should pop up its UI window. The UI consists of different input areas called tabs that are selected by clicking the tab name that appears on the first line of the UI. Each tab is described below.
These controls activate features generally not related to manipulating specific items you select from your inventories.
|Enable||When checked, enables Material Girl to run.|
|Auto Inventory Management||When checked, Material Girl will run in automatic inventory management mode (described below.)|
|Reset||Resets all settings to their default initial values. You can use this to abort certain operations you've started if you can catch it in time. If you have a current profile set, and Load Current Profile After Reset (Profile Tab) is enabled, then your saved profile values will be loaded. The Reset button will disappear while the reset is in progress, and will reappear when it completes.|
|Discord Icon||Takes you to the Material Girl Discord channel if you need support. Be advised I am in the Eastern Time zone (UTC-05:00).|
|Sync Gearsets||When clicked, Material Girl will set the FFXIV recommended equipment for selected gearsets from your FFXIV gearset list. You specify the gearsets to be synchronized via the Gearsets tab.|
|Clean Armory||When clicked, Material Girl will transfer all equipment from your Equipment inventories that are not assigned to a gearset into your inventory bags. It will visit every gearset in your FFXIV gearset list to catalog the equipment it uses. You can also request each gearset first be synchronized before it is cataloged (specified in the Settings Tab; by default, it is disabled.) After it has visited every gearset, it will move as much unassigned equipment into your inventory bags as space allows. If you do not have sufficient space, you will need to execute Clean Armory multiple times. Because of how items are identified in the game, it is not possible to determine if multiple rings of the same type are truly assigned to a gearset or not. You will see messages in the Minion Console when this occurs, which you can use to determine if you manually need to remove specific rings.|
|Trade Gil||When clicked, Material Girl will trade the amount of Gil you specify in the Gil to Trade control to the player you have targeted. FFXIV limits the amount of Gil that can be transferred in a single trade to 1M, but Material Girl will initiate multiple trades to trade amounts greater than 1M. If you run Material Girl on the recipient using Auto Trade mode (specified in the Settings Tab; by default, it is disabled), then the entire amount of Gil you requested to be traded will be transferred automatically.|
When Material Girl is in auto inventory management mode, as the status of your equipped items change, or as items appear in you inventory bags, the requested functions will be automatically applied. You request which functions are applied via the following controls:
|Auto Extract Materia||When clicked, Material Girl will automatically extract materia from your equipped items when they reach 100% spiritbond. Material Girl will show you how many materia were extracted in the Extracted Materia Count control.|
|Auto Repair||When clicked, Material Girl will automatically repair your equipped items when they fall below the repair threshold (specified in the Settings Tab; by default, it is set to 50%.) For the repair to occur, you must have the required dark matter in your inventory bags. Material Girl will show you how many items were repaired in the Repaired Item Count control.|
|Auto Desynthesize||When clicked, Material Girl will automatically desynthesize items in your inventory bags. You can limit the items that will be desynthesized using the Filter Expression. Material Girl will show you how many items were desynthesized in the Desynthesized Item Count control.|
|Filter Expression||By entering a filter expression, you can limit the items Material Girl will select from your inventory bags to be desynthesized (explained in the Filter Expression section). The filter expression you enter must start with the “desynth” primitive expression or it will be rejected.|
The way the automatic inventory management feature works is, as Material Girl detects items to which the requested functions can be applied, it will force your character to stop moving for an instant so that they can be applied. For example, if you are running a dungeon using some other addon, and you are also running Material Girl in automatic inventory management mode, it will “fight” the other addon's attempts to automatically move your character until it successfully completes the requested functions. As a result, you might see some “Event Cancelled” messages appear in the chat log, which means the other addon “won”, and your character moved during the requested function, causing it to abort. This rarely happens, and when it does, it typically only happens once.
Using your Profile (explained in the Profile Tab section), you can save the state of the Enable, Auto Inventory Management, Auto Item Function, and Filter Expression controls so that when Material Girl is loaded (at game launch, or if you use Minion's Reload LUA feature), Material Grill will start up in the saved state. This can be helpful when you are, say, using Husbando's Max's Dungeon Master to repeatedly run some trust and you lose connection, causing the game to exit and Minion to subsequently auto restart the game. When the game restarts, it will pick up right where it left off.
If you are not careful, using the auto desynthesize function can cause you to unintentionally lose valuable items. This is especially true if you use your Profile to enable automatic inventory management and Auto Desynthesize when Material Girl is loaded. To offer some degree of protection, Material Girl will detect when you start crafting, and will automatically disable automatic desynthesize mode in that situation unless you have explicitly disabled that behavior in the settings. However, if you were to buy a piece of equipment, and Auto Desynthesize is enabled, Material Girl will dutifully desynthesize it as soon as it appears in your inventory. Unless you specifically limit what is automatically selected for desynthesis via a filter expression, every desythesizable item in your inventory bag will automatically be desythesized as soon as you enable this function. So pay attention.
The main purpose of Material Girl is to help you select and manage items from the various inventories FFXIV provides you. There is quite a wide array of features provided for that purpose.
When Manual Inventory Management mode is selected (which means Auto Inventory Management was not selected), there are two information lines that appear.
|Selected Inventory Types||Using the Inventory Types tab, you can select the specific inventories from which Material Girl will retrieve items. The inventories you have currently selected are listed here.|
|Selected Gearsets||Using the Gearsets tab, you can select the specific FFXIV gearset that Material Girl will use for the Sync Gearsets function. The gearsets you have currently selected are listed here.|
|Filter Expression||By entering a filter expression, you can limit the items Material Girl will select to be displayed (explained in the Filter Expression section.) If no filter expression is provided, Material Girl will select all items in your Selected Inventory Types.|
A filter expression can be used to limit the items on which Material Girl will perform functions. It uses a simple, but powerful, boolean selection language that supports selecting items at a very fine level of detail.
The filter expression is entered into the text input control just below the Filter Expression label. You type in the expression and hit return, at which time the expression is parsed. You will see a message indicating either success or failure. The failure message will give you information that pinpoints where in the expression the parse failed. If the expression is parsed successfully, it is immediately applied to the operation at hand.
Below the filter expression entry control, you will see button controls. The Clear button simply clears the filter expression entry control, which results in selecting all items in all selected inventories. When you enter a valid filter expression, the Save button will appear. This allows you to save that expression for future use via the Filter Expressions tab. You will prompted to enter a unique tag for the expression that can be used to help you locate it later.
The language allows you to specify item attributes and relations that, if satisfied by an item, will cause it to be included in the selected item list. These can be grouped using parenthesis to build up expressions of arbitrary complexity. A full description of the language using English prose is difficult, so instead I offer the BNF (Backus Naur Form) for the expression language which should be helpful for those who understand that notation.
<filterExpression> := <expression> <eol> <expression> := <basicExpression> | <unaryBooleanExpression> | <binaryBooleanExpression> <basicExpression> := <parenthesizedExpression> | <primiviteExpression> <parenthesizedExpression> := ( <expression> ) <primitiveExpression> := #these all evaluate to TRUE or FALSE for a inventory item <patternOp> | #item name matches lua pattern <nameOp> | #item name exactly matches string <idOp> | #item id matches number <classOp> | #item class matches class mnemonic <jobClassOp> | #item class matches job class mnemonic <categoryOp> | #item clas matches item ui category mnueumonic desynth | #item can be desynthed hq | #item is high quality materias | #item has materias tradeable | #item is tradeable sellable | #item is sellable collectable | #item is collectable <relationOp> #item satifies a relation <unaryBooleanExpression> := <booleanUnaryOp> <basicExpression> <binaryBooleanExpression> := <expression> <booleanBinaryOp> <expression> <eol> := #end of line <patternOp> := / <luaPattern> / <luaPattern> := #any valid LUA pattern <nameOp> := " <escapedString> " <escapedString> := #any string with embedded quotes escaped (e.g., MistahMikey\"s Lib) <idOp> := <number> # item id <classOp> := #item class name <jobClassOp> := #item job name | myjob <categoryOp> := <uicategory> | <uicategoryGroup> <uicategory> := #category that appears on item popup <uicategoryGroup> := primarytool | #matches ui category that is a primary tool secondarytool | #matches ui category that is a secondary tool tool | #matches ui category that is a primary or secondary tool arm | #matches ui category that is an arm equipment #matches ui category that is a an equippable piece of equipment <relationOp> := level <relationalOp> <levelValue> | #item level (player level) satisifes specified relation ilevel <relationalOp> <ilevelValue> | #item ilevel satisifes specified relation condition <relationalOp> <number> | #item condition (percentage) satisifes specified relation count <relationalOp> <number> | #item stack count satisfies specified relation spiritbond <relationalOp> <number> | #item spritbond level (percentage) satisfies specified relation price <relationalOp> <number> #item price (vendor) satisfies specified relation for item vendor price <relationalOp> := = | != | > | >= | < | <= <levelValue> := <number> | mylevel | equippedlevel <ilevelValue> := <number> | equippedilevel <booleanBinaryOp> := and | & | or | \| <booleanUnaryOp> := not | !
I realize that many will not know how to read the BNF, so here I'll provide a few examples that hopefully will give you the gist of what the filter expression language can do. The good news is, you can manually select whatever target items you please by clicking on them in the item list, so you aren't forced to use the filter language. But if you are working with full inventories, the filter language can make item selection a lot less tedious.
Example 1 - Item selection using a Lua Pattern Match
This is perhaps the most useful primitive provided by the expression language. You can specify a Lua pattern to be matched against item names - if the pattern matches, the item is selected. So, for example, suppose you wanted to select items that contain the text Materia X or Materia IX - the corresponding filter expression is: /Materia.*X/. Further suppose you wanted to further refine the match to eliminate item names containing Savage or Piety - the corresponding filter expression is /Materia.*X/ and not (/Savage/ or /Piety/). By using boolean operators and parenthesis, you can build up complex expressions that can select items at a very fine level of granularity.
Example 2 - Item selection using an Exact Name Match
Suppose you wanted to select items with names that exactly match some text, say Heaven's Eye Materia X - the corresponding filter expression is: “Heaven's Eye Materia X”.
Example 3 - Item selection using item attributes
The filter expression language provides access to a wide variety of item attributes you can use to refine your search. In the BNF, you can see these in the definitions for <primitiveExpression>, <jobClassOp>, <uicategory>, <uicategoryGroup>, and <relationOp>. Note that the keywords shown in these definitions are case insensitive. Suppose you want to only select items that have materia - the corresponding filter expression is: materias. Now suppose you want to select equipment items for the monk or sage job class. To do so, you would use the UI category group equipment and the job class that appears above the equipment level on the tool tip popup when you mouse over a piece of equipment on the character control. In this case, the corresponding filter expression is: equipment and (MNK or SGE). Now suppose you wanted to select items that are at a level that can be used by your character. The corresponding filter expression is: level ⇐ mylevel. Finally, suppose you only wanted to select items that are a particular kind of item. To do so, you would use the UI category that appears below the item icon on the tool tip popup when you mouse over an item in your inventory. So, to select items that are stone or leather and have a stack size greater than 1, the corresponding filter expression is: (stone or leather) and count > 1.
Below the Filter Expression controls is the list of items on which you can perform various functions. You can select item entries for function application by either clicking the check box to the left of it or by mousing over the item name and clicking on it. You can toggle between all item entries being selected or not by toggling the check box under the Selection label.
The item list table provide a wide range of item attributes for you to view. Note that the column headers provide buttons that allow you to sort the list according to values in that column: “^” sorts in the ascending direction (lowest to highest values), while “v” sorts in the descending direction (highest to lowest values). The item information displayed in each column is:
|Name||The item's name|
|Inv Type||The inventory type of the inventory in which the item resides|
|Slot||The slot within the inventory that holds the item|
|Level||The player level of the item|
|iLevel||The item level of the item|
|HQ Count||The number of this item that are high quality|
|NQ Count||The number of this item that are normal quality|
|Can Desynth||The item can be desynthesized|
|Materia Count||The number of materias attached to the item|
|% SB||The item's spiritbond percentage|
|% Cond||The item's damage condition|
|Col Rtg||The item's collectability rating|
|Can Trade||The item can be traded|
|Vendor Price||The gil amount a vendor will pay for the item|
Depending on the inventory types of the individual items you've selected, certain functions may not be applicable. For example, you can't sell items out of your saddle bags, so if you attempt to do so, Material Girl will deny the request. Material Girl also prohibits you from preforming destructive operations on your equipment inventory types, and requires you to first move them from your equipped items or armory into your inventory bags to do things like desynthesize or discard. When functions are disallowed, Material Girl will provide a popup that identifies the disallowed functions.
The functions you can perform are:
|Extract Materia||If the enabled item has fully spiritbonded materia, it is extracted.|
|Repair Selected||If the enabled item is in need of repair (it's condition is below the threshold specified in the Settings tab), and you have the required dark matter in your inventory, it is repaired.|
|Repair All||Material Girl will Navigate your character to Alistair in Limsa Lominsa Lower Decks (future Material Girl versions may support mendor selection or traveling to the nearest mender.) For each selected inventory, Material Girl will interact with the Mender to repair all items in that inventory. Specifically, the enabled state of items in the list is ignored.|
|Use||if the enabled item can be used, it is used. If the item is stacked, all items in the stack are used. This is considered to be a destructive function, so you will be prompted to authorize it.|
|Retrieve Materia||If the enabled item has materia, they all are retrieved. This is considered to be a destructive function, so you will be prompted to authorize it.|
|Desynthesize||If the enabled item is desynthesizable, it is desynthesized. If the item is stacked, all items in the stack are used. This is considered to be a destructive function, so you will be prompted to authorize it.|
|Discard||The enabled item is discarded. If the item is stacked, all items in the stack are discarded. This is considered to be a destructive function, so you will be prompted to authorize it.|
|Merge||Merges the selected stackable items into larger stacks. You can select just the items you want stacked, or you can select everything an Material Girl will merge everything that is stackable.|
|Expert Delivery||The enabled item will be offered up for expert delivery. Material Girl will navigate your character to the appropriate Grand Company officer and interact with it to deliver all enabled items. By default, special items will not be delivered, but this can be enabled using the Settings tab. If delivering an item will put you over your maximum company seal allowance, the function will be terminated. While this could be considered to be a destructive function, you will be not be prompted to authorize it, since you have plenty of time to abort while it is traveling to the NPC required to accomplish it.|
|Trade Items||The enabled item will be offered for trade to the character you are targeting. If that player is also running Material Girl with Auto Trade enabled (specified bin the Settings tab; by default, it is disabled), then all enabled items requested will be automatically traded using multiple trade sessions. This is very useful for trading items between your main and alt characters. Sell - the enabled item will be offered for sale to Genulf in Limsa Lominsa Lower Decks (future Material Girl versions may support vendor selection or traveling to the nearest vendor.) By default, special items will not be sold, but this can be enabled using the Settings tab. Material Girl will navigate your character to Genulf and sell all the enabled items to him. While this could be considered to be a destructive function, you will be not be prompted to authorize it, since you have plenty of time to abort while it is traveling to the NPC required to accomplish it.|
|Sell||The enabled item will be offered for sale to Genulf in Limsa Lominsa Lower Decks (future Material Girl versions may support vendor selection or traveling to the nearest vendor.) By default, special items will not be sold, but this can be enabled using the Settings tab. Material Girl will navigate your character to Genulf and sell all the enabled items to him. While this could be considered to be a destructive function, you will be not be prompted to authorize it, since you have plenty of time to abort while it is traveling to the NPC required to accomplish it.|
|Select Destination||The enabled items will be moved to the inventory you select from the dropdown list. Some of the inventory selections will be groups, like Armory, while others will be specific inventories, like Bag 1. In all cases, the item is moved into the first available slot in the selected inventory.|
The Inventory Types Tab allows you to to select the inventory types from which Material Girl will select items.
You can select individual inventory type entries by either clicking the check box to the left of it or by mousing over the inventory type name and clicking on it. You can toggle between all inventory type entries being selected or not by toggling the check box under the Selection label.
For the saddlebag inventory types to appear, Material Girl must be able to operate the saddlebag main command. This requires a cast, so if your action bar is disabled (doesn't appear on your screen) then the saddlebag types will not appear. This typically occurs because you have FFXIV windows open that causes the action bar to be disabled. If this happens, just close all your open FFXIV windows, then hit the Reset button on the Material Girl UI.
The retainer bag inventory types are only available while you have the retainer inventory window open. So you must manually open the retainer inventory window to enable using Material Girl on retainer bags.
The selected inventory types will be displayed on the Main Tab next to the Selected Inventory Types label.
The Gearsets Tab allows you to select the gearsets that are used by the Sync Gearsets function on the Main Tab.
You can select individual gearset entries by either clicking the check box to the left of it or by mousing over the gearset name and clicking on it. You can toggle between all gearset entries being selected or not by toggling the check box under the Selection label.
The selected gearset will be displayed on the Main Tab next to the Selected Gearsets label.
The Filter Expressions Tab allows you to select previously saved filter expressions as input to the filter expression control on the Main Tab when it is in manual inventory management mode or auto inventory management mode. You can also delete saved filter expressions when they are no longer needed.
You can select a filter expression entry to be reused by either clicking the check box to the left of it or by mousing over the filter expression tag and clicking on it. You then reuse the filter expression by clicking the Use button. Only one filter expression can be selected or an error popup will be displayed.
You can select individual filter expression entries to be deleted by either clicking the check box to the left of it or by mousing over the filter expression tag and clicking on it. You can toggle between all gearset entries being selected or not by toggling the check box under the Selection label. You then delete all the selected filter expressions by clicking the Delete button.
The Settings Tab allows you to modify the settings that affect various aspects of Material Girl's operation.
|Auto Handover||When checked, Material Girl will monitor for certain controls that require you to hand over items and automatically hand over the ones being requested. This does not currently work for all such possible controls, and was mainly created to assist in acquiring some of the early crafting masters books. As people use Material Girl, if there are controls that can benefit from this feature, I urge them to use the Material Girl discord channel to request their addition.|
|Auto Trade||When checked, Material Girl will automatically handle receiving trades. This is intended to be used with another character that is using Material Girl to trade items from its inventory bags to the recipient character.|
|Accept Sale of Special Item||When checked, Material Girl will automatically allow special items to be sold.|
|Accept Delivery of Special Item||When checked, Material Girl will automatically allow expert delivery of special items.|
|Set Recommended Gear During Armory Clean||When checked, Material Girl will first set recommended gear for each selected gearset before cataloging the equipment being used from that gearset.|
|Automatic Desynthesize Mode Disable Override||When checked, Material Girl will allow you to automatically desynthesize items as you craft. This is useful for leveling desynthesis skill. If you use Lisbeth for crafting, be sure to disable its auto material extraction and repair features if you enable them in Material Girl. This setting is NOT saved to your profile.|
|Min Repair Condition||The equipment condition threshold for repairing equipment that falls below the set threshold.|
The Profile Tab allows you to persistently store most of Material Girl's settings. The profile settings are stored in files unique to the character and game language used to create the profile. You can create as many profiles as you like. The controls on this tab are:
Load Current Profile After Reset: When checked, if you hit Reset on the Main Tab, or when Material Girl is loaded when you start Minion, after all settings are initialized to their default values, the saved settings in your current profile are loaded.
|Current Profile Name||The settings file you selected to be the current profile being used by Material Girl.|
|Load||Load all settings from the current profile.|
|Save||Save all settings to the current profile.|
|Add New Profile||The name of a new profile you wish to add (must be a valid file name).|
|Add||Create the new profile and save all current settings to it.|
The table is a list of all the profiles you have created for the current character and game language. Using the “Selection” column, you can select specific profiles for the operations Delete or Make Current. Obviously, only one profile at a time can be made current, so you can only select one for that operation, but you can select as many as you like for the Delete operation. You can select/deselect all profiles by using the checkbox in the operation row.
This tab is primarily intended for use in conjunction with consultation with Material Girl support. It enables various test scenarios and debugging information that are used to help diagnose issues that might occur during Squatter's operation. The controls on this tab are:
|Enable Log file||When checked, Material Girl will create a unique log file for your session. This only needs to be checked if you are told to do so by Squatter support.|
|Enable Timestamp||When checked, Material Girl will include the current tick count in the debug messages. This provides information that facilitates debugging timing issues.|
|Debug Message Level Settings||Material Girl's debug message system implements a simple filtering mechanism that can be used to allow or inhibit certain message classes, generally in increasing order of verbosity. The default settings are fairly “quiet”, but to debug issues you encounter you will be asked to enable more verbose settings to gather diagnostic information.|
For support or requests, please contact me on discord: https://discord.gg/zy2jsfJMvv. I will respond as soon as I am able, generally within 24 hours at most.
When you need support, please provide me, at a minimum, the following:
If you post this information to the specified channel (NOT RECOMMENDED), please ensure it does not contain any information that identifies your account, character, or server. For complete anonymity, just DM it to mistahmikey#4073. Additionally, you should not use an account you use for in-game communications so you can't be doxed as a botter.
If that initial information is insufficient for me to determine the cause, I will ask you to set other debug settings that will provide more information. Material Girl is a very complex piece of software, and can be negatively affected by a number of factors over which I have no control, not the least of which is what other addons you run. I appreciate your patience in working with me to solve your issue when it is not slam-dunk easy. As long as you are willing to try the debugging measures I request, I will work with you until your problem is solved.