Skip to content

Instantly share code, notes, and snippets.

@aamiaa
Last active June 29, 2024 14:16
Show Gist options
  • Save aamiaa/204cd9d42013ded9faf646fae7f89fbb to your computer and use it in GitHub Desktop.
Save aamiaa/204cd9d42013ded9faf646fae7f89fbb to your computer and use it in GitHub Desktop.
Complete Recent Discord Quest

Complete Recent Discord Quest

Note

This no longer works in browser!

This no longer works if you're alone in vc! Somebody else has to join you!

Warning

There are now two quest types ("stream" and "play")! Pay attention to the instructions!

How to use this script:

  1. Accept a quest under User Settings -> Gift Inventory
  2. Press Ctrl+Shift+I to open DevTools
  3. Go to the Console tab
  4. Paste the following code and hit enter:
Click to expand
let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].find(x => x.id !== "1245082221874774016" && 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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}
  1. Follow the printed instructions depending on what type of quest you have
    • If your quest says to "play" the game, you can just wait and do nothing
    • If your quest says to "stream" the game, join a vc with a friend or alt and stream any window
  2. Wait for 15 minutes
  3. You can now claim the reward in User Settings -> Gift Inventory!

You can track the progress by looking at the Quest progress: prints in the Console tab, or by reopening the Gift Inventory tab in settings.

FAQ

Q: Ctrl + Shift + I doesn't work

A: Either download the ptb client, or use this to enable DevTools on stable

Q: I get an error saying "Unauthorized"

A: Discord has patched the script from working in browsers. Use the desktop app, or alternatively find some extension which lets you change your User-Agent and append the string Electron/ anywhere in it.

They have also started checking how many people are in the vc, so make sure you join it on at least 1 other account.

Q: I get a different error

A: Make sure you're copy/pasting the script correctly and that you've have done all the steps.

@BarievArtem
Copy link

Minecraft Trial Mask : 4Y22Q-RDYRP-XCRXV-3K76Y-QDQ7Z

@Mohammedsssshgdhfaf
Copy link

no longer works in browser??, then how im gonna do it?

@ZatrexReal
Copy link

no longer works in browser??, then how im gonna do it?

Download the app.for windows

@ZatrexReal
Copy link

Minecraft Trial Mask : 4Y22Q-RDYRP-XCRXV-3K76Y-QDQ7Z

Not working

@An0nX
Copy link

An0nX commented Jun 25, 2024

649FR-97GQG-PKDY4-F32CF-Y7KWZ

@aix05
Copy link

aix05 commented Jun 25, 2024

Minecraft Trial Mask: 67HC3-G4P92-R3MDT-RGJJQ-G9T3Z

@diziu
Copy link

diziu commented Jun 25, 2024

or can someone send me a code?

name : wareye_yt

Minecraft Trial Mask: 69KQR-6TFGG-4C962-T7TFY-KHR6Z

@Jetsooonie
Copy link

Here's a minecraft trial mask code for anyone in need! : 6MY2R-2FQYV-MP4WC-J7HT4-9JK3Z

@Trolleye-ux
Copy link

not vaild xddd

@Dyrr0th12
Copy link

Tenkiu

@BloxxxBlitz
Copy link

Yo, can someone do one for me? msg me it on discord: Blitzbloxxx

@ZappyMonster
Copy link

ZappyMonster commented Jun 27, 2024

Aamiaa does this code work on the newest console quest? Thanks. @aamiaa

@clearnet
Copy link

Aamiaa does this code work on the newest console quest? Thanks. @aamiaa

i have the same question

@Perationale
Copy link

HOW DO I DO THIS ON THE DESKTOP APP
https://www.youtube.com/watch?v=MV33-XB0gss&t

@Perationale
Copy link

Aamiaa does this code work on the newest console quest? Thanks. @aamiaa

i have the same question

same

@StarNumber12046
Copy link

Uncaught TypeError: Cannot read properties of undefined (reading 'target')
at :42:59
(anonymous) @ VM1979:42

@itIsMaku
Copy link

Uncaught TypeError: Cannot read properties of undefined (reading 'target') at :42:59 (anonymous) @ VM1979:42

Same here.

@Kacperdex123
Copy link

Does anyone else have a code for the trial mask for Minecraft Bedrock?

@PankKRB
Copy link

PankKRB commented Jun 27, 2024

Uncaught TypeError: Cannot read properties of undefined (reading 'target') at :42:59 (anonymous) @ VM1979:42

SAME

@happyendermangit
Copy link

if anyone is wondering, The console quest cant be done using this snippet.

@RODIOMG7
Copy link

when will this get updated for this console quest

@RODIOMG7
Copy link

Uncaught TypeError: Cannot read properties of undefined (reading 'target') at :42:59 (anonymous) @ VM1979:42

same

@metloub
Copy link

metloub commented Jun 27, 2024

I don't even have the "Start quest" option in my inventory.. bleh

@robotzone96
Copy link

Update for the new console quest please..

@AndrewEdgers
Copy link

if anyone is wondering, The console quest cant be done using this snippet.

you just guessing or you actually know this?

@Zixxu
Copy link

Zixxu commented Jun 27, 2024

where is the script

@TomerGamerTV
Copy link

Update for the new console quest please..

^

@MahmoudAli96505
Copy link

Does anyone else have a code for the trial mask for Minecraft Bedrock?

3WFMY-GT22V-FJWJ9-MDCRJ-6X3RZ

@aamiaa
Copy link
Author

aamiaa commented Jun 27, 2024

Update for the new console quest please..

I have no clue how does the console integration work, and I don't own a PS5 to check

@ZappyMonster
Copy link

Uncaught TypeError: Cannot read properties of undefined (reading 'target') at :42:59 (anonymous) @ VM1979:42

same

Same here :(

@Rex-XII
Copy link

Rex-XII commented Jun 27, 2024

Does anyone else have a code for the latest discord quest which requires a console and to play any game, i dont have the console so can anyone spare me a code, dm me here or in discord. my id is rex_xii_music

@DarknessSmile
Copy link

image
this error happens

@cursedConLaVocalC
Copy link

so this is broken now?

@Wincohax
Copy link

image this error happens

This is because the Console Quest is not supported.

And to anyone wondering, the play and stream quests still work.

@DarknessSmile
Copy link

DarknessSmile commented Jun 27, 2024

image this error happens

This is because the Console Quest is not supported.

And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

@teekayarezee
Copy link

teekayarezee commented Jun 27, 2024

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from
let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())
to
let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
That's what I did to complete the other quest

@DarknessSmile
Copy link

DarknessSmile commented Jun 27, 2024

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

its working! Bless you <3

@Mihoksama
Copy link

Mihoksama commented Jun 27, 2024

any scripte for the console quest

@MidoriyaRT
Copy link

MidoriyaRT commented Jun 27, 2024

you can use cloud gaming from xbox on your phone to complete console quest
also Play Fortnite with Xbox Cloud Gaming (Beta) no need game pass ultimate just link your discord account with xbox and play fortnite
https://www.xbox.com/en-us/play/games/bt5p2x999vh2
I recommend use phone

@RISHAB-CREATOR
Copy link

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

LOVE U MAN IT WORKED TYSM

@DarknessSmile
Copy link

you can use cloud gaming from xbox on your phone to complete console quest also Play Fortnite with Xbox Cloud Gaming (Beta) no need game pass ultimate just link your discord account with xbox and play fortnite https://www.xbox.com/en-us/play/games/bt5p2x999vh2 I recommend use phone

this also works! bless you<3

@RISHAB-CREATOR
Copy link

you can use cloud gaming from xbox on your phone to complete console quest also Play Fortnite with Xbox Cloud Gaming (Beta) no need game pass ultimate just link your discord account with xbox and play fortnite https://www.xbox.com/en-us/play/games/bt5p2x999vh2 I recommend use phone

DAMN THIS DID WORKED THX MAN !!
YOU ARE GREAT TOO

@burakfeverx
Copy link

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

Can you send me the full code?

@cryptofraud
Copy link

i cant find the code to paste in console

@teekayarezee
Copy link

And to anyone wondering, the play and stream quests still work.

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

Can you send me the full code?

Sure, I mean it's just the script from the OP but with line 21 amended to select the second available quest, but I'll include the full script below for ease of use. For anyone else searching, use the following script if you have also made the 'mistake' of activating both quests at the same time:

Click to expand
let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}

@oexlsdojkxcf
Copy link

How does the console quest work? I don't have any consoles, but do I need a console to complete the quest? Or can I just play any kind of game on the Xbox app and just done? I don't get it.

@GitJamieK
Copy link

How does the console quest work? I don't have any consoles, but do I need a console to complete the quest? Or can I just play any kind of game on the Xbox app and just done? I don't get it.

Same here, tried with the xbox app and did not work, guess we can't do that quest or will have to wait for it to be added to the code^^

@HighAxolotol
Copy link

How does the console quest work? I don't have any consoles, but do I need a console to complete the quest? Or can I just play any kind of game on the Xbox app and just done? I don't get it.

It seems you need a console to do the quest I tried to do it with xbox app but it just says the (user) is online but is not playing any game . ig we have to wait and see if they find a way to do it with the script

@RISHAB-CREATOR
Copy link

e here, tried with the xbox app and did not work, guess we can't do that quest or will have to wait for it to be added to the code^^

its ez asf dude, create a microsoft account
link it with xbox , then link it with discord too
after this if not in unitedstates, then use a vpn for it
then just play this : https://www.xbox.com/en-us/play/games/bt5p2x999vh2
its free game,btw login here with the same account
wait for 10mins
NOTE : IF YOU ARE ON PC, ALL STEPS WOULD WORK, BUT IF U ON MOBILE JUST CHANGE THE VIEW TO DESKTOP WHILE VISITING THE XBOX PLAY LINK

@Piggy6942
Copy link

e here, tried with the xbox app and did not work, guess we can't do that quest or will have to wait for it to be added to the code^^

its ez asf dude, create a microsoft account link it with xbox , then link it with discord too after this if not in unitedstates, then use a vpn for it then just play this : https://www.xbox.com/en-us/play/games/bt5p2x999vh2 its free game,btw login here with the same account wait for 10mins NOTE : IF YOU ARE ON PC, ALL STEPS WOULD WORK, BUT IF U ON MOBILE JUST CHANGE THE VIEW TO DESKTOP WHILE VISITING THE XBOX PLAY LINK

Can you do a tutorial

@Mohamedhere2
Copy link

And to anyone wondering, the play and stream quests still work.

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

Can you send me the full code?

Sure, I mean it's just the script from the OP but with line 21 amended to select the second available quest, but I'll include the full script below for ease of use. For anyone else searching, use the following script if you have also made the 'mistake' of activating both quests at the same time:

Click to expand

working thank you <3

@Mohamedhere2
Copy link

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
const pid = Math.floor(Math.random() * 30000) + 1000

let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
if(quest.config.configVersion === 1) {
	applicationId = quest.config.applicationId
	applicationName = quest.config.applicationName
	secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
	secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
	canPlay = quest.config.variants.includes(2)
} else if(quest.config.configVersion === 2) {
	applicationId = quest.config.application.id
	applicationName = quest.config.application.name
	canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
	const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
	secondsNeeded = quest.config.taskConfig.tasks[taskName].target
	secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
}

if(canPlay) {
	api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
		const appData = res.body[0]
		const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
		
		const games = RunningGameStore.getRunningGames()
		const fakeGame = {
			cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
			exeName,
			exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
			hidden: false,
			isLauncher: false,
			id: applicationId,
			name: appData.name,
			pid: pid,
			pidPath: [pid],
			processName: appData.name,
			start: Date.now(),
		}
		games.push(fakeGame)
		FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				const idx = games.indexOf(fakeGame)
				if(idx > -1) {
					games.splice(idx, 1)
					FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
				}
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
	})
} else {
	let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
	ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
		id: applicationId,
		pid,
		sourceName: null
	})
	
	let fn = data => {
		let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
		console.log(`Quest progress: ${progress}/${secondsNeeded}`)
		
		if(progress >= secondsNeeded) {
			console.log("Quest completed!")
			
			ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
			FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		}
	}
	FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
	
	console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
	console.log("Remember that you need at least 1 other person to be in the vc!")
}

}

@Perationale
Copy link

Update for the new console quest please..

I have no clue how does the console integration work, and I don't own a PS5 to check

then ill do with fortnite

@Faf4a
Copy link

Faf4a commented Jun 28, 2024

The avatar decorations are just available in your inventory for 2 months, not worth it in my opinion.

@letmesologod
Copy link

The avatar decorations are just available in your inventory for 2 months, not worth it in my opinion.

True but its free so why not lol

@lebathang
Copy link

Mohamedhere2 Your cript working to me 💯 👍

image

let wpRequire;
window.webpackChunkdiscord_app.push([
   [Math.random()], {}, (req) => {
      wpRequire = req;
   }
]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if (window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
   api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
   api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
   const pid = Math.floor(Math.random() * 30000) + 1000

   let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
   if (quest.config.configVersion === 1) {
      applicationId = quest.config.applicationId
      applicationName = quest.config.applicationName
      secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
      secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
      canPlay = quest.config.variants.includes(2)
   } else if (quest.config.configVersion === 2) {
      applicationId = quest.config.application.id
      applicationName = quest.config.application.name
      canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
      const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
      secondsNeeded = quest.config.taskConfig.tasks[taskName].target
      secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
   }

   if (canPlay) {
      api.get({
         url: `/applications/public?application_ids=${applicationId}`
      }).then(res => {
         const appData = res.body[0]
         const exeName = appData.executables.find(x => x.os === "win32").name.replace(">", "")

         const games = RunningGameStore.getRunningGames()
         const fakeGame = {
            cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
            exeName,
            exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
            hidden: false,
            isLauncher: false,
            id: applicationId,
            name: appData.name,
            pid: pid,
            pidPath: [pid],
            processName: appData.name,
            start: Date.now(),
         }
         games.push(fakeGame)
         FluxDispatcher.dispatch({
            type: "RUNNING_GAMES_CHANGE",
            removed: [],
            added: [fakeGame],
            games: games
         })

         let fn = data => {
            let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
            console.log(`Quest progress: ${progress}/${secondsNeeded}`)

            if (progress >= secondsNeeded) {
               console.log("Quest completed!")

               const idx = games.indexOf(fakeGame)
               if (idx > -1) {
                  games.splice(idx, 1)
                  FluxDispatcher.dispatch({
                     type: "RUNNING_GAMES_CHANGE",
                     removed: [fakeGame],
                     added: [],
                     games: []
                  })
               }
               FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
            }
         }
         FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

         console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      })
   } else {
      let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
      ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
         id: applicationId,
         pid,
         sourceName: null
      })

      let fn = data => {
         let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
         console.log(`Quest progress: ${progress}/${secondsNeeded}`)

         if (progress >= secondsNeeded) {
            console.log("Quest completed!")

            ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
            FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
         }
      }
      FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

      console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      console.log("Remember that you need at least 1 other person to be in the vc!")
   }
}

@GuidingLight20
Copy link

It worked for the Fortnite quest, but it doesnt work on the console quest. Please make a new script update where it supports the console quest.

@Piggy6942
Copy link

Mohamedhere2 Your cript working to me 💯 👍

image

let wpRequire;
window.webpackChunkdiscord_app.push([
   [Math.random()], {}, (req) => {
      wpRequire = req;
   }
]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if (window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
   api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
   api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
   const pid = Math.floor(Math.random() * 30000) + 1000

   let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
   if (quest.config.configVersion === 1) {
      applicationId = quest.config.applicationId
      applicationName = quest.config.applicationName
      secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
      secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
      canPlay = quest.config.variants.includes(2)
   } else if (quest.config.configVersion === 2) {
      applicationId = quest.config.application.id
      applicationName = quest.config.application.name
      canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
      const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
      secondsNeeded = quest.config.taskConfig.tasks[taskName].target
      secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
   }

   if (canPlay) {
      api.get({
         url: `/applications/public?application_ids=${applicationId}`
      }).then(res => {
         const appData = res.body[0]
         const exeName = appData.executables.find(x => x.os === "win32").name.replace(">", "")

         const games = RunningGameStore.getRunningGames()
         const fakeGame = {
            cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
            exeName,
            exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
            hidden: false,
            isLauncher: false,
            id: applicationId,
            name: appData.name,
            pid: pid,
            pidPath: [pid],
            processName: appData.name,
            start: Date.now(),
         }
         games.push(fakeGame)
         FluxDispatcher.dispatch({
            type: "RUNNING_GAMES_CHANGE",
            removed: [],
            added: [fakeGame],
            games: games
         })

         let fn = data => {
            let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
            console.log(`Quest progress: ${progress}/${secondsNeeded}`)

            if (progress >= secondsNeeded) {
               console.log("Quest completed!")

               const idx = games.indexOf(fakeGame)
               if (idx > -1) {
                  games.splice(idx, 1)
                  FluxDispatcher.dispatch({
                     type: "RUNNING_GAMES_CHANGE",
                     removed: [fakeGame],
                     added: [],
                     games: []
                  })
               }
               FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
            }
         }
         FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

         console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      })
   } else {
      let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
      ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
         id: applicationId,
         pid,
         sourceName: null
      })

      let fn = data => {
         let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
         console.log(`Quest progress: ${progress}/${secondsNeeded}`)

         if (progress >= secondsNeeded) {
            console.log("Quest completed!")

            ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
            FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
         }
      }
      FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

      console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      console.log("Remember that you need at least 1 other person to be in the vc!")
   }
}

How do you do it in browser

@Tlicarek
Copy link

It worked for the Fortnite quest, but it doesnt work on the console quest. Please make a new script update where it supports the console quest.

I agree. We need a new script for the console quest.

@Onur-Vatansever
Copy link

it says You don't have any uncompleted quests!but i didnt do these two quests

@PankKRB
Copy link

PankKRB commented Jun 28, 2024

And to anyone wondering, the play and stream quests still work.

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

Can you send me the full code?

Sure, I mean it's just the script from the OP but with line 21 amended to select the second available quest, but I'll include the full script below for ease of use. For anyone else searching, use the following script if you have also made the 'mistake' of activating both quests at the same time:

Click to expand

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}

image

@Tluxxa
Copy link

Tluxxa commented Jun 28, 2024

i cant find the code to paste in console

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].find(x => x.id !== "1245082221874774016" && 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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}

@Miho1254
Copy link

Miho1254 commented Jun 28, 2024

You don't have any uncompleted quests!
undefined

any solution?

@KatsuMaki1
Copy link

Looking for a solution about the "You don't have any uncompleted quests!" issue.
Thanks in advance

@lebathang
Copy link

lebathang commented Jun 28, 2024

How do you do it in browser

Piggy6942 Please read carefully, guy 😐

Note

This no longer works in browser!.

@W4rping
Copy link

W4rping commented Jun 28, 2024

image this error happens

This is because the Console Quest is not supported.
And to anyone wondering, the play and stream quests still work.

Yeah but I enabled both at the same time, what now? I'm screwed ig

change line 21 from let quest = [...QuestsStore.quests.values()].find(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now()) to let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1] That's what I did to complete the other quest

hey i cant see thee code anymore. does someone have it?

@ningno
Copy link

ningno commented Jun 28, 2024

when I try the code you guys did, it say You don't have any uncompleted quests! But I have 2 remaining, what am i suppose to do

@ningno
Copy link

ningno commented Jun 28, 2024

Looking for a solution about the "You don't have any uncompleted quests!" issue. Thanks in advance

same im getting same error :(

@aamiaa
Copy link
Author

aamiaa commented Jun 28, 2024

when I try the code you guys did, it say You don't have any uncompleted quests! But I have 2 remaining, what am i suppose to do

Which ones?

@ningno
Copy link

ningno commented Jun 28, 2024

when I try the code you guys did, it say You don't have any uncompleted quests! But I have 2 remaining, what am i suppose to do

Which ones?

consol one and the fortnite one, i just did the minecraft

@ningno
Copy link

ningno commented Jun 28, 2024

oh wait i tried ur code again and now it works, but i dont think consol one works

@ningno
Copy link

ningno commented Jun 28, 2024

any codes for consol quest?

@minhdaolesoez
Copy link

Mohamedhere2 Your cript working to me 💯 👍

image

let wpRequire;
window.webpackChunkdiscord_app.push([
   [Math.random()], {}, (req) => {
      wpRequire = req;
   }
]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if (window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
   api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
   ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
   RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
   QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
   ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
   FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
   api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].filter(x => x.userStatus?.enrolledAt && !x.userStatus?.completedAt && new Date(x.config.expiresAt).getTime() > Date.now())[1]
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 {
   const pid = Math.floor(Math.random() * 30000) + 1000

   let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
   if (quest.config.configVersion === 1) {
      applicationId = quest.config.applicationId
      applicationName = quest.config.applicationName
      secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
      secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
      canPlay = quest.config.variants.includes(2)
   } else if (quest.config.configVersion === 2) {
      applicationId = quest.config.application.id
      applicationName = quest.config.application.name
      canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
      const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
      secondsNeeded = quest.config.taskConfig.tasks[taskName].target
      secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
   }

   if (canPlay) {
      api.get({
         url: `/applications/public?application_ids=${applicationId}`
      }).then(res => {
         const appData = res.body[0]
         const exeName = appData.executables.find(x => x.os === "win32").name.replace(">", "")

         const games = RunningGameStore.getRunningGames()
         const fakeGame = {
            cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
            exeName,
            exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
            hidden: false,
            isLauncher: false,
            id: applicationId,
            name: appData.name,
            pid: pid,
            pidPath: [pid],
            processName: appData.name,
            start: Date.now(),
         }
         games.push(fakeGame)
         FluxDispatcher.dispatch({
            type: "RUNNING_GAMES_CHANGE",
            removed: [],
            added: [fakeGame],
            games: games
         })

         let fn = data => {
            let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
            console.log(`Quest progress: ${progress}/${secondsNeeded}`)

            if (progress >= secondsNeeded) {
               console.log("Quest completed!")

               const idx = games.indexOf(fakeGame)
               if (idx > -1) {
                  games.splice(idx, 1)
                  FluxDispatcher.dispatch({
                     type: "RUNNING_GAMES_CHANGE",
                     removed: [fakeGame],
                     added: [],
                     games: []
                  })
               }
               FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
            }
         }
         FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

         console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      })
   } else {
      let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
      ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
         id: applicationId,
         pid,
         sourceName: null
      })

      let fn = data => {
         let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
         console.log(`Quest progress: ${progress}/${secondsNeeded}`)

         if (progress >= secondsNeeded) {
            console.log("Quest completed!")

            ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
            FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
         }
      }
      FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)

      console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
      console.log("Remember that you need at least 1 other person to be in the vc!")
   }
}

bro hướng dẫn tui đc ko

@manish121597
Copy link

please again explain me what can i do for fortnite crown badge claim

@manish121597
Copy link

wtf
Uploading image.png…

@lebathang
Copy link

bro hướng dẫn tui đc ko

minhdaolesoez có hướng dẫn của tg chủ thớt đó, bật gg dịch lên đọc 😐

@BussyBakks
Copy link

BussyBakks commented Jun 29, 2024

PIN IT:
this works for fortnite:

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].find(x => x.id !== "1245082221874774016" && 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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}

checked:
image

@Korsinemi
Copy link

Gaming console script?

@devmao3
Copy link

devmao3 commented Jun 29, 2024

hmm gaming console script?

@acoolg
Copy link

acoolg commented Jun 29, 2024

let them make it

@MagicAyush
Copy link

ye i need console skript

@searinminecraft
Copy link

this gist is becoming chaos, this really needs to be locked down if possible

@xtyze
Copy link

xtyze commented Jun 29, 2024

how do i do this in desktop app?

@RISHAB-CREATOR
Copy link

Gaming console script?

its ez asf dude, create a microsoft account
link it with xbox , then link it with discord too
after this if not in unitedstates, then use a vpn for it
then just play this : https://www.xbox.com/en-us/play/games/bt5p2x999vh2
its free game,btw login here with the same account
wait for 10mins
NOTE : IF YOU ARE ON PC, ALL STEPS WOULD WORK, BUT IF U ON MOBILE JUST CHANGE THE VIEW TO DESKTOP WHILE VISITING THE XBOX PLAY LINK

@RISHAB-CREATOR
Copy link

how do i do this in desktop app?

download this ptb version
https://discord.com/api/downloads/distributions/app/installers/latest?channel=ptb&platform=win&arch=x64
press ctrl+shift+i
go to console tab, type 'allow pasting'
then paste this script

@InaBuild
Copy link

this gist is becoming chaos, this really needs to be locked down if possible

yeah i kinda agree with you

@manish121597
Copy link

plz anyone explain me in hindi and english how to claim fortnite crown

@Onur-Vatansever
Copy link

i cant find the code to paste in console

let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);

let ApplicationStreamingStore, RunningGameStore, QuestsStore, ExperimentStore, FluxDispatcher, api
if(window.GLOBAL_ENV.SENTRY_TAGS.buildId === "366c746173a6ca0a801e9f4a4d7b6745e6de45d4") {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getStreamerActiveStreamMetadata).exports.default;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getRunningGames).exports.default;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getQuest).exports.default;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.default?.getGuildExperiments).exports.default;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.default?.flushWaitQueue).exports.default;
	api = Object.values(wpRequire.c).find(x => x?.exports?.getAPIBaseURL).exports.HTTP;
} else {
	ApplicationStreamingStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getStreamerActiveStreamMetadata).exports.Z;
	RunningGameStore = Object.values(wpRequire.c).find(x => x?.exports?.ZP?.getRunningGames).exports.ZP;
	QuestsStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getQuest).exports.Z;
	ExperimentStore = Object.values(wpRequire.c).find(x => x?.exports?.Z?.getGuildExperiments).exports.Z;
	FluxDispatcher = Object.values(wpRequire.c).find(x => x?.exports?.Z?.flushWaitQueue).exports.Z;
	api = Object.values(wpRequire.c).find(x => x?.exports?.tn?.get).exports.tn;
}

let quest = [...QuestsStore.quests.values()].find(x => x.id !== "1245082221874774016" && 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 {
	const pid = Math.floor(Math.random() * 30000) + 1000
	
	let applicationId, applicationName, secondsNeeded, secondsDone, canPlay
	if(quest.config.configVersion === 1) {
		applicationId = quest.config.applicationId
		applicationName = quest.config.applicationName
		secondsNeeded = quest.config.streamDurationRequirementMinutes * 60
		secondsDone = quest.userStatus?.streamProgressSeconds ?? 0
		canPlay = quest.config.variants.includes(2)
	} else if(quest.config.configVersion === 2) {
		applicationId = quest.config.application.id
		applicationName = quest.config.application.name
		canPlay = ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task") > 0 && quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]
		const taskName = canPlay ? "PLAY_ON_DESKTOP" : "STREAM_ON_DESKTOP"
		secondsNeeded = quest.config.taskConfig.tasks[taskName].target
		secondsDone = quest.userStatus?.progress?.[taskName]?.value ?? 0
	}

	if(canPlay) {
		api.get({url: `/applications/public?application_ids=${applicationId}`}).then(res => {
			const appData = res.body[0]
			const exeName = appData.executables.find(x => x.os === "win32").name.replace(">","")
			
			const games = RunningGameStore.getRunningGames()
			const fakeGame = {
				cmdLine: `C:\\Program Files\\${appData.name}\\${exeName}`,
				exeName,
				exePath: `c:/program files/${appData.name.toLowerCase()}/${exeName}`,
				hidden: false,
				isLauncher: false,
				id: applicationId,
				name: appData.name,
				pid: pid,
				pidPath: [pid],
				processName: appData.name,
				start: Date.now(),
			}
			games.push(fakeGame)
			FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [], added: [fakeGame], games: games})
			
			let fn = data => {
				let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.PLAY_ON_DESKTOP.value)
				console.log(`Quest progress: ${progress}/${secondsNeeded}`)
				
				if(progress >= secondsNeeded) {
					console.log("Quest completed!")
					
					const idx = games.indexOf(fakeGame)
					if(idx > -1) {
						games.splice(idx, 1)
						FluxDispatcher.dispatch({type: "RUNNING_GAMES_CHANGE", removed: [fakeGame], added: [], games: []})
					}
					FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
				}
			}
			FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			
			console.log(`Spoofed your game to ${applicationName}. Wait for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		})
	} else {
		let realFunc = ApplicationStreamingStore.getStreamerActiveStreamMetadata
		ApplicationStreamingStore.getStreamerActiveStreamMetadata = () => ({
			id: applicationId,
			pid,
			sourceName: null
		})
		
		let fn = data => {
			let progress = quest.config.configVersion === 1 ? data.userStatus.streamProgressSeconds : Math.floor(data.userStatus.progress.STREAM_ON_DESKTOP.value)
			console.log(`Quest progress: ${progress}/${secondsNeeded}`)
			
			if(progress >= secondsNeeded) {
				console.log("Quest completed!")
				
				ApplicationStreamingStore.getStreamerActiveStreamMetadata = realFunc
				FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
			}
		}
		FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS", fn)
		
		console.log(`Spoofed your stream to ${applicationName}. Stream any window in vc for ${Math.ceil((secondsNeeded - secondsDone) / 60)} more minutes.`)
		console.log("Remember that you need at least 1 other person to be in the vc!")
	}
}

THANKS FOR CODE IT WORKS TO ME

@manish121597
Copy link

please explain full process of clainm fortnite crown means make video. you don't make video then explain step by step plz

@Onur-Vatansever
Copy link

please explain full process of clainm fortnite crown means make video. you don't make video then explain step by step plz

firstly accept quest from gift inventory after that ctrl+shift+i then found console write allow pasting and paste this code lastly wait 15 min

@aamiaa
Copy link
Author

aamiaa commented Jun 29, 2024

this gist is becoming chaos, this really needs to be locked down if possible

Sadly you can't lock gists

@MagicAyush
Copy link

this gist is becoming chaos, this really needs to be locked down if possible

no?

@MagicAyush
Copy link

Gaming console script?

its ez asf dude, create a microsoft account link it with xbox , then link it with discord too after this if not in unitedstates, then use a vpn for it then just play this : https://www.xbox.com/en-us/play/games/bt5p2x999vh2 its free game,btw login here with the same account wait for 10mins NOTE : IF YOU ARE ON PC, ALL STEPS WOULD WORK, BUT IF U ON MOBILE JUST CHANGE THE VIEW TO DESKTOP WHILE VISITING THE XBOX PLAY LINK

OMG THIS WORKS!

@RISHAB-CREATOR
Copy link

Gaming console script?

its ez asf dude, create a microsoft account link it with xbox , then link it with discord too after this if not in unitedstates, then use a vpn for it then just play this : https://www.xbox.com/en-us/play/games/bt5p2x999vh2 its free game,btw login here with the same account wait for 10mins NOTE : IF YOU ARE ON PC, ALL STEPS WOULD WORK, BUT IF U ON MOBILE JUST CHANGE THE VIEW TO DESKTOP WHILE VISITING THE XBOX PLAY LINK

OMG THIS WORKS!

btw now use this gist script , to claim that fortnite crown quest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment