justarchinet / archisteamfarm Goto Github PK
View Code? Open in Web Editor NEWC# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
License: Apache License 2.0
C# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
License: Apache License 2.0
Hey, I added a lot of my accounts to ASF yesterday and was farming perfectly all night.
Today I restarted ASF and a lot of invalid passwords appeared at console. I've checked .xml files, passwords are okay. Successfully entered web site with those credentials. 2FA is enabled and I and get the code from "broken" account.
So now I can only login with half of my accounts (40/80).
I tried to figure out why I´m having problems connecting a lot of bots (over 25). It looks like all bots that are limited (5$-Limitation) disconnect automatically and for some reason unlimited accounts also disconnects. Why don´t disconnect? You can farm cards with limited accounts too, but you can´t get an API-Key for limited accounts until you added 5$/5€. Also I figured out that you can connect more then 25 accounts by checking that there is no corrupt sentry-file. Maybe the missing API-Key is the reason for disconnects? I just saw bots coming online and disconnect after some time. (10 seconds) All at once.
Edit: Now I figured out the bot can´t read the badge-page without the API-Key - so you can´t farm cards on limited accounts. :/
I'm not sure why my bot is renamed to [unassigned].
I found my bot has login problem in Archi window.
So I stop it and try login manually on Steam client and Steam say about "too many login attempt".
Then I view on bot profile url, I found name is changed without my config.
After that about 2hr. I can login completely and rename it to normal.
FYI:
My bot use Steam Guard by email and I'm pretty sure it's not hacked.
I use minimal config that no element of SteamNickname.
You can see name here.
http://steamcommunity.com/id/iFantz7E/namehistory/
With more and more releases being released quite frequently, especially "hotfix releases" such as 1.2.1, it's crucial to implement some kind of auto-update, because I'm annoyed myself when I need to update my ASF on server.
Definitely this option should be switchable, also the implementation might be rather hard, for now I think I'll just include ASF.exe and do an exe replace only.
Big wishlist, probably I'll get down to this when I get annoyed enough.
Just so I won't forget to do that after SteamRE/SteamKit#217 gets merged.
Auto-accept invitations to groups (From master-account)
Option: Automatically join to groups that joined master-account
@JustArchi : "SteamKit doesn't provide me with option to detect who invited bot to what clan, not going to happen until I find out the way."
Hello, sorry i can find yours email. I have a question about option "SteamApiKey". Can I use one API key (e.g. from master account) or i must spend $5 for each bot and get its own?
Theres one more reason why bots can´t connect > the interval for connecting your different bots is to low. Steam completely blocks access to their servers for some time if you spam 3 logons in just 1 second. I tried to login with Steam-Client after running ASF and get an error, that my login-attempt failed. (login-credentials definitely correct)
I'm using modified version with all commits up to 48a1cf1.
Some (but not all) accounts are stuck with repeating message Waiting for reaction...
I attached part of a log, you can see the problem after 4:44. It continues for hours, I truncated the file.
asf.txt
Probably caused by some problems with steam connection, but it continues even after steam problems are gone (botname2 reconnected).
After this happened those "stuck" accounts seems offline in steam, ignore "!stop " commands, and even after !exit command asf still on, showing Waiting for reaction...
messages.
Access to bots' commands with command line options with output in console. For example:
#ASF.exe --status
Currently 1 bots are running
#ASF.exe --bot chicken_1 --redeem ITSS-OMEC-DKEY
Status: OK | Items: [79309, GabeN: The Final Decision]
Automatically receive and activate Gifts that sent master-account.
@JustArchi : "Sounds too complex for now. Definitely on hold."
Master->Bot trades already work quite good, when I'm bored I might want to add also Bot->Master trades.
It's however much more complex. For now I think I'll handle that in OnFarmingFinished
callback, but I'm still not sure how hard (or easy) it will be to actually reverse-engineer whole steam part.
Big wishlist, I'm not sure if I find time and willings to do all of that.
Please, add ability to manually accept trades(for each bot separetely and all of them). It would be really useful.
Posting it here so I don't forget, ArchiBoT gets it first.
Usual log looks like this:
12/22/2015 10:47:39 AM [*] INFO: Start() <spoilbot2> Starting...
12/22/2015 10:47:44 AM [*] INFO: OnDisconnected() <spoilbot2> Disconnected from Steam, reconnecting...
12/22/2015 10:47:44 AM [*] INFO: OnConnected() <spoilbot2> Connected to Steam!
12/22/2015 10:47:44 AM [*] INFO: OnLoggedOn() <spoilbot2> Successfully logged on!
12/22/2015 10:47:46 AM [*] INFO: Init() <spoilbot2> Logging in to ISteamUserAuth...
12/22/2015 10:47:46 AM [*] INFO: Init() <spoilbot2> Success!
12/22/2015 10:47:47 AM [*] INFO: StartFarming() <spoilbot2> Checking possibility to farm...
12/22/2015 10:47:49 AM [*] INFO: OnDisconnected() <spoilbot2> Disconnected from Steam, reconnecting...
12/22/2015 10:47:49 AM [*] INFO: StopFarming() <spoilbot2> Sending signal to stop farming
12/22/2015 10:47:49 AM [*] INFO: StopFarming() <spoilbot2> Waiting for reaction...
12/22/2015 10:47:49 AM [*] INFO: OnConnected() <spoilbot2> Connected to Steam!
12/22/2015 10:47:49 AM [*] INFO: OnLoggedOn() <spoilbot2> Successfully logged on!
12/22/2015 10:47:50 AM [*] INFO: Init() <spoilbot2> Logging in to ISteamUserAuth...
12/22/2015 10:47:50 AM [*] INFO: StopFarming() <spoilbot2> Farming stopped!
12/22/2015 10:47:50 AM [*] INFO: Init() <spoilbot2> Success!
12/22/2015 10:47:50 AM [*] INFO: StartFarming() <spoilbot2> Checking possibility to farm...
12/22/2015 10:47:55 AM [*] INFO: OnDisconnected() <spoilbot2> Disconnected from Steam, reconnecting...
This issue happened to @Ryzhehvost as well as other people (KnSYS).
I can't reproduce it and I can't think of any explanation why it would happen to one account on very rare basis. It doesn't make sense to me for now.
I suspect it might be because of the PlayGames() request sent during the check, even if that doesn't make any sense, perhaps for some reason it makes Steam send Disconnect
, so ASF tries to reconnect and so on.
I suggest everybody who notices that issue to update to latest pre-release and try hard to reproduce the bug, only if nobody succeeds after 2-3 days I will assume that this is the reason, because there is literally no way for me to check - random bugs with absolutely no logic are the worst ones.
Is it possible to sent command to bot for farming specific game?
Such as send "!farm 227300" to my bots.
So I will can craft a badge for specific game faster.
Problem: I have 10 bots and each bots often farm different games.
Thanks.
So, when steam network has some kind of problems, accounts handled by bot lose connection, try to reconnect, unable to do it, bot believes all accounts is offline, and shut down. This is inconvenient, because I have bot on my server, and every time this happens I need to login and re-start bot manually. Would be nice if bot detect, was accounts disconnected because of "ShutdownOnFarmingFinished" or because of network problems, and don't shutdown in later case, just keep trying to reconnect. This way, after steam problems solved, bot-handled accounts would go online again.
As a feature-request (maybe I find time to do it on my own - but the chances are low) I would like to implement sharedSecret and identitySecret into config-xml-files.
We can adapt the approach of steam_node and generate Auth-Codes automatically if 2FA is enabled. (and you will use 2FA if you don´t want to waste 3 days waiting for your items).
Source: https://github.com/DoctorMcKay/node-steam-totp
There are several ways to retrieve the sharedSecret and identitySecret, the easiest I have found is Steam DesktopAuthenticator. (use at your own risk) If you don´t encrypt your files you can find your secret Keys as Plaintext in those files and then easily add them to your config-xml.
Doesn´t looks to complicated for me and for me its the only way I see to stay fully automated w/o using a mobile-device and w/o having to wait 3 days until your trade has finished.
I wonder if it's possible, would help me a lot regarding primary account.
@Ryzhehvost - I remember you do apply your own changes to ASF. Could you check for me if account still drops cards if you comment out this line - https://github.com/JustArchi/ArchiSteamFarm/blob/master/ArchiSteamFarm/Bot.cs#L691 ?
Or anybody else, I'm just too lazy to do that myself ATM. Thank you in advance.
http://steamtimeidler.com is where he sells it.
Sorry for abusing the issues part, but this is the best I can do to warn you.
As the title said.
I have been leaving ASF v0.9 ON for 2 days with my Main account and getting issue reported about this.
I'm trying to run ASF on RPi2 running on Raspbian Jessie. I installed mono-complete and it looks like it's almost functioning properly except for steamguard authentication. It works fine on my computer running Win10, but on RPi the output I get is:
28/12/2015 13:04:41 [*] INFO: Main() <Main> Archi's Steam Farm, version 1.2.3.0
28/12/2015 13:04:43 [*] INFO: Main() <example> Not starting this instance because it's disabled in config file
28/12/2015 13:04:43 [*] INFO: Main() <minimal> Not starting this instance because it's disabled in config file
28/12/2015 13:04:43 [*] INFO: Start() <acc> Starting...
28/12/2015 13:04:49 [*] INFO: OnConnected() <acc> Connected to Steam!
<acc> Please enter your 2 factor auth code from your authenticator app: FRBC6
28/12/2015 13:05:04 [*] INFO: OnDisconnected() <acc> Disconnected from Steam!
28/12/2015 13:05:04 [*] INFO: OnDisconnected() <acc> Reconnecting...
28/12/2015 13:05:05 [*] INFO: OnConnected() <acc> Connected to Steam!
28/12/2015 13:05:06 [*] INFO: OnLoggedOn() <acc> Successfully logged on!
28/12/2015 13:05:06 [*] INFO: Init() <acc> Logging in to ISteamUserAuth...
28/12/2015 13:05:09 [!] EXCEPTION: Init() <acc> Error getting response stream (Write: The authentication or decryption has failed.): SendFailure
28/12/2015 13:05:09 [*] INFO: Stop() <acc> Stopping...
28/12/2015 13:05:09 [*] INFO: OnDisconnected() <acc> Disconnected from Steam!
28/12/2015 13:05:09 [*] INFO: Start() <acc> Starting...
Is there a way to find what is the issue? Is there any other dependency needed outside of mono-complete that would prevent authenticating with Steam?
Hi.
After updating ASF multiple accounts have been renamed to [unassigned].
What could be the reason?
Hello, and sorry I'm not sure this is actually a bug, maybe it's just me not doing it properly, like a syntax problem.
Stopping a given bot by typing !stop works well, I don't know if specific main group or any (other) connected bot private chat !stop < BOT > exists or works. My problem is for (re)starting a bot:
(Note: the form breaks my < > formatting so I had to change slightly your start BOT syntax, just remove the spaces)
I've read the instructions for starting the bots : !start < BOT > so I tried for instance "!start 1 Name" (for instance where 1 Name.xml, 2 Name.xml, 3 Name.xml, etc... are my bots XML files, the numbers and space are for easier sorting) but the bot didn't start. Should I have typed !start <1 Name> or <1 Name.xml> ?
I've also tried !start ActualBotNameInSteam but it didn't work either.
I suppose I have to type these commands in the main chat window, the bot being disconnected not being physically present in the chat. I guess sending this command to another bot via its private chat window (while this feature, if it isn't implemented yet, could be useful) won't work either/at all?
Also, about Master to Bot trading, for this function to work: is it mandatory for the Master to have a defined Steam API key? In other terms, I didn't want to add it to the master's XML, for let's say security reasons, unless it's absolutely needed, especially regarding unsollicited trading or else, but maybe it's required?
By the way the Master has an XML "Master" steam id defined to itself... I suppose like the rest of the bots this master one wasn't supposed to be kept at "null"?)
PS: Merry Christmas :)
And the last one (I hope).
Does steam mobile trade confirmation work? Wiki page says it's automatic, just tested with no luck.
I am thinking of some kind of named pipe, which would allow third-party process to communicate with ASF, such as executing functions and other calls.
This is a big big wishlist, probably I'll get down to this only when I have nothing to add anymore, as ASF is supposed to be as transparent as possible and everything apart from redeeming keys is an extra.
Hello,
I setup bot properly. After first successful start all account online but half of them only idle in games remaining accounts are online bot not in the game. I try and send them trade offer they accept it but chat command wont work. When I restart bot only few account idle in games other just online and again trade work but chat command wont. I run 0.5 version on windows 7. Any idea or advice?
Pre-requirement: SK2 1.7+
Meet some strange problem, one of the bot is stuck in repeated ReconnectIfNeeded().
Here is a partial log:partial_log.txt
I think it's somehow connected to this 503 error there. Of course botname1 appears as offline all this time.
At the end of a file near 01.01.2016 21:16:34 you can see my attempt to stop the stuck bot. botname2 stopped successfully, but stuck botname1 is still in the loop. After restart of asf bot connected without problems.
Because of this 503 error I hope this is not very common problem, but if this would happen again I'll inform you.
Is it possible to implement the automatic sending of cards after the end of the bot by means of offline exchange links?
Just to discuss it separately from issue #16.
As @Haoose pointed, it'll skip to the next game, and assume that currently farming game is 100% farmed. It's nice to note that it's only temporary, so as I said, on next CardsFarmer module restart (e.g. triggered by steam disconnect, or cd-key activation), bot will recheck if assumption is proper, and if needed, farm the same ID further. It's a mechanism which tries to detect that cards don't drop for some reason (steam-related).
Maybe it would be better not skip the game, but re-start farming instead? I've met the problem of game stuck for 10+ hours, and I solved it either by restarting bot with !stop and !start, or by giving a !farm command. Why not make this process automatical, and maybe even decrease timeout to 5 hours (no big deal if bot is really still farming, it would just continue after restart.)
To avoid problems with SteamGuard I would recommend to jump to next step if you put in empty SteamGuard-Code (just press enter) and abort logon-attempt or retry later. Sometimes I didn´t got any SteamGuard-Mail for no reason and then I had to press enter and the empty code been send to steam. I think this also counts as failed login-attempt and can cause being blocked by steam. Here I just want to lower the risk of being banned for an hour or more.
Additionally w/o checking it - remove of all whitespace-characters (trim) SG-Code-Input. Most of the time I copy SG-Codes theres a space at the end of the string and I have to remove it by myself. But maybe Steam removes this whitespace by themselves - dunno.
Uhm... You may need to farm some exact app to receive cards, but bot will farm all the shit in A-Z order, including all the freebies given out everywhere.
I just want an ability to override order and say bot to farm something I need to be farmed :)
Please add log writting feature to see the pass events (maybe an option).
This is my sample to add log by modify this.
https://github.com/JustArchi/ArchiSteamFarm/blob/aa1c1962de069be235744735440cd736ffab2c26/ArchiSteamFarm/Logging.cs#L6
private static void Log(string message)
{
string line = DateTime.Now + " " + message;
Console.WriteLine(line);
File.AppendAllText("asf.log", line + "\r\n");
}
I hope to see this feature soon.
Thanks.
I have this problem for a few days right now. So basicaly, when I start asf bots are entering steam with no problem, but after about 50 bots some accounts just go berserk and try to reconnect every second with Invalid password. Manual stop does not help. I guess it has something to do with captcha but this bot just won't stop.
Maybe it's kinda related to #46 ?
23.12.2015 11:54:33 [] INFO: OnConnected() Connected to Steam!
23.12.2015 11:54:34 [!] WARNING: OnLoggedOn() Unable to login to Steam: InvalidPassword
23.12.2015 11:54:34 [] INFO: OnLoggedOn() Will retry after 25 minutes...
23.12.2015 11:54:34 [] INFO: OnDisconnected() Disconnected from Steam!
23.12.2015 11:54:34 [] INFO: OnDisconnected() Reconnecting...
23.12.2015 11:54:34 [] INFO: OnConnected() Connected to Steam!
23.12.2015 11:54:35 [!] WARNING: OnLoggedOn() Unable to login to Steam: InvalidPassword
23.12.2015 11:54:35 [] INFO: OnLoggedOn() Will retry after 25 minutes...
23.12.2015 11:54:35 [] INFO: OnDisconnected() Disconnected from Steam!
23.12.2015 11:54:35 [] INFO: OnDisconnected() Reconnecting...
23.12.2015 11:54:35 [] INFO: OnConnected() Connected to Steam!
23.12.2015 11:54:35 [] INFO: OnConnected() Connected to Steam!
23.12.2015 11:54:35 [!] WARNING: OnLoggedOn() Unable to login to Steam: InvalidPassword
23.12.2015 11:54:35 [] INFO: OnLoggedOn() Will retry after 25 minutes...
23.12.2015 11:54:35 [] INFO: OnDisconnected() Disconnected from Steam!
23.12.2015 11:54:35 [] INFO: OnDisconnected() Reconnecting...
23.12.2015 11:54:36 [!] WARNING: OnLoggedOn() Unable to login to Steam: InvalidPassword
23.12.2015 11:54:36 [] INFO: OnLoggedOn() Will retry after 25 minutes...
23.12.2015 11:54:36 [] INFO: OnDisconnected() Disconnected from Steam!
23.12.2015 11:54:36 [] INFO: OnDisconnected() Reconnecting...
23.12.2015 11:54:37 [] INFO: OnConnected() Connected to Steam!
23.12.2015 11:54:37 [!] WARNING: OnLoggedOn() Unable to login to Steam: InvalidPassword
23.12.2015 11:54:37 [] INFO: OnLoggedOn() Will retry after 25 minutes...
23.12.2015 11:54:37 [] INFO: OnDisconnected() Disconnected from Steam!
23.12.2015 11:54:37 [] INFO: OnDisconnected() Reconnecting...
23.12.2015 11:54:38 [*] INFO: OnConnected() Connected to Steam!
Hello
Did you consider an option to make bots auto-accept gifts send through chat from master account? (e.g. links https://store.steampowered.com/account/ackgift/XXX/) Is it possible?
Thank you
Hey, Archi. Main account doesn't work for me with ver 1.0, it kicks me out of steam client. But it still works well with ver 0.9.1.
My friend told me about this issue.
Screenshot of a crash http://i.imgur.com/QG2erav.png
Probably because Shutdown method called without parameters tries to do
Bots.TryRemove(botName, out bot);
which throws the exception because botName==null.
// Edit: Looks like SG-Codes expired (happens with to many slaves) - Closing
i have 1 alt. account i want to use with asf for 2fa, after enabling 2fa in config, new machine login code, sms code, write down Rxxxx code, press enter and get unknown error, trying running asf and error again
screenshot of error in 2nd run: http://mahadi.noip.me/ss/1450048793-Z.png
1 have 4 file in the config folder, .auth, .key, .bin and .xml
also want to give info, if you lost your Rxxxx code, you can reset your steam guard auth from here
https://help.steampowered.com/#HelpWithLoginInfo?nav=authenticator
**Warning: your account will get reset and get new device status all over your device
EDIT:
i know the problem, in config on steam parental i put wrong code, instead of 9956 i put 9965, and because of that asf throw fatal error. how about show error message if you put wrong parental code, i think steam give feedback if parental code is wrong
This way we can make repacking work also on Mono + open-source 👍
I'll test it with ArchiBoT prior to writing here.
Background:
Accidentally I found out today that I no longer receive EResult.LogonSessionReplaced
when I'm using my account both on PC through steam client and in ASF at the same time, both on the same machine.
This is interesting because either Valve changed it very recently, or it was non-intended.
What we know so far:
LogonSessionReplaced
in OnLoggedOff
event. If we found out a reason for that, perhaps I could implement something that could fix that as well.Please let us know if you find anything interesting regarding that thing. If it works good for you, if it doesn't, and if it doesn't, if you have any ideas why.
So when I was adding my account and activating 2fa I've noticed that sometimes ASF (or steam) can enable 2fa without actually entering sms code. And it would be great if not one thing it doesn't show revocation code either. Because of that I have to turn off 2fa on accounts that skipped sms confirmation and turn on 2fa again. I don't know why it is happening. I usually add 10 accounts at once so I have to enter a lot of codes but sms code part just doesn't show sometimes.
Sorry buddy, I can not see. The first day of using the bot.
It would be great if you could! transfer of command from all accounts on the main card account. and that would account of Major also took transfer sharing himself with all donors to account.
Big wishlist. It's possible to try to activate keys on other bots when one account fails with "AlreadyOwned". This would result in a need to send key only once and automatically activate on "some" bot.
Drawbacks to consider:
As I said, big wishlist, probably won't be considered for a while, but leaving it here so I don't forget.
Seems it's because timer, which triggers possibility of farm check is not stopped/destroyed after bot stopped.
It's not a big issue, but it makes extra load and junk in the logs, so probably fixing it is a good idea.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.