AI-powered automation for AION with advanced skill combo macros, configurable attack modes, and hardware-level input simulation.
- 🎯 Skill Combo Macro System - 36 configurable keybinds with individual cooldown tracking
- 🎲 Attack Mode - Randomizes between standard Tab-target attacks, single skills, and combo sets
- 🖱️ Smart Clicking - Clicks lower part of detection boxes, nearest mob targeting
- ⌨️ Interception (kernel driver) - Hardware-level input using the Interception driver and DLL (required)
- 🔄 Smooth Mouse Movement - Bezier curve dragging (no teleport)
- 🎮 70° Turns - Proper key holding for wide angle turns
- 🗺️ Minimap Navigation - Red dot detection and pathfinding
- 🤖 CryEngine Anti-Cheat Evasion - Ultra-slow timing, startup delays, idle simulation
-
Run the program (auto-elevates to admin):
python main.py
-
Configure in GUI:
- Select your AION game window
- Adjust skill combo settings in the UI
- Set attack mode weights (standard/tab-target vs skills vs combo)
- Click "Start" to begin automation
-
Emergency Controls:
- Press DELETE to toggle automation on/off
- Click EMERGENCY STOP button to disable immediately
-- Windows 10/11 -- Python 3.8+ -- Administrator privileges (required for hardware-level input)
-
Clone the repository:
git clone https://github.com/Meedux/AION2_AutoSim.git cd AION2_AutoSim -
Install Python dependencies:
pip install -r requirements.txt
-
Run the program:
python main.py
(Will automatically prompt for admin elevation)
The skill combo system provides 36 configurable keybind slots with intelligent cooldown tracking and randomized attack patterns.
- Number Row:
1,2,3,4,5,6,7,8,9,0,-,= - Alt + Keys:
alt+1throughalt+= - Ctrl + Keys:
ctrl+1throughctrl+=
Total: 36 keybind slots ✅
All configuration is done through the GUI:
-
Main Window Controls:
- ✅ Enable/Disable attack mode randomization
- ✅ Attack Mode Weights (standard vs skills vs combos)
- ✅ Health Requirement (only use skills when health bar detected)
-
⚙️ Edit Individual Skills Button:
- Configure skill cooldowns for each keybind
- Set single skill pool for random selection
- Adjust GCD (Global Cooldown) for single skills
- Add/remove skills with visual table editor
-
🎯 Edit Combo Sets Button:
- Create/edit/delete combo sets
- Set combo names, cooldowns, and delays
- Define skill sequences (one per line)
- Enable/disable specific combos
- Visual list management
No more editing skill_combo_config.py manually!
See GUI_SKILL_EDITOR_GUIDE.md for detailed instructions.
Randomized Attack Patterns:
- 50% - Standard Tab-target attack
- 30% - Single random skill press
- 20% - Full combo set execution
Smart Behavior:
- ✅ Only uses skills when
mob_combat_healthis detected - ✅ Single-target + skill/combo (not mouse click based)
- ✅ Keyboard-targeting for standard attacks (Tab + R/T)
- ✅ Tracks individual skill cooldowns
- ✅ Tracks combo set cooldowns
- ✅ Only executes when ALL skills ready
Combat Detected → Choose Attack Mode (random)
↓
┌──────────────────┼──────────────────┐
│ │ │
Standard (50%) Single Skill (30%) Combo (20%)
│ │ │
Tab-target Single-click + Single-click +
mob random skill skill combo
Example Execution:
1. Bot detects mob with health bar
2. Chooses "Single Skill" mode (30% chance)
3. Single-clicks mob to target
4. Presses skill '2' (hardware-level)
5. Skill '2' goes on 12s cooldown
6. Next attack: might be a Tab-target (50%) or combo (20%)
Unit tests were removed when the project was converted to a purely user-mode input implementation; use the GUI or run the application to validate behavior interactively.
- Nearest Mob Selection: Always attacks closest mob to player
- Click Position: Lower part of detection box (70-90% down)
- Mouse Jitter: ±15 pixels for human-like variation
- Health Bar Detection: Continues attacking until health disappears
-
Standard Attack (Tab + R/T):
- Targets the next monster with
Tab, then performs a single R (light) or T (heavy) press to initiate combat - Most common (50% default)
- No mouse double-click or drag is used — targeting is keyboard-based
- Targets the next monster with
-
Single Skill Attack:
- Single-clicks to target mob
- Presses one random skill
- Skill goes on individual cooldown
-
Combo Set Attack:
- Single-clicks to target mob
- Executes full skill rotation
- All skills + combo go on cooldown
- Minimap Red Dots: Detects and navigates toward enemies
- 70° Turns: Holds A/D keys for full turns (not just tap)
- Movement Macros: 7 randomized patterns (zigzag, circles, etc.)
- Smooth Mouse: Bezier curve dragging (0.15-0.40s)
The project provides configurable attack modes and reasonable default input timings. The application requires the Interception kernel driver / DLL for reliable hardware-level input simulation and offers configurable combo and skill execution behavior.
Primary: Interception (kernel driver)
This project requires the Interception kernel driver and its interception.dll as the
sole supported input backend. The application no longer includes fallbacks to
user-mode input libraries or AutoHotkey; Interception must be installed and the
DLL must match your Python bitness.
- YOLOv8 Model: Real-time detection (overlay updated frequently, model-driven rate)
- Classes Detected:
mob_target- Enemy mobsmob_combat_health- Active health barsminimap_red_dot- Minimap indicators
- Custom Training: Model trained on AION screenshots
Directly in the main program:
- Attack Mode - Checkbox to enable randomized attacks
- Attack Mode Weights - Spinboxes for probability distribution:
- Standard Attack Weight (Tab-target) (default: 50%)
- Single Skill Weight (default: 30%)
- Combo Set Weight (default: 20%)
- Health Requirement - Checkbox to only use skills when mob health detected
Click "⚙️ Edit Individual Skills" button:
- Single Skill Pool - Text field for skills used in random selection (e.g.,
1, 2, 3, 4) - GCD Setting - Global cooldown for single skill mode (default: 1.5 sec)
- Cooldowns Table - Visual editor with Add/Remove buttons:
- Column 1: Keybind (e.g.,
1,alt+1,ctrl+1) - Column 2: Cooldown in seconds (0.1-600 range)
- Column 1: Keybind (e.g.,
- Add Skill - Button to add new skill row
- Remove Skill - Button to delete selected skill
Click "🎯 Edit Combo Sets" button:
- Combo List - Shows all combo sets with enable/disable status
- New Combo - Button to create new combo set
- Delete Combo - Button to remove combo set
- Combo Details Panel:
- Combo Name (text field)
- Enabled checkbox
- Combo Cooldown (0-600 seconds)
- Delay Between Skills (0-5 seconds)
- Skills List (multi-line text, one skill per line)
- Save Combo - Button to apply changes
| Setting | Location | Default | Description |
|---|---|---|---|
| Attack Mode | Main Window | Enabled | Randomize attack patterns |
| Standard Attack Weight | Main Window | 0.50 | Standard attack probability |
| Single Skill Weight | Main Window | 0.30 | Single skill probability |
| Combo Set Weight | Main Window | 0.20 | Combo execution probability |
| Health Requirement | Main Window | Enabled | Only use skills with health bar |
| Single Skill Pool | Skills Editor | 1,2,3,4 |
Skills for random selection |
| GCD | Skills Editor | 1.5 sec | Global cooldown for single skills |
| Individual Cooldowns | Skills Editor | Various | Per-skill cooldown timers |
| Combo Sets | Combo Editor | Various | Skill rotation sequences |
In Main Window:
- ✓ Uncheck "Enable randomized attack mode"
Result: Bot will only target with Tab and use R/T (no skills used)
In Main Window:
- ✓ Check "Enable randomized attack mode"
- Set Standard Attack Weight (Tab-target): 0.00 (0%)
- Set Single Skill Weight: 0.00 (0%)
- Set Combo Set Weight: 1.00 (100%)
Result: Bot will only execute combo sets (when ready)
In Main Window:
- ✓ Check "Enable randomized attack mode"
- Set Standard Attack Weight (Tab-target): 0.50 (50%)
- Set Single Skill Weight: 0.30 (30%)
- Set Combo Set Weight: 0.20 (20%)
Result: Randomized attacks with balanced distribution
In Main Window:
- ✓ Check "Enable randomized attack mode"
- Set Standard Attack Weight (Tab-target): 0.20 (20%)
- Set Single Skill Weight: 0.50 (50%)
- Set Combo Set Weight: 0.30 (30%)
Result: Bot uses skills 80% of the time (more aggressive)
Step-by-step:
- Click "🎯 Edit Combo Sets" button
- Click "➕ New Combo"
- Enter name:
My Ultimate Rotation - Check "Enabled"
- Set cooldown:
120seconds - Set delay:
0.5seconds - Enter skills (one per line):
1 2 alt+1 ctrl+1 3 - Click "💾 Save Combo"
- Click "Close"
Result: New combo set ready to use!
Symptoms: Bot only uses standard Tab-target attacks, never uses skills
Solutions:
- Check
ATTACK_MODE_RANDOMIZATION_ENABLED = True - Verify attack weights sum to ~1.0
- Ensure
COMBAT_USE_SKILLS = True - Check individual skill cooldowns (may still be on cooldown)
- Run
python test_skill_combos.pyto validate config
Symptoms: Wrong skills being pressed
Solutions:
- Check
SKILL_COOLDOWNSdictionary keys match your game bindings - Verify
SINGLE_SKILL_POOLcontains correct keys - Check
COMBO_SETSskill lists - Test with:
python -c "from skill_combo_manager import SkillComboManager; m = SkillComboManager(); print(m.skill_cooldowns)"
Symptoms: Single skills work, but combos don't
Solutions:
- Check all skills in combo are off cooldown
- Verify
combo_setweight > 0.0 - Check combo
enabled: TrueinCOMBO_SETS - Ensure
COMBAT_USE_SKILLS = True
Symptoms: DELETE key doesn't stop bot
Solutions:
- Click EMERGENCY STOP button in GUI (always works)
- Close the program window
- Task Manager → End Task on
python.exe
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Test your changes
- Submit a pull request
This project is for educational purposes only. Use at your own risk.
- YOLOv8: Ultralytics object detection
- Interception: Hardware-level input driver/DLL (required)
- PySide6: Modern GUI framework
Use this bot at your own risk. Game automation may violate terms of service. The developers are not responsible for account bans or other consequences.
- UI Calibration: Popup reminder to ensure game window is open and character logged in
- Minimap Movement: Automatically move player character using detected map markers
- Optimization: Performance improvements for detection and input
- Advanced Macros: More complex combo sequences and conditional logic