ASF is a C# application that allows you to farm steam cards using multiple steam accounts simultaneously. Unlike Idle Master which works only for one account at given time, requires steam client running in background, and launches additional processes imitating "game playing" status, ASF doesn't require any steam client running in the background, doesn't launch any additional processes and is made to handle unlimited steam accounts at once. In addition to that, it's meant to be run on servers or other desktop-less machines, and features full cross-OS support, which makes it possible to launch on any .NET Core-supported operating system, such as Windows, Linux or OS X. ASF is possible thanks to gigantic amount of work done in marvelous SteamKit2 library.

ASF doesn't require and doesn't interfere in any way with Steam client. In addition to that, it doesn't require exclusive access to given account, which means that you can use your main account in Steam client, and use ASF for idling the same account at the same time. If you decide to launch a game, ASF will get disconnected, and resume idling once you finish playing your game, being as transparent as possible during entire process.


Core features

  • Automatic idling of available games with card drops using any number of active accounts
  • No requirement of running or even having official Steam client installed
  • Guarantee of being VAC-free
  • Complex error-reporting mechanism, allowing ASF to be smart and resume idling even in case of Steam or networking problems
  • Customizable cards idling algorithm which will push performance of card drops to the maximum
  • Offline idling, allowing you to skip in-game status and stop confusing your friends
  • Advanced support for alt accounts, including ability to redeem keys, redeem gifts, accept trades and more through a simple Steam chat
  • Support for latest Steam security features, including SteamGuard, SteamParental and two-factor authentication
  • Unique ASF 2FA mechanism allowing ASF to act as a mobile authenticator (if needed)
  • StreamTradeMatcher integration allowing ASF to help you in completing your steam badges by accepting dupe trades
  • Rebased on .NET Core 2.0, cross-OS compatibility, official support for Windows, Linux and OS X
  • ...and many more!

Interesting features

For comparison with other similar programs and further read about the most interesting exclusive ASF features, I recommend to visit appropriate FAQ entry that explains everything in detail. It's also a very good starting point if you want to have a glimpse on what ASF can do, besides the obvious.


Setting up

Detailed guide regarding setting up and using ASF is available in the setting up article on our wiki. It's user-friendly tutorial with helpful screenshots that compacts the whole basic knowledge about ASF into a single document.


Useful links

Main page / Source code
Latest version / Download
Wiki / Help
Steam group
Discord

You might be also interested in our side project, ASF STM listing.


Is the project still supported?

As stated in my thread closing statement, despite of SG thread being closed, I intend to keep the project up-to-date and supported through non-SG channels. You can check the date of the latest release for reference.


This thread

The thread on SG is open for discussion and support matters that are related to ASF as a program. If you have any particular issue, question or other case to discuss, feel free to leave a comment.


Have fun.

Please do not add me on steam, if you have questions or issues - ask in the thread.

Prior to doing so, make sure to read main page and the wiki, especially our FAQ.

9 years ago*

Comment has been collapsed.

did you change something in code or is this steam's doing?:
before this was running on my vps for like 2 weeks straight without asking for guard code, but lately it has asked for code like 4, 5 times in past two days.

8 years ago
Permalink

Comment has been collapsed.

No, ask Volvo.

8 years ago
Permalink

Comment has been collapsed.

29.04.2016 22:47:53 [] INFO: Init() <Main> Archi's Steam Farm, version 2.0.4.0
29.04.2016 22:47:55 [
] INFO: CheckForUpdate() <Main> Checking new version...
29.04.2016 22:47:58 [] INFO: CheckForUpdate() <Main> Local version: 2.0.4.0 | Remote version: 2.0.4.0
29.04.2016 22:47:58 [
] INFO: CheckForUpdate() <Main> ASF will automatically check for new versions every 24 hours
29.04.2016 22:47:58 [] INFO: RefreshCMs() <Main> Refreshing list of CMs...
29.04.2016 22:47:59 [
] INFO: RefreshCMs() <Main> Success!
29.04.2016 22:47:59 [*] INFO: OnBotShutdown() <Main> No bots are running, exiting

8 years ago
Permalink

Comment has been collapsed.

change your minimal.json to other name
look up wiki page or forum would help.

8 years ago
Permalink

Comment has been collapsed.

thanks :)

8 years ago
Permalink

Comment has been collapsed.

I seem to be having a bit of an issue with authenticating trades and market transactions. It was working fine yesterday, but as of this morning issuing "!2faok" to a bot returns "Done!" immediately and it doesn't authenticate.

8 years ago
Permalink

Comment has been collapsed.

Check logs then. If they're clear then see if !2fa works. If nothing helps, do re-linking by either !2faoff, or removing bot.db if you use ASF + 2FA (so you can import authenticator again).

Or, you can also wait for it to hopefully magically resolve, the same way how it broke.

8 years ago
Permalink

Comment has been collapsed.

Nothing in the logs. !2fa does successfully work. I'll probably wait it out a bit and if it doesn't resolve itself, I'll re-import and replace the bot.db. Thanks for the input!

8 years ago
Permalink

Comment has been collapsed.

Well, I seem to be having no luck. !2faok is still reporting 'Done!' this morning with nothing logged, so I went ahead and re-imported my authenticator. Still doesn't work. !2fa works fine though, as does !loot since it was able to send the trade offer. I've looked over the wiki again to be sure, and I'm a bit clueless. I also made sure my Device ID is correct, since that was the issue I had last time with authenticating.

I can confirm that it was functioning April 29th at 5:52AM EST since I was able to authenticate a trade at that time using it, but shortly there-after it stopped working.

8 years ago
Permalink

Comment has been collapsed.

Import from SDA? It seems that it's happening on usual basis with that, I didn't have any problem with my WinAuth import.

Basically, if imported auth doesn't work, then your normal will not either. And if your normal doesn't work, then it's not ASF issue as you provided ASF with broken authenticator.

8 years ago
Permalink

Comment has been collapsed.

I'll try importing with WinAuth later then. Thanks!

8 years ago
Permalink

Comment has been collapsed.

I'm getting some errors when I'm trying to import via WinAuth. I've removed my bot name from the log since it's the same as my account name.

http://darkhollow.net/screenshots/2016-05-01_09-07-22.txt

8 years ago
Permalink

Comment has been collapsed.

Then read wiki carefully because you didn't do everything I wrote there.

8 years ago
Permalink

Comment has been collapsed.

And fixed. Sorry about the derp there Archi, I'll be more careful next time. !2faok is now working with imported WinAuth. Thanks for the help!

8 years ago
Permalink

Comment has been collapsed.

I'm glad to hear that, hopefully it doesn't break (sigh). Good luck!

8 years ago
Permalink

Comment has been collapsed.

do Arci automatically add gifts in library ?

8 years ago
Permalink

Comment has been collapsed.

If you enable such option, yes.

8 years ago
Permalink

Comment has been collapsed.

What is option is for sure

8 years ago
Permalink

Comment has been collapsed.

Thanks a lot for this Archi. It works wonders here!

8 years ago
Permalink

Comment has been collapsed.

I'm glad it works for you :3.

8 years ago
Permalink

Comment has been collapsed.

Archi, it's me again and it seems there's a problem.
ASF was farming fine and when it got to The Blackwell Legacy, a foil card dropped.
The badges page doesn't say "No cards drop remaining" like it does for the other farmed games. It says nothing.
And ASF is stuck on that game. I tried restarting it but it keeps farming the same game. Is there a way to force it to move on to the next game? (I don't want to wait another 5 hours to reach MaxFarmingTime)
Can you help? Thanks.

8 years ago
Permalink

Comment has been collapsed.

There's no such thing as being stuck, even if Valve tells you there is no drop, ASF knows better. Steam loves to talk crap and confuse people into believing that there are no drops while there are, I've been through that.

BUT if you think you know better, you can always add appID to the blacklist.

8 years ago
Permalink

Comment has been collapsed.

Wow, you were right. Another Blackwell card dropped. Thanks for the heads up!
Edit: I understand what happened. I was looking at the Foil badge box, not at the regular badge box. Everything's fine.

8 years ago
Permalink

Comment has been collapsed.

works brilliantly. now if only it could be programmed to clean my kitchen too

8 years ago
Permalink

Comment has been collapsed.

An Android version would be nice.

Just saying.

8 years ago
Permalink

Comment has been collapsed.

Since there is Mono for Android it should already work.
Haven't tested it, though.

8 years ago
Permalink

Comment has been collapsed.

Thanks for the info, I'll look into it.

8 years ago
Permalink

Comment has been collapsed.

Is it possible to farm cards while playing?

8 years ago
Permalink

Comment has been collapsed.

Yeah but only for the game you are playing

8 years ago
Permalink

Comment has been collapsed.

I've actually noticed that somewhat ocassionally even if you are playing on the account, every 5 mins when it tries to reconnect, there is a small chance of a card dropping from the game it tries to start.

8 years ago
Permalink

Comment has been collapsed.

Yep, one of the reasons why ASF is checking account every 5 minutes.

8 years ago
Permalink

Comment has been collapsed.

Yes, it is. Switch Steam to offline mode and you're good to go.

8 years ago
Permalink

Comment has been collapsed.

I know that farming behavior is for now limited, but would there be a feature in the near future to prioritize idling by card values or least/most drops remaining?

8 years ago
Permalink

Comment has been collapsed.

No, that's not planned.

8 years ago
Permalink

Comment has been collapsed.

I did the config but I can't find ASF.exe to start the program

8 years ago
Permalink

Comment has been collapsed.

Nevermind I managed to fix the issue and set up my first bot!

8 years ago
Permalink

Comment has been collapsed.

Hey Archi
i made a script to redeem multiple keys to an account using the WCF commands
the script reads a keys.txt file with the keys separated by line,
then it creates a new file with the keys and the needed commands in the right order
then just run the file with ASF running in server mode separated
the file will redeem each key to the appointed bot
can be your secondary account or even your primary account
https://mega.nz/#!3IQUDZIK!yvlbz6UmqoRYhsBlpHtW9Rh8ytDzdyCoG9NryOdq0cU
open the file with notepad and change the 0 with the bot´s nickname

8 years ago*
Permalink

Comment has been collapsed.

Has basically the same "Problems" as my GUI, which you should mention (since some people do not know these):
ASF (WCF Server) has to be started as Admin.
SteamOwnerId has to be set.

8 years ago
Permalink

Comment has been collapsed.

Does Steam Mobile Authenticator affect my bot?

I farm at my school and it blocked the Steam app, which puts me in a bit of a pickle since I can't log on my phone to get the authenticator code

8 years ago*
Permalink

Comment has been collapsed.

If you're using ASF 2FA, then ASF is able to automatically generate and use tokens, therefore it never needs 2FA code from you.

If not, then ASF tries to use Valve's login keys mechanism - the same one being used in steam client. You need to provide 2FA code on initial login, and if it succeeds - then ASF will automatically ask and maintain local login keys in order to avoid asking you for 2FA code on each login, this works very similar to Steam "remember me" option.

However, login keys are not flawless, like everything considering steam, it's one pile of sh*t, and Steam might revoke previously assigned key for no reason and at anytime - if ASF fails to log in using previously kept login key, then it'll be the same as initial login - you'll be asked for 2FA code. Therefore it's never safe to assume that login key is valid, the only solution for that problem is using ASF 2FA.

BTW, you don't need to log in on your phone to get auth code, authenticator works offline. You won't be able to accept confirmations though, but that's not needed for ASF to operate.

8 years ago
Permalink

Comment has been collapsed.

Thank you for the Info!!!

This program works wonders.

8 years ago
Permalink

Comment has been collapsed.

Wait, your phone doesn't have its own SIM card?

8 years ago
Permalink

Comment has been collapsed.

I needed some help, but is working now :) Please don't steal my account

Some minutes later gave me the card, maybe 30 minutes, I don't know. There was for a game I haven't played in a long time. :)

8 years ago
Permalink

Comment has been collapsed.

Idlemaster doesn't work for me so I guess I will try this. Thanks. :)

8 years ago
Permalink

Comment has been collapsed.

it works very well :)

8 years ago
Permalink

Comment has been collapsed.

Hey, just wanted to say thanks, it works really well!

View attached image.
8 years ago
Permalink

Comment has been collapsed.

Probably a stupid question, and I'm sure the answer is no:

But are you able to run one account through ASF on multiple machines? And if so would it farm different games on each respective one?

Trying to get all my cards out and on the market before Summer Sale hits.

8 years ago
Permalink

Comment has been collapsed.

ALSO great program - do you have anywhere to donate? I had tried Idle Master before this but it didn't work well, and I had resigned myself to never selling steam cards for any reasonable profit. Since I've started using you I've seen a decent uptick, enough to get a couple of games. I'd like to give back the love.

8 years ago
Permalink

Comment has been collapsed.

Yes, you can donate through PayPal (preferred), but I'm also accepting spare steam items, such as steam cards ASF is farming for you, so everybody is able to donate, only if he wants. You can find proper donate links in releases - https://github.com/JustArchi/ArchiSteamFarm/releases/latest

8 years ago
Permalink

Comment has been collapsed.

Nice, sending some financial love your way.

8 years ago
Permalink

Comment has been collapsed.

Received and sent my grattitude, thank you!

8 years ago
Permalink

Comment has been collapsed.

Sadly - no. I mean, of course you could do that physically, but those two ASF instances would fight with each other who farms now, and in the end it would degrade performance instead of increasing it.

As stated in the wiki - https://github.com/JustArchi/ArchiSteamFarm/wiki/FAQ#misc

Q: Farming takes too long, can I somehow speed it up?

A: The only thing which heavily affects speed of farming is selected cards farming algorithm for your bot instance. Everything else has negligible effect and will not make farming faster, while some actions such as launching ASF process several times will even make it worse. If you really have an urge of making every damn second from farming process, then ASF allows you to fine-tune some core farming variables such as FarmingDelay - all of them are explained in configuration. However, as I said, the effect is negligible, and choosing proper cards farming algorithm for given account is one and the only crucial choice that can heavily affect speed of farming, everything else is pure cosmetic. Instead of worrying about farming speed, just launch ASF and let it do it's job - I can assure you that it's doing it in the most effective way I could come up with.
8 years ago
Permalink

Comment has been collapsed.

Looks very nifty, thanks Archi.

8 years ago
Permalink

Comment has been collapsed.

Hi I was wondering if this specific thing could be implemented. Sending commands to a bot in offline farming mode (with offline message handling enabled) while the bot is actually logged in elsewhere on steam client?

Currently I can either leave offline farming off, which allows me to send commands even when the bot is logged on.
Or offline farming on, then I can only send commands when the bot is not logged on. (What I would like is to be able to send commands when the bot is logged on in this case too)

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago
Permalink

Comment has been collapsed.

Ahh, yes I can imagine that might work, but unfortunately in this case, I am farming a friends account for them, so they would much prefer to be able to be 'online' while it's going on.

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago
Permalink

Comment has been collapsed.

He can there is no problem with him going online, but if he's online the bot commands stop working if offline farming mode is enabled.
To clarify, if the bot is online, while asf with offline farming enabled, the games will farm, bot will have online status, but will not show him playing any games.

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago*
Permalink

Comment has been collapsed.

when you set your status as offline Steam doesn't show you any friends info at all, you can neither receive nor send messages, for any of those you need to go online

Wrong, offline farming indeed works as you describe, but there is another boolean that can be set to true called HandleOfflineMessages. When that property is true, ASF receives messages through steam offline messaging system, and responds to them, as responding in fact doesn't have to be done from online account.

ASF is not easy to understand, as I'm using variety of hacks, undocumented features, workarounds and reverse-engineered functions. It can do what steam client can't, as it directly operates on steam network unlike steam client which only provides you with features Valve wants you to see. So your steam client won't allow to send messages when in offline mode, but steam network doesn't prohibit that.

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago
Permalink

Comment has been collapsed.

In the same version when offline farming was introduced, or one version after.

8 years ago
Permalink

Comment has been collapsed.

Sending commands to a bot in offline farming mode (with offline message handling enabled) while the bot is actually logged in elsewhere on steam client?

Possible only when ASF has nothing to farm, or you're not playing any game. If you're playing, ASF gets disconnected, which means that it automatically ignores all commands. When ASF has nothing to farm, it doesn't have to disconnect, so it quietly stays in the background and listens for commands. When ASF has things to farm, and you're playing, then it's physically not possible for both to be active at the same time, as ASF gets disconnected when trying to farm, if you're already playing.

There are two solutions. First one, which is much easier, is using another steam account for sending given bot commands. Second one, is using WCF which Sighery mentioned above.

8 years ago
Permalink

Comment has been collapsed.

Oh wow, I hadn't thought of that, so I can just send the commands to my alt which is offline modified with my friends tag.
Thanks!

8 years ago
Permalink

Comment has been collapsed.

Sorry if it has been asked before, but is there an option to farm multiple games up to 2 hour mark like IdleMaster had? Thanks

8 years ago
Permalink

Comment has been collapsed.

Is there a way to see if the library is in use, and delay farming?

I unpaused my account, and it started farming again, accidentally kicking my brother out of his game that he was playing from my account.

I'm trying to read through the SteamKit documentation now, but it's an arcane pain.

8 years ago
Permalink

Comment has been collapsed.

There's definitely no out of the box function that would do that. I'd have to use my reverse-engineering skills once again and implementing it myself, and trust me that I'm trying to avoid that unless it's absolutely crucial, so for now my response is no, that's not possible. I'd suggest setting your brother as SteamMasterID of your account, so he can pause and unpause as he wishes.

8 years ago
Permalink

Comment has been collapsed.

Can a bot have more than one SteamMasterID? Will I still be able to control it? What happens if someone sends the !loot command? What about if SendOnFarmingFinished is true? This is my primary account I'm talking about. I don't want to lose my entire inventory by accident, haha.

8 years ago
Permalink

Comment has been collapsed.

If it's really your brother then you won't lose it, just send to his account, which he should then give you back.

No, bot can have only on master, but there is also owner of ASF process.

Well, in this case I don't have any good suggestion apart from pausing farming when you feel like it.

8 years ago
Permalink

Comment has been collapsed.

That's only protobuf request, the entire logic has to be written for that.

8 years ago
Permalink

Comment has been collapsed.

Of course. I don't think it's request, but sent automatically by steam whenever it changes.

8 years ago
Permalink

Comment has been collapsed.

Which is pretty much what whole reverse-engineering is about - recording traffic log and adding logic.

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago
Permalink

Comment has been collapsed.

Eh... One of the required parameters is "appid_playing - uint32 - The game player is currently playing" so I would assume it's the opposite of what's asked?

8 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

8 years ago*
Permalink

Comment has been collapsed.

Is there an option to not have the bots autojoin the steam group?

8 years ago
Permalink

Comment has been collapsed.

Yes.

8 years ago
Permalink

Comment has been collapsed.

How do I enable said option?

8 years ago
Permalink

Comment has been collapsed.

Reading wiki should help.

8 years ago
Permalink

Comment has been collapsed.

I did, found one mention.
"...accounts being used by ASF will automatically join our steam group and the group chat."
I'm assuming disabling statistics will disable the autojoin? Might want to word that more clearly =P

8 years ago
Permalink

Comment has been collapsed.

You found it :3

8 years ago
Permalink

Comment has been collapsed.

Curious. I ran the bot yesterday for 6-7 hours. When I checked steam later, I didn't have any notification left. Is that normal? Do cards get dropped and I don't get notified?

8 years ago
Permalink

Comment has been collapsed.

"DismissInventoryNotifications": true,

8 years ago
Permalink

Comment has been collapsed.

Thank you very much! It hasn't gotten to a point where it is annoying to me yet so I want them! :P

8 years ago
Permalink

Comment has been collapsed.

The '1 + 0 -> 0 + 1' feature of the SteamTradeMatcher boolean is awesome but seems mostly un-utilized at the moment since STM doesnt scan for these kinds of matches and you can't check manually since there's no way of knowing who else is using the feature.

Any ideas/plans to improve that? Getting integrated by the STM devs would be ideal, but something like a public listing of accounts with the boolean set to true or a thread in your group where people post their trade links would be helpful aswell.

8 years ago
Permalink

Comment has been collapsed.

Yep, it's not being used by STM, as STM prefers 2 + 0 -> 1 + 1.

There's nothing to integrate further - all interested users can add themselves to public listing of STM. If developer of STM wants, he could add an option such as "ASF STM user" or "Allow neutral trades" - it's all up to him, ASF part is finished.

8 years ago
Permalink

Comment has been collapsed.

I believe STM supports and you can ask it to be enable for you. Reason it's not by default, is that it causes too many matches for manual handling.

8 years ago
Permalink

Comment has been collapsed.

STM only supports trade bots (which allow all 1:1 same set trades). ASF is like a hybrid between these trade bots and regular users.

8 years ago
Permalink

Comment has been collapsed.

Could someone help me please?

2016.05.09 21:55:10 [] INFO: ParseArgs() <Main> Command sent: Redeem
2016.05.09 21:55:10 [
] INFO: ParseArgs() <Main> Response received: ERROR: Unknown command!

8 years ago
Permalink

Comment has been collapsed.

Command is redeem, not Redeem.

8 years ago
Permalink

Comment has been collapsed.

why not switch to case-insensitive? :)

8 years ago
Permalink

Comment has been collapsed.

Because there is no reason to.

8 years ago
Permalink

Comment has been collapsed.

obviously there is some confusion. RIP4You is a good example of this. the people who use your program are in most cases no developers and no linux user, you know. ;)

8 years ago
Permalink

Comment has been collapsed.

What case-insensitivity of commands has to do with developers and linux users?

8 years ago
Permalink

Comment has been collapsed.

for them it is obvious what error we have here. for others it might not be, and they have to ask you what they did wrong. that could easily be avoided by accepting case-insensitive commands (which is not much work). just a suggestion...

8 years ago
Permalink

Comment has been collapsed.

There is a reason why Unix-like operating systems do not accept case-insensitive commands either. It's not about effort, it's about consistency.

8 years ago
Permalink

Comment has been collapsed.

how would accepting your few commands in lower and upper case affect consistency in any way? i just don't see it. all it would do is improve usability.

8 years ago
Permalink

Comment has been collapsed.

Sorry but I'm not that stupid :D I tried redeem Redeem !redeem !Redeem nothing. Even went and looked at source code but saw that the command was redeem which doesn't work for me.
C:\Users\Desktop\ASF>asf.exe --client redeem F5555-J5555-X5555
2016.05.09 23:57:08 [] INFO: Init() <Main> Archi's Steam Farm, version 2.0.4.1
2016.05.09 23:57:08 [
] INFO: ParseArgs() <Main> Command sent: redeem
2016.05.09 23:57:08 [] INFO: ParseArgs() <Main> Response received: ERROR: Unknwn command!
2016.05.09 23:57:08 [
] INFO: ParseArgs() <Main> Command sent: F5555-J5555-X5555
2016.05.09 23:57:08 [*] INFO: ParseArgs() <Main> Response received: ERROR: Unknwn command!

8 years ago*
Permalink

Comment has been collapsed.

You didn't quote the command, so ASF sent two instead of one.

ASF.exe --client "redeem F5555-J5555-X5555"

8 years ago
Permalink

Comment has been collapsed.

Apparently its ASF.exe --client "redeem <bot name here> F5555-J5555-X5555"
After adding "" I got suggestions that it works and what program is missing. Thanks for your help and awesome tool.

8 years ago
Permalink

Comment has been collapsed.

Closed 5 years ago by JustArchi.