# py7dtd - A 7 Days to Die tools collection
![detection](preview/logo.png)
<https://7daystodie.com/>
In this repository are collected tools and scripts for the game 7 Days to Die:
- Tools for the detection of objects/entities
- Scripts for the automatization of actions (mining, crafting, etc.)
- Aim bots
- Passcode cracking
- Block detection
## Installation (Windows)
Clone the module, create a virtual environment and install it:
```powershell
git clone git@github.com:tassoneroberto/py7dtd.git
cd py7dtd
py -3.7 -m venv venv
.\venv\Scripts\Activate.ps1
py -m pip install .[ai]
```
Note: if you are not interested in "entities detection" or "aimbot" then you can omit `[ai]` from the above command:
```powershell
py -m pip install .
```
### Dev mode
To install the package in edit mode (for developers) specify `-e`:
```powershell
py -m pip install -e .[ai]
```
### Dependencies for entities detection
Disclaimer: an NVIDIA® GPU card with CUDA® architectures 3.5, 3.7, 5.2, 6.0, 6.1, 7.0 or higher is required. See the list of CUDA®-enabled GPU cards (<https://developer.nvidia.com/cuda-gpus>).
Install the following dependencies:
- C++ redistributable (<https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads>)
- NVIDIA® GPU drivers —CUDA® 11.2.1 (<https://www.nvidia.com/drivers>)
- CUDA® Toolkit 11.1 (<https://developer.nvidia.com/cuda-toolkit-archive>)
- cuDNN SDK 7.6 (<https://developer.nvidia.com/cudnn>)
(More info here: <https://www.tensorflow.org/install/gpu>)
In order to use the module you need a `x64` version of `Python 3.7.x`.
You can download it at this page: <https://www.python.org/downloads/windows/>
Download link: <https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe>
You also need to download the trained model (<https://github.com/tassoneroberto/py7dtd/releases/download/v0.2/model.h5>) for the entities detection and move it to `src/ai/models/v2/`.
### Optional
To be able to train a model you need to download the `ImageAI`'s pre-trained model (<https://github.com/OlafenwaMoses/ImageAI/releases/download/essential-v4/pretrained-yolov3.h5>) and move it to `./src/ai/`.
## Entities detection
❗ Under development ❗
Simple entities detector using AI (Computer Vision).
The objects detection (trees, zombies, etc.) is done using `ImageAI`: <https://github.com/OlafenwaMoses/ImageAI/>
The annotation of the images has been done using the tool `labelImg`: <https://github.com/tzutalin/labelImg>
### Proof of concept
![detection](preview/preview1.png)
## Aim bot
❗ Under development ❗
Simple aim bot capable of:
- Detect zombies/players
- Move the mouse to the target
- Shoot
### Usage
```powershell
py7dtd_auto_shooting --delay 200
```
Note: Press `ESC` to interrupt the bot.
### Command line arguments
The following table is listing all the arguments that can be specified:
| arg | description | default |
|:-------------:|:-----------------:| :----------:|
| help | Arguments description | `N/A`|
| delay | Time in ms between each screenshot | `500`|
| output | Output folder | `./auto_shooting`|
![detection](preview/preview2.png)
## Passcode cracking
❗ Under development ❗
Bruteforce/dictionary attack on chests/doors passcode.
### Usage
It is recommended to set the game in window mode with a resolution of 640x480.
Example of a bruteforce attack testing passcodes of 2-10 characters length composed of digits and lowercase characters, with a delay of 20ms between each try, a limit of 100 tries and a timeout of 60 seconds.
Note: Press `ESC` to interrupt the bot.
```powershell
py7dtd_crack_passcode --brute --digits --lower --min 2 --max 10 --delay 20 --limit 100 --timeout 60
```
Get the arguments list with the `help` function:
```powershell
py7dtd_crack_passcode --help
```
![detection](preview/bruteforce-preview.gif)
Example of a dictionary attack with a delay of 30ms between each try and no limit in tries.
```powershell
py7dtd_crack_passcode --dict --dictpath ./dictionaries/top1000.txt --delay 30
```
Note: dictionaries can be found at <https://github.com/danielmiessler/SecLists/tree/master/Passwords>.
![detection](preview/dictionary-preview.gif)
### Command line arguments
The available methods are **bruteforce attack** (`--brute`) and **dictionary attack** (`--dict`).
The following table is listing all the arguments to use for each method:
| arg | description | default | type |
|:-------------:|:-----------------:| :----------:|:--------:|
| help | Arguments description | `N/A`|`N/A`|
| min | Minimum length | `1`|`brute`|
| max | Maximum length | `20`|`brute`|
| digits | Include digits | `False`**|`brute`|
| lower | Include lowercase characters | `False`**|`brute`|
| upper | Include uppercase characters | `False`**|`brute`|
| special | Include special characters | `False`**|`brute`|
| dictpath | Dictionary file path | `./dictionaries/top1000.txt`|`dict`*|
| limit | Maximum number of tries | `∞`|`brute`, `dict`|
| timeout | Maximum time in seconds allowed | `∞`|`brute`, `dict`|
| delay | Delay in ms between each action | `20`|`brute`, `dict`|
**This attribute is required if `dict` is selected*
***At least one of these is required*
## Blocks detection
❗ Under development ❗
Detection of block, like `topsoil` and `destroyed stone` blocks, by taking screenshots of the map.
### Usage
It is recommended to set the game in window mode with the highest resolution possible.
Specify the blocks to be identified by passing them as arguments (e.g. `--topsoil`). Specify an output folder (or keep the default one `./blocks_detection`). Run the script and open the game map by pressing `M`. Press `P` to take a screenshot of the map and automatically mark in red the specified blocks. The screenshots, with the block marked, will be saved in the output folder.
Note: Press `ESC` to interrupt the script.
```powershell
py7dtd_blocks_detection --topsoil --destroyed
```
Get the arguments list with the `help` function:
```powershell
py7dtd_blocks_detection --help
```
Example of detection of topsoil blocks in the desert biome:
![detection](preview/blockdetection-before-preview.png)
![detection](preview/blockdetection-after-preview.png)
### Command line arguments
The following table is listing all the arguments:
| arg | description | default |
|:-------------:|:-------------------------:| :----------:|
| help | Arguments description | `N/A` |
| topsoil | Topsoil blocks | `False`* |
| destroyed | Destroyed stone blocks | `False`* |
| output | Output folder | `./blocks_detection`|
**At least one of these is required*
Raw data
{
"_id": null,
"home_page": "https://github.com/tassoneroberto/py7dtd",
"name": "py7dtd",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "7dtd,bots,hacks,scripts",
"author": "Roberto Tassone",
"author_email": "roberto.tassone@proton.me",
"download_url": "https://files.pythonhosted.org/packages/c4/9f/7c90f1a4084923fb0f360597de14180b5747a77ebaca83ceb9748f75304e/py7dtd-1.0.0a0.tar.gz",
"platform": null,
"description": "# py7dtd - A 7 Days to Die tools collection\n\n![detection](preview/logo.png)\n\n<https://7daystodie.com/>\n\nIn this repository are collected tools and scripts for the game 7 Days to Die:\n\n- Tools for the detection of objects/entities\n- Scripts for the automatization of actions (mining, crafting, etc.)\n- Aim bots\n- Passcode cracking\n- Block detection\n\n## Installation (Windows)\n\nClone the module, create a virtual environment and install it:\n\n```powershell\ngit clone git@github.com:tassoneroberto/py7dtd.git\ncd py7dtd\npy -3.7 -m venv venv\n.\\venv\\Scripts\\Activate.ps1\npy -m pip install .[ai]\n```\n\nNote: if you are not interested in \"entities detection\" or \"aimbot\" then you can omit `[ai]` from the above command:\n\n```powershell\npy -m pip install .\n```\n\n### Dev mode\n\nTo install the package in edit mode (for developers) specify `-e`:\n\n```powershell\npy -m pip install -e .[ai]\n```\n\n### Dependencies for entities detection\n\nDisclaimer: an NVIDIA\u00ae GPU card with CUDA\u00ae architectures 3.5, 3.7, 5.2, 6.0, 6.1, 7.0 or higher is required. See the list of CUDA\u00ae-enabled GPU cards (<https://developer.nvidia.com/cuda-gpus>).\n\nInstall the following dependencies:\n\n- C++ redistributable (<https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads>)\n- NVIDIA\u00ae GPU drivers \u2014CUDA\u00ae 11.2.1 (<https://www.nvidia.com/drivers>)\n- CUDA\u00ae Toolkit 11.1 (<https://developer.nvidia.com/cuda-toolkit-archive>)\n- cuDNN SDK 7.6 (<https://developer.nvidia.com/cudnn>)\n\n(More info here: <https://www.tensorflow.org/install/gpu>)\n\nIn order to use the module you need a `x64` version of `Python 3.7.x`.\nYou can download it at this page: <https://www.python.org/downloads/windows/>\n\nDownload link: <https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe>\n\nYou also need to download the trained model (<https://github.com/tassoneroberto/py7dtd/releases/download/v0.2/model.h5>) for the entities detection and move it to `src/ai/models/v2/`.\n\n### Optional\n\nTo be able to train a model you need to download the `ImageAI`'s pre-trained model (<https://github.com/OlafenwaMoses/ImageAI/releases/download/essential-v4/pretrained-yolov3.h5>) and move it to `./src/ai/`.\n\n## Entities detection\n\n\u2757 Under development \u2757\n\nSimple entities detector using AI (Computer Vision).\n\nThe objects detection (trees, zombies, etc.) is done using `ImageAI`: <https://github.com/OlafenwaMoses/ImageAI/>\n\nThe annotation of the images has been done using the tool `labelImg`: <https://github.com/tzutalin/labelImg>\n\n### Proof of concept\n\n![detection](preview/preview1.png)\n\n## Aim bot\n\n\u2757 Under development \u2757\n\nSimple aim bot capable of:\n\n- Detect zombies/players\n- Move the mouse to the target\n- Shoot\n\n### Usage\n\n```powershell\npy7dtd_auto_shooting --delay 200\n```\n\nNote: Press `ESC` to interrupt the bot.\n\n### Command line arguments\n\nThe following table is listing all the arguments that can be specified:\n\n| arg | description | default |\n|:-------------:|:-----------------:| :----------:|\n| help | Arguments description | `N/A`|\n| delay | Time in ms between each screenshot | `500`|\n| output | Output folder | `./auto_shooting`|\n\n![detection](preview/preview2.png)\n\n## Passcode cracking\n\n\u2757 Under development \u2757\n\nBruteforce/dictionary attack on chests/doors passcode.\n\n### Usage\n\nIt is recommended to set the game in window mode with a resolution of 640x480.\n\nExample of a bruteforce attack testing passcodes of 2-10 characters length composed of digits and lowercase characters, with a delay of 20ms between each try, a limit of 100 tries and a timeout of 60 seconds.\n\nNote: Press `ESC` to interrupt the bot.\n\n```powershell\npy7dtd_crack_passcode --brute --digits --lower --min 2 --max 10 --delay 20 --limit 100 --timeout 60\n```\n\nGet the arguments list with the `help` function:\n\n```powershell\npy7dtd_crack_passcode --help\n```\n\n![detection](preview/bruteforce-preview.gif)\n\nExample of a dictionary attack with a delay of 30ms between each try and no limit in tries.\n\n```powershell\npy7dtd_crack_passcode --dict --dictpath ./dictionaries/top1000.txt --delay 30\n```\n\nNote: dictionaries can be found at <https://github.com/danielmiessler/SecLists/tree/master/Passwords>.\n\n![detection](preview/dictionary-preview.gif)\n\n### Command line arguments\n\nThe available methods are **bruteforce attack** (`--brute`) and **dictionary attack** (`--dict`).\n\nThe following table is listing all the arguments to use for each method:\n\n| arg | description | default | type |\n|:-------------:|:-----------------:| :----------:|:--------:|\n| help | Arguments description | `N/A`|`N/A`|\n| min | Minimum length | `1`|`brute`|\n| max | Maximum length | `20`|`brute`|\n| digits | Include digits | `False`**|`brute`|\n| lower | Include lowercase characters | `False`**|`brute`|\n| upper | Include uppercase characters | `False`**|`brute`|\n| special | Include special characters | `False`**|`brute`|\n| dictpath | Dictionary file path | `./dictionaries/top1000.txt`|`dict`*|\n| limit | Maximum number of tries | `\u221e`|`brute`, `dict`|\n| timeout | Maximum time in seconds allowed | `\u221e`|`brute`, `dict`|\n| delay | Delay in ms between each action | `20`|`brute`, `dict`|\n\n**This attribute is required if `dict` is selected*\n\n***At least one of these is required*\n\n## Blocks detection\n\n\u2757 Under development \u2757\n\nDetection of block, like `topsoil` and `destroyed stone` blocks, by taking screenshots of the map.\n\n### Usage\n\nIt is recommended to set the game in window mode with the highest resolution possible.\n\nSpecify the blocks to be identified by passing them as arguments (e.g. `--topsoil`). Specify an output folder (or keep the default one `./blocks_detection`). Run the script and open the game map by pressing `M`. Press `P` to take a screenshot of the map and automatically mark in red the specified blocks. The screenshots, with the block marked, will be saved in the output folder.\n\nNote: Press `ESC` to interrupt the script.\n\n```powershell\npy7dtd_blocks_detection --topsoil --destroyed\n```\n\nGet the arguments list with the `help` function:\n\n```powershell\npy7dtd_blocks_detection --help\n```\n\nExample of detection of topsoil blocks in the desert biome:\n\n![detection](preview/blockdetection-before-preview.png)\n\n![detection](preview/blockdetection-after-preview.png)\n\n### Command line arguments\n\nThe following table is listing all the arguments:\n\n| arg | description | default |\n|:-------------:|:-------------------------:| :----------:|\n| help | Arguments description | `N/A` |\n| topsoil | Topsoil blocks | `False`* |\n| destroyed | Destroyed stone blocks | `False`* |\n| output | Output folder | `./blocks_detection`|\n\n**At least one of these is required*\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Collection of 7 Days to Die bots, scripts and hacks",
"version": "1.0.0a0",
"split_keywords": [
"7dtd",
"bots",
"hacks",
"scripts"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a4eec23cdf6b0b4337a2c518dbf91cd86d06e726ac4b494d90e80aca64534ada",
"md5": "86298208779188c451f5f4385644214e",
"sha256": "a3978ec1915767127072f8d88f427ad386bcf4bcd545fab05356d7e81cd06721"
},
"downloads": -1,
"filename": "py7dtd-1.0.0a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "86298208779188c451f5f4385644214e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5424,
"upload_time": "2022-06-28T21:31:34",
"upload_time_iso_8601": "2022-06-28T21:31:34.396510Z",
"url": "https://files.pythonhosted.org/packages/a4/ee/c23cdf6b0b4337a2c518dbf91cd86d06e726ac4b494d90e80aca64534ada/py7dtd-1.0.0a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c49f7c90f1a4084923fb0f360597de14180b5747a77ebaca83ceb9748f75304e",
"md5": "a8e6138e7b108eb7edad70c231c2de0c",
"sha256": "98bef4aa9e063a9192b6cccc4a1b68a3ae5e00a7778c62de954c731b4514561a"
},
"downloads": -1,
"filename": "py7dtd-1.0.0a0.tar.gz",
"has_sig": false,
"md5_digest": "a8e6138e7b108eb7edad70c231c2de0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5685,
"upload_time": "2022-06-28T21:31:36",
"upload_time_iso_8601": "2022-06-28T21:31:36.292569Z",
"url": "https://files.pythonhosted.org/packages/c4/9f/7c90f1a4084923fb0f360597de14180b5747a77ebaca83ceb9748f75304e/py7dtd-1.0.0a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-06-28 21:31:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "tassoneroberto",
"github_project": "py7dtd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "py7dtd"
}