Auto Chiseler (olim Pip Reroller, intra systema vocatus PIPRR) is a Pythonic, image-analytic, event-driven automation apparatus engineered to orchestrate rank-based object detection and iterative interaction within the Dig! Roblox Experience. It harnesses the computational vision faculties of OpenCV, the interface gestalt of tkinter, and the input synthesis capabilities of the ahk AutoHotkey binding to achieve precise manipulation of graphical user elements.
This system performs continuous raster interrogation (interrogatio bitmapica) over dynamically sampled screen regions, employing spectral and structural classification to discern object ranks (SS, S, A, et cetera). Upon fulfillment of user-configured quality predicates, the execution loop effectuates controlled click emissions and halts operation, thereby optimizing user input cycles during the reroll process.
See also: Auto Appraiser and Auto Enchanter
- Download the latest executable from the releases page.
- Run the executable file. The Python and AutoHotkey interpreters are already bundled; no external installations are required.
Warning
If Windows Defender deletes or blocks the executable file, follow these steps:
- Press Win + R to open the Run dialog.
- Paste the following command into the box and press Enter:
cmd /c "%ProgramFiles%\Windows Defender\MpCmdRun.exe" -SignatureUpdate
This will update Defender's virus definitions. After it's done, try downloading the macro again.
- Python 3.x
- AutoHotkey v1.1 (must be installed and on your system PATH)
- Python packages listed in
requirements.txt
-
Clone the repository
git clone https://github.com/AlinaWan/auto-chiseler.git cd auto-chiseler -
Install dependencies
pip install -r requirements.txt
Note: If you encounter an error related to
AutoHotkey.exenot being found on your systemPATH, try installing the binary extras with:pip install "ahk[binary]" -
Run the application
python main.pyw
-
(Optional) If you also want to compile the executable, the build command is:
nuitka main.pyw --standalone --onefile --windows-console-mode=disable --enable-plugin=tk-inter --enable-plugin=pylint-warnings --include-module=ahk --include-module=jinja2 --include-package=ahk --include-package=jinja2 --include-package-data=ahk --include-package-data=jinja2 --include-package=markupsafe --include-package=cv2 --include-package=pynput --include-package=win32gui --include-package=win32ui --include-package=win32con --include-package=six --windows-icon-from-ico=assets/favicon.ico --include-data-files=assets/AutoHotkey.exe=assets/AutoHotkey.exe --output-filename=AutoChiseler.exe --output-dir=build --assume-yes-for-downloads
- Select Area
Click the Select Area button, then drag on the screen to select the region containing the pip ranks (e.g. SS, S, A).

Important
The area should include only the pip rank area, not the area where stat value is (see the example image above).
-
Set Chisel Button
Click Set Chisel Button, then click on the orange pencil icon for the charm you want to reroll.

-
Set Buy Button
Click Set Buy Button, then click on the confirmation "Yes" button that appears after clicking the chisel button. -
(Optional) Adjust Input Fields
- Click Delay (ms): Milliseconds to wait between clicking the chisel and buy buttons.
- Post Reroll Delay (ms): Extra time to wait after buying a reroll, before continuing. Helps prevent accidental rerolls or deletion caused by inventory shifting if the game or network is slow.
- Image Poll Delay (ms): How frequently the script captures and processes a new screenshot. Lower values mean faster detection but higher CPU usage.
- Color Tolerance: How close a pixel’s color must be to the target rank color for it to be detected (higher = more lenient).
- Object Tolerance (px): Pixel distance threshold for merging close detected bounding boxes into a single object.
- Minimum SS: The minimum number of SS ranks required to stop rerolling. For example, if set to 1, the tool stops when at least one SS is found.
- Minimum Objects: The minimum number of detected objects of at least the chosen minimum quality required to stop.
- Minimum Quality: Select the lowest rank (F, D, C, B, A, S, SS) you accept for stopping. Only pips at least this rank or higher are counted toward the minimum objects condition.
- Stop Confirm Delay (ms): How long to wait before confirming stop conditions after they first appear. This helps avoid false stops caused by the game temporarily showing the item below the one you actually rerolled while it’s still returning. Increase this value if the game takes longer to finalize item returns. Setting this to 0 means the tool will confirm stops immediately without waiting.
Note
This tool does not evaluate stat values themselves. It only detects each pip's visual rank based on color.
Caution
If the post reroll delay is too short, the charm underneath may get deleted or rerolled.
This happens because the old charm briefly disappears from your inventory before the new one is added, and during that time, the charm below it can temporarily take its place for a few milliseconds.
Equipping the charm below can prevent rerolling it, but it won't prevent deletion if it's a deletable charm.
-
(Optional) Start Preview
Use Start Preview to see bounding boxes around detected objects in real time in a separate window. Press Q in the preview window to exit. -
Start/Stop Automation
Press F5 to toggle the automation running state. The status text on the GUI indicates whether the tool is Running or Suspended. -
(Advanced) Dumping Logs
To enable debug logging and access the log dumping feature:-
Open the
config.pyfile in the project directory. -
Set the
ENABLE_LOGGINGvariable toTrue:ENABLE_LOGGING = True
Once enabled:
- A DEBUG: Dump Logs button will appear in the top-left corner of the GUI.
- The top-right corner will show a status message indicating how many logs are currently stored in memory.
- Clicking the dump button writes the buffered logs into a
.txtfile in the current working directory.
-
Note
Logs are collected in memory during execution and only written to disk when the dump button is pressed.
Auto Chiseler will only stop rerolling when both of the following conditions are met:
- Minimum Objects: At least the specified number of pips (
Minimum Objects) are detected that are >= your chosenMinimum Quality. - Minimum SS: At least the specified number of pips are detected that are of the SS rank.
Both conditions must be true at the same time before the tool will stop.
Suppose:
- Minimum Objects = 3
- Minimum SS = 1
- Minimum Quality = C
| Detected Ranks | Stops? | Reason |
|---|---|---|
| SS, F, F | No | Only 1 ≥C, needs 3 |
| SS, C, F | No | Only 2 objects ≥C, at least 1 SS |
| SS, SS | No | Only 2 objects |
| A, B, B | No | 3 objects ≥C, but no SS |
| SS, C, B | Yes | 3 objects ≥C, at least 1 SS |
| SS, SS, SS | Yes | 3 objects ≥C, all SS |
| SS, C, C, F | Yes | 3 objects ≥C, at least 1 SS |
Want to build your configuration based on a target outcome? Here are some examples:
- Set Minimum Objects = 3 (because you want 3 A+ pips total)
- Set Minimum Quality = A (because you want all pips to be at least A)
- Set Minimum SS = 1 (because you require at least one SS pip)
This ensures all pips are A or higher, and one must be SS before it stops.
- Minimum Objects = 2
- Minimum Quality = F (or the lowest allowed)
- Minimum SS = 2
Tool stops when there are at least 2 pips total, both of which are SS.
- Minimum Objects = 3
- Minimum Quality = S
- Minimum SS = 0
Will stop when at least 3 ranks are S or higher, even if SS is not present.
- The tool detects pip ranks based on their colors (SS, S, A, etc) using default reference colors. Adjust the color tolerance for best results depending on your screen and lighting.
- You must select the area and both button positions before starting automation.
- Automation clicks use AutoHotkey for compatibility with games and programs that block simulated clicks from other libraries.
Having issues? Here are some common problems and how to fix them:
-
Wrong stats being detected (e.g. detecting bottom charm's stats): This usually means the delay before confirming stop conditions is too low. After a reroll, the game takes longer to return the new charm, and the tool may detect the charm below it instead. Try increasing the Stop Confirm Delay value to give the game more time to finish returning the correct charm.
-
Charm gets deleted or rerolled unintentionally: Another ping-related issue. Try increasing the Post Reroll Delay in the app settings to give the game more time to refresh the inventory before the next action is taken.
-
Tool clicks the chisel button but doesn’t click the buy button afterward: Increase the Click Delay setting. If the delay is too short, the confirmation dialog may not appear in time for the buy click to register.
-
Nothing is being detected at all: Increase the Color Tolerance slider. The app might be too strict in matching pip rank colors, especially if your screen has unusual brightness or color settings.
-
Wrong ranks being detected or multiple ranks detected as the same: Decrease the Color Tolerance. It’s likely the app is being too lenient and is matching different colors as the same rank.
-
An object is split into multiple bounding boxes: Increase the Object Tolerance (in pixels). This setting controls how close detected pixels must be to be merged into the same object. If it's too low, even parts of the same pip might be counted as separate objects.
-
Automation starts but nothing happens: Make sure you selected an area and both buttons (Chisel and Buy) before pressing F5. The automation won’t do anything without those.
Join the Dig Tool Discord server.
The former repository https://github.com/AlinaWan/pip-reroller now redirects here. Please update your bookmarks and references accordingly.
Auto Chiseler and this repository are licensed under the MIT License.
The pre-compiled binary files under Releases are licensed under the GNU GPLv3. Learn more.
Some logic for selection area handling and bounding box preview was borrowed and adapted from iamnotbobby, also under the MIT License.