Developed by BLAZE-X · Release v1.0.0-phantom
A behavioral simulation engine for Discord Quest completion
Relay employs statistical timing models and human activity patterns to complete Discord Quests through Discord's internal APIs. Single-paste execution. No external dependencies.
Quick Start · Features · Architecture · Configuration · FAQ
- Overview
- Quick Start
- Features
- System Architecture
- Quest Types
- User Interface
- Configuration
- Troubleshooting
- FAQ
- Best Practices
- Contributing
- License
Relay is a client-side automation framework designed for Discord Quest completion. It operates entirely within your authenticated Discord session, utilizing Discord's native webpack module system and internal API endpoints. No token extraction, no external servers, no installations required.
The framework implements adaptive timing strategies based on statistical distributions to simulate natural user behavior patterns, making automated quest completion indistinguishable from manual interaction.
You’ll notice that parts of index.js contain XOR‑encrypted strings and integrity checks.
These are not malicious, do not steal tokens, and do not send any data anywhere.
Relay was originally a private, proprietary tool. The encryption you see is a tamper‑protection layer—it ensures the script only functions correctly in its original, unmodified form. Now that Relay is open source, we’ve kept that layer active to prevent unauthorized rebranding or crippled forks from circulating under the same name.
If you’re ever unsure about what a particular section does, feel free to:
- Read the code yourself (it’s fully client‑side, no obfuscation is hidden).
- Ask any AI code analyzer to explain it — you’ll see it’s just a creative anti‑tamper mechanism with no hidden side effects.
- Review the Issue Tracker to confirm no one has reported anything suspicious.
Transparency matters, especially in this space. Nothing is hidden for a malicious purpose.
- Universal Quest Support - Handles all five Discord Quest types: GAME, VIDEO, STREAM, ACTIVITY, and ACHIEVEMENT
- Intelligent Timing Engine - Employs lognormal and Gaussian distributions for realistic timing intervals
- Adaptive Behavior - Monitors actual user activity and adjusts automation patterns accordingly
- Interactive Dashboard - Real-time progress tracking with native Discord UI styling
- Zero Configuration - Works out-of-the-box with sensible defaults
- Fault Tolerance - Gracefully handles API failures, rate limits, and network issues
System Requirements
- Discord Desktop client (required for GAME and STREAM quests)
- Developer Tools access (enabled by default on Canary/PTB)
Step 1: Launch Discord Desktop
Step 2: Open Developer Console
- Windows/Linux:
Ctrl + Shift + I - macOS:
Cmd + Option + I
Step 3: Navigate to the Console tab
Step 4: Paste the complete contents of index.js and press Enter
The Relay Quest Picker will launch automatically. Select your desired quests, configure settings, and click START to begin automation.
Click to expand instructions
-
Close Discord completely
-
Locate your settings file:
Operating System File Path Windows %appdata%\discord\settings.jsonmacOS ~/Library/Application Support/discord/settings.jsonLinux ~/.config/discord/settings.json -
Edit the JSON file and add this property:
{ "DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true } -
Save the file and restart Discord
Developer Tools are now accessible via Ctrl + Shift + I.
Vencord and BetterDiscord Support
Relay operates independently of client modifications. If Vencord is detected, Relay will automatically utilize its Webpack API for enhanced module resolution on Discord Stable builds. BetterDiscord is fully compatible without additional configuration.
No setup required for either modification.
Relay implements multiple layers of behavioral modeling to replicate natural user patterns:
- Variable Timing Intervals - Uses statistical distributions rather than fixed delays
- Activity-Aware Scheduling - Detects mouse and keyboard events to extend delays during active use
- Dynamic Pause Injection - Randomly inserts idle periods to simulate user breaks
- Progressive Abandonment - Increases skip probability after repeated failures
- Captcha Handling - Provides interactive fallback when automated claiming is blocked
- Module Extraction - Resilient webpack store detection using constructor signatures
- JIT Enrollment - Enrolls quests individually before execution to minimize detection surface
- Sequential Processing - Executes quests one at a time to avoid parallel request patterns
- Exponential Backoff - Intelligent retry logic for rate limits and server errors
- Clean Teardown - Properly releases resources and removes injected elements on shutdown
- Visual Quest Picker - Color-coded interface for quest selection and filtering
- Live Progress Dashboard - Draggable overlay with real-time status updates
- Desktop Notifications - Audio and visual alerts on quest completion
- In-Dashboard Claiming - Interactive buttons for manual claim when captcha is required
- Keyboard Toggle -
Shift + .to show/hide dashboard
Relay implements a sophisticated multi-layer pipeline architecture with behavioral simulation and fault-tolerant execution:
flowchart TB
%% ====== 1. Injection ======
subgraph INJECT["🖥️ User Console"]
direction LR
A["Paste index.js"] --> B["Detect Discord Desktop"]
B --> C["Hook webpackChunkdiscord_app"]
end
%% ====== 2. Module Extraction ======
subgraph EXTRACT["🔌 Module Extraction"]
direction LR
C --> D["Locate by constructor.displayName"]
D --> E["QuestStore · RunStore"]
D --> F["StreamStore · Dispatcher · API"]
end
%% ====== 3. Discovery & Picker ======
subgraph DISCOVER["🔍 Quest Discovery"]
direction TB
E --> G["Fetch active, uncompleted quests"]
G --> H["Filter expired & skipped"]
H --> I["Render Quest Picker UI"]
I --> J["User selects quests + config"]
end
%% ====== 4. Orchestrator ======
subgraph ORCH["⚙️ Orchestrator"]
direction TB
J --> K["Build sequential execution queue"]
K --> L["JIT enrollment (one‑by‑one)"]
L --> M{"Enrollment OK?"}
M -->|Yes| N["Route to quest‑type handler"]
M -->|Retry| L
M -->|Skip| O["Log failure, next quest"]
end
%% ====== 5. Quest Handlers ======
subgraph HANDLERS["🎮 Quest Type Handlers"]
direction LR
N --> P["PLAY: Inject RunStore process"]
N --> Q["VIDEO: POST video‑progress"]
N --> R["STREAM: Patch StreamStore"]
N --> S["ACTIVITY: Heartbeat events"]
N --> T["ACHIEVEMENT: Listen for milestone"]
end
%% ====== 6. Behavioral Engine ======
subgraph BEHAVIOR["🧠 Behavioral Simulation"]
direction LR
P & Q & R & S & T --> U["Statistical Timing Engine"]
U --> V["Gaussian enrollment delays"]
U --> W["Lognormal video intervals"]
U --> X["Random pause injection"]
U --> Y["Human‑activity detection"]
end
%% ====== 7. Stealth & Completion ======
subgraph COMPLETE["✅ Stealth & Completion"]
direction TB
V & W & X & Y --> Z["Stealth RPC (activity events)"]
Z --> AA["Real‑time progress polling"]
AA --> AB{"Progress ≥ target?"}
AB -- No --> AA
AB -->|Yes| AC["Attempt auto‑claim"]
AC --> AD{"Captcha required?"}
AD -->|No| AE["✅ Reward secured"]
AD -->|Yes| AF["🔴 Manual CLAIM button"]
AE & AF --> AG["Cleanup, next quest"]
end
O --> K
AG --> AH{"More quests in queue?"}
AH -->|Yes| K
AH -->|No| AI["🏁 All quests complete"]
%% Professional theme
classDef inject fill:#0f172a,stroke:#3b82f6,stroke-width:2px,color:#e2e8f0
classDef extract fill:#1e293b,stroke:#8b5cf6,stroke-width:2px,color:#e2e8f0
classDef discover fill:#064e3b,stroke:#10b981,stroke-width:2px,color:#d1fae5
classDef orch fill:#713f12,stroke:#f59e0b,stroke-width:2px,color:#fef3c7
classDef handlers fill:#7c2d12,stroke:#f97316,stroke-width:2px,color:#fff
classDef behavior fill:#4c1d95,stroke:#a855f7,stroke-width:2px,color:#ede9fe
classDef complete fill:#164e63,stroke:#06b6d4,stroke-width:2px,color:#cffafe
class A,B,C inject
class D,E,F extract
class G,H,I,J discover
class K,L,M,N,O orch
class P,Q,R,S,T handlers
class U,V,W,X,Y behavior
class Z,AA,AB,AC,AD,AE,AF,AG,AH,AI complete
🔄 Pipeline Flow
- Bootstrap → Extracts Discord's internal webpack modules and initializes statistical engine
- Selection → Interactive UI for quest configuration and settings
- Orchestration → Sequential JIT enrollment with intelligent queuing
- Execution → Type-specific handlers for each quest category
- Simulation → Multi-layer behavioral modeling with activity awareness
- Monitoring → Real-time progress tracking with dashboard updates
- Completion → Automatic claiming with captcha fallback
🛡️ Resilience Features
- Constructor-based module detection (survives webpack reshuffles)
- Exponential backoff for rate limits and server errors
- Fault-tolerant execution (isolated task failures)
- Human activity detection for adaptive timing
- Skip-list for permanently failed quests
sequenceDiagram
participant U as User
participant R as Relay Script
participant D as Discord Client
participant Q as Quest Store
participant A as API Gateway
participant B as Backend
U->>D: Open Discord + DevTools
U->>R: Execute Script
R->>D: Hook Webpack Modules
R->>Q: Access Quest Data
R->>U: Display Quest Picker
U->>R: Select Quests
loop For Each Quest
R->>A: POST /enroll
A->>B: Enroll Request
B-->>A: Enrollment Confirmed
A-->>R: Success
loop Progress Simulation
R->>R: Calculate Gaussian Delay
R->>A: POST /video-progress
A->>B: Progress Update
B-->>A: Accepted
A-->>R: Continue
end
R->>A: POST /claim-reward
A->>B: Claim Request
B-->>A: Reward Granted
A-->>R: Completed
end
R->>U: All Quests Complete
Relay uses Lognormal Distribution for realistic behavior simulation:
graph LR
A[Request Sent] --> B{Calculate Delay}
B --> C[Base Mean: 45s]
C --> D[Apply Gaussian Noise]
D --> E[Lognormal Transform]
E --> F[Random Variance ±8s]
F --> G[Next Request]
G --> A
style A fill:#3b82f6
style G fill:#10b981
style E fill:#f59e0b
Statistical Properties:
- Mean Interval: 45 seconds (configurable)
- Standard Deviation: 8 seconds
- Distribution: Log-Normal for natural variance
Relay supports all five Discord Quest categories. Each type uses a different execution strategy:
What Relay Does:
- Injects a simulated game process into Discord's RunStore
- Generates Windows NT-compliant Process IDs (multiples of 4)
- Dispatches Rich Presence events to maintain "Playing" status
- Monitors quest progress through Discord's internal progress API
Requirements:
- Discord Desktop client
- Quest must be enrolled before execution
Example Flow:
Enroll Quest → Inject RunStore → Dispatch RPC → Wait for Progress → Clean Up
What Relay Does:
- Sends simulated video progress timestamps to Discord's video-progress endpoint
- Uses lognormal-distributed intervals between progress updates
- Employs 6-decimal precision floats matching native video player behavior
- Adapts timing based on detected user activity
Requirements:
- Any Discord client (Desktop, Web, Mobile)
Example Flow:
Enroll Quest → Send Progress (0%) → Wait (Lognormal Delay) → Send Progress (X%)
→ Repeat Until 100% → Complete
What Relay Does:
- Patches StreamStore's metadata getter with synthetic stream information
- Simulates active streaming session
- Maintains stream metadata for quest duration
Requirements:
- Discord Desktop client
Example Flow:
Enroll Quest → Patch StreamStore → Monitor Progress → Restore Original → Complete
What Relay Does:
- Fires heartbeat events to voice channel dispatcher
- Simulates active participation in voice activities
- Maintains connection signals for quest duration
Requirements:
- Any Discord client
Example Flow:
Enroll Quest → Send Heartbeat → Wait → Repeat → Monitor Progress → Complete
What Relay Does:
- Registers listener for ACHIEVEMENT_IN_ACTIVITY events
- Monitors Discord's event dispatcher for completion signals
- Automatically detects when achievement is earned in activity
Requirements:
- Discord Desktop client
- Manual action required: User must join the activity manually once
Example Flow:
Enroll Quest → Wait for Manual Join → Listen for Achievement Event → Complete
The Quest Picker appears automatically when Relay is initialized. It provides:
- Visual Quest Cards - Each quest displays name, description, and reward type
- Color-Coded Rewards - Gold for Orbs, Purple for Avatar Decorations, Blue for In-Game Items
- Filter Pills - Toggle entire reward categories on/off
- Quest Type Filters - Show/hide based on quest category (GAME, VIDEO, etc.)
- Select/Deselect All - Bulk selection controls
- Configuration Panel - Toggle auto-enrollment, auto-claiming, and stealth features
The dashboard is a draggable overlay that shows:
- Task Cards - One per active/completed quest
- Live Progress Bars - Circular progress indicators with percentage
- Status Icons - Visual indicators for Running, Queued, Completed, or Failed states
- Action Buttons - Interactive CLAIM REWARD buttons when manual action is needed
- Console Log - Recent system messages and errors
- Control Buttons - STOP button to halt all execution
Keyboard Shortcut: Press Shift + . to toggle dashboard visibility
| State | Visual Indicator | Description |
|---|---|---|
| Running | Blue accent, animated progress | Quest is actively executing |
| Queued | Orange accent, static | Quest is waiting to start |
| Completed | Green checkmark | Quest finished successfully |
| Action Required | Yellow button | Manual interaction needed (captcha/join activity) |
| Failed | Red X | Quest encountered unrecoverable error |
Relay ships with pre-configured defaults optimized for safety and reliability:
{
autoEnroll: true, // Automatically enroll in quests before execution
autoClaim: true, // Attempt automatic reward claiming
playSound: false, // Play audio notification on completion
stealthRPC: true // Enable Rich Presence activity simulation
}Settings can be configured through the Quest Picker UI before starting execution. Changes persist for the current session only.
Available Options:
-
Auto-Enroll - When enabled, Relay automatically enrolls in quests just before execution. When disabled, you must enroll manually through Discord's UI before running Relay.
-
Auto-Claim - When enabled, Relay attempts to claim rewards automatically upon quest completion. If a captcha is required, a manual CLAIM button appears on the task card.
-
Play Sound - Enables audio notifications. A single tone plays on quest completion; a three-note arpeggio plays when all quests finish.
-
Stealth RPC - Injects Rich Presence activity updates to make your session appear actively engaged with applications during quest execution.
Timing is controlled by internal statistical distributions. Modifying timing constants is strongly discouraged as they are calibrated for behavioral authenticity.
If you must adjust timing:
- Only increase values, never decrease
- Understand that faster execution correlates with higher detection risk
- Test changes on a secondary account first
Script does nothing after pasting
Possible Causes:
- DevTools may be disabled
- JavaScript errors in console
- Another instance is already running
Solutions:
- Check for error messages in the console (red text)
- Verify DevTools is enabled (see instructions)
- Refresh Discord (
Ctrl + R) and paste again - Ensure you pasted the complete file contents
Quest Picker shows no quests
Possible Causes:
- QuestStore hasn't loaded
- No active quests in your region
- Module extraction failed
Solutions:
- Navigate to Discord's Quest Home page before pasting the script
- Verify quests are visible in Discord's native UI
- Check console for extraction errors
- Refresh and retry
VIDEO quest stuck at 0%
Possible Causes:
- API endpoint changed
- Rate limiting active on your session
- Network connectivity issue
Solutions:
- Check console for HTTP error codes
- If rate-limited (429 errors), wait 30-60 minutes
- Verify the task card shows "Running" state (blue accent)
- Check network connectivity
Auto-claim fails / Shows captcha required
Expected Behavior: Discord periodically requires manual captcha verification for security. This is normal.
Solution: Click the CLAIM REWARD button that appears on the task card to complete captcha manually. The quest is already finished; this is just the final claiming step.
Dashboard disappeared or is off-screen
Solutions:
- Press
Shift + .to toggle visibility - If off-screen, refresh Discord to reset position
- Re-paste script if dashboard doesn't appear at all
Does Relay work after Discord updates?
Short Answer: Usually yes.
Relay uses resilient module detection based on constructor names rather than hardcoded webpack paths. This approach survives most Discord updates that only reshuffle minified code.
Major API-level changes may require a Relay update. Check the repository after significant Discord releases.
Compatible with Vencord or BetterDiscord?
Yes, fully compatible.
Relay is a standalone script. It will automatically detect and utilize Vencord's Webpack API if present, which can improve compatibility on Discord Stable builds. BetterDiscord works without any special configuration.
Neither modification is required.
Can I run Relay on multiple accounts simultaneously?
Not recommended.
Running automation on multiple accounts at the same time creates correlated request patterns that are more easily detected.
If you need to use multiple accounts:
- Space executions several hours apart
- Use Discord normally between automation runs
- Vary the quests you complete on each account
Does Relay work on Discord Web or Mobile?
Partial support:
- GAME and STREAM quests require Discord Desktop - they depend on desktop-specific APIs
- VIDEO and ACTIVITY quests may function in browser DevTools, but this is untested
- Mobile is not supported
For full quest type coverage, use Discord Desktop.
What is the statistical timing engine?
Relay uses mathematical probability distributions to model human behavior:
- Lognormal distribution for video progress intervals (mimics reaction time variability)
- Gaussian distribution for enrollment delays (models decision-making time)
- Random pause injection (simulates natural idle breaks)
- Activity-aware delay extension (extends waits during active Discord use)
These create timing patterns that closely match genuine human interaction, making automation difficult to distinguish from manual completion.
Can I customize the timing?
Technically possible, practically inadvisable.
The timing constants are calibrated across multiple statistical distributions specifically for behavioral realism. Reducing values trades safety for speed.
If you must modify timing:
- Only increase values, never decrease
- Understand that faster execution increases detection risk
- Test thoroughly on a secondary account
- Accept full responsibility for any consequences
What does Stealth RPC do?
Stealth RPC dispatches LOCAL_ACTIVITY_UPDATE events into Discord's internal activity system while quests run. This makes your session appear to be actively using an application (similar to showing "Playing a game" status), adding a layer of session authenticity beyond just timing simulation.
You can disable it in the Quest Picker if you prefer minimal footprint.
Start conservatively and scale gradually:
Day 1 → Run 1 VIDEO quest. Wait 24 hours. Monitor for issues.
Day 3 → Run 2 quests of different types. Wait 24-48 hours.
Day 7 → Scale to 3-4 quests. Continue monitoring.
Ongoing → Vary schedule. Never create predictable patterns.
✅ Start with VIDEO quests (smallest API surface)
✅ Use Discord normally while Relay runs
✅ Complete some quests manually (never automate 100%)
✅ Test on a secondary account first
✅ Monitor console output during execution
✅ Space out automation sessions
❌ Decreasing any timing constant
❌ Running immediately after Discord updates
❌ Automating multiple accounts simultaneously
❌ Running the same quests at the same time daily
❌ Automating every single available quest
❌ Ignoring console warnings or errors
Contributions are welcome for bug reports, compatibility improvements, and documentation enhancements.
git clone https://github.com/blaze0089/Discord-Quest-Completer.git
cd Discord-Quest-Completer
# No build process required - pure JavaScript
# Edit index.js and test via Discord Desktop DevTools ConsoleBefore submitting a pull request:
- Test on both Discord Stable and Canary builds
- Maintain or improve behavioral realism (no shortcuts to speed)
- Follow existing code style and ES6+ conventions
- Update README if your changes affect documented behavior
- Write clear, descriptive commit messages
When reporting bugs, include:
- Discord version (Stable / PTB / Canary)
- Operating system
- Complete error output from DevTools console
- Steps to reproduce the issue
- Whether Vencord or BetterDiscord is installed
This project is provided strictly for educational and research purposes to demonstrate client-side automation techniques, behavioral simulation methodologies, and API interaction patterns.
Important Notices:
- Automating user actions may violate Discord's Terms of Service
- The developer assumes no responsibility for account actions taken by Discord
- Use of this software is entirely at your own risk
- No automation tool can guarantee detection immunity
- Users are solely responsible for consequences of use
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
By using Relay, you acknowledge understanding these terms and accept full responsibility for any outcomes.
MIT License - Copyright (c) 2026 BLAZE-X
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
Developed by BLAZE-X
Discord is a registered trademark of Discord Inc. This project is not affiliated with, endorsed by, or sponsored by Discord Inc.