I am in no way, shape, or form responsible for any damage caused by the usage of these snippets. You use them at your own risk! I am not related to Discord in any way.
Using the Chrome dev tools you can do some fun stuff with the Discord client. As they are disabled on the stable version you need to use the canary version which is used to test new features before they get released to the stable version. It's usage is totally legal and within ToS. Discord does not promote it but encourages users to use it to find bugs, etc.
You can download the latest Canary builds here:
The console stores your last commands beyond sessions. You can toggle through them by hitting ↑. This is especially useful when you want to activate the developer options after an update or restart. Just open the console with Cmd+Option+I on macOS and Ctrl+Shift+I on Windows, hit ↑ until it completes the correct statement in the console and hit enter.
Note that you need to type/paste and execute the command at least once for that to work.
This is not to be confused with the Developer Mode
of Discord that allows you to copy user IDs!
This will give you 5 new tabs in the sidebar of your Discord user settings:
- Experiments
- Experiments are a way for Discord to test out new things before they release them for everyone. They are usually run with a smaller user base. This tab allows you to opt-in for all experiments that Discord is currently running publicly.
- Developer Options
- Various settings that help Discord devs develop the application.
- Hotspot Options
- Dismissable Contents
- Re-enable tooltips, banners, coach marks
- Payment Flow Modals
- Well, pretty much what the name says
let wpRequire;
window.webpackChunkdiscord_app.push([[ Math.random() ], {}, (req) => { wpRequire = req; }]);
mod = Object.values(wpRequire.c).find(x => typeof x?.exports?.default?.isDeveloper !== "undefined")
usermod = Object.values(wpRequire.c).find(x => x?.exports?.default?.getUsers)
nodes = Object.values(mod.exports.default._dispatcher._dependencyGraph.nodes)
try {
nodes.find(x => x.name == "ExperimentStore").actionHandler["CONNECTION_OPEN"]({user: {flags: 1}, type: "CONNECTION_OPEN"})
} catch (e) {}
oldGetUser = usermod.exports.default.__proto__.getCurrentUser;
usermod.exports.default.__proto__.getCurrentUser = () => ({hasFlag: () => true})
nodes.find(x => x.name == "DeveloperExperimentStore").actionHandler["CONNECTION_OPEN"]()
usermod.exports.default.__proto__.getCurrentUser = oldGetUser
Credit: Check it out!
STOP! This will NOT give you free nitro! It will only make your client think you have nitro.
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m => m?.exports?.default?.getCurrentUser).exports.default.getCurrentUser().premiumType = 2
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m => m?.exports?.default?.getCurrentUser).exports.default.getCurrentUser().premiumType = 1
Please note, that <guild_id>
always needs to be replaced by the ID of the guild that you want to use the snippets for.
Display general information about a guild.
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m => m?.exports?.default?.getGuild).exports.default.getGuild("<guild_id>")
Display all features of a guild.
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m => m?.exports?.default?.getGuild).exports.default.getGuild("<guild_id>").features
When lurking a guild you can see all public channels but not interact with the guild (chatting, joining VC, etc.). You might know this mode as "Preview mode".
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m => m?.exports?.startLurking).exports.startLurking("<guild_id>", {}, undefined);
Just out of curiosity and because I am major stupid, does the
Enable Developer Options
console command permanently stick? or do the changes go away upon refreshing the client?