sNIP
-
Posts
36 -
Joined
-
Last visited
Posts posted by sNIP
-
-
On 10/3/2020 at 4:38 AM, Dr. McKay said:
That should work, I think. You may need to enable web compatibility mode on steam-user to force it to connect using WebSockets. When you connect via WS, the CM domain name follows the format *.cm.steampowered.com so that should be fine with your proxy setup.
I'm sorry, I can't recommend any proxy providers.
I am gonna try the luminati proxy and I will return a feedback in the coming months! Thank you for the heads up
-
Hello everybody, hope you are doing fine in these covid times... My question is: I want to run a limited amount of steam account on the steam network. I was using the ips provided from my VPS provider, but I want to use more flexible solution, like https://luminati.io/, more specific the data center private proxy. If I chose that option, it asks me for a list of targeted domains. Are the domains "steamcommunity.com" and "steampowered.com" enough to satisfy the need of managing trade offers, sending and receiving steam messages and removing friends from the friendlist? What is your experience and can you suggest me a suitable proxy provider?
-
6 hours ago, Dr. McKay said:
It's the time Steam says the offer changed, which would be Tuesday in your example.
Thank you for the response
-
Good evening,
When you stop your trade offer manager instance, then start it again after a long period of time with the latest poll data from the last session, does the updated property corresponds to the time when the offer state was actually changed, but not when the trade offer manager acknowledged that there is a change in the offer.
Example:
Steam bot is running on Monday, and it have sent one offer that day.Steam bot is shut down Monday evening.
Tuesday: Partner declines the offer that the steam bot have sent the previous day.
Wednesday: I start the steam bot again, with the poll data saved from Monday, I receive one event from the EventEmmiter's on("sentOfferChanged"), does that event(trade offer) have the "updated" property which should be date object, which also point to Tuesday, when the state was actually changed? Or it is Wednesday, when the bot acknowledged that there is a change?
-
On 6/5/2020 at 3:55 AM, Dr. McKay said:
Node.js actually performs better if you split as much as you can into separate processes, since Node is single-threaded.
I tried, but it too much hassle, I just gave up on the multithreading model and can run up to 50 accounts with no issues whatsover right now
-
On 6/3/2020 at 8:20 AM, Dr. McKay said:
There shouldn't be any problems.
Thank you, because Iam switching from each each NodeJS instance, to all instances in one NodeJs
-
I know I can use localAddress options in both steam community and user. But will I run into problems, if I try to run multiple instances of node-steam-user instances with different localAddress setings on the same nodejs instance?
Thanks in advance
-
Iam not sure if this is relevant but here is my take:
community.on("sessionExpired", function(err) {if (err) {console.log("Session Expired: " + err);}if (client.steamID) {client.webLogOn();console.log("called weblogon: " + thisId);} else {client.logOn(logOnOptions);console.log("called logon");}}); -
This is the test that I made with 45 test IPC processes. The test consist of sending and expecting to receive message every 1 second. I have tested the execution of the time a message goes to the child process and then waiting for that message to come back to the parent process. The transaction time doesnt exceed 1 second.
It takes average ~80 mb per process.
So if I want to save ram, I need to run them in one process(multiple instances of steam user class).
My only concern about spawning multiple processes is that I dont know if I will hit an IPC bottleneck. What happens if a parent process have 500 child processes, which he needs to have constant connection to them? Iam not sure if it will be actually OS related. If that is the case, I need to spawn a process which spawns a process. -
Currently I have one main nodejs app, which spawns one nodejs process for each account. The communication is done by IPC protocol. So my question is:
Is it going to be better if I just create multiple steam user instances and place them in an array or in an object collection?
-
On 3/2/2020 at 12:52 PM, artyak said:
Why? What is the problem?
I can refuse to use confirmation checker if you recommend an alternative.
Dont use confirmation checker, thats how I got like 5 ips blacklisted before I realized what was causing it.
I use accept all confirmations on confirmation event. It has 1.7% fail ratio for the event to emit, as much as I know. The other way is to accept all confirmations 10 seconds after the trade is sent, it might fail again but its still a workaround. -
16 hours ago, Dr. McKay said:
There's no reason why it should ever be 12, that isn't used internally or anything. Maybe Steam is just really really fussy for your account or something? Maybe 12 is a value used internally by Valve for something and something's buggy with your offer(s).
Could you set up a script to monitor the API directly and alert if it notices a value of 12?
Iam using this, it works fine, when I have time, I will look it up, probably after my finals.
if(oldState == 12){return;} -
The old state is 12, which is strange because the TradeOfferEnum max number is 12. Is that a debug number?
-
On 12/14/2019 at 11:09 AM, Dr. McKay said:
What is the oldState when it emits when you believe it shouldn't?
I will check it, but I believe its the same, because if I keep the app running, it can emit 1000 times before I close it or the trade offer changes it states
-
EDIT2: the emmiting stops when the trade offer is accepted and finalized(havent tested with others statuses)
EDIT2.1: some offers are fine, some are causing "sentOfferChanged" to emit too much
-
When I send a trade, it keeps telling me that the offer status is changed to 2 (Active), this happens every ~4-~7 seconds after I send the offer. Code related to the trade offer manager
EDIT: The code below is wrapped inside an async Start() function, so I can use async.
var pollData = await offerService.getPollData();const manager = new TradeOfferManager({steam: client,community: community,language: "en",cancelOfferCount: 30,pollData: pollData});manager.on("sentOfferChanged", (offer, oldState) => { //<this emits every ~4-~7 secondsconsole.log(`Sent offer changed:` + offer.state);senderService.onSentOfferChanged(thisId, offer.partner.getSteamID64(), offer);});manager.on("pollData", data => {offerService.savePollData(thisId, data);}); -
I hold the credentials of my bots in plain text, but Iam sure that nobody can access the vps server and the plain text files. So one of the bot got his inventory wiped out by this guy https://steamcommunity.com/profiles/76561198878870680 . I have auto confirm all trades on confirmation event emit. Its strange that I hold credentials for other bots on the same file which are not touched at the moment and have items.
I locked the other accounts but left 2 too see what will happen
-
Yep, that looks correct.
Thanks!
-
const client = new SteamUser();client.setOption("localAddress",logInConfig.publicIP);const logInOptions = {accountName: logInConfig.accountName,password: logInConfig.password,twoFactorCode: SteamTotp.generateAuthCode(logInConfig.sharedSecret)};const community = new SteamCommunity({localAddress:logInConfig.publicIP});const manager = new TradeOfferManager({steam: client,community: community,language: "en",cancelOfferCount: 30});client.logOn(logInOptions);
Will the manager use the logInConfig.publicIP?
-
I'm not using any deprecated methods. I gave up after 12 hours. I just made a snapshot and transferred to another vps
I had run into the same problem and I had to change ips, the first time it happened was when I used confirmation checker, the second was that I used client.weblogon too much
-
It seems that everything is ok from the manager debug, it prints "doing trade offer poll since *somenumber*" and 1/5 of the times or something "trade offer poll since 1(full update)", but no emits.
EDIT:
I just love javascript and my stupidity
manager.on("sentOfferChanged "I had this space floating around, thanks anyways!
-
There's no need to call
webLogOn
inside of aloggedOn
event callback. A web logon happens automatically when you first connect.If you add
manager.on('debug', console.log)
you might get some helpful output.Yep I removed it, but still doesnt work, will try to 'debug' and see what happens
-
const client = new SteamUser();const community = new SteamCommunity();const manager = new TradeOfferManager({steam: client,community: community,language: "en",});const logInOptions = {accountName: logInConfig.accountName,password: logInConfig.password,twoFactorCode: SteamTotp.generateAuthCode(logInConfig.sharedSecret)};client.logOn(logInOptions);client.on("loggedOn", () => {console.log("logged on");client.setPersona(SteamUser.EPersonaState.Online);client.gamesPlayed(730);client.webLogOn();});client.on("webSession", (sid, cookies) => {manager.setCookies(cookies);community.setCookies(cookies);});
Really looking forward for help
edit: Also thiscommunity.on('sessionExpired', function(err) {if (err) {console.log('Session Expired: ' + err);}if (client.steamID) {client.webLogOn();console.log('called weblogon: ' + thisId);} else {client.logOn(logOnOptions);console.log('called logon');}});Edit:2 I do not receive ANY emits now from sentOfferChanged, can confirm that client.on("webSession", (sid, cookies) => { is called
-
const manager = new TradeOfferManager({steam: client,community: community,language: "en"});manager.on("sentOfferChanged ", function (offer,oldState) {console.log(`Sent offer changed:` + offer.state);});
sentOfferChanged doesnt emit, the only time it emits something is when I send an offer that needs to be confirmed (ETradeOfferState = 9). Do I have to call doPoll() manually or Iam missing something?
Google Firebase Functions
in General
Posted
It is not worth it, since almost every time you will have a different ip address with each invocation, also I believe it is hard to manage events (steam message for example). In general it is worth to just use monolith application for steam bots and don't deal with serverless functions.