Desktop automation toolkit for Arras.io game automation โ screen capture, input synthesis, pixel detection, AI agents (PPO/DQN), and cross-platform macro scripts.
Warning
This tool automates keyboard and mouse input. Use responsibly and in accordance with game terms of service.
| Feature | Script | Description |
|---|---|---|
| ๐ฎ Hotkey Macros | arrastools.py |
Keyboard-driven game automation with pynput |
| ๐๏ธ State Watchdog | arrasbot.py |
Pixel-based disconnect/death/ban detection with logging |
| ๐ Copypasta | arrascopypasta.py |
Auto-types text from copypastas/ directory |
| ๐ OCR Detection | arrastext_detector.py |
Screen text extraction via pytesseract |
| ๐ Snake AI | asnake.py |
DQN-trained Snake game with configurable training |
| ๐จ Rendering | renderer/ |
OpenGL + Tkinter rendering with shader support |
Important
Python 3.10+ required. Python 3.14 recommended for best performance.
git clone https://github.com/maple-underscore/arrastools.git
cd arrastools
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txtLinux (Debian/Ubuntu)
sudo apt install tesseract-ocr python3-tkmacOS
brew install tesseract[!NOTE] Grant Accessibility and Screen Recording permissions in System Settings โ Privacy & Security.
Windows
- Download Tesseract OCR
- Add to system PATH
- Run Terminal as Administrator if input automation fails
arrastools/
โโโ ยซยซยซยซยซ CORE ยปยปยปยปยป/ # Main automation scripts
โ โโโ arrastools.py # Hotkey-driven macro system
โ โโโ arrasbot.py # Game state watchdog
โ โโโ arrascopypasta.py # Auto-typing copypastas
โ โโโ arrastext_detector.py # OCR text detection
โ โโโ arrasbp.py # Blueprint processing
โ โโโ keylogger.py # Keypress logger โ logsk/
โ โโโ rollbot.py # Automated game mechanics
โ โโโ macrorecorder.py # Macro recording utility
โ โโโ window_detector.py # Window detection utility
โ โโโ rg.py # Utility script
โ โโโ bitmap.txt # Bitmap font data
โ โโโ bps/ # Blueprint data files
โ โโโ renderer/ # OpenGL/Tkinter rendering
โ โโโ base_renderer.py
โ โโโ opengl_renderer.py
โ โโโ tkinter_renderer.py
โ โโโ sprite_pool.py
โ โโโ shaders/ # GLSL shaders
โ
โโโ random/ # Experimental scripts
โ โโโ asnake.py # DQN Snake AI
โ โโโ arrasantiafk.py # Anti-AFK mouse wiggler
โ โโโ drawacircle.py # Circle drawing tool
โ โโโ minesweeper.py # Terminal Minesweeper
โ โโโ nodebuster.py # Node automation
โ โโโ ping.py # Network ping utility
โ โโโ snake_config.json # Snake AI configuration
โ
โโโ tools/ # Standalone utilities
โ โโโ arraspixel.py # Click-to-inspect pixel color
โ โโโ unicode_chunker.py # Unicode text processing
โ
โโโ copypastas/ # 25+ text files for auto-typing
โโโ typings/ # Type stubs for dependencies
โโโ requirements.txt
โโโ .github/
โโโ copilot-instructions.md
Tip
Hold Ctrl for most hotkeys. Use Esc to stop any running macro.
| Hotkey | Action |
|---|---|
Ctrl+1 (1/2/3ร) |
Arena size automation |
Ctrl+y |
Controlled Nuke (click 2 points) |
Ctrl+6 (2ร in 5s) |
Ball crash |
Ctrl+9 |
Nuke |
Ctrl+m |
Ball spam benchmark |
Alt+Arrow |
1px mouse nudge |
Esc |
Stop current activity |
Ctrl+Esc |
Immediate exit |
Run in terminal and use these commands:
| Command | Description |
|---|---|
stop |
Stop monitoring |
dbgmon |
List all monitors |
probe |
Sample pixel at cursor |
screenshot |
Capture screen |
status |
Show current state |
setscale <1|2> |
Set display scaling |
setmon <index> |
Change monitor |
Note
Logs โ logs/abss_*.log
Screenshots โ ~/Desktop/abss/<session>/
cd random
python asnake.py- Configure via
snake_config.json - Models saved to
snake_models/ - Press
Escto quit
Important
Coordinates are hardcoded for specific resolutions. You'll need to calibrate for your display.
Set SCALE in arrasbot.py:
- Retina/HiDPI (macOS):
SCALE = 2 - Standard displays:
SCALE = 1
- Run
arrasbot.py - Use
dbgmonto list monitor properties - Use
probeto sample pixel colors at cursor position - Update coordinates in scripts as needed
| Platform | Status | Notes |
|---|---|---|
| ๐ง Linux | โ Primary | X11 recommended; Wayland has pynput limitations |
| ๐ macOS | โ Tested | Requires Accessibility + Screen Recording permissions |
| ๐ช Windows | โ Tested | May need Administrator for input automation |
Caution
Wayland users: pynput works best on X11. Consider switching sessions or using XWayland.
Permission Issues
macOS: System Settings โ Privacy & Security โ Enable Accessibility + Screen Recording
Linux: Ensure X11 session; check pynput docs for your DE
Windows: Run Terminal as Administrator
Coordinate/Scaling Issues
- Run
arrasbot.pyโdbgmonto check monitors - Use
probecommand to verify pixel positions - Adjust
SCALE(2 for HiDPI, 1 for standard) - Re-map hardcoded coordinates for your resolution
ModuleNotFoundError
# Ensure venv is activated
source .venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txtTesseract Not Found
Ensure Tesseract OCR is installed and in PATH:
tesseract --versionNote
See .github/copilot-instructions.md for detailed conventions and architecture patterns.
- Threading: Daemon threads with global boolean flags
- Input: Single
KeyboardController/MouseControllerper module - Color Detection: Use
color_close(rgb1, rgb2, tol=6)for tolerance - File Paths: Always use
pathlib.Path
- Test on your target platform
- Use
pathlibfor cross-platform paths - Follow existing code patterns
- Add platform detection for new scripts
- Include type annotations
CC BY-NC-SA 4.0 โ Non-commercial use only. See LICENSE and NOTICE for details.
Warning
Disclaimer: This tool is for educational purposes only. The authors are not responsible for any consequences of misuse.