-
Contributor
Inventory and Stash Search Plugin (+Armory)
This plugin adds a chat command to highlight items in your inventory, paperdoll (equipped), and stash to make it easier to find your stuff. It also now extends the built-in stash search field to mark tabs and inventory with results.
[Tested with TurboHUD verson 20.7.12.0, API version 9.1]
FEATURES
- It automatically starts searching as you type in your command in the chatbox or in the stash search field when the stash and/or inventory windows are open
- The name of the item to find is case insensitive and can be a partial phrase
- You can optionally specify legendary item quality (ancient, primal)
- You can also search by item type (e.g. legendary gem, potion)
- You can also search by set names for sets that don't have a common naming scheme (e.g. bastions of will, unhallowed essence, istvan's paired blades, gears of dreadlands)
- It will search within item sockets, in case you are searching for socketed gems
- You can put item links (shift clicking an item when the chat prompt is open) in your search, and it will extract the text name of the item (e.g. {{[Focus]}} becomes Focus)
- (NEW) You can filter legendary gem searches by its rank
- (NEW) You can filter item searches by stat type
- (Optional) You can specify your own the search command (default command is /s)
It's still an intermittent work-in-progress and needs more polishing, but it is very functional. New features include:
- extends the built-in stash search field to mark tabs and inventory with results
- set searching for the two new S21 sets (both have irregular piece names), e.g. just type in "gear" to find all Gears of the Dreadlands set pieces, etc
- armory items searching, tagging, in-tooltip listing
- you can perform chat-command searches while the inventory window is open, even if you're not at the stash
- cross-character search (WIP: it works for heroes seen in the current HUD session - you loaded those characters into games)
- cross-character armory profile item tagging (WIP: it works for heroes seen in the current HUD session - but data persistence across sessions is one of the next major steps to work on)
- improved search results summary (WIP)
The search looks at localized item names, however I don't know how it would perform in languages other than English.
(new)
(old)
USAGE EXAMPLES
/s ancient focus --> highlights all Ancient quality Focus rings
/s leg gem --> highlights all legendary gems
/s ancient unhallowed --> highlights all ancient quality items in the Unhallowed Essence set
/s eso --> highlights all Esoteric Alteration gems, including ones socketed in jewelry
/s ^ron --> highlights items whose name begins with "ron", such as Rondal's Locket
By request, I added the ability to refine your current character's search results with parameters. You can now search for item stat text with +stat name (partial match works), for example:
/s convention +area --> highlights all Convention of Elements rings with the area damage stat
/s nem +int --> highlights all Nemesis bracers with intelligence stat
/s ring +crit chance +cooldown --> highlights all rings with both crit chance and cooldown stats (also matches "Bone Ringer" with the same stats)
You can now search for legendary gems of specific ranks (you can specify any rank number for the search), for example:
/s zei 150 --> highlights Zei's Stone of Vengeance legendary gems that are leveled to rank 150
/s zei >100 --> highlights all Zei's Stone of Vengeance legendary gems above rank 100
/s leg gem <123 --> highlights all legendary gems below rank 123
These parameters work with both the chat command and stash search field.
DOWNLOAD
InventoryStashSearch_Aug-7-2020.zip
INSTALLATION
Put the files and folders here:
TurboHUD\plugins\Razor\Click\ (required)
TurboHUD\plugins\Razor\InventoryStashSearch.cs
CONFIGURATION OPTIONS
There are some variables whose values can be customized:
Code:
MarkArmorySets = true //show the corner triangle at the bottom left of an item icon
ShowArmoryInTooltips = true //show list of armory profiles that this item is saved to
SearchCmd = "/s" //this is the chat command
MinimumSearchLength = 2 //only perform a search if the item name is two letters or longer
SetNames = new Dictionary<uint, string>() {...} //defines all the set ids and how they translate into search terms
I wrote this plugin a while back for personal use, before season 17, whose patch added the stash search field. This is a rewrite that fixes some bugs with the old system and adds more features. If you want to stick with the barebones old version, you can still download it here ([v9.0] Inventory and Stash Search plugin).
Last edited by Razorfish; 12-20-2021 at 08:40 AM.
Reason: updated download link
-
Post Thanks / Like - 12 Thanks
RNN,
s4000,
Wasted75,
mois,
BeeAntOS,
SeaDragon,
PTS_TDS,
JohnWick,
Skeeh,
DoctoreGDL,
Wasted74,
soraaa (12 members gave Thanks to Razorfish for this useful post)
-
Legendary
I have used the previous version a lot, very useful , thx
-
Active Member
is it able to search a ring with a stat?
For example search a convention of elements ring with area damage
-
Contributor
Originally Posted by
takayo72
is it able to search a ring with a stat?
For example search a convention of elements ring with area damage
Unfortunately, not at this time because, (1) I am still a noob about how the stat text is stored (luckily, I know just the plugin to learn from), and (2) it would take some structural changes to the plugin to additionally store stat data. It's on my todo list though, just gotta establish how I want to implement it.
-
Post Thanks / Like - 1 Thanks
takayo72 (1 members gave Thanks to Razorfish for this useful post)
-
Contributor
This is the SearchTerm I used before for localization & level of leg gems, hope you will add into it
Code:
private string SearchTerms(IItem item, bool extraTerm) {
var _searchTerms = item.SnoItem.NameEnglish + item.SnoItem.NameLocalized;
if (item.IsLegendary)
_searchTerms = Text_Legendary + _searchTerms;
if (extraTerm) {
if (SetNames.TryGetValue(item.SetSno, out var setName))
_searchTerms += setName;
if (item.AncientRank >= 1)
_searchTerms = Text_Ancient + _searchTerms;
if (item.AncientRank >= 2)
_searchTerms = Text_Primal + _searchTerms;
}
if (item.JewelRank >= 100) {
if (item.JewelRank == 150)
_searchTerms += "150" + Text_LegGem;
else if (item.JewelRank >= 140)
_searchTerms += "140" + Text_LegGem;
else if (item.JewelRank >= 130)
_searchTerms += "130" + Text_LegGem;
else if (item.JewelRank >= 120)
_searchTerms += "120" + Text_LegGem;
else if (item.JewelRank >= 110)
_searchTerms += "110" + Text_LegGem;
else
_searchTerms += "100" + Text_LegGem;
}
_searchTerms += item.SnoItem.SnoItemType.NameEnglish + item.SnoItem.SnoItemType.NameLocalized;
return _searchTerms;
}
-
Contributor
Originally Posted by
takayo72
is it able to search a ring with a stat?
For example search a convention of elements ring with area damage
The plugin download in the first post (Inventory and Stash Search Plugin (+Armory)) has been updated.
By request, I just added the ability to refine your current character's search results with some parameters. This currently only works for stash, inventory and equipped gear. Search results summary does not yet reflect the additional parameters (work-in-progress).
You can now search for item stat text with +stat name (partial match works), for example:
/s convention +area --> highlights all Convention of Elements rings with the area damage stat
/s nem +int --> highlights all Nemesis bracers with intelligence stat
Originally Posted by
s4000
This is the SearchTerm I used before for localization & level of leg gems, hope you will add into it
You can now search for legendary gems of specific ranks (you can specify any rank number for the search), for example:
/s zei 150 --> highlights Zei's Stone of Vengeance legendary gems that are leveled to rank 150
/s zei >100 --> highlights all Zei's Stone of Vengeance legendary gems above rank 100
/s leg gem <100 --> highlights all legendary gems below rank 100
-
Post Thanks / Like - 4 Thanks
-
Contributor
Updated the download in the first post with some plugin fixes and changes:
- Fixed search summary to take into account search parameters
- Fixed cross-character search results to include items inside sockets
- Fixed parameter regex to capture more than one word of text and handle empty parameters
- Fixed NullPointerException when a parameter search attempts to access the stat text of unidentified items
- Converted some hardcoded text prompts to variables for localization
- Changed click detection to use my Click library because it has better desync correction
- Changed search summary to display parameters used, cleaned up the display of results
If you already have the "Click" folder from the Movable plugin system, you don't need to overwrite that (it's the same thing).
-
Post Thanks / Like - 2 Thanks
BeeAntOS,
RNN (2 members gave Thanks to Razorfish for this useful post)
-
Member
Can we search for types of items, I mean: "/s phylactery" "/s shoulder" or something like that?
-
Contributor
Originally Posted by
PTS_TDS
Can we search for types of items, I mean: "/s phylactery" "/s shoulder" or something like that?
Yes, you can search by item type.
-
Post Thanks / Like - 1 Thanks
PTS_TDS (1 members gave Thanks to Razorfish for this useful post)
-
Member
I have to say, this is a fantastic plugin and is so useful. Thank you for your contributions.
Noobz
-
Post Thanks / Like - 1 Thanks
Skeeh (1 members gave Thanks to Noobz for this useful post)
-
Member
Is there a way to remove this feature?Item.png
-
Contributor
Originally Posted by
Mark Baker
Is there a way to remove this feature?
Item.png
On line 58, set ShowArmoryInTooltips to false:
Code:
public bool ShowArmoryInTooltips { get; set; } = false;
Or set it in a config file's (such as plugins / User / PluginEnablerOrDisablerPlugin.cs) Customize function:
Code:
public void Customize()
{
Hud.GetPlugin<Razor.InventoryStashSearch>().ShowArmoryInTooltips = false;
}
-
Member
Originally Posted by
Razorfish
On line 58, set ShowArmoryInTooltips to false:
Code:
public bool ShowArmoryInTooltips { get; set; } = false;
Or set it in a config file's (such as plugins / User / PluginEnablerOrDisablerPlugin.cs) Customize function:
Code:
public void Customize()
{
Hud.GetPlugin<Razor.InventoryStashSearch>().ShowArmoryInTooltips = false;
}
Thanks, that worked perfectly.
-
Member
Thanks a lot for that great plugin, Razor!!
I'm a lazy bastard so I added a quicksearch toggle for ancients when pressing left CTRL key:
InventoryStashSearch.cs (needs to implement IKeyEventHandler interface)
Code:
public bool SearchAncients { get; set; }
public IKeyEvent ToggleKeyEvent { get; set; }
public void OnKeyEvent(IKeyEvent keyEvent)
{
if (keyEvent.IsPressed && ToggleKeyEvent.Matches(keyEvent))
{
if(!SearchAncients || ((SearchString == null) && (Search == null)))
{
SearchAncients = true;
ProcessSearchString("ancient");
}
else
{
SearchAncients = false;
SearchString = null;
Search = null;
}
}
}
PluginEnablerOrDisablerPlugin.cs
Code:
Hud.RunOnPlugin<Razor.InventoryStashSearch>(plugin =>
{
plugin.ToggleKeyEvent = Hud.Input.CreateKeyEvent(true, Key.LeftControl, true, false, false);
});
Last edited by alternate_; 03-24-2021 at 11:49 PM.
Reason: forgot the most important
-
Member
The Data is deleted, i cant download it anyore :/