Thank you for the report, should be fixed in version 2.8
Comment has been collapsed.
Porting this to ASF as plugin so it could be run automatically in background would be awesome.
Technically impossible. Trick here is that script does not send trade offers, YOU do. And to send trade offer - you have to fetch bot inventory, and this can leave you blocked. That can happen even when you send trades manually (that's why script now outputs number of items in bot inventory when listing matches) after finding matches with this script, but that's not my problem now))) Writing a plugin that can leave you blocked from accessing inventories (even your own)? Well, that's not very great, you can as well just use old version of ASF with pretty much same result.
If it was possible - I would not have to write a plugin, since Archi would already implement it in mainline ASF. If you want automatic matching in background - it's available as paid feature in ASF now.
Comment has been collapsed.
Great script! Quick question:
Mine gets stuck on "Fetching bot 1 of 345 (badge 173 of 173)", it was working before (stopped working 3-4 days ago).
Any suggestion? Thanks
Comment has been collapsed.
Open browser console (just right click anywhere on page and select "inspect", then switch to console tab) and see if there are any errors. Tell me if you've got something there.
Comment has been collapsed.
Thanks for the detailed instructions. Yes, here is what it gave me:
Unchecked runtime.lastError: The message port closed before a response was received.
steamcommunity.com/:1 Unchecked runtime.lastError: The message port closed before a response was received.
steamcommunity.com/:1 Unchecked runtime.lastError: The message port closed before a response was received.
steamcommunity.com/:1 Unchecked runtime.lastError: The message port closed before a response was received.
Page.js:88 Augmented Steam v2.4.0 https://augmentedsteam.com
FeatureManager.js:43 Feature loading complete, 6 successfully loaded, 0 failed to load, 0 didn't load due to dependency errors
prototype-1.7.js?v=.55t44gwuwgvw:1944 Uncaught TypeError: Cannot read properties of undefined (reading 'removeChild')
at remove (prototype-1.7.js?v=.55t44gwuwgvw:1944:24)
at HTMLSpanElement._methodized [as remove] (prototype-1.7.js?v=.55t44gwuwgvw:439:23)
at addMatchRow (userscript.html?name=ASF%2520STM.user.js&id=fd7df023-8336-4ca9-88d9-98c71a766a49:365:29)
at compareCards (userscript.html?name=ASF%2520STM.user.js&id=fd7df023-8336-4ca9-88d9-98c71a766a49:598:13)
at GetCards (userscript.html?name=ASF%2520STM.user.js&id=fd7df023-8336-4ca9-88d9-98c71a766a49:771:13)
at Proxy.<anonymous> (userscript.html?name=ASF%2520STM.user.js&id=fd7df023-8336-4ca9-88d9-98c71a766a49:671:33)
at St (<anonymous>:9:89)
at t.<computed> (<anonymous>:58:214)
at St (<anonymous>:9:89)
at r (<anonymous>:22:484
Comment has been collapsed.
Interesting. I understand at what point error happens, but no idea what causes that. May I ask what browser are you using?
Comment has been collapsed.
Thanks again.
I'm using Google Chrome, latest updates, W10.
No problem :) It was great when it worked
Comment has been collapsed.
Steam changed rate limits, now you can get ban even by simply trying to send trade to user with too big inventory. I made new version of script, that does not requests inventories, so new version does not trigger ban anymore. How to send actual trade is entirely out of scope of my script, but pro tip - chose bots with as few items as possible.
Comment has been collapsed.
I realize the challenges and appreciate your efforts. Thanks for the tips.
UPDATE. Installed and re-installed V2.8 in OP. Reinitiated browser. Now the script does not appear to do anything with or without VPN. Downgrading to 2.7 gets it working again although with issues. I'm using the latest version of Chrome. V2.7 gets stuck on initiating trades. Uninstalled and reinstalled v2.8. Eventually was able to successfully make a trade. ISTM that Steam istself was having issues during some of this which likely affected.
Currently this is working reasonably well. it takes forever to load but then it appears that it can reasonably complete multiple trades.
Thank you for your efforts
Comment has been collapsed.
What are you talking about? xD
You should check if you have another script installed called "Updated ASF STM", made by iBreakEverything. It is based on the original "ASF STM" by Ryzhehvost and worked better than the original.
If you have the script by iBreakEverything installed and then install the updated version of the original script by Ryzhehvost - also called ASF STM - it will not work.
And the new updated script by Ryzhehvost - ASF STM - now works far better than the script by iBreakEverything, which is still called "Updated ASF STM".
Yeah... Keeping the same name for modified stuff is not always the best idea (I am looking at you, iBreakEverything).
Comment has been collapsed.
What are you talking about? xD
I'm just trying to figure out what your point was. You linked to a Greasy fork page that appears to be in German. I note that it states that Greasy fork is also available in English. I thought the issue was multiple language versions rather than another script.
https://greasyfork.org/de/scripts/421997-updated-asf-stm
You should check if you have another script installed called "Updated ASF STM", made by iBreakEverything.
I don't
If you have the script by iBreakEverything installed and then install the updated version of the original script by Ryzhehvost - also called ASF STM - it will not work.
Thanks. That wasn't the issue and I got it working.
Comment has been collapsed.
STM continues to have difficulties and rarely produces positive trades. This script produces positives trades when working. Much appreciation for the tool. Thank you
My only negative comment is that it is so slow. This is solved by running it during downtime.
I notice that this script appears to run through all listed bots in the same repeated order as indicated by the link below. Is this changeable? Botalog1cal always scans first. Why? On their profile they appear to brag that over 600 profiles have been blocked from trading with the bot. Why do these profiles have to wait to scan this bot's inventory? Can it be set to skip or skip during progress? Another example would be profiles that are set to only trade with profiles they have invited. why should every other profile wait for the script to scan their inventory when trading is not even possible with them?
The ability to ignore certain bots on the list would speed up the scan process, which currently appears to be the only negative of this script.
Many thanks
Comment has been collapsed.
i made a fork a while ago and added a blacklist, filters for cards, caching, rate limit, api update and should still work (but it uses inventory api and not badge pages)
https://github.com/iBreakEverything/Updated-ASF-STM
Comment has been collapsed.
If it still uses inventory api - it's only good for getting a temporary inventory ban really fast, nothing else. It's not your fault of course, I switched to parsing badge pages not because it was fun and I had too much free time, but because without it script become useless.
Comment has been collapsed.
not triggering a ban, i set up delays according to the api limits
on another note, sending a manual trade to someone with a large inventory will trigger a temporary inventory ban, so steam really messed it up big time (you may want to add a button to insta-send the trade request so it wont open a trade window, like i did)
Comment has been collapsed.
It's even tempting to prove you're wrong (because I perfectly well know that you are; I tried even with HUGE delays, and still result was always the same, it was just a matter of how many bots I can match to before getting blocked. And I've checked your script today and know that delays there is not even nearly enough), but I'm not willing to be blocked from inventory during summer sale.
you may want to add a button to insta-send the trade request so it wont open a trade window, like i did
No, obviously I will not want that. To "insta-send trade" you need to load inventory first. No other way. And this is no different than manually sending trade in any way. It worked fine for you on old version of the script, where you loaded inventory just to find matches, but it does not makes any sense with a new script.
Comment has been collapsed.
Ah, right, you limited bots to less than 10% of their number, and you call it "works". Great success, indeed. Also, on your screenshot it's just tenth bot - will it still work on bot 45?
Comment has been collapsed.
i can scan all bots, but most of them don't have many cards, so it's not worth it
Fetching bot 24 of 45 with 278 requests now
Comment has been collapsed.
Wait, still? My bot already finished scanning all 600+ bots.
Comment has been collapsed.
neat, maybe i will add insta-send to your script, cause this new api delays sucks
Comment has been collapsed.
Well, it's was a funny thing to say, but there is a catch.
Old script, that was a base for your script, had O(1) complexity - i.e. no matter how many badges you need to match, it's always took the same time, that time only depends on number of bots and size of their inventories.
And new script has O(n) complexity - the more badges,that need matches, you have - the longer it will take. It' on the other hand, don't care how big inventories bots has - matching with a bot that only have 2 cards takes same time as matching with a bot that has 200000.
So yes, my script finished much faster now, but that's because I already matched and crafted all my badges but one, so it's the fastest possible case.If you need to match 100 badges - your script will be much faster.
I, actually, wanted to use fetching badges long before steam changed inventory rate limits, but back then idea was to select fastest algorithm on per bot basis - basically something like (pseudocode)
if (botInventorySize/ItemsPerRequest > numberOfBadgesToMatch) {
matchUsingBadgePages();
} else {
matchUsingInventory();
}
Idea was nice, it would have made matching faster, but it was A LOT of changes, and I never had time for it, so I only switched to badge method when inventory method stopped working, and of course then it was already exclusive method of matching.
Comment has been collapsed.
nice ideea, ill try to implement it and see if the script will be faster
Comment has been collapsed.
Honestly - I do not recommend. Now that I implemented matching by badge pages, I know how many troubles has to be resolved. If using inventories were still a viable alternative - I would gladly keep it, and forget about all those hacks. But your call - you always can use my script as a reference, so it will be a little bit easier for you.
Comment has been collapsed.
the trade window uses
https://steamcommunity.com/tradeoffer/new/partnerinventory/?sessionid=<sessionid>&partner=<partner64id?&appid=753&contextid=6[&start=<2000n>]
https://steamcommunity.com/id/<yourid>/inventory/json/753/6/?trading=1[&start=<2000n>]
not sure if this is on the same inventory api or not, but insta-send can be automated easily, because if you open a trade window you will get those request anyway, the plus is that you make the inventory request only once for multiple trades this way
Comment has been collapsed.
Also, keep in mind that your version still contain bugs that I fixed in 3.3 version of my script. It can result in invalid matches. Seems to only happen rarely, since nobody reported it all this time, but it's still there. If you still use your fork - I recommend you to review my latest release and cherry-pick at least bug fixes.
Comment has been collapsed.
oops, i forgot to update the script on github, my bad
Comment has been collapsed.
That's exactly why I show items number next to bot name, and that's why there is a setting in configuration to limit maximum inventory size of bots to match. This rate limit is not result of the script, it's a result of using steam's native trade window.
Comment has been collapsed.
I just released a major update for this userscript. Changes include, but not limited to:
Etc, etc, etc.
Since there is a lot of changes - any bug reports/suggestions are welcome (but don't expect fast action - I'm pretty busy recently).
Comment has been collapsed.
Hmm. Interesting. Maybe I exceed the limit on URL length with huge trades. I need to think about another way to transfer parameters between main part of script and STM trade helper part... Thank you for report, it's really valuable feedback!
Comment has been collapsed.
That's my suspicion too. Too long URL and it gets truncated and causes an error.
I foolishly didn't copy the errors from console, but have to do that if I get it again. Same error code, but the first time the URL in the response was much shorter and with later 2-3 attempts with few less cards each time it was longer untl it worked. This would suggest the trade URL got truncated and weirdness followed.
Comment has been collapsed.
Hello! I'm testing a new version that should deal with URL length limitation for big trade offers. If you are interested - you can get new version here https://github.com/Rudokhvist/ASF-STM/pull/23 and test if it solves your issue.
Comment has been collapsed.
Thanks, I thought I replied to this, but I guess not.
I have not had the issue after last messages so can't test the situation right now. Perhaps winter sale puts a ton of cards on the move again.
But, I have been running the new version (I hope, I just copy-pasted the source code) yesterday and today and everything is working just fine.
Comment has been collapsed.
If it's working fine with regular trades - that's already great feedback, thank you!
Also, when I will release it, don't forget to manually update it from greasyfork, or you won't get future automatic updates!
Comment has been collapsed.
That's actually strange, I expected it to be 2kb. Thank you for your research! I will probably try to pass parameters via localStorage, just thinking now how to make sure that all leftovers removed.
Comment has been collapsed.
Well, what can I say - there is no guarantee that some bot will have a match for you. It happens if you only have cards from rare games. I'm in the same situation right now.
Comment has been collapsed.
So it's not an error, it just not found any matches. Thanks, I will keep using STM since there it finds matches still. But like 1 or 2 badges, I was hoping for more. When there is a sale, I find bots on STM with 30 or more cards to match for my badges :)
Again, thank you for the script, I will give it another try during a sale, maybe there will be more.
Comment has been collapsed.
That's actually a bit surprising that STM found a match for you (I usually have quite the opposite situation), but it's quite possible, since STM search not only on bots, but on regular users that registered there. I actually use both when I have to deal with some rare cards.
Comment has been collapsed.
Man, I can't believe I never heard of this before. This is much faster and much more reliable than STM, even more so now that STM is pretty much dead. Thanks for the very useful userscript!
Comment has been collapsed.
Well, what can I say - I'm trying to bump it from time to time, but also try to not be annoying with it. Glad it's useful for you!
Comment has been collapsed.
Yeah I meant ASF. Weird, it doesn't do the automatic discovery queue after an hour as usually. Last time I had it running was on winter sale. There must have been some changes in the config or something.
Comment has been collapsed.
I have "FarmingPreferences": 128
in my bot config. I think it was auto migrate to the new name some time ago.
Please see the documentation: https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#farmingpreferences
I think you will get better support at the Github repository link above.
Comment has been collapsed.
Thanks, that worked. seems like it was changed from "AutoSteamSaleEvent": true to "FarmingPreferences": 128. It's pretty bad practice to update your application while breaking configs and it was not the first ime ASF did this. Then, it's all free, so I'm not complaining.
Comment has been collapsed.
I can't reproduce it, it works for me as usual. What browser and userscript extension are you using?
Comment has been collapsed.
Had the same problems once, but it was a user error. Always make sure that you are on https://steamcommunity.com/id/YOURUSERNAME/badges if you want to use the script. If you are on any other badges page, the "Scan ASF STM" button will not be there.
Comment has been collapsed.
Anyone else having issue with https://asf.justarchi.net/STM not working atm?
Comment has been collapsed.
16,203 Comments - Last post 16 minutes ago by wigglenose
34 Comments - Last post 24 minutes ago by SketCZ
12 Comments - Last post 31 minutes ago by Velandur
22 Comments - Last post 46 minutes ago by popocho
329 Comments - Last post 1 hour ago by OwieczkaDollyv21
1,662 Comments - Last post 1 hour ago by FranckCastle
4 Comments - Last post 2 hours ago by MeguminShiro
567 Comments - Last post 2 minutes ago by ClapperMonkey
231 Comments - Last post 4 minutes ago by PaganFears
2,536 Comments - Last post 28 minutes ago by highlysuspect
1,830 Comments - Last post 29 minutes ago by MeguminShiro
72 Comments - Last post 35 minutes ago by SketCZ
27,909 Comments - Last post 37 minutes ago by ha14
190 Comments - Last post 1 hour ago by Naitas
Those of you who craft steam badges probably know and use https://www.steamtradematcher.com/ site.
Unfortunately, this site can't now work well, because of new changes in Steam rate limits. You have to wait to sync your inventory, then you have to wait in a queue to make matching, and then results are also a bit outdated, because bot inventories are cached. Still great tool, but not as useful as before.
Also some of you may know that ASF, popular tool to farm cards, also have an official plugin that implements alternative to STM, and public list of bots, involved in this process: https://asf.justarchi.net/STM - but while you may easily setup your account as automatic bot and enroll in listing - you can't actually match without paying money to Archi - for the same reason as above - steam rate limits are too low, so Archi maintains a pool of proxies for matching to work, this feature can't be free anymore.
So, since when I made this script, you have a third alternative - this script can use api of ASF public listing to match your badges with all available bots! Be warned though, that you can still get temporary inventory ban for trading with bots with huge inventories (but matching process itself is safe).
Pros:
7. It supports STM's userscript, if you use it - cards will be added to trade automatically (If you use this script - I recommend to apply patch by Nimmy).Cons:
EXTREMELYslow. May take an hour or even more to scan all bots.manysome of STM features.You can install this script from GREASYFORK
Consider this a permanent beta version, it's very raw and may contain bugs. So, please, check every trade before sending and report bugs and suggestions.
If you want to participate in development - script is now also available on github, feel free to send issues and pull requests there!
Future plans (re-ordered):
Add link to bot's profile under bot's nameDONE!Add some configuration options (from suggestion - order in which bots processed, including random)Maybe add blacklists or other ways to limit which bots should be scanned. (probably as part of configuration)Make better filter window (relevant to people with a lot of games to match)ADDED SCROLL, THANKS ngoclong19 !Maybe add filtering by game, same as STMAdd stop button"select all" and "select none" option for the filtersProgressive timeout increase on errorsCache number of cards in a badgeLOST RELEVANCEMatch emoticons and backgrounds too.NOT GOING TO HAPPENHopefully it will be useful to someone.
Changelog
v0.1 2020-06-05 - First release
v0.2 2020-06-08 - changed an appid detecting logic to avoid false matches. changed getPartner to bigint (faster)
v0.3 2020-06-09 - Now script don't stop on 403 error, just tries next bot. Also added indicator for bots with matchEverything=1.
v1.0 2020-06-13 - Added filters; Removed delay between requests; Some improvements & Fixes
v1.1 2020-06-15 - Added stop button; fixed incorrect behavior upon restart
v1.2 2020-06-16 - added "all", "none", "invert" to filters; further improved error handling; code style improved
v1.3 2020-06-17 - updated for compatibility with greasemonkey; fixed check for "no cards to match", now script don't scan bots in this case.
v1.4 2020-06-21 - fixed matching logic, now finds more matches; improved compatibility with greasemonkey and old browsers
v2.1 2022-12-13 - Completely re-worked script that works with new steam rate limits. Also, uses new ASF STM backend endpoint!
v2.3 2022-12-14 - Fixed some bugs, added display of total number of items in bot's inventory.
v2.4 2022-12-16 - Fixed a lot of different issues, script should now work more stable.
v2.5 2022-12-16 - More fixes
v2.7 2022-12-18 - Greatly improved fetching of card classids. Added caching of bots list to reduce load on ASF backend.
v2.8 2022-12-22 - Fixed a bug that prevented functioning during sale.
v2.9 2023-01-23 - ASF backend api update
v2.10 2023-04-21 - Scroll added to filter window, results sorted by game name, Thanks to ngoclong19 for PR!
v3.3 2023-07-06 - Major update! Integrated (modified) STM helper script, added configuration, added blacklist, fixed bugs.
Comment has been collapsed.