Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Zaarrg/DropBot

Drop Bot. Automaticlly Farms every Drop available like Rust for ya and now also your Custom Channel's
https://github.com/Zaarrg/DropBot

bot drops miner

Last synced: about 1 month ago
JSON representation

Drop Bot. Automaticlly Farms every Drop available like Rust for ya and now also your Custom Channel's

Awesome Lists containing this project

README

        


Bear Stone Smart Home


DropBot


Watches Drops for you!


This Project is currently not maintained and will most likely not work!






@Zaarrg/DropBot issues


@Zaarrg/DropBot pull requests


Zaarrg/DropBot requests




Discord


Discord


![DropBot](https://i.imgur.com/9icOyNB.png "DropBot")

## 🤔 **What is this Drop Bot all about?**

* Makes your drop experience as easy as possible.
* No need to watch the stream in a browser, fully uses gql.
* No need to care about who is online and when.
* Saves your session providing you autologin.
* Can watch every Drop / Campaign available.
* Automatically claims your Drops.
* Switches automatically to other games or drops if drop is claimed/claimable or offline.

Disclaimer - DropBot is not intended for:

* Mining channel points - it's about the drops only.
* Mining anything else besides Twitch drops.
* Unattended operation.
* 100% uptime application, due to the underlying nature of it, expect fatal errors to happen every so often.
* Being hosted on a remote server as a 24/7 bot.
* Being used with more than one managed account.
* Any form of automatic restart when an error happens.
* Using it with more than one managed account.
* Making it possible to mine campaigns that the managed account isn't linked to.
* Anything that increases the site processing load caused by the application.
* Mining campaigns the managed account isn't linked to.
* Being associated in any way with Twitch


## ⚡ **Installation**

Windows

1. Download the windows executable from the **[build branch](https://github.com/Zaarrg/DropBot/tree/build)** or **[release page](https://github.com/Zaarrg/DropBot/releases)**.
2. Move the executable to a folder.
3. **Execute** the `DropBot.exe`. The **settings** and **drop-session** will be generated right beside the executable.

Linux

1. Download the linux executable from the **[build branch](https://github.com/Zaarrg/DropBot/tree/build)** or **[release page](https://github.com/Zaarrg/DropBot/releases)**.
2. Move the executable to a folder.
3. Give the `DropBot-linux-x64` file permission to execute via chmod if needed.
```bash
chmod +x ./DropBot-linux-x64
```

4. **Execute** the `DropBot-linux-x64`. The **settings** and **drop-session** will be generated right beside the executable.

```bash
./DropBot-linux-x64
```

Ubuntu


Using Bot with No GUI - Only Command Line

1. Download the linux executable from the **[build branch](https://github.com/Zaarrg/DropBot/tree/build)** or **[release page](https://github.com/Zaarrg/DropBot/releases)**.
2. Drag and Drop a `settings.json` and `drop-session.json` file right beside the executable.
3. Make sure you have set `displayless` to `true` in your settings.json
4. **Execute** the `DropBot-linux-x64`.

```bash
./DropBot-linux-x64
```
⚠️ _If you want to specifiy wich games to watch use the **Prioritylist** setting_ ⚠️

⚠️ _If you want to watch Custom Channels drag and drop a `customchannels.json` to your executable location and set `ForceCustomChannel` in settings.json to `true`_ ⚠️

⚠️ _If you can't seem to get any progress on drops "always stuck" try loging in instead of copying drop-session.json._ ⚠️

Npm

1. Clone the **[Repository](https://github.com/Zaarrg/DropBot)**.
```bash
git clone https://github.com/Zaarrg/DropBot
```

2. Install NPM packages.
```bash
cd DropBot/
npm install
```
3. Run the bot via npm scripts.
```bash
npm run start:production
OR
npm run start:dev
```

Docker

1. Get your auth token

```bash
docker run --rm -it ghcr.io/zaarrg/dropbot/dropbot:latest node ./build/index.js --showtoken
```

2. Login in, copy your auth token, and then exit the container with `Ctrl + C`

3. Create the container

```bash
docker run -d --name dropbot \
-e dropbot_displayless=true \
-e dropbot_token=TokenFromStep1 \
-e dropbot_games="Sea_of_Thieves Rust Lost_Ark No_Man's_Sky" \
-e dropbot_autoclaim=true \
ghcr.io/zaarrg/dropbot/dropbot:latest
```
---

## 📚 **How to use the Bot?**

Step by Step Usage: Drops

**1. Step**


Select the way you want to Log in into your account.


⚠️ If you cant login directly because of CAPTCHA use the browser method. ⚠️

⚠️ Only Chromium Browsers are supported like Brave and Chrome . ⚠️

![Drops](https://i.imgur.com/ra3zm1x.png)

**2. Step**


Select Drops to watch a Campaign or Custom Channels if you want to add your own channels. Refer to Step by Step Usage: Custom Channels for those.

![Drops](https://i.imgur.com/DRqIkpz.png)

**3. Step**


Select the campaign you want to start watching. If you want to only watch certain campaign and not all refer to Settings: Priority list

![Drops](https://i.imgur.com/CMuV729.png)

**4. Step**


Select the Drop you want to start watching.

![Drops](https://i.imgur.com/DzB5qjX.png)

**5. Step**


🎉 Enjoy! You are successfully watching your drop.

![Drops](https://i.imgur.com/iNmvIZc.png)

Step by Step Usage: Custom Channels

**1. Step**


Select Custom Channels to start watching them.

![Drops](https://i.imgur.com/DRqIkpz.png)

**2. Step**


Fill in the needed information to add a Channel. They can always be modified in the customchannel.json

![Drops](https://i.imgur.com/kBabjJL.png)

**3. Step**


Select the Channel you want to start. The bot will switch between the Custom Channels, if one goes offline.

![Drops](https://i.imgur.com/AZt3xpU.png)

**4. Step**


🎉 Enjoy! You are successfully watching your Custom Channel.

![Drops](https://i.imgur.com/k95h9Tu.png)

Step by Step Usage: Heroku


⚠️ Only Recommended for advanced users. ⚠️

**1. Step**


Click on the Deploy to Heroku Button at the top of the Readme

![Drops](https://i.imgur.com/1ll6yjV.png)

**2. Step**


Login if necessary, and choose any app name you want, select your region and click Deploy app

After that let Heroku go through the build process and then click on Manage App

![Drops](https://i.imgur.com/oIm3m52.png)

**3. Step**


Go to the Resources tab and disable the web dyno and enable the worker instead

![Drops](https://i.imgur.com/5XeKXRC.png)

**4. Step**


Click on more in the top right corner and then on Run console.

Type in bash and click Run.

![Drops](https://i.imgur.com/Q7mArVd.png)

**5. Step**


Now run the command node ./build/index.js --showtoken in the Terminal.

Login Directly via command Line, until you see your auth token and copy it.

![Drops](https://i.imgur.com/qfJV0OQ.png)

**6. Step**


Close the Terminal and go to Settings then Reveal Config Vars

Now type in as key dropbot_token and as value your copied token and click add

You can find more environment variables
here

![Drops](https://i.imgur.com/EnB36ih.png)

**7. Step**


🎉 Thats it Enjoy! You are successfully watching.

To check if its working click on more in the top right corner then view logs.

Give it some time to start up, and you should see the bot working.

![Drops](https://i.imgur.com/7Jrsojx.png)

---

## 📝 **Settings**

Down below you can find the settings Variables and what they do.

### Chromeexe
- The path of your Browser: Linux: google-chrome | Windows: C:\Program Files\Google\Chrome\Application\chrome.exe

### UserDataPath
- Providing a userdatapath, will give the loginpage the option to use cookies out of your browser. Option not really needed anymore.
- You can find the UserdataPath under chrome://version then under Profile Path

### Webhook
- The Discord Webhook URL: https://discord.com/api/webhooks/...

### WebHookEvents
- Set what events should be send via webhook.
- Defaults to: ["requestretry", "claim", "newdrop", "offline", "newgame", "get", "getresult", "progress", "start", "error", "warn", "info"]

### Debug
- Will log important values to the console for debugging.

### Displayless
- Give the ability to use the bot fully automated with no user input needed. Especially useful for gui-less systems. See [Ubuntu - No Gui](https://github.com/Zaarrg/DropBot/#ubuntu)

### ForceCustomChannel
- Force the bot to watch Custom Channels, only useful for display-less mode.

### ProgressCheckInterval
- The time in ms, in what interval the progress should be checked. Recommended is `60000 ms - 60 s` anything under could cause blocking your request.

### RetryDelay
- The time in ms, in what interval failed requests should be retried. Recommended is `60000 ms - 60 s` anything under could cause blocking your request.

### WaitforChannels
- If set to false the Bot will no longer wait 5 Minutes for new Channels to come online. It will switch to another game instead.

### Prioritylist
- A list of Games the bot should watch / prioritize. Only Provide games with active Drop Campaigns in this Format:
`["Rust","Fortnite", "Elite: Dangerous"]`
- You can get the valid name from
- If provided the bot will only watch the games listed.

### AutoClaim
- Allow the bot to autoClaim or not

### LogToFile
- Log the Console to a file.

### UseKeepAlive
- If activated uses Express to the keepalive the bot useful for stuff like Replit.


---

## ✏️ **Start Arguments**

All available start Arguments, basically everything which is also in the [settings.json](https://github.com/Zaarrg/DropBot#-settings) file.

```bash
./DropBot.exe --help

Usage: ./DropBot or index.js --arg...

Options:
--help Show help. [boolean]
--version Show version number. [boolean]
-c, --chrome The path to your Chrome executable. [string]
-u, --userdata The path to your userdata folder location. [string]
--webhook, --wh The Discord Webhook URL. [string]
--webhookevents Set what events should be send via webhook. [array]
-i, --interval The progress interval in ms. [number]
--retryinterval, --retry The retry interval in ms. [number]
-g, --games The Games the bot should watch. [array]
--token Your auth_token. [string]
-d, --debug Enable Debug logging. [boolean]
--displayless, --dl Enable Displayless mode. [boolean]
--forcecustomchannel Force Custom Channels. Only useful for
display-less mode. [boolean]
--waitforchannels, --waitonline Disable waitforchannels, forcing the bot to not wait
for other channels with drops instead switch the game. [boolean]
--autoclaim Enable autoclaim. [boolean]
--log Enable logging to file. [boolean]
--usekeepalive Enable Express KeepAlive. [boolean]
--tray Start app in the tray. [boolean]

Examples:
--chrome C:path:to:chrome.exe Sets your chrome path.
--userdata C:path:to:userdata-folder Sets your userdata path.
--webhook https:discord.com:api:webh.... Sets your webhook url.
--webhookevents requestretry claim Defaults to the events in this
newdrop offline newgame get getresult example provided.
progress start error warn info
--interval 30000 Sets the progress interval to 30s.
--retryinterval 30000 Sets the retry interval to 30s.
--games Rust Krunker 'Elite: Dangerous' Sets the Prioritylist to Rust,
Krunker and Elite: Dangerous.
--token yourkindalongtoken Sets the your current auth
token, overwriting any in
drop-session.json.

```

## ✏️ **Environment variables**

All these Start Arguments also work as environment variable:

```bash
dropbot_chrome = YourPath
dropbot_userdata = YourPath
dropbot_webhook = DiscordWebhookURL
dropbot_interval = 60000
dropbot_games = Game1 Game2 Game3... ⚠️ Black Desert -> Black_Desert ⚠️
dropbot_debug = true || false
dropbot_displayless = true || false
dropbot_forcecustomchannel = true || false
dropbot_waitforchannels = true || false
dropbot_autoclaim = true || false
dropbot_log = true || false
dropbot_usekeepalive = true || false
dropbot_retryinterval = 60000
dropbot_webhookevents = Event1 Event2 Event3...
dropbot_showtoken = true || false Usefull for System were you cant access your drop-session.json
dropbot_token = YourToken
```

## 📘 Adding Custom Channels


![Drops](https://i.imgur.com/kBabjJL.png)

### Name
- The Name can be any String like `Rainbow Six, Best Ch ever etc...`

### Url
- The Url is very important, never use the same Url twice, it has to be a valid Channel link and has always to start with `https://www..tv/`. Example for a Valid Url: `https://www..tv/rainbow6tw`

### How the Channel should be Watched

`Watch until the time runs out:`
- Watches the channel until the left time reaches 0 then switches to other custom channel.

`Watch indefinitely:`
- Watches the channel until it goes offline, then switches.

### Farm Points
- Pretty simple, should the bot farm Points or not.

### Editing already Added Channel's
- You can always edit Channel's which are already added in the [CustomChannels.json]('https://github.com/Zaarrg/DropBot/#example-customchannelsjson').

---

## 📄 Json Files Examples

### Example Settings.json
```json
{
"Chromeexe": "",
"UserDataPath": "",
"WebHookURL": "",
"WebHookEvents": [],
"debug": false,
"displayless": false,
"ProgressCheckInterval": 60000,
"RetryDelay": 60000,
"WaitforChannels": true,
"Prioritylist": [],
"AutoClaim": true,
"LogToFile": true,
"ForceCustomChannel": false,
"UseKeepAlive": false
}
```

### Example CustomChannels.json
```json
[
{
"Name": "tarik",
"Link": "https://www..tv/tarik",
"WatchType": "Watch until time runs out",
"Time": "50",
"Points": true
}
]
```

### Example Session
```json
[
{
"name": "auth-token",
"value": "yourtoken"
}
]
```

⚠️ _Never share your **Token** with anyone, because it gives full access to your account_ ⚠️

---

## 🎉 Enjoy the bot and hopefully its helpful!

[![GitHub's followers](https://img.shields.io/github/followers/Zaarrg.svg?style=social)](https://github.com/Zaarrg)
[![GitHub stars](https://img.shields.io/github/stars/Zaarrg/DropBot.svg?style=social)](https://github.com/Zaarrg/DropBot/stargazers)
[![GitHub watchers](https://img.shields.io/github/watchers/Zaarrg/DropBot.svg?style=social)](https://github.com/Zaarrg/DropBot/watchers)
[![GitHub forks](https://img.shields.io/github/forks/Zaarrg/DropBot.svg?style=social)](https://github.com/Zaarrg/DropBot/network/members)

If you like my work feel free to buy me a coffee. ☕

[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://ko-fi.com/zaarrg)

Have fun and Enjoy! 😃

---

## 🍰 Contact

**_Quickest Response:_**

Discord Server: https://discord.gg/rV26FZ2upF

**_Slow Response:_**

Discord: - Zarg#8467

> Distributed under the MIT License. See LICENSE for more information.⚠️

_Made with a lot of ❤️❤️ by **[@Zarg](https://github.com/Zaarrg)**_