Skip to content
forked from guunna/grank

πŸ“œ A feature-rich Dank Memer automation script. Inspired by dankgrinder.

License

Notifications You must be signed in to change notification settings

devin00100/grank

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Grank

Join our Discord

Stargazers Forks Issues Pull Requests

Contents

What is Grank?

Grank is a feature-rich script that automatically grinds Dank Memer for you. It is inspired by dankgrinder. Since dankgrinder has been discontinued and the recommended fork has also been discontinued, I decided to make my own version from scratch in Python.

Features

  • Supports multi-instancing.

  • Efficiently coded.

  • Smart - if the user doesn't have a required item to run a command like pls dig, it will buy the required item so long as there are sufficient funds in the user's wallet & bank.

  • Autotrade - the self-bot automates the acception of the trade on both the side of the trader and the trade receiver.

  • Typing indicator.

  • Detects special events like Dodge the fireball.

  • Custom commands.

  • Autovote.

Supported commands

  • pls beg
  • pls blackjack
  • pls crime
  • pls daily
  • pls dig
  • pls fish
  • pls guess
  • pls highlow
  • pls hunt
  • pls lottery
  • pls postmeme
  • pls search
  • pls snakeeyes
  • pls stream
  • pls trivia

Todo

Visit this link for project updates.

Getting Started

Setting up the environment

Windows

Skip this and download the latest version of Grank from here

macOS and Linux

Unfortunately, I do not have access to a Mac or Linux device, so you will have to run the program from the source code.

  • Download and extract the latest version of Grank from here.
  • Navigate into the /src/ folder of Grank.
  • Download and extract the files of the latest version of pypy for your platform into the folder. Make sure the files are in the /src/ folder and not in a sub-folder, otherwise this will not work.
  • Download and save this file in that directory.
  • Open a command prompt in that directory.
  • Run the command pypy get-pip.py. If you changed the name of the file when you downloaded it, please replace get-pip.py with the new name.
  • Run the command pypy installer.py.

Getting your Discord token and channel ID

To use Grank, you will have to provide your Discord token and a channel ID. Don't worry - these details are never shared with anyone. It is best if only you and Dank Memer can send messages in the channel you get the ID of. This is to avoid confusion with other people's interactions.

How do you get this information

How to enter them

Since Grank supports multi-instancing, for every token you put in you will have to specify a channel_id. Open src/credentials.json. You should see a dictionary with two keys * tokens and channel_ids. As mentioned earlier, for every token you put in the list of tokens, you need to put a channel id in the list of channel ids. You can add as many entries as you want. The file has been filled in with a dummy layout so you know how to input your data.

You are now ready to use the program. Run pypy main.py in a command prompt in the /src/ directory to start the program (or if you are on Windows run main.exe). You do not have to have Discord open to run the program, so you can have the program running in the background while you do other things! Grank also supports multi-instancing, so you can run the program on different accounts at once!

Config file

The config.yml file is used to change the way the program runs.

commands category

Values in the commands category tell the program whether or not to run certain commands.

Name Type Default Value Description
beg Boolean True Tells the program whether or not to run the command pls beg.
crime Boolean True Tells the program whether or not to run the command pls crime.
daily Boolean True Tells the program whether or not to run the command pls daily.
dig Boolean True Tells the program whether or not to run the command pls dig.
fish Boolean True Tells the program whether or not to run the command pls fish.
guess Boolean True Tells the program whether or not to run the command pls guess.
highlow Boolean True Tells the program whether or not to run the command pls highlow.
hunt Boolean True Tells the program whether or not to run the command pls hunt.
postmeme Boolean True Tells the program whether or not to run the command pls postmeme.
search Boolean True Tells the program whether or not to run the command pls search.
trivia Boolean True Tells the program whether or not to run the command pls trivia.
vote Boolean True Tells the program whether or not to vote for Dank Memer on Discord Bot List.

lottery category

Values in the lottery category tell the program whether lottery tickets should be bought, and how often they should be bought.

Name Type Default Value Description
enabled Boolean False Tells the program whether or not to buy lottery tickets.
cooldown Integer 3600 Tells the program the interval between buying lottery tickets.

stream category

Values in the stream category tell the program whether or not to run the command pls stream, and what buttons should it interact with.

Name Type Default Value Description
enabled Boolean True Tells the program whether or not to run the command ```pls stream`.
ads Boolean True Tells the program whether or not to collect run ads during the stream.
chat Boolean True Tells the program whether or not to read the chat during the stream.
donations Boolean True Tells the program whether or not to collect donations during the stream.

blackjack category

Values in the blackjack category tell the program whether or not to run the command pls blackjack, and how much it should bet each time.

Name Type Default Value Description
enabled Boolean False Tells the program whether or not to run the command pls blackjack.
random Boolean False Tells the program whether or not to choose a random amount each time the command pls blackjack is run, or to choose a pre-set amount.
amount Integer 1500 The pre-set amount to be bet if random is set to False.
minimum Integer 1500 The minimum amount to be bet if random is set to True.
maximum Integer 3000 The maximum amount to be bet if random is set to True.

snakeeyes category

Values in the snakeeyes category tell the program whether or not to run the command pls snakeeyes, and how much it should bet each time.

Name Type Default Value Description
enabled Boolean False Tells the program whether or not to run the command pls snakeeyes.
random Boolean False Tells the program whether or not to choose a random amount each time the command pls snakeeyes is run, or to choose a pre-set amount.
amount Integer 1500 The pre-set amount to be bet if random is set to False.
minimum Integer 1500 The minimum amount to be bet if random is set to True.
maximum Integer 3000 The maximum amount to be bet if random is set to True.

custom commands category

Values in the custom commands category tell the program what custom commands should be run and their cooldowns.

Name Type Default Value Description
enabled Boolean False Tells the program whether or not to run any of the custom commands.

NOTE: You can add your own custom commands by following the layout for the default options.

shifts category

Values in the shifts category tell the program whether or not to run Grank in shifts, and the length of active and passive phases.

Name Type Default Value Description
enabled Boolean False Tells the program whether or not to run in shifts.
active Integer 7200 Tells the program how long the program should run before sleeping (in seconds).
passive Integer 3600 Tells the program how long the program should sleep before running again (in seconds).

auto buy category

Values in the auto buy category tell the program whether or not to buy certain items if needed.

Name Type Default Value Description
enabled Boolean True If this is set to False no items will be bought. If it is set to True the program will try and buy the item if their respective config value is True.
shovel Boolean True Tells the program whether or not to try and buy the item shovel if needed and the user doesn't have it.
fishing pole Boolean True Tells the program whether or not to try and buy the item fishing pole if needed and the user doesn't have it.
hunting rifle Boolean True Tells the program whether or not to try and buy the hunting rifle if needed and the user doesn't have it.
keyboard Boolean True Tells the program whether or not to try and buy the item keyboard if needed and the user doesn't have it.
mouse Boolean True Tells the program whether or not to try and buy the item mouse if needed and the user doesn't have it.

auto trade category

Values in the auto trade category tell the program who items should be traded to, and what items should be traded.

Name Type Default Value Description
enabled Boolean False If this is set to True no items will be traded. If it is set to False the program will try and trade the item if their respective config value is True.
trader_token String None The token of the user the items should be traded to.
bank note Boolean True Tells the program whether or not to try and trade the item bank note to the user specified in the traderoption.
tidepod Boolean True Tells the program whether or not to try and trade the item tidepod to the user specified in the traderoption.

NOTE: You can add your own items to be traded by following the layout for the default options.

typing indicator category

Values in the typing indicator category tell the program whether to make Discord think the self-bot is typing, and for how long it should. This is just for aesthetics and I would recommend it to be off in private servers to increase command speed, and on in public servers to make the self-bot look more legitimate.

Name Type Default Value Description
enabled Boolean False If this is set to True, the program will make Discord think the self-bot is typing. If it is set to False the program will not make Discord think the self-bot is typing, thus increasing command speed.
minimum Float 0 The minimum time for the program to sleep after Discord is told that the user is typing.
maximum Float 1 The maximum time for the program to sleep after Discord is told that the user is typing.

cooldowns category

Values in the cooldowns category tell the program whether to use cooldowns for patrons and what the timeout is for getting responses from Dank Memer.

Name Type Default Value Description
patron Boolean False Changes cooldowns to reflect the cooldowns of patrons.
timeout Integer 5 Timeout for waiting for responses from Dank Memer to commands that require user interaction (like pls search).

auto update category

Values in the auto update category tell the program whether or not to automatically update the loaded configuration and how often to do so.

Name Type Default Value Description
enabled Boolean False If this is set to True, the program will auto update the specified options. If it is set to False the program will not auto update them.
config Boolean True If this is set to True, the program will auto update the loaded config. If it is set to False the program will not auto update the loaded config.

logging category

Values in the logging category tell the program whether or not to log debug and warning messages. We would recommend having at least warning set to True. Fatal errors will be logged regardless of the configuration.

Name Type Default Value Description
debug Boolean True Tells the program whether or not to log debug messages.
warning Boolean True Tells the program whether or not to log warning messages.

NOTE: Values in the logging category do not affect logging messages sent when the configuration file is being loaded and the token is being verified.

Disclaimer

This is a self-bot. Self-bots are against Discord's TOS. Automation of Dank Memer commands also breaks Dank Memer's rules. By using this program you acknowledge that I can take no responsibility for actions taken against you if you are caught.

This being said, I believe the chance of being caught running this script is low, provided you take the appropriate measures. The only probable way you will be caught is if someone tries to send you a message and you don't respond.

Stargazers repo roster for @didlly/grank

Forkers repo roster for @didlly/grank

About

πŸ“œ A feature-rich Dank Memer automation script. Inspired by dankgrinder.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.3%
  • HTML 0.7%