RA Toolkit

Toolkit for RetroAchievements.org — ROMs, translations, dashboard, pagination and more. Based on Retro Enhanced by Miagui.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Аўтар
WelingtonMonteiro
Усталяванняў за дзень
0
Усяго ўсталяванняў
7
Рэйтынг
0 0 0
Версія
2.8.0
Створаны
19.03.2026
Абноўлены
30.03.2026
Памер
255.5 КБ
Ліцэнзія
MIT
Ужываецца на


RetroAchievements

🎮 RA Toolkit


Toolkit for RetroAchievements.org

ROMs, translations, player dashboard, pagination and more.


Fork of Retro Enhanced by Miagui — with major new features and improvements.



Install

Version
License

---

## 📥 Installation

### Step 1 — Install Tampermonkey

Tampermonkey is a browser extension that lets you run userscripts on any website.

| Browser | Link |
|---------|------|
| Chrome | [Chrome Web Store](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) |
| Firefox | [Firefox Add-ons](https://addons.mozilla.org/firefox/addon/tampermonkey/) |
| Edge | [Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd) |
| Safari | [Mac App Store](https://apps.apple.com/app/tampermonkey/id1482490089) |
| Opera | [Opera Add-ons](https://addons.opera.com/extensions/details/tampermonkey-beta/) |

1. Click the link for your browser above
2. Click **Add to browser** / **Install**
3. Confirm the installation when prompted
4. You should see the Tampermonkey icon (🔲) in your browser toolbar

### Step 2 — Install RA Toolkit

**Option A — One click (recommended):**

👉 **[Click here to install RA Toolkit](https://github.com/WelingtonMonteiro/ra-toolkit/raw/main/RA_Toolkit.user.js)**

Tampermonkey will detect the `.user.js` file automatically and show an install screen. Click **Install**.

**Option B — Manual install:**

1. Copy the script URL:
```
https://github.com/WelingtonMonteiro/ra-toolkit/raw/main/RA_Toolkit.user.js
```
2. Click the Tampermonkey icon in your toolbar → **Create a new script**
3. Delete the default template content
4. Open the URL above in a new tab, select all (`Ctrl+A`), copy (`Ctrl+C`)
5. Paste into the Tampermonkey editor (`Ctrl+V`) → **File → Save** (`Ctrl+S`)

### Step 3 — Enjoy!

1. Visit [retroachievements.org](https://retroachievements.org)
2. Navigate to any game page to see ROM search, translations, and more
3. Visit your profile (`/user/{username}`) to see the Player Insights Dashboard
4. Click the **⚙️ RA Toolkit** button (bottom-right corner) to configure settings

> **Auto-update:** The script updates automatically via Tampermonkey when a new version is pushed to this repository. You can also check for updates manually: Tampermonkey icon → **Utilities** → **Check for userscript updates**.

---

## ✨ Features

### 🔍 ROM Search
- Multi-source ROM search: **Archive.org**, **Myrient**, **Emuparadise**, **RomsFun**
- 🏆 **RA Trophy Badge** on ROMs verified against RA hash database
- 50+ consoles mapped with icons and short names
- Smart title matching (normalized + region-aware)
- Configurable per-source toggles in settings

### 🌐 Achievement & Wall Translation
- Per-card **Translate** button using MyMemory API (free tier)
- Wall comment translation on user profile pages
- Language selector in settings panel
- Daily rate limiter (5000 chars/day) with persistent counter
- Auto-disable for texts exceeding 500-char API query limit
- Toggle between original and translated text

### 📊 Player Insights Dashboard
Injected on user profile pages (`/user/{username}`) with 6 modules:

| Module | Description |
|--------|-------------|
| **Stats Cards** | Games Played, Mastered, Mastery Rate, Points & Rank |
| **Almost There** | Top 5 games closest to 100% (≥50% progress) |
| **Console Breakdown** | Top 10 consoles with horizontal bars and icons |
| **Streak Tracker** | Current streak, best streak, active days (365d) |
| **Rarest Achievements** | Top 5 by TrueRatio with badge and multiplier |
| **Activity Timeline** | 365-day contribution heatmap (GitHub-style, 52 weeks × 7 days) with toggle modes |

### 📅 Activity Timeline
- GitHub-style contribution heatmap (52 weeks × 7 days) with month labels and day-of-week indicators
- **3 toggle modes:** 🏆 Achievements (blue), 👑 Mastered (gold), ✅ Beaten (gray)
- Total achievements count shown in section title
- Year shown in cell tooltips (e.g. "Mar 19, 2026: 5 achievements")
- Streak Tracker uses 365-day data for accurate streak and active-day counts
- Quarterly API fetching to bypass the 500-record limit

### 🏅 Achievement Rarity Indicator
- Color-coded badges on each achievement by unlock %:
- ⚪ Common (≥50%), 🟢 Uncommon (25–49%), 🔵 Rare (10–24%), 🟣 Very Rare (5–9%), 🟡 Ultra Rare (2–4%), 🔴 Legendary (<2%)
- Color-bordered achievement badges on profile pages
- Works on game pages with all languages (i18n-safe)
- Toggleable in settings

### 💬 User Wall Enhancements
- **Linkify** — plain text URLs in comments become clickable links (opens in new tab)
- **YouTube embed** — YouTube links in wall comments show an inline mini video player
- **Image preview** — image links (png, jpg, gif, webp, etc.) show inline preview, click to open

### 📄 Profile Pagination
- Paginated "Last Games Played" with numbered buttons
- Items per page selector (5/10/15/20/30/50)
- Cards rendered with native RA CSS classes
- Achievement toggle per game card (expand badges with rarity borders)
- Skeleton loaders during page transitions

### 🎬 Extras
- Speedrun.com video embed on game pages
- Collapse/expand sidebar sections (ROMs, World Records) — state remembered
- SPA-aware (Inertia.js navigation support)
- Glass-effect settings panel with styled toggles
- Structured logging (debug/info/warn/error)

---

## 📋 Changelog

### v2.5.2
- Activity Timeline: tooltip now shows year (e.g. "Mar 19, 2026: 5 achievements")

### v2.5.1
- Translate: disable button for texts exceeding 500-char API query limit
- Translate: show "Too long" label with character count tooltip on hover

### v2.5.0
- Activity Timeline: total achievements count shown in title
- Activity Timeline: toggle buttons to switch between Achievements (blue), Mastered (gold), and Beaten (gray) heatmaps
- New API integration: GetUserAwards for mastered/beaten game dates

### v2.4.4
- Fix: rarity indicators on game page now work with all languages (i18n-safe percentage parsing)

### v2.4.3
- Fix: enableRarityIndicator variable scope — rarity indicators now work correctly in achievement badges pagination

### v2.4.2
- Image preview in wall comments — image links (png, jpg, gif, webp, etc.) show inline preview, click to open

### v2.4.1
- Activity Timeline moved above Player Insights stats for better visibility

### v2.4.0
- User Wall linkify — plain text URLs in comments become clickable links (opens in new tab)
- YouTube embed — YouTube links in wall comments show an inline mini video player

### v2.3.3
- Emuparadise fix — links to download page instead of direct file (avoids referer block)

### v2.3.2
- Emuparadise download fix — correct game ID extraction and direct download link with workaround

### v2.3.1
- Timeline layout fix — uniform cell sizes and month labels overflow like GitHub's contribution graph

### v2.3.0
- 1-year Activity Timeline — GitHub-style contribution heatmap (52 weeks × 7 days)
- Streak Tracker now uses 365-day data for more accurate streak and active-day counts
- Yearly data fetched via quarterly API chunks to bypass 500-record limit

### v2.2.1
- Missing consoles — added ROM search support for Amstrad CPC, Apple II, Uzebox, and WASM-4

### v2.2.0
- Achievement rarity indicator — color-coded badges (Common to Legendary) on game page and profile
- Collapse/expand sidebar sections — click headers to collapse/expand, state persisted

### v2.1.1
- Save button in settings panel — "Atualizar" button to confirm and reload

### v2.1.0
- ROM search cache (24h TTL)
- Changelog popup after updates
- Custom accent color (color picker in settings)
- Light mode support (adapts to RA site theme)
- Mobile layout support (sidebar injections on mobile)
- Guide link detection (RA Guide button on game pages)

### v2.0.0
- Player Insights Dashboard (6 modules)
- RomsFun ROM source
- RA Trophy badge for hash-verified ROMs
- Pagination skeleton loaders
- Previous/Next pagination buttons
- MyMemory API rate limiter

---

## ⚙️ Configuration

Click the **⚙️ RA Toolkit** button (bottom-right corner) to open the settings panel. You can toggle:

- ROM search sources (Archive.org, Myrient, Emuparadise, RomsFun)
- Hash verification (RA Trophy badges)
- Translation language
- Achievement rarity indicator
- Custom accent color (color picker + reset)
- Debug logging

---

## 🛠️ Tech Stack

- **Tampermonkey** userscript (vanilla JS, no frameworks)
- **RA Web API** (`API_GetUserSummary`, `API_GetUserRecentlyPlayedGames`, `API_GetUserRecentAchievements`, `API_GetAchievementsEarnedBetween`, `API_GetGameInfoAndUserProgress`, `API_GetGameHashes`, `API_GetUserAwards`)
- **MyMemory API** for translations
- **DOM scraping** for console breakdown (Progression Status section)
- **GM_xmlhttpRequest** for cross-origin requests
- **GM_setValue/GM_getValue** for persistent settings and rate limiting

---

## 🙏 Credits & Origin

This project is a **fork** of [**Retro Enhanced**](https://openuserjs.org/scripts/Miagui/Retro_Enhanced) (v1.4.5) by [**Miagui**](https://github.com/miagui), which provided the original ROM search functionality for RetroAchievements.org.

**RA Toolkit** builds on that foundation with extensive new features:
- 📊 Player Insights Dashboard (6 analytical modules)
- 📅 Activity Timeline with 3 toggle modes (Achievements/Mastered/Beaten)
- 🌐 Achievement & wall comment translation system
- 💬 User Wall enhancements (linkify, YouTube, image preview)
- 🏅 Achievement rarity indicator (6 tiers)
- 📄 Profile pagination with skeleton loaders
- 🏆 RA Trophy badge for hash-verified ROMs
- 🔍 Additional ROM sources (RomsFun)
- ⚙️ Redesigned settings panel with accent color
- 🔄 SPA navigation support (Inertia.js)

Thank you **Miagui** for the original script that made this possible! 🎮

- Built for the [RetroAchievements](https://retroachievements.org) community

---

## 📄 License

[MIT](LICENSE)