Skip to content

Instantly share code, notes, and snippets.

@MPThLee
Last active October 4, 2026 13:33
Show Gist options
  • Select an option

  • Save MPThLee/3ccb554b9d882abc6313330e38e5dfaa to your computer and use it in GitHub Desktop.

Select an option

Save MPThLee/3ccb554b9d882abc6313330e38e5dfaa to your computer and use it in GitHub Desktop.
This code doesn't work anymore. I just decided to remove this code. You can check working code on comments.
/**
* !!!! This code doesn't work anymore !!!!
*
* - You can check working code on comments. I won't update this code anymore.
*
* Also, I just decided to remove this code. You can check revisions for old code.
* Since this code was made for discord client that almost 5 years ago, It seems like doesn't work anymore.
* I don't want people keep arguing in the comments, i decided to remove this code.
*
* Note: This code is now fulfilled with Javascript comments. This code won't work even if you pasted to console. doesn't do anything.
* Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#comments
**/
// Older gist description: Enable Discord Developer Menus in any environment except mobile app without BetterDiscord using Console.
@qwertychouskie

Copy link
Copy Markdown

Doesn't work anymore as of today.

Can confirm, just broke for me as well. Tried feeding the code and the error to Claude, but after many different tries, got basically nowhere. Was worth a shot, but it looks like someone more familiar with Discord internals will need to fix this one.

@qwertychouskie

Copy link
Copy Markdown
  • changed e.c!=undefined to e.b!=undefined
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes);
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

Oh fire, thanks!

@Orchidthederg

Copy link
Copy Markdown

Attempting to run this code today on my BD build, seems to stall without any error at first but does not seem to enable the Experiments tab.
it does, however, spit this out:
image
No clue what's going on! help would be appreciated.

@acendvgnt

Copy link
Copy Markdown

Attempting to run this code today on my BD build, seems to stall without any error at first but does not seem to enable the Experiments tab. it does, however, spit this out:
image
No clue what's going on! help would be appreciated.

@Orchidthederg
The output is normal. I'm not sure why it wouldn't work on a BD client. Try opening the User Settings AFTER executing the code block and see if anything changes?

@Orchidthederg

Copy link
Copy Markdown

Oh, huh, it works fine now! Apologies!

@Etanarvazac

Copy link
Copy Markdown
  • changed e.c!=undefined to e.b!=undefined
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes);
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

This worked! Thanks!

@0foxes

0foxes commented Jul 27, 2025

Copy link
Copy Markdown

working as of 2025-07-26

@Epic43110

Copy link
Copy Markdown

working as of 2025-10-16

@itsNeutron

Copy link
Copy Markdown
  • changed e.c!=undefined to e.b!=undefined
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes);
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

Oh fire, thanks!

FIRE.

@Kamiikaze

Copy link
Copy Markdown
  • changed e.c!=undefined to e.b!=undefined
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes);
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

Thanks! Working as of 2025-12-03

@sismankosmas-dev

Copy link
Copy Markdown
εικόνα_2025-12-14_203836461 this problem pops up

@acendvgnt

Copy link
Copy Markdown

this problem pops up

@sismankosmas-dev That means it worked. You should now see the Experiments section in your User Settings.

@Qwerty-Space

Qwerty-Space commented Feb 27, 2026 •

Copy link
Copy Markdown

I can see experiments, but enabling the favourites server doesn't work. I have the option of variant 1 and variant 2, but neither work.

Underneath the favourites server option it says "Warning: Server did not send any experiment config. You may need to check the "Send to Client" box in the admin UI.

Any ideas?

@Johnnycyan

Copy link
Copy Markdown

I can see experiments, but enabling the favourites server doesn't work. I have the option of variant 1 and variant 2, but neither work.

Underneath the favourites server option it says "Warning: Server did not send any experiment config. You may need to check the "Send to Client" box in the admin UI.

Any ideas?

I actually just found out that apparently they worked on it more and made it nitro only. You can still access it by going to https://discord.com/channels/@favorites though but the button in the channel list is gone.

@Qwerty-Space

Qwerty-Space commented Mar 2, 2026 •

Copy link
Copy Markdown

@Johnnycyan it doesn't appear in the server list even with nitro

Thanks for that link though, it works with and without nitro!

@Johnnycyan

Copy link
Copy Markdown

@Johnnycyan it doesn't appear in the server list even with nitro

Thanks for that link though, it works with and without nitro!

Yeah I noticed it works without Nitro currently. I believe it's intended to be Nitro only though. Was just passing some info from the Discord Previews server. I created a local equicord plugin to add a favorites button back to the server list as well which you can get here if you want. You have to set up local plugins though https://drive.google.com/file/d/1I15apQxxkuLwFUPRLBikEmLD6KwrlGM1/view?usp=sharing

@Johnnycyan

Copy link
Copy Markdown

it's also apparently going to be added to FakeNitro as well Vendicated/Vencord#4019

@mosts

mosts commented Mar 21, 2026

Copy link
Copy Markdown

appears to be patched

@MonfGeiger

Copy link
Copy Markdown

??????? what the word-vomit?

@acendvgnt

Copy link
Copy Markdown

Newly created account and already posting token grabbers is crazy work

@hironichu

Copy link
Copy Markdown

Thank Claude for this:

{
  var wpR = [];
  webpackChunkdiscord_app.push([[Symbol()], {}, function(r) { wpR.push(r); }]);
  webpackChunkdiscord_app.pop();

  var r = wpR[0]; // Discord runtime (not Sentry)
  var UserStore = r(287809).default;
  var user = UserStore.getCurrentUser();
  var nodes = Object.values(UserStore._dispatcher._actionHandlers._dependencyGraph.nodes);

  user.flags |= 1;
  nodes.find(x => x.name === "DeveloperExperimentStore")?.actionHandler?.CONNECTION_OPEN?.();

  var expStore = nodes.find(x => x.name === "ExperimentStore");
  try {
    expStore.actionHandler.CONNECTION_OPEN({ type: "CONNECTION_OPEN", user: { flags: 1 }, experiments: [] });
  } catch {
    try { expStore.actionHandler.OVERLAY_INITIALIZE({ user: { flags: 1 } }); } catch(e) {}
  }

  expStore?.storeDidChange?.();
  user.flags &= ~1;
  console.log("Done — open Settings → Experiments");
}

This should work, follow me and have fun ;)

@Alluseri

Copy link
Copy Markdown
  • changed e.c!=undefined to e.b!=undefined
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes);
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

This is the one that actually worked, thank you @acendvgnt

@zpiboo

zpiboo commented Oct 4, 2026

Copy link
Copy Markdown
  • changed Object.values(module._dispatcher._actionHandlers._dependencyGraph.nodes) to module._dispatcher._actionHandlers._nodes.values()
webpackChunkdiscord_app.push([[Math.random()], {}, (e) => { if(e.b!=undefined){module = Object.values(e.c).find(x => x?.exports?.default?.getUsers && x.exports.default._dispatcher._actionHandlers).exports.default;} }]);
nodes = module._dispatcher._actionHandlers._nodes.values();
try { nodes.find(x => x.name == "ExperimentStore").actionHandler["OVERLAY_INITIALIZE"]({ user: { flags: 1 } }); } catch (e) { }
original = [module.getCurrentUser, module.getNonImpersonatedCurrentUser];
module.getCurrentUser = module.getNonImpersonatedCurrentUser = () => ({ isStaff: () => true });
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["OVERLAY_INITIALIZE"]();
[module.getCurrentUser, module.getNonImpersonatedCurrentUser] = original;

(this is obviously based on @acendvgnt's last published snippet (here))

Also, I can't figure out what the OVERLAY_INITIALIZE call on the ExperimentStore is for, it seems to always fail. Why is it here?

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