feature needed for Legion: search for missing transmogs
  • with the upcoming changes arriving with the Legion transmog system, can you please look into adding an option for searching the AH for missing transmog models?

    If implemented as a separate searcher module, i think it should behave like the General searcher is doing now when searching in the armor/weapons/tabards sections and use the same general pricing rules and statistics (including external statistics data, like The Undermine) but it should have an extra filtering setting to HIDE from the list the item models that are already known by the user's transmog system.

    For a simpler approach, it could even be integrated into the existing General searcher, as a single checkbox to tick in order to hide the items corresponding to the transmogs already known by the user.

    obviously, this is a long-term suggestion and it depends on Blizzard providing in-game API access to the account-wide transmog system, at least for item state queries ("is item XYZ already known by the transmog system?" = yes/no/not usable for transmog), but i think that the overall idea is useful.

    in my query example above, possible results of the query and their results would be:
    no => include the item in the list
    yes => hide the item from the search results list
    not usable for transmog => hide the item from the search results list
  • It's a good suggestion, but we're pretty low on manpower at the moment. I can't make any promises, unfortunately.
  • bump.. now that the pre-patch is here, i see that missing but usable transmogs have a text line: "You haven't collected this appearance"
    (most likely the text is different in other languages)

    until an API for the dressing room gets published, i think this text line is our best candidate to use for a search filter.
  • update: found a nice addon on Curse that also has an API for item links:

    currently i'm trying to integrate it into my Cheapo searcher module.

    20160725 update: "Can I Mog It?" has some problems... one of them being their restrictive license which does not allow code reuse, i barely got permission from the authors to link to their API functions (which don't quite work at the moment), so i decided to try Caerdon Wardrobe (MIT License) instead...
  • another update: after looking through things more, i would go with Caerdon Wardrobe, it has a very open-source friendly license, the MIT license, that allows code re-use and it even comes with a nicely reusable pre-packaged function that returns booleans, perfect for using as a secondary filter for AH results:

    in AddOns\CaerdonWardrobe\Core.lua

    local function PlayerNeedsTransmogMissingAppearance(itemLink)

    i'm waiting for Caerdon to remove the 'local' tag so that the addon function can be called directly by other addons without having to copy the code... otherwise it would be needed to re-implement that function (but that is allowed in this case by the MIT License).

    Blizzard's function C_TransmogCollection.PlayerHasTransmog(itemID,[....]) tends to confuse recipes with appearances of items created by those recipes, but Caerdon's function tries to differentiate between recipes and items created by those recipes.

    DO NOT use this boolean function as the primary search filter because querying the appearance database repeatedly takes quite a performance hit on the game... best way to use it is to first apply the usual price search criteria and THEN, on this resulting data, if the "missing transmog" search mode is enabled, run the boolean test ONLY on the results of the first criteria... this way we run the search as a two-stage filter and we avoid running the boolean test on the entire search set.

    20160731 update: i see that in v0.22.0 of the addon this function has been removed and its contents has been integrated into other functions (look for the "needsItem" boolean variable or for calls to Blizzad's function C_TransmogCollection.PlayerHasTransmog):
    local function GetBindingStatus(bag, slot, itemID, itemLink)
    local function ProcessItem(itemID, bag, slot, button, options, itemProcessed)
  • pushed an alpha version of Cheapo addon to curse containing this feature, using a simplified version of Caerdon's function from v0.17.0 and some tiny bits of later versions.


    The simplified Transmog test function is not bothering to deal with caged pet item links or other weird similar links because they don't have a sell-to-vendor price and i use the sell-to-vendor price as the primary search filter before calling this function.

    edit: got the preview edition published by Dinesh... thanks!

    already running tests and making fixes in Cheapo. :)

  • updated the module & promoted it to beta status... looks usable enough to me now.
  • today i added an 'improved transmog detection' search mode that uses "Can I Mog It?" addon API calls for a more accurate missing transmog detection. If "Can I Mog It?" is not installed then the searcher falls back to the simplified transmog logic.
  • @A_Tom: So, if I'm understanding the intent of Cheapo correctly, this is an addon to scan the AH to find transmog pieces I don't already have?

    I'm going to assume a LOT of results would get returned, hmmm?
  • the primary search criteria is the sell-to-vendor price not the transmog known/not known state - because it's faster to search by price and that's where most transmog pieces end up anyway once their appearance is learned.

    The Cheapo searcher module addon was originally (in Draenor times) just a scavenger modification of the Vendor module that picked up items priced just above sell-to-vendor price - it still does this when the transmog search mode is disabled and it also behaves this way all the time for items that are priced below the sell-to-vendor price, even in transmog search mode.
    The transmog search features were only added as they became available recenly for Legion.

    The slider available in the Cheapo interface allows you to select how high above the vendor price you want to search for items. Its default value is 20% above vendor price while searching in non-transmog mode and if you enable the transmog mode search it adds an additional 50% to that factor from the slider. This means that the maximum default factor of 120% vendor price will become 170% if you enable this mode.

    e.g. if you set the slider to have a maximum additional factor of 250% then the normal mode search results are limited to items that are priced at most 350% (=100% basic vendor price + 250 added by slider) of vendor price and the transmog mode search results are limited to at most 400% (=100% basic vendor price + 250 added by slider + 50 added by mog search mode) of the sell-to-vendor price.

    it's only after computing the vendor price and checking if an item fits within the price range criteria that an item is checked to see if it's a valid candidate as a missing transmog piece.

    Gating the transmog search by first limiting the results through the sell-to-vendor price gate helps to filter out a lot of items and also avoids overloading the Blizzard Wardrobe API.

    You can raise gradually the slider that sets the maximum ceiling price but beware that setting it too high will cause lag or graphical hiccups while searching because there will be more items that are passed through the transmog lookup filters.

    20160806 edit: increased max slider value from 3500 to 5000; increased the additional factor added by the transmog mode search from 50% to 2500% (yes 2500% is not a typo) and also force a reset of the slider value back to 20% on addon load. This wide percentage gate is needed because of transmog items that have a sell-to-vendor price of just a few silver but still can have prices of 50..100g in AH.

    20160809 r1 edit: increase again the percentage caps because the default transmog search mode was skipping some items with high percentages above a very low vendor price. It was needed to adjust the slider to find these.
    e.g. Cavalier Two-Hander, itemID 3206, 20g current price in AH vs 45s82c vendor price: (20/0,4582)x100 = 4365%
    The transmog search mode now adds 5000% instead of just 2500% to the max vendor percentage cap and the slider maximum additional percent value is allowed to go to 15000 now instead of just 5000. However, to compensate for the potential result volume overload, we now also enforce a reset of the max price to 1500g in addition to the slider value reset to 20% on addon load. You can change these after the addon is loaded if you want but they will be reset to 1500g and 20% on load.

    v20160809r1 post-publishing changelog edit: I'm not sure what to do about items like Prospector's Sash, item ID 14559, has a common price of about 50g in AH these days but has a 3s94c vendor price, so we get a crazy percentage of (50/0,0394)x100= 126903%... hopefully the combined new max slider value + transmog mode will catch cheap versions of these too: 15000 (max slider value) + 5000+100=20100% max relative-to-vendor price, so, if there's a cheap one of these in AH that fits the ceiling price of (0,0394 x 20100)/100 = 7g 91s 94c they will probably be detected as cheap when the slider is set to the maximum position. These are edge cases though, so i probably should not increase the max allowed slider value above 15000 just for a few remaining items. You can use other searcher modules to find those.

    20160809 r2: another approach for transmog search value caps, i think this one works better for the items that have a low sell-to-vendor price: squish back the maximum slider value to 10000 and use instead a staggered change of the static factor added by the transmog search mode, it works like this:
    -If the sell-to-vendor price of the item is less than 50 silver then transmog search mode adds a 100000% factor (one hundred thousand) value cap.
    -If the sell-to-vendor price is between 50 silver and 1g then add a 50000% (fifty thousand) max factor,
    -and if the sell-to-vendor price is above 1g then add the old 5000% factor.
    The default maximum price remains at 1500g.
  • Okay, that makes sense. Looking for items close to (but not at) Vendor price means you'll be getting them for cheap (hence the name), and then comparing to what transmogs you still need is a pretty neat idea. I just wanted to make sure I understood what it was this was for. :) Thank you.
  • a side note: i allowed the slider to go to 3500 at present (3500+100+50= 3650% of vendor price when searching in transmog mode)... that's probably way too high for some realms or computers...

    during my tests i'm getting graphical stuttering during search when at about 1400, so it probably is a good idea to avoid ever setting it to above 600...800.

    it depends on your CPU though and/or server connection.... so i really cannot say what's an optimal value for this slider when searching in transmog mode.

    20160806 edit: seems the hiccups were caused by something Blizzard-side.. after the latest hotfixes deployed by Blizzard they do not occur anymore, so i could increase the ceiling quite a bit more.

    20160818: Auctioneer finally published a beta/stable on Curse...
    I increased a bit more the default static scaling factors but also i lowered the default max price from 1500g to 1000g to trim more of the overpriced items. The new increased static scaling factors should provide useful results up to around 2500g max asking price... going above that, they may start to exclude some items.
    The slider value is only used when the transmog search mode is disabled and goes only up to 2000% over the 100% vendor price.
  • Would it be possible for the search to have an option to ignore items that are "Learned from another item" ?

    Also, could the add-on detect when an item is purchased, then update the transmog tooltips of the remaining items in the search results to show that the item was purchased already?
  • for 1:
    this depends on CanIMogIt:PlayerKnowsTransmog() returning reliable 'true' results even when CanIMogIt:PlayerKnowsTransmogFromItem() returns a 'false' result from the item itself.

    unfortunately this is almost never the case for high-volume API calls, because of bugs (or a rate-limiter) in the Blizzard Wardrobe API i think it requires a hardware event or some tooltip-display action because i cannot get a 'true' reply from CanIMogIt:PlayerKnowsTransmog() until i mouse over and display a tooltip for an item at least once for an item in the search results list.

    the ticket #80 that i started on the Can I Mog It? tickets covers this issue..
    when CanIMogIt:PlayerKnowsTransmog() starts to reliably return 'true' booleans for item appearances known from another item it will be possible to turn this feature on/off in Cheapo too - it will be the "Completionist" transmog search mode.

    for 2: not possible (at present at least), the addon only provides a boolean true/false and a reason ("Vendor"/"Cheapo") when queried by Auctioneer SearchUI about whether it should include a particular item in a results list. This happens inside the Auctioneer interface search engine. Auctioneer sends such a query for each item, individually, never the entire item list.

    The display of the list of items themselves or their tooltips is handled by the Auctioneer UI not by this addon.

    Once Cheapo provides a boolean reply about whether an individual item should be included in the results list it no longer has control on the item and does not even keep an item history. This addon is basically just a search filter.

    If you buy an item then you should learn the new transmog appearance and re-run the transmog search - it should detect during the new search the newly learned appearance and filter out similar items.

    implementing such a huge change such as dynamic update of the results list would require massive changes in the core functions of Auctioneer.
  • also, problem 1 should (hopefully) be solved when Can I Mog It? introduces an usable appearance database:
  • Only way appearance known for other characters can ever be reliable is if the data for each character is cached via an addon like Altaholic/Datastore. For whatever reason blizzard has designed the API to only function properly for the character you're currently on.
  • that's the thing, not even for the current character is the API functioning properly.

    item appearances "known from another item" take a few seconds to be calculated before the API returns a "known" reply but they don't wait for the calculation to finish and return a "not known" answer until then.

    And the calculation doesn't even start unless there's a tooltip triggered for the item or the item icon is displayed and processed. If you just query the API by using the itemLink it won't trigger the "known from another item" appearance calculation.

    that's why "Can I Mog It?" is introducing a "known appearances" database - because Blizzard's API sucks.
  • That's just bad. Why even have an API for mods if it 100% doesn't work?
  • the thing is.. i think it worked in the first few days of the pre-patch, but caused some heavy lag because of the server and client cpu usage.. i think Blizzard added some small delays and throttles here and there for optimization.

    The delays are almost never noticed when just mousing over items but when used in a search filter, with thousands of items queried per second, it becomes obvious immediately that they don't process side-source-appearances until later
  • update:
    filtering out the items that are known from another item is now available in the version from today (20160906) but please note that it needs a version of "Can I Mog It?" that has local-database support.

    In Curse Client - set the release channel for "Can I Mog It?" to "Alpha" and install the newest version... the current alpha from today has database support.
  • https://mods.curse.com/addons/wow/auctioneer-cheapo-searcher-module-with-transmog

    update 20161026:text UI layout cleanup and .TOC update for WoW 7.1.
    When "Can I Mog It?" is not detected as active the interface will hide the search parameter checkboxes that are relevant only for it.

    - text UI layout re-arranged a bit - layout is more efficiently arranged in the above-the-fold area
    - for transmog mode changed the absolute maximum price calculation, ripped out the dynamic formula and replaced it with a static value of 500000g 00s 00c. Maximum price is now = min(maxprice, 500000g)

    20161119r2: work-around curseforge silly bug, have to convert the files from unix style (LF) to windows-style (CR LF) line endings so that their new server does not screw up the sha-256 checksums again.

    20170110: ui tweak: compacted a bit more the space occupied by the checkboxes in the upper-right corner so that the checkbox for completionist search mode is visible above the fold without having to scroll that area.

    20170314: Transmog mode search: on PTR 7.2 Blizzard has changed the function C_TransmogCollection.ClearSearch() so for now we just avoid calling it since it doesn't really seem to be needed - it was there mostly for memory usage clean-up and "Can I Mog It?" already has it implemented.

    20170409: TOC update for patch 7.2 and code comments cleanup.
    Also lowered the default maxprice from 1000g to 500g - a lower threshold is needed because Blizzard seems to have a rate-limiter built into GetItemInfo and it will often return useless data if queried too fast. This is why it's often needed to press the search button 2...3 times in a row to get useful data.
  • 20170811: added another filter (checkbox) to only show items that belong to a transmog set and that are still needed. When the set option is active the maximum price limit is multiplied internally by 100 to catch more possible set items.

    20170817 (beta): cosmetic interface change: tweaked a bit the position and labels for the checkboxes, renamed the "set pieces" label to just "sets" to use less space.

    20170823: HEADS UP notice: "Can I Mog It?" will probably replace some of the used transmog logic functions with Blizzard equivalents that will become available in patch 7.3.
    it will be a bumpy ride :)

    20170920: TOC update for patch 7.3, the cosmetic interface tweaks from the earlier beta (v20170817) are also included.

    20171009 (beta): tiny optimization in transmog check: move the completionist filter check a bit higher in the code so that it runs before other checks, possibly helping to skip a few CanIMogIt API calls later on in the code path. Logical end result stays the same as before, just the order of the filter checks is changed.

    20171011: Made the transmog search mode enabled by default and removed the slider that limits price percentages vs vendor price in non-transmog search mode. The percentage filter doesn't make sense anymore, especially since WoW patch 7.3 seems to have a different (more aggressive) cache logic. Also removed the 500000g absolute maximum price limit. Go nuts if your game wallet/CPU allows it.

Start a New Discussion

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

norganna's addons network · tf2 warehouse · scrap warehouse · auctioneer addon · gatherer addon · addon forums · rdrct