Important Notes:
- This script no longer works in a browser. You must use the Discord desktop app.
- You need at least one other person in the voice channel with you for the script to work.
How to use this script:
- Accept the quest in User Settings -> Gift Inventory.
- Join a voice channel.
- Have an alternate account join the same voice channel.
- Start streaming any window (e.g., Notepad).
- Open Developer Tools by pressing Ctrl+Shift+I.
- If this doesn't work, download the PTB (Public Test Build) client or use a method to enable DevTools on the stable version.
- Navigate to the
Console
tab. - Copy and paste the following code into the console and press Enter:
let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);
let ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
let QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
let FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())
let isApp = navigator.userAgent.includes("Electron/")
if(!isApp) {
console.log("This no longer works in browser. Use the desktop app!")
} else if(!quest) {
console.log("You don't have any uncompleted quests!")
} else {
let pid = Math.floor(Math.random() * 30000) + 1000
ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
id: quest.config.applicationId,
pid,
sourceName: null
})
let secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
let fn = data => {
let progress = data.userStatus.streamProgressSeconds
console.log(`Quest progress: ${progress}/${secondsNeeded}`)
if(progress >= secondsNeeded) {
console.log("Quest completed!")
FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
}
}
FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
console.log(`Spoofed your stream to ${quest.config.applicationName}. Stay in vc for ${Math.ceil(quest.config.streamDurationRequirementMinutes - (quest.userStatus?.streamProgressSeconds ?? 0) / 60)} more minutes.`)
console.log("Remember that you need at least 1 other person to be in the vc!")
}
- Keep the stream running for the required duration (usually 15 minutes).
- Once the quest is completed, claim the reward in User Settings -> Gift Inventory.
Monitoring Progress:
- Check the
Quest progress:
messages in the Console tab. - Reopen the Gift Inventory tab in User Settings to see the updated progress.
- Progress should update every 30 seconds.
FAQ:
Q: I get an error saying "Unauthorized".
A: Discord has patched the script from working in browsers. Use the desktop app, or find an extension that allows you to change your User-Agent and append Electron/
anywhere in it. Additionally, ensure that at least one other person is in the voice channel with you.
Q: I get a different error. A: Make sure you started streaming before running the script and that you're copying/pasting the code correctly.
For any support, join discord.gg/wicks
TBKTTY27EK2P : code