A real-time Diablo II Resurrected companion app that tracks Diablo Clone (Uber Diablo) progress and current/upcoming Terror Zones.
Data courtesy of diablo2.io and d2tz.info
- 📊 Live DClone status — monitors all regions, ladder modes, and HC/SC types.
- 🔥 Terror Zone (TZ) Tracking — identifies the current and next Terrorized zones using real-time image OCR.
- 🔔 Push notifications —
- Alerts for DClone at user-specified stages (1-6).
- Immediate alerts for "Current" and "Next" Terror Zones based on your custom watchlist.
- 🌙 Background tracking — Uses a foreground service with exact alarms to update every 30 minutes (:00:25 and :30:25 marks).
- ⚙️ Custom Filters — Filter by region, ladder, and version (LoD / Resurrected).
- 🎨 Dark Diablo-themed UI — Visual cues and color-coding for status updates.
- Android Studio (Hedgehog or newer)
- JDK 17
- Android SDK 35
- Open Android Studio
- File → Open → select the
D2CloneTrackerfolder - Wait for Gradle sync to complete
- Click ▶ Run (or
Shift+F10) to install on a connected device/emulator - For a release AAB/APK: Build → Generate Signed Bundle / APK
The app polls the public diablo2.io DClone API:
progress: 1–6 (6 = Diablo Clone is walking!)region: 1=Americas, 2=Europe, 3=Asialadder: 1=Ladder, 2=Non-Ladderhc: 1=Hardcore, 2=Softcore
Since there is no official API for Terror Zones, the app:
- Fetches a real-time status image from
d2tz.info. - Processes the image using Google ML Kit (Text Recognition).
- Uses fuzzy matching logic in
TerrorZone.javato handle the stylized "Exocet" font. - Identifies zones and matches them against your "Watched Groups" in settings.
- Exact Alarms: Schedules tasks to run exactly 25 seconds after the hour/half-hour mark.
- WakeLock: Ensures the CPU stays awake during the network fetch and OCR process.
- Foreground Service: Keeps the task alive even during system battery optimization.
app/src/main/java/com/d2clone/tracker/
├── MainActivity.java — Tabbed layout container
├── TrackerService.java — Core background monitoring service
├── TerrorZone.java — OCR logic and zone definitions
├── DCloneWorker.java — (Legacy) API polling logic
├── AlarmReceiver.java — Wakes the app for periodic updates
└── BootReceiver.java — Restores tracking after device reboot
INTERNET— to fetch API and image data.POST_NOTIFICATIONS— for push alerts (Android 13+).SCHEDULE_EXACT_ALARM— for precise timing of zone changes.FOREGROUND_SERVICE— to run the tracker reliably.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS— to prevent the app from being "killed" by the system.
Per the respective data providers' policies:
- Credits diablo2.io and d2tz.info prominently in the UI.
- Adheres to standard polling limits (updates every 30 minutes).
- Extends the community trackers' functionality by providing mobile-native notifications.