Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Search Gists
Sign in Sign up

Instantly share code, notes, and snippets.

@rubsxyz
Forked fromaamiaa/CompleteDiscordQuest.md
CreatedJuly 11, 2024 11:46
    • Star(1)You must be signed in to star a gist
    • Fork(0)You must be signed in to fork a gist

    Select an option

    Save rubsxyz/f8e53e61fc557225d98e64ead21eaf55 to your computer and use it in GitHub Desktop.
    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. PressCtrl+Shift+I to open DevTools
    3. Go to theConsole tab
    4. Paste the following code and hit enter:
    Click to expand
    letwpRequire;window.webpackChunkdiscord_app.push([[Math.random()],{},(req)=>{wpRequire=req;}]);letApplicationStreamingStore,RunningGameStore,QuestsStore,ExperimentStore,FluxDispatcher,apiif(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;}letquest=[...QuestsStore.quests.values()].find(x=>x.id!=="1245082221874774016"&&x.userStatus?.enrolledAt&&!x.userStatus?.completedAt&&newDate(x.config.expiresAt).getTime()>Date.now())letisApp=navigator.userAgent.includes("Electron/")if(!isApp){console.log("This no longer works in browser. Use the desktop app!")}elseif(!quest){console.log("You don't have any uncompleted quests!")}else{constpid=Math.floor(Math.random()*30000)+1000letapplicationId,applicationName,secondsNeeded,secondsDone,canPlayif(quest.config.configVersion===1){applicationId=quest.config.applicationIdapplicationName=quest.config.applicationNamesecondsNeeded=quest.config.streamDurationRequirementMinutes*60secondsDone=quest.userStatus?.streamProgressSeconds??0canPlay=quest.config.variants.includes(2)}elseif(quest.config.configVersion===2){applicationId=quest.config.application.idapplicationName=quest.config.application.namecanPlay=ExperimentStore.getUserExperimentBucket("2024-04_quest_playtime_task")>0&&quest.config.taskConfig.tasks["PLAY_ON_DESKTOP"]consttaskName=canPlay ?"PLAY_ON_DESKTOP" :"STREAM_ON_DESKTOP"secondsNeeded=quest.config.taskConfig.tasks[taskName].targetsecondsDone=quest.userStatus?.progress?.[taskName]?.value??0}if(canPlay){api.get({url:`/applications/public?application_ids=${applicationId}`}).then(res=>{constappData=res.body[0]constexeName=appData.executables.find(x=>x.os==="win32").name.replace(">","")constgames=RunningGameStore.getRunningGames()constfakeGame={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})letfn=data=>{letprogress=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!")constidx=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{letrealFunc=ApplicationStreamingStore.getStreamerActiveStreamMetadataApplicationStreamingStore.getStreamerActiveStreamMetadata=()=>({id:applicationId,pid,sourceName:null})letfn=data=>{letprogress=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=realFuncFluxDispatcher.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 theQuest progress: prints in the Console tab, or by reopening the Gift Inventory tab in settings.

    Completing The Console Quest

    While the script doesn't work on it, it is possible to complete the "play any game on your console" quest without owning a console by using Xbox's Cloud Gaming:

    1. Connect your Xbox (aka Microsoft) account to Discord (Settings -> Connections)
    2. Go tohttps://xbox.com/play and login via the same Xbox account
    3. Launch a free game (such asFortnite)
    4. Leave it running for 10 minutes

    FAQ

    Q: Ctrl + Shift + I doesn't work

    A: Either download theptb client, or usethis 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 stringElectron/ 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.

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

    [8]ページ先頭

    ©2009-2025 Movatter.jp