Skip to content

ItemsMatcherPlugin lt LT

ArchiBot edited this page Dec 12, 2022 · 16 revisions

Note

This page is work-in-progress. For translators: you may want to wait a bit (until stable release), as the page is still being written and corrected.


Plugin

ItemsMatcherPlugin is official ASF plugin that extends ASF with ASF STM listing features. In particular, this includes PublicListing in RemoteCommunication and MatchActively in TradingPreferences.


PublicListing

Our public ASF STM listing is located on our website and used as a public service for both ASF users that make use of MatchActively, as well as ASF and non-ASF users for manual matching.

Please note that you will not be displayed on the website if you do not meet all of the requirements. ASF won't even bother communicating with our server in this case, so this section is entirely skipped for you if you didn't intentionally enable SteamTradeMatcher in order to help yourself match dupes. Also public listing is compatible only with latest stable version of ASF and may refuse to display outdated bots, especially if they're missing core functionality that can be found only in newer versions.

How it exactly works

ASF sends initial data once after logging in, that contains all properties public listing makes use of. Then, every 10 minutes ASF sends one, very tiny "heartbeat" request that notifies our server that the bot is still up and running. If for some reason the heartbeat didn't arrive, for example due to networking issues, then ASF will retry sending it each minute, until server registers it.

This allows our website to record which accounts can be used for matching, as well as if they're still active. Thanks to that, our website can show all ASF 2FA+STM accounts that were active in last 15 minutes.

Users are sorted according to their inventories (in descending order) - MatchEverything bots with Any banner that accept all 1:1 trades, then MatchableTypes unique games count, and finally MatchableTypes items count.

API

ASF STM listing only accepts ASF bots for time being. There is no way to list third-party bots on our listing for now (as we can't review their code easily and ensure they meet our entire trading logic).

If you're looking for easy way to access our listing in programmatic way, we have a very simple /Api/Listing/Bots endpoint that you can use. This is also the endpoint that ASF uses internally for MatchActively users.

Privacy policy

If you agree to being listed in our listing, by enabling SteamTradeMatcher and not refusing PublicListing, as specified above, we'll temporarily store some of your Steam account details on our server in order to provide the core functionality.

Public info (exposed by Steam to every interested party) includes:

  • Your Steam identificator (in 64-bit form, for generating links)
  • Your nickname (for display purposes)
  • Your avatar (hash, for display purposes)

Private info (selected data required for providing the functionality) includes:

  • Your inventory limited to item types that you've picked in MatchableTypes (so people can use MatchActively against your items).
  • Your trading token (so people outside of your friendlist can send you trades)
  • Your MaxTradeHoldDuration (so other people know whether you're willing to accept their trades)
  • Your MatchableTypes (for display purposes and matching)
  • Total number of Steam items in your inventory (for display purposes and matching)

MatchActively

MatchActively setting is active version of SteamTradeMatcher which includes interactive matching in which the bot will send trades to other people. It can work standalone, or together with SteamTradeMatcher setting. This feature requires LicenseID to be set, as it uses third-party server.

In order to make use of that option, you have a set of requirements to meet. At the minimum you must have unrestricted account, ASF 2FA active and at least one valid type in MatchableTypes, such as trading cards.

If you meet all of the requirements above, ASF will periodically communicate with our public ASF STM listing in order to actively match bots that are currently available.

  • In each round ASF will fetch our inventory and inventory of selected bots that are listed in order to find MatchableTypes items that can be matched. If match is found, ASF will send and confirm trade offer automatically.
  • Each set (composition of appID, type and rarity of the item) can be matched in a single round only once. This is implemented in order to minimize "items no longer available" and avoid a need to wait for each bot to react before sending all the trades. It's also the primary reason why matching is composed of rounds and not one ongoing process.
  • ASF will send no more than 255 items in a single trade, and no more than 5 trades to a single user in a single round. This is imposed by Steam limits, as well as our own load-balancing.

This module is supposed to be transparent. Matching will start in approximately 1 hour since ASF start, and will repeat itself each 6 hours (if needed). MatchActively feature is aimed to be used as a long-run, periodical measure to ensure that we're actively heading towards sets completion, but without a short-term time and resources pressure that would happen if this was offered as a command. The target users of this module are primary accounts and "stash" alt accounts, although it can be used by any bot that is not set to MatchEverything.

ASF does its best to minimize the amount of requests and pressure generated by using this option, while at the same time maximizing efficiency of matching to the upper limit. The exact algorithm of choosing the bots to match and otherwise organize the whole process, is ASF's implementation detail and can change in regards to feedback, situation and possible future ideas.

The current version of the algorithm makes ASF prioritize Any bots first, especially those with better diversity of games that their items are from. When running out of Any bots, ASF will move on to the fair ones upon same diversity rule, with those owning excessive number of items further deprioritized due to higher chance of possible inventory-related problems compared to other bots. Regardless of that, ASF will try to match every available bot at least once, to ensure that we're not missing on a possible set progress.

MatchActively takes into account bots that you blacklisted from trading through tbadd command and will not attempt to actively match them. This can be used for telling ASF which bots it should never match, even if they'd have potential dupes for us to use.


Why do I need a LicenseID to use the plugin? Wasn't MatchActively free before?

ASF is, and remains, free and open-source, as it was established at the start of the project back in October 2015. Our program is also entirely non-commercial, we do not earn anything from contributions to it, building or publishing. Over those past 7+ years ASF has received tremendous amount of development, and it's still being improved and enhanced with every monthly stable release mostly by a single person, JustArchi - with no strings attached. The only funding we receive is from non-obligatory donations that come from our users.

For a very long time, until October 2022, MatchActively feature was part of ASF core and available for everyone to use. In October 2022, Valve, the company behind Steam, has put very severe rate limits that rendered previous functionality entirely broken, with no solution available. The feature therefore has been removed from ASF core in version 5.4.1.0.

MatchActively was resurrected as part of official ItemsMatcher plugin that further enhances ASF with active cards matching functionality. Resurrecting MatchActively feature required from us extraordinary amount of work to create ASF backend, entirely new service hosted on a server, with more than a thousand of proxies attached for resolving inventories, all exclusively to allow ASF clients to make use of MatchActively like before. Due to the amount of work involved, as well as resources that are not free and require to be paid on monthly basis by us (domain, server, proxies), we've decided to offer this plugin to our sponsors, that is, people that already support ASF project on monthly basis. Our goal isn't to profit from it, but rather, cover the monthly costs that are exclusively linked with offering this functionality - that's why we offer it basically for nothing, but we do have to charge a little for it as we can't pay hundreds of dollars from our own pockets just to make it available for you. We hope that you understand.


How can I get an access?

ItemsMatcher is offered as part of $5+ sponsor tier on JustArchi's GitHub. Simply become a sponsor of $5 tier (or higher), then click here to obtain your LicenseID. You'll need to sign in with GitHub for confirming your identity.

The license allows you to send limited amount of requests to the server. $5 tier allows you to use MatchActively for one account, which should be suitable for majority of people. $10 tier allows you to use it on three accounts. If you require more resources, let us know.

LicenseID is made out of 32 hexadecimal characters, such as f6a0529813f74d119982eb4fe43a9a24. Simply put it in LicenseID property of ASF global config.

Clone this wiki locally