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.

i keep getting
Please enter the auth code sent to your email: 10/30/2015 1:36:28 AM [!] WARNING: OnDisconnected() <example> Disconnected from Steam, reconnecting...
I'm on a Linux machine, mono doesn't give me any place to put that code in. Code came, but no where to put it

9 years ago
Permalink

Comment has been collapsed.

Latest version?

9 years ago
Permalink

Comment has been collapsed.

yes, same error since first version

9 years ago
Permalink

Comment has been collapsed.

Thank you for so great tool !!!
One small suggestion - Whitelist type (as Blacklist type). I want farm cards on main account only for uninteresting games (and play interesting) .
Or make IDs priority - "this game will farm, next this, next this...".

9 years ago
Permalink

Comment has been collapsed.

I don't think that it'll be that much useful, but sure, bot can use priority when deciding which game to farm. TODO for 0.6.

9 years ago
Permalink

Comment has been collapsed.

This is what I keep getting, it also asks for the steamguard code each time (this is the second account I linked, the first one is working without any issues)

INFO: OnConnected() <unicorn> Connected to Steam!

[!] WARNING: OnLoggedOn() <unicorn> Unable to login to Steam: InvalidLoginAuthCode / InvalidLoginAuthCode

9 years ago
Permalink

Comment has been collapsed.

Check your config details.

9 years ago
Permalink

Comment has been collapsed.

Seems I messed up nicknames, thanks. Working flawlessly. :)

9 years ago
Permalink

Comment has been collapsed.

This little program saves so much time, thank you for sharing it with the community. :3

9 years ago
Permalink

Comment has been collapsed.

Is this program will make market restriction like the latest idlemaster ? cuz when i tried to login using idlemaster , the steam guard ask the verfication code, and if i enter the code and login, i got market restriction because i log in new device

9 years ago
Permalink

Comment has been collapsed.

Any time you need to input steam guard you get the market restriction and there is no way around it. I think the market should still work if you use it from the steam client, at least I didn't have a problem with my main after using this and idle-master.

9 years ago
Permalink

Comment has been collapsed.

It works well ^^
Thank you ^^

9 years ago
Permalink

Comment has been collapsed.

One more feature could be added, if you don't mind and if it is possible: option for the bot to automatically accept gift games from the 'master' sent through steam and add them to the library (string one, stored in config, with 'library', 'inventory' and 'null' meaning 'do not accept automatically' options). This could be useful when buying ultracheap games for just trading cards off them.

9 years ago
Permalink

Comment has been collapsed.

Idea is good, but implementation can be painful. On hold for now, I really don't want to dig inside it, at least for now.

9 years ago
Permalink

Comment has been collapsed.

Well I posted on Reddit, but no answer there. I'm guessing maybe I will get more response here. I finally figured out some of this and setup some accounts in xml's, and I have them signed in . It shows all are connected to steam,but never gets past the dos box once connected.The program does not proceed to ask for steamguard codes or anything else. Just sitting there making me look dumb. I am sure I missing something (hopefully small). Verified my .net is good, rechecked all log-ins, and master id. Any ideas, Thanks.

9 years ago
Permalink

Comment has been collapsed.

No clue apart from suggesting latest version. The sequence is:

31.10.2015 08:58:45 [*] INFO: Main() <Main> Archi's Steam Farm, version 0.5.0.0
31.10.2015 08:58:46 [*] NOTICE: CheckForUpdate() <> Local version: 0.5.0.0
31.10.2015 08:58:46 [*] NOTICE: CheckForUpdate() <> Remote version: 0.5.0.0
31.10.2015 08:58:46 [*] INFO: OnConnected() <1> Connected to Steam!
31.10.2015 08:58:47 [*] INFO: OnLoggedOn() <1> Successfully logged on!
31.10.2015 08:58:47 [*] INFO: Init() <1> Logging in to ISteamUserAuth...
31.10.2015 08:58:51 [*] INFO: Init() <1> Success!
31.10.2015 08:58:52 [*] INFO: StartFarming() <1> Checking badges...
31.10.2015 08:58:53 [*] INFO: StartFarming() <1> Checking page: 1/1
31.10.2015 08:58:53 [*] INFO: StartFarming() <1> Farming in progress...
31.10.2015 08:58:54 [*] INFO: Farm() <1> Now farming: 284950
9 years ago
Permalink

Comment has been collapsed.

Sorry if this has been asked/answered. but does this idle multiple games at once up to 2 hours?

9 years ago
Permalink

Comment has been collapsed.

No, because 2h rule is being lifted for accounts that never refunded anything and it's inefficient for such people.

9 years ago
Permalink

Comment has been collapsed.

Oh, I didn't know that was happening, will there be any indicator on who will not have the 2h hour rule and who would?

I did refund something but I hadn't even activated it that's why I am curious

9 years ago
Permalink

Comment has been collapsed.

Yeah I am curious too. I bought something as a gift but my friend already had the game (gamekey on his pc) so I asked for a refund.
Will I be able to not have the 2h rule? The gift was still in my inventory when I asked for a refund

9 years ago
Permalink

Comment has been collapsed.

You should really ask Valve about that, not me.

9 years ago
Permalink

Comment has been collapsed.

I still had quite a few games to farm on my alt account. Now those games disappeared from the badge page and there is nothing left to farm (they still exist on the library)

9 years ago*
Permalink

Comment has been collapsed.

This just happened to me, it was farming blood of old for about 1.5 hours and then stopped, saying farming was done. Went to look and there were no cards dropped and then went to the badge page and it was gone. I think I am done using this tool until someone can explain what is going on.

9 years ago
Permalink

Comment has been collapsed.

Let me know if you find a way to undo it.

9 years ago
Permalink

Comment has been collapsed.

Might want to check out this discussion in the idle master forum:

http://steamcommunity.com/groups/idlemastery/discussions/0/490124466463809397/

Hope its not what they are speculating, but I recommend everyone stop using this tool and idle master until this gets resolved.

9 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

9 years ago
Permalink

Comment has been collapsed.

Not experiencing any issues atm with IdleMaster shrug

I just finished all my Blood Of Old drops.

Perhaps it's only an issue if you have alt accounts (?)

9 years ago*
Permalink

Comment has been collapsed.

ASF is fully based on data steam offers, and it uses the same method of getting badges, although different method for actual farming (sending proper steam request instead of simulating a game process started).

This is most likely steam bug, rather than intentional thing. I can't suggest anything rather than not using a tool until steam patches it's stuff.

P.S. I bet normal card drops don't work either then.

P.P.S. If volvo was about to do anything with it, they'd firstly kill simulating game process functionality, as they can't kill sending PlayGame() requests used by steam client, so idle master will die firstly.

9 years ago*
Permalink

Comment has been collapsed.

All my games with card drops disappeared from my Badges pages (like I don't own the game) and when I check a game manually I have 0 drop remaining, and not qualified for badge. Pretty huge bug o.O

Hope it gets fixed by Steam soon.

9 years ago
Permalink

Comment has been collapsed.

this is actually a good app
but i dont know why, all my account is locked for another 7 days (steam client only)
at least those in my browser still fine
too bad i cant trade anymore for tremor

9 years ago
Permalink

Comment has been collapsed.

Hmm, card drops still show for me.

9 years ago
Permalink

Comment has been collapsed.

BTW, you can check stats of the farm (people running V0.4+ with enabled statistics) in my group.

Currently around 28 farming bots running, around 111 total.

9 years ago
Permalink

Comment has been collapsed.

Seems like volvo fixed the issue, as my bugged bots started farming blood of old.

9 years ago
Permalink

Comment has been collapsed.

Blood of old just got trading cards. Saying that, there is nothing wrong with bot.

9 years ago
Permalink

Comment has been collapsed.

Nah, there was short period where you couldn't get card drops at all, ie. Valve broke something.

9 years ago
Permalink

Comment has been collapsed.

Version 0.5 up.

Very nice release.

  • [!] ArchiSteamFarm does not require regenerating configs anymore. In case of missing fields, default ones are used now (hooray!)
  • Added new (requested) config property ShutdownOnFarmingFinished, which defaults to false. If you set above property to true, ASF will stop the bot from using an account as soon as everything gets farmed, which may be useful for some people.
  • ASF will now automatically exit when no more bots are running. Connected with above, if you set all bots to automatically shutdown after farming is done, ASF itself will also shutdown after every bot finishes it's job.
  • Added missing BaseGameRequired (24) RedeemKey() status, thanks to Nephrite
  • ASF now comes in merged .exe form, which means that ZIP now contains only ASF.exe and example.xml config in config directory. In future versions I may implement auto-update thanks to that, and it's also easier for you to run it.
  • Added 2 new commands, that can be sent to the online bot through steam chat. Both of them are accepted only from master:
    !farm - Restarts farming, in case it stops for some reason, or in bot receives new game and doesn't start farming automatically (e.g. through activating steam gift)
    !exit - Will shutdown given instance of the bot.
  • New icon for ASF
  • Many internal code cleanups and improvements to maximize performance, stability and limit resources usage.
9 years ago
Permalink

Comment has been collapsed.

I have some suggestions/questions.

  • First of all - is it possible to add command !start <botname>, so that if it sent to any working bot it would start bot with <botname>, that was stopped with !exit or ShutdownOnFarmingFinished. This way, as far as there is at least one bot remains all other accounts can start/stop at users's will.
  • And more hard, but more important for me question - is there some way of starting/stopping separate bots from command line, without restarting ASF? I want to put some farming to cron, or even do some web-interface for it. If it can be done, it would be also convenient to make ASF exit without running bots optional (through config file, or command-line parameter)
  • And, not important at all - when bot redeems the key (or try to do it) - is it possible to return game title apart from status?

Thank you for all your work!

9 years ago
Permalink

Comment has been collapsed.

  1. Yes, that's possible, perhaps I consider it for adding in next version.
  2. Not at the moment, unless you implement something that would switch Enabled property of your selected bots, and then restart whole ASF.exe process. Your idea is possible to do, just requires a bit more time, and I'm still not sure if I want to do it through classic stdin/stdout, suggestions welcome.
  3. I have it on my TODO list, but redeeming cd-key is not-yet-fully 100% reverse-engineered function, hence it's missing anything but Status. Your title is hidden in ReceiptInfo, but that's very hard to parse properly, so it's on hold for a moment.
9 years ago
Permalink

Comment has been collapsed.

  1. Thank you!
  2. For now I see two ways how I would implement it:
    • one more executable, that take commands as parameters and communicates with ASF via named pipes, or WCF, or some other cross-process communications. I can't advise a best way, because I have no experience in this.
    • extra (empty) file for each bot, that shows that bot is running. For example, we have bot example.xml. When bot starts - ASF creates file example.on and when stops - removes the file (or just renames to example.off). Also, if ASF already running it should check presence of this file. If bot is on, and file got removed - bot stops. If bot if off, and file is created - bot start. This is simple for user (anyone able to remove files/create), but implementing this can be a headache(
  3. As I said - it's not important. I just thought that if it's simple - it would be nice. But if it needs extra research - it's not necessary.
9 years ago
Permalink

Comment has been collapsed.

I'll see about 2). I'd like to use some better thing for inter-process comunication such as named pipes - if I can make them work on both windows and linux, this is like the best bet.

If not, I can always fall back to other mechanisms.

9 years ago
Permalink

Comment has been collapsed.

very hard to parse properly

"Very hard" in C# or what?
And what is this?

23:58 - ArchiBoT: Game: ItemDescription

View attached image.
9 years ago
Permalink

Comment has been collapsed.

Yes, very hard because the info we want is on various different spots depending of the status, which means it's on different place if activation doesn't succeed, and on different place if activation does succeed.

It's much harder to implement something that is supposed to work for everyone, and not just you.

9 years ago
Permalink

Comment has been collapsed.

I dont understand. What do you mean by "different place"? Do you even know what purchase_receipt_info is in binary key-value format? Have you tried to parse it?
Every time it has the same structure for me. Example

9 years ago
Permalink

Comment has been collapsed.

I can't deserialize ReceiptInfo in any way I know of. If you have any working C# solution, I'd appreciate it.

9 years ago
Permalink

Comment has been collapsed.

I dont know C# but... Dude, look at this and this. It is what you need :D

9 years ago
Permalink

Comment has been collapsed.

Exactly what I needed, thanks

9 years ago
Permalink

Comment has been collapsed.

Nice program. Managed to get the bot in group chat (after i realized that i used the wrong id^^).
One question: is there somewhere i can see what functions are available to send to the bots in steam chat?

9 years ago
Permalink

Comment has been collapsed.

Only 3 for now.

!exit
!farm

And cd-key.

!exit and !farm are described above in changelog for V0.5. If you send bot cd-key, it'll try to activate it, and return the result back.

9 years ago
Permalink

Comment has been collapsed.

Thanks for the answer. Then i haven't missed a function yet, good to know.

9 years ago
Permalink

Comment has been collapsed.

i set on steam password and steam login value=''true'', but it said invalid password.
(If i leave all null, it asks for them in the app, i put the pass and id and everything works.)
I just want the pass and id to be set automated! (so not to have to log in every time)

9 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

9 years ago
Permalink

Comment has been collapsed.

Could not get badges information, farming is stopped!

9 years ago
Permalink

Comment has been collapsed.

is this slower than idle master in giving cards???

9 years ago
Permalink

Comment has been collapsed.

10/31/2015 6:31:22 PM [] INFO: Main() <Main> Archi's Steam Farm, version 0.6.0.0
10/31/2015 6:31:23 PM [
] NOTICE: CheckForUpdate() <> Local version: 0.6.0.0
10/31/2015 6:31:23 PM [] NOTICE: CheckForUpdate() <> Remote version: 0.5.0.0
10/31/2015 6:31:23 PM [
] NOTICE: CheckForUpdate() <> You're currently using pre-release version!
10/31/2015 6:31:23 PM [*] NOTICE: CheckForUpdate() <> Be careful!
10/31/2015 6:31:23 PM [!!] ERROR: Main() <Main> Config directory doesn't exist!

directory and config exists

9 years ago
Permalink

Comment has been collapsed.

ASF.exe must be in the same directory as config. I see that you compiled yourself so probably you're running it from non-default directory and that won't work, unless my post-build rule succeeds.

9 years ago
Permalink

Comment has been collapsed.

i'm on Linux, compiling is all i got

9 years ago
Permalink

Comment has been collapsed.

You don't have to compile in order to use. Mono can run already-compiled binaries too.

9 years ago
Permalink

Comment has been collapsed.

ok, but error still stands on binary as well

9 years ago
Permalink

Comment has been collapsed.

i see that this use the 2h rule! instead of idle master that gives first card on 0,2 h

9 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

9 years ago
Permalink

Comment has been collapsed.

Hi
i dont know if anyone got this "error" too. It says "Connected to Steam!", and nothing more from there, i cant see the account connected either.

9 years ago
Permalink

Comment has been collapsed.

Can't reproduce.

9 years ago
Permalink

Comment has been collapsed.

Maybe i did something wrong? Wanna chat/screenshoot/something?

EDIT: v0.5

EDIT2: Now im getting "EXCEPTION: UrlToHttpResponse() (Utilities) Task cancelled" but after that it says "Connected to Steam!"

9 years ago*
Permalink

Comment has been collapsed.

I think is steam guard stuff.

9 years ago
Permalink

Comment has been collapsed.

Thanks a lot for making this tool, I'm trying it right now on a Linux dedicated server and it works really well.

The TO-DO tasks look promising. Right now I'm just missing something like a bit more information on what's happening: games to idle, card drops remaining (current game and total),... some useful info like Steam Idle Master gives. Both on the console and via command.

And now that I mention the console, it would be nice to have an option to save all the output messages to a log file (though it can be easily done on Linux: ASF.exe &>ASF.log& for running it in the background or ASF.exe |tee ASF.log for foreground).

9 years ago
Permalink

Comment has been collapsed.

Found some bug, unsure what caused it.
I started ASF, it found no badges and I got "Farming stopped" (or something like this, don't remember now). Then, I give bot a key in chat. It activated (Status:OK), but bot didn't start farming. I give him "!farm" command - no visible response. Then "!exit" - no response also. Sent him same key again - got "Status: AlreadyOwned", so bot is still operational. I restarted ASF, and it start to farm added game, and responded to both "!farm" and "!exit" commands. Unsure if it can be reproduced, but when all cards would be farmed I would try again (if I'll find unused keys).

9 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 4 years ago.

9 years ago
Permalink

Comment has been collapsed.

Seems like I messed up something with threads/tasks. Will check later.

9 years ago
Permalink

Comment has been collapsed.

Is posible to add a feature? When I try to run 60 bots at once only 35 - 40 works. The other ones give an error:

WARNING: OnLoggedOn() <example50> Unable to login to Steam: InvalidPassword / InvalidPassword

Console spam it triying to connect to that account.

I think i found the problem. CAPTCHA is the problem. Is possible to make it don't try to loggin when CAPTCHA required? Or make a delay on that accounts like 15 min each account for prevent that spam.

Thx alot!

9 years ago
Permalink

Comment has been collapsed.

60 bots? O.O How many accounts do you have?

9 years ago
Permalink

Comment has been collapsed.

^ he's crazy, that I can say. ;)

9 years ago
Permalink

Comment has been collapsed.

WHAT THE FUCK?

9 years ago
Permalink

Comment has been collapsed.

Great stress-test you made here, I must say.

9 years ago
Permalink

Comment has been collapsed.

Closed 5 years ago by JustArchi.