Git Product home page Git Product logo

steam-idler's Introduction

steam-idler

Simple cross-platform Steam game idler with multi account support.

InstallAccountsProxiesConfigStart

 

Introduction

This is a simple cross-platform Steam game idling bot, supporting multiple accounts.
It handles the connection management for all accounts for you, sends afk messages if enabled and of course idles the configured games.

This project is a slimmed down version of my steam-comment-service-bot, for users only interested in game idling.
If you need more features, please check it out instead.
It does way more besides supporting commenting etc, has more advanced connection management features than present here and is updated more regularly.

Please continue reading to learn how to set this bot up.

 

Install

Make sure to have node.js installed.
Download this repository as .zip, extract the folder and open a Terminal/Power Shell/Console in the folder.

Type npm install to install all dependencies.

 

Accounts

Open the accounts.txt file and put an account in each line in this format:
username:password:shared_secret

shared_secret is optional. Only provide username:password if you don't want to use it.

 

Login using QR-Code:
You want to login an account by scanning a QR-Code using your Steam Mobile App? Easy!
Instead of providing a password for that account in accounts.txt, set the password to "qrcode".
On startup, the bot will display a QR-Code in the log which you can scan using your Steam Mobile App.

Example:
myaccount1:qrcode

The username you provide for that account does not need to be correct, it just needs to stay the same.
It is only used to store a token in the database to re-use the existing session when starting the bot the next time (so you don't need to scan the QR-Code on every startup).

 

Proxies

If you are using many accounts it might make sense to add proxies so you don't have tons of sessions from the same IP.
To do this, open the proxies.txt file and put as many HTTP proxies as you wish, line per line.
The bot will spread all accounts equally on all available proxies, including your local IP.
Your proxies must follow this format: http://user:[email protected]:8081
Please note that Steam might block some proxy providers.

 

Config

Open the config.json in a text editor and put the games you wan't to idle inside the playingGames brackets.

You can set a custom game by passing a String as the first argument.
The other numbers define the games the script will start playing. You can add more by adding a comma and the app id.
The bot will automatically request licenses for free-to-play games which are set here but your accounts do not own yet. This is limited to 50 games per hour.

If you want to set specific games for specific accounts, pass an object containing "accountName": [] for every account as the first argument.
Everything that follows will represent the "general" settings, which all accounts will use that are not included in the object.
See the 4th example below for a visual representation.

Examples:

  • Display "In non-Steam game: Minecraft" and idle TF2 & CS:GO: "playingGames": ["Minecraft", 440, 730],
  • Display "Currently In-Game: Team Fortress 2" and idle TF2 & CS:GO: "playingGames": [440, 730],
  • Only appear as online and don't idle anything: "playingGames": [],
  • Display "Specific Game" game & idle CSGO only for account "myacc1". Idle nothing for account "myacc25". Display "General Game" & idle TF2 for all other accounts: "playingGames": [{ "myacc1": ["Specific Game", 730], "myacc25": [] }, "General Game", 440],
  • Idle CS:GO & Dota on "myacc1" and idle Dota on "myacc2". Play TF2 on every other account: "playingGames". [{ "myacc1": [730, 570], "myacc2": [570] }, 440],

You don't have to keep playingGames on one line, this is done here for documentation purposes. I recommend spreading the array over multiple lines, especially when setting lots of different games for lots of different accounts.

 

To set a different online status you can choose a number from this list and provide it at onlinestatus.
If set to null the bot will not change your online status.

To set a message that will be send on a recieved message while idling, set a message as afkMessage.
Leave the brackets empty (like this: "") to not send any message back.

The loginDelay and relogDelay values control the time waited between logging in multiple accounts and the time waited before a relog is attempted after an account lost connection.
I recommend not touching them as they have good defaults to avoid cooldowns, however if you know what you are doing - they are there.

 

Important:
Make sure that you don't forget any commas, the script will otherwise not start and throw a Syntax Error.
Take a look at the default config.json if you are unsure what you are missing.

 

Start

Then just type node idler.js to start the script.
The script will try to log in and ask you for your Steam Guard code if it needs one. When it is logged in a logged in message will be displayed.

Every time an account looses connection it will print a session summary to a text file "playtime.txt" (will be created automtically).
This also applies to when you stop the bot manually. To turn this whole feature off, set logPlaytimeToFile in the config to false.

Thats it. A simple cross-platform Steam game idling script powered by DoctorMcKay's steam-user library.

steam-idler's People

Contributors

3urobeat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

steam-idler's Issues

Custom game

Hi, i leave brackets empty but it says custom game in steam what am i missing?
1
2

ip ban problem

Hi! the script works amazingly well when logging into accounts but i have problem and it is that when i lose the conexion becouse my internet just turn off, when my internet goes back on it tries to relog in all accounts at the same time. is there anyway to make the same cooldown as it is with the account normal logging. I'm sorry if i explained this a bit bad, my english sucks and i'm not a programmer. Thank you!.

Add Steam API

Add an steam api that get your game library to make the process faster.

renew refreshtoken?

Hi!, i have a question about how to renew refreshtoken so we have it forever.

I don't really know how it works because i haven't had my idle for more than 200 days, but i think the script once the token expires we have to put the steam guard code again in every account right? i just saw a function in the steam-session modules that can help renew that, or maybe i understood wrong? is called renewRefreshToken() here is the link:
https://github.com/DoctorMcKay/node-steam-session#renewrefreshtoken

I guess the idea is to check the expiration date and if there is about 3 days left until it expires, create a new token with that function?

Add pm2

Add auto change 32 games every hour for better and add pm2 restart every time app crashed for better.

Register game before starting to idle

When idling in csgo, the bot starts but does not start idling if the game has not been run at least once on the account, how is it possible to fix this so that there is no need to make the first login to the game on each account?

Token

Hello how to add token from mobile phone? The tokens.db should be clear without any code? Or should I add something by myself?

licensing issues

how can I farm in more than 50 free games, because it seems that every free game is not licensed and steam API limits that to 50 games per hour, but I doesn't seem that it idles in more than 50 free games after a few hours (program was working for a few days with no interuptions)

Relog issue

Hey,
When lost connection to Steam, asks Steam Guard Code for relog. But when I close and reopen , it logs in without asking for Steam Guard Code with a token.

image

Running with pm2

Is it possible to start the program using pm2 so that the boost process does not stop when the terminal window is closed.
In my case, there is an error :

6|idler  | TypeError: process.stdout.moveCursor is not a function
6|idler  |     at module.exports.log (/root/steam-idler-main/node_modules/output-logger/lib/helpers/printManager.js:80:24)
6|idler  |     at module.exports.handleExit (/root/steam-idler-main/node_modules/output-logger/lib/events.js:33:27)
6|idler  |     at process.on.events.<computed> (/root/steam-idler-main/node_modules/output-logger/index.js:125:68)
6|idler  |     at process.emit (node:events:511:28)

6|idler  | TypeError: process.stdout.moveCursor is not a function
6|idler  |     at module.exports.log (/root/steam-idler-main/node_modules/output-logger/lib/helpers/printManager.js:80:24)
6|idler  |     at module.exports.logger (/root/steam-idler-main/node_modules/output-logger/lib/logger.js:101:27)
6|idler  |     at module.exports (/root/steam-idler-main/node_modules/output-logger/index.js:35:39)
6|idler  |     at module.exports.start (/root/steam-idler-main/src/controller.js:79:5)
6|idler  |     at Object.<anonymous> (/root/steam-idler-main/idler.js:19:32)
6|idler  |     at Module._compile (node:internal/modules/cjs/loader:1255:14)
6|idler  |     at Module._extensions..js (node:internal/modules/cjs/loader:1309:10)
6|idler  |     at Module.load (node:internal/modules/cjs/loader:1113:32)
6|idler  |     at Module._load (node:internal/modules/cjs/loader:960:12)
6|idler  |     at Object.<anonymous> (/root/.n/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)

No connection

Hi, getting this error in my VDS. Why this is happening? Can you help me please if ur available?
image

How much hours played with bot

Hey, if the timer starts when the bot starts playing with the bot and stops when it is turned off, then exports it to a file so that it can be calculated how many hours it has been played. This method that comes to my mind can be calculated in a different way, I would be pleased if you add this feature. Thanks.

being able to idle different games per account

Hi i would like to request a future if is possible, would it be possible to add idle list per account, so i can for example idle in account 1, cs:go and in account 2 another game that is not free to play and i dont have in all accs?
I have seen other scripts in the past with the same accounts.txt file format in they used it this way:
AccoutName:AccountPassword:gameids

Thanks!

Error

image
i m getting this error.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.