#👾-core-development
1 messages · Page 274 of 1
feat/telemetry comeback?
i have a slightly better way of doing it now as well
so ill rewrite it if we actually are doing it
it needs to be as independent from discord as possible
so if this integrates directly with discord code sorry but we can't
Content
Hi yall, I was posting a question of the forum in the Svelte discord server, when I noticed that the text coloring didn't apply. Maybe this has to do with the fact that it was a forum post, but I don't know.
Request Agreement
- [x] I have read the requirements for opening an issue above
if we're wanting to do this though we should put this to a poll to make sure people will agree to this, cuz we're gonna have to do a popup asking if they consent and that might startle people if they're unaware
no
no to which bit
This was made in figma
I’m not exactly sure what you mean but I’m assuming you mean by integrated directly you mean using discord’s components instead of your own?
Sorry if I’m wrong
yes
you remade the entire discord client in figma? O.o
A decent amount of it yeah
it looks good! but we'll have to see how feasible it is to implement
We try to avoid relying on Discord components in the settings ui as much as possible because it broke a lot in recent times
That’s fair
Settings ui should still function even if all webpack finds fail
So like if you wanted to add a button you use your own classes and stuff to make your own copy of the button component
yes
we already have components for some things
all the current settings ui is our own components, except the dropdowns/selects
Yeah I noticed those used the mana ones
match: /currentUser:\i,guild:\i[^}]*?\}\)(?=])(?<=user:(\i),bio:null==(\i)\?.+?)/,
what does this do
watch plugin dirs for new plugins so you dont have to restart the build process when you add/remove a plugin or native.ts
Satan pring the nichest fixes that only she will ever use
Anyone who adds or removes a native.ts or a plugin will use this
nino kinda right I never even encountered this issue but yeah ill merge anyway 
⌘C
$ bun run build
Tbh, these are the kind of fixes I try to PR in general projects when I encounter them. Even if most people don't encounter them often, it's just nice qol
I've encountered the issue so I support it
7f46533 add FixSpotifyEmbeds volume slider - Vendicated
6e860ed Add toolbox option to GameActivityToggle - Vendicated
I added an option to GameActivityToggle plugin to move the toggle into the toolbox
so you dont have it down here
instead it's here
is it better this way? so it's more compact and if you have like 20 plugins with actions it doesn't become sooooo long
IT LOOOKS GOOOOOD
i feel like that's only better when its not a single item's worth of height
i like this
So... is it gonna be merged or not?
I'm not sure myself at this point. Last time I've been told I'd just have to wait for a maintainer to look at the PR and merge it, but even if everything that's been requested has been done and the plugin still works without issues to this day, it's been over a year and nothing happened =/
So... is it gonna be merged or not?
I'm not sure myself at this point. Last time I've been told I'd just have to wait for a maintainer to look at the PR and merge it, but even if everything that's been requested has been done and the plugin still works without issues to this day, it's been over a year and nothing happened =/
Indeed.
It's very sad that this plugin has been in one (1) year limbo without any acknowledgement. Surely there were at least 5 minutes to test it if it works...
A reprisal of this using the new forced-upon titlebar in Discord would be a welcome sight if anyone with the skills to do it wish to make that happen. It woulc certainly bring justice to an eyesore of the current Discord UI.
Should close pr because manti said it's ready gotta keep the streak going 
make this configurable @austere talon
meh
i dont think there's a good way to fix this
so maybe force plugins into submenus afterall
the great remaking continues
vtest dev
Now testing! 
Seems like everything is working fine (for now) 
ShowConnections (had no effect):
ID: 978395
Match: ```
/currentUser:\i,guild:\i})(?<=user:(\i),bio:null==(\i)?.+?)/
why tf is it broken on stable but not canary 😭
how did discord achieve this
did they push a change to stable then revert it on canary
@limber skiff i think we should remove ts-pattern common again
imo it's not useful enough to warrant using because it could break or be removed at any time
just use traditional if else
yes
specifically
1.5h after pushing it to stable
😭
from the last time i see it onstable at least i cba to look furhterup
Updated the plugin to support the two new timestamp styles
Specifically:
s- "Short Date, Short Time"S- "Short Date, Medium Time"
I've been waiting for round a year myself on my plugin too, just kinda depressing
I think it's fine to keep it until it breaks once
the finds are very solid
(if I remember correctly)
Dear VC devs and maintainers,
I'm trying to automate my system update workflow right now and would love to add updating/repatching Vencord into that, since every time Discord updates, I have to run the Vencord installer again anyway. I'm on CachyOS, so I'm using the CLI command from the website. For the automation to work smoother though, ideally I'd love for a way to pass arguments into the script curl pulls down, making something like `sh -c "(curl -sS https://vencord.dev/install.sh)" --...
The install script is just a small script that downloads and runs the installer binary, which does support cli flags
You can just download it manually from releases https://github.com/Vencord/Installer/releases/download/v1.4.0/VencordInstallerCli-linux
and then run it with for example ./VenfordInstallerCli-linux --install --branch stable
use --help to see all options
since the scope of this pr has increased considerably since it was opened, is there anything that should be split into a separate pr or is it good as it is?
@desert cosmos
Love but hate
how
why point it out in the random merge commit 😭
i already pushed to dev yesterday
idk i saw and FaFa has been begging for this feat for ages
not everyone’s constantly watching Vench0rd Dev Channel
also you should reimplement github webhook into venbot and make it use cv2
INSANEEEEEEE
6ed57c7 undo changes to src/components/settings/tabs/th... - Vendicated
064d3a3 just add displayName option to ErrorBoundary.wrap - Vendicated
lovee
import { isTruthy } from "@engineersamuel/istruthy";
export const isTruthy = x =>
typeof x == "undefined" ? Object.is(x, document.all) ? false : false :
typeof x == "object" ? Object.is(x, null) ? false : true :
typeof x == "boolean" ? x < 0 || x > 0 ? true : false :
typeof x == "bigint" ? x < 0n || x > 0n ? true : false :
typeof x == "string" ? x.length > 0 ? true : false :
typeof x == "symbol" ? true :
typeof x == "function" ? true :
true
love condition ? false : false condition ? true : condition2 ? true : true
lmfao
@copilot this is ready to merge
only on canary right now
What happens when the bug or crash occurs?
With the new settings overview (see attachment)
Vencord seems to not inject their settings into.
What is the expected behaviour?
Have the Vencord settings
How do you recreate this bug or crash?
- Have the user experiment for new style of user settings
Errors
No response
Request Agreement
- [x] I am using Discord Stable or tried on Stable and this bug happens there as well
- [x] I am a Vencord Developer
f87a513 improve build watcher to also detect newly crea... - sadan4
52e76a9 useSettings: add prefix/wildcard settings path ... - Vendicated
4469a00 improve descriptions and use card component - Vendicated
Pull Request Overview
This PR adds customization options for plugin UI elements, allowing users to toggle visibility of ChatBar and MessagePopover buttons. The implementation refactors the existing button APIs to use a new data structure containing both an icon (for settings UI) and a render function (for actual rendering). Eight plugins are migrated to the new API while maintaining backward compatibility with the old API.
Key Changes:
- Refactored ChatBar and MessagePopover butt...
Map.entries() returns a MapIterator, not an array. The .filter() and .map() methods don't exist on MapIterator. This needs to be wrapped with Array.from() first: Array.from(MessagePopoverButtonMap.entries())
const elements = Array.from(MessagePopoverButtonMap.entries())
The catch block doesn't return a value, which will result in undefined being added to the elements array. Should explicitly return null to maintain consistency with the if (!item) return null; check on line 78.
logger.error(`[${key}]`, err);
return null;
Map.entries() returns a MapIterator, not an array. The .filter() and .map() methods don't exist on MapIterator. This needs to be wrapped with Array.from() first: Array.from(ChatBarButtonMap.entries())
{Array.from(ChatBarButtonMap.entries())
Map.entries() returns a MapIterator, not an array. The .map() method doesn't exist on MapIterator. This needs to be wrapped with Array.from() first: Array.from(buttonMap.entries())
{Array.from(buttonMap.entries()).map(([name, { icon }]) => {
The destructured Icon variable is extracted but never used in this code block. Either remove it from the destructuring ([id, { icon }] or just [id]) or use it to display an icon in the menu items.
9455b67 don't use Iterator array methods (too new) - Vendicated
eb5a42d Add the option to toggle plugin chatbar & messa... - Vendicated
shrimply use spread instead of concat
[
...GuildChannelStore.getChannels(guild.id).SELECTABLE,
...GuildChannelStore.getChannels(guild.id).VOCAL,
...Object.values(ActiveJoinedThreadsStore.getActiveJoinedThreadsForGuild(guild.id))
.flatMap(threadChannels => Object.values(threadChannels))
]
export interface ChannelComparator {
does this work?
[ChannelTypes.GUILD_CATEGORY]: ComparableChannel[];
we shouldn't use github raw for this due to rate limiting. We could host it on something like assets.vencord.dev
export const JSON_URL = `https://cdn.jsdelivr.net/gh/${JSON_REPO}/${JSON_REPO_COMMIT}/grammars.json`;
export const shikiRepoGrammar = (name: string) => `https://cdn.jsdelivr.net/gh/${SHIKI_REPO}/${SHIKI_REPO_COMMIT}/packages/tm-grammars/grammars/${name}.json`;
@Vendicated ?
maybe
yeah but i wanted to move away from it 
we can set up our own then
export const shikiRepoTheme = (name: string) => `https://cdn.jsdelivr.net/gh/${SHIKI_REPO}@${SHIKI_REPO_COMMIT}/packages/tm-themes/themes/${name}.json`;
cf worker that calls to either githubusercontent (which has a cache-control of 5 minutes, so it'd be up to date and we'd only ever hit guc once every 5 minutes) or jsdelivr (which caches for 12 hours on the cdn level, 7 days in the browser)
i think the former is fine
I currently have the script for making them json formats scheduled every month just so you know 
I figured not much would change for it to matter
I also have one generated for themes but couldn't get it to load json into the settings within the 5 minutes I actually worked on themes
I also need to minify and remove parts of the jsons that arent needed but besides that lmk anything else
where exactly do those jsons come from can we just load them from jsdelivr too
a824452 BetterSettings: fix menu organisation (#3793) - thororen1234
import { gitHash, gitHashShort } from "@shared/vencordUserAgent";
and remove from below
author: c.author?.login ?? c.commit?.author?.name ?? "Ghost",
@gritty iris
@austere talon ill make this if you want, just lmk which way you wanna go with it and ill go from there
index.js is just remade to a json
nah it should just be static files in one way or another and optimally not something we can change out at will
yop fix also stable compat yay or nay?
yes 👍
I 100% forgot to respond
This would be useful. I have been down the rabbit hole of trying to disable middle click paste for Vesktop without disabling middle click entirely. it is not as easy as "just adding an event listener", and the Chromium flag which "natively enables this feature" does enable auto-scroll, but it does not disable pasting which results in the clipboard being pasted into the discord text box everytime I autoscroll.
Summary
This PR introduces Vim Mode, a lightweight, architectural approach to Vim-style motions within Discord. This plugin is built on a strict Engine > Command >Adapter separation, making it robust and easy to extend.
Rather than re-implementing UI features (fuzzy finding, dropdowns, overlays), Vim Mode acts as a Vim translation layer that maps Vim motions directly to Discord’s native actions in Normal Mode.
- Buffers (
go) : Triggers Discord’s Quick Sw...
Vibecode slop
This plugin is built on a strict Engine > Command >Adapter separation, making it robust and easy to extend.
what?
I'd say it sounds overengineered if it wasn't obvious not engineered at all
it would be amazing if it is properly made, but it isnt properly made, so it isnt amazing 
tbh i feel like your best bet would be using this as a base https://github.com/philc/vimium
i tried that once, vimium cant detect the server list and channel list, which are clickable
im assuming it's because they are just divs and not buttons
they're anchors, which it should support
Recent update to Discord Canary on Linux stopped using system's native title bar. This pull request makes already existing option to force native frame also work on Linux.
title: "Use the operating system's native title bar instead of Discord's custom one",
vtest dev
Now testing! 
MemberCount (took 5.1ms):
ID: 593618
Match: ```
/#{intl::VIEW_AS_ROLES_MENTIONS_WARNING}.{0,100}(?=])/
Seems like everything is working fine (for now) 
40fe13f LastFMRichPresence: fix duplicating spotify pre... - Vendicated
6afcce3 refactor: fix circular dependency issues & impr... - Vendicated
78a2add USRBG: improve settings ui - Vendicated
3452a72 remake and improve Card/Flex components - Vendicated
ddc1b34 Plugin settings: add api/user plugins filter - Vendicated
95369b2 refactor preload to support preload sandboxing - Vendicated
Essentially sandboxing makes it so that the preload script is also sandboxed and has similar access to the renderer (plus a few electron apis). So we have to move all file operations and such to the main process via IPC call. That's what this PR does
adds tabs to the notification log so plugins can have their own filtered view. plugins can register a tab via the notificationLogTab property
already added it to betterSessions and relationshipNotifier as examples
i feel like tabs could just be the plugin name
This should just be a prop passed to the showNotification function
showNotification({
category: "Example Category",
title: "Cool Title",
body: "wowie"
});
-
It patches
ChannelTextAreaFormComponentto intercepthandleInputKeyDownand capture the slate editor instance to call slate’s built-in methods directly and useTransforms.setSelectionfor cursor movement. -
A flux store tracks the current Vim mode (
NORMAL/INSERT), numeric count (prefix), and a buffer for chords. -
A
VimStatuscomponent subscribes to this store and displays the currentin theChannelTextAreaComponent. -
Working motions:
- Cursor motions:
h, ...
- Cursor motions:
They just reopened it?
I rewrote the whole thing (properly this time)

I'm thinking of organising all vencord styles like this
rn styles are kind of all over the place and it's very easy to change order of the elements and thus change priority which breaks things
00b4687 orgamise all styles into one root node - Vendicated
Incomplete URL substring sanitization
'discord.com' can be anywhere in the URL, and arbitrary hosts may come before or after it.
c27dc97 Run autofix to sort these imports! - Vendicated
this needs testing to ensure no regression
moved to avoid circular dependency issues with BaseText and these do make more sense to be in utils anyway
and by "thinking of" i mean I already did
Vesktop will also be moved in here
This adds a new plugin: QuestTracker.
QuestTracker watches the built-in Discord Quests system and gently yells at you when new quests show up – including Orb quests. It’s read-only, doesn’t spoof gameplay, and doesn’t touch any quest heartbeats or HTTP endpoints.
What it does
- Detects new quests appearing in the Quest tab / Quests store.
- Differentiates Orb quests vs non-Orb quests based on the quest’s reward metadata.
- Notifies the user when:
- A new quest be...
we love ai
Run autofix to sort these imports!
idk how i didnt catch this earlier lol
broke some layout of multiple plugins and even vencord settings ui lmao
I was literally annoyed because ShowConnections looked so bad but just shrugged it off as discord update
then I looked closer and realised it was cause of that change then realised it affects way more ui
@turbid hatch im gonna casually test your translations over the next month if I get everything moved 
I will let you know if anything breaks

I just casually caused crowdin to make over 80 commits lol
i have thoroughly tested it and i dont see any issues its just getting actual translators and translating the mod
I know 😭
and merging obviously
I asked my server and some agreed so if any vencord related translations pop up ill let you know
just remember if it does get merged we might change how it works upstream a bit and translations may conflict
thats fine 
so it might be best holding off until we merge it before u start fiddling with it too much
but up to u
want me to add the date 5 years from now or later?

I knew it has a good chance of getting changed but it doesnt bother me that much
speaking of the translation pr
I mass migrated every forms thing because I was bored
thats basically what im doing with translations
kettu is what intrigued me to try it
ah
they're making ra1ncord now tho but I thought the translations were cool
pr
all the stuff to basetext?
and paragraph and whatever
I didnt get around to button yet :(
im converting all of them but a few with variant="heading-xl/bold" I dont have an idea
I did the size and weight idrk what to do abt the heading-
the equivalent is just xl + bold, but it would be better to use Heading
alr
ima pr its in a moment but I need to fix that
just so I can know if anything needs changed
Migrate to vencord components for forms text and button
thats everything migrated lmk if anything needs changed n such
also I have no idea what color="header-primary" is so I left it
Finished the new settings UI support. The existing branch only added a placeholder,
so I wired up the full Vencord section and tabs, added proper icons, fixed the
version/info rows, and added an option to force the old UI if people prefer it.
First time opening a PR here, so if anything should be done differently, just let me know.
if it really needs updated it should be https://vencord.dev/discord
actually not bad based on first glance
nah less consistent
well ig could try and fallback to hardcoded values
closes #128
a copy of #144 (credit where due), but unlike that PR and like the windows version, the CLI is carried to the final release where it is uploaded separately
i also bumped actions/upload-artifact since v3 is no longer supported, as well as added .DS_Store to the .gitignore because MacOS is a pain
tested and confirmed working on MacOS Tahoe 26.2 Developer Beta 2!
<img width="388" height="128" src="https://github.com/user-attachments/assets/56666b74-f547-4c22-abeb-c007eecdbe31" />
I like using cli for these types of things but not sure how important it is considering how the app works (okay) on mac already
iirc the cli was only made available on windows because windows is bad and didn’t always make the ui work
isMainChat only checks for analyticsName === "normal", so plugins like PreviewMessage / Translate / SendTimestamps / SilentTyping don't show in the sidebar composer (the split view for forums, VC text chats, and threads).
Is that intentional, or should sidebar also count as main chat?
What happens when the bug or crash occurs?
The message does not get deleted
What is the expected behaviour?
I expect that when a backspace click a message i sent (or invoked by me through a chat input command provided by a user app) that it should be deleted
How do you recreate this bug or crash?
- Install a user app
- Run a command that invokes a response
- Hold backspace and click
Errors
No response
Request Agreement
- [x] I am using Discord Stable or tried...
this works for me, this may be another issue. Join the support server as stated in the issue template
i forgot to clarify that this bug seems to only be present in situations where you can't normally delete the messages of others such as a DM, so it is possible you we're just testing this in one of those situations where it works (manage messages granted).
Sorry about not including it in the initial comment i was half way through typing a variant of this as you posted that 😭
easy fix
i feel like the type should also be updated to include interaction meta instead of anying the message
You can notice this guy makes userplugins
typescript is for liberals
HOW
fixed
Moved the settings icons into the Icons component for consistency and adjusted their size/alignment to match Discord’s native settings icons better
I missed the file the first time I looked, but I just noticed it so quickly moved them over
yeah, send plugin code and ill test
(too lazy to go through git history to find it)
As a little fun project for my friend, I am opening this PR as to publish new plugin "TF2 Old English Translator", which aims to reproduce a Medieval (Chat) Mode from the game "Team Fortress 2".
When this mode is activated, all messages sent into chat gets automatically translated into old English -- with randomly added prepended or appended phrases; and vocabulary replaced by ancient words or phrases, based on the autorp.txt dictionary file from TF2.
This is my first Vencord plugin, an...
@warm quiver
The comments in the code reveal it to be ai slop
I didn't believe you cause the few comments I saw looked reasonably like something I might do for a piece of code I didn't feel like rejustifying to myself months later but then I saw they used an em dash in one of them lol
nobody is using emdashes in js comments 😭
The ones in index.tsx do look pretty legit, but then we also have iconColor = "var(--brand-360)"; // Example brand color for reverse
cute idea but this is way too much code for something that is very gimmicky and not particularly useful
Adds a fallback to search by song name and artist if the initial search with album returns no results. This increases the likelihood of finding the correct song data from the iTunes API.
Previously plugins that use the isMainChat (PreviewMessage, SendTimestamps, SilentMessageToggle, SilentTyping, and Translate) didn’t appear in the sidebar composer for threads, forum posts, or VC text
Discord labels those as "sidebar" instead of "normal", so they were being skipped
This update treats "sidebar" the same as "normal" so all plugins show up as expected
Fixes #3715.
<Button {...props} isMainChat={["normal", "sidebar"].includes(props.type.analyticsName)} />
Is SelectedChannelStore still needed or can channel.id be always used?
SelectedChannelStore wasn’t reliable in for the sidebar since it sometimes pointed at the parent channel. Switching to channel.id fixed the inconsistent loading and the wrong target behaviour, so the fallback wasn’t needed, not sure why I left it there tbh
just tried it and confirmed the old plugin still works
apparently accountpanelserverprofile would just spam open the modal one after another once it was closed so I added a little check for it but I need to add it opening the server profile not just user profile
I have no idea why its not opening the server profile
So, have you ever wanted to randomly send a gif from your entire fav gifs but scrolling down through the list lags it so much and you have so many to scroll through? well this plugin fixes that!
sorry if the code is a bit bad, i wrote 70% of it myself and im new to both typescript and discord mods and it took like a while to code, the 30% is from help with hazrtine from this discord although it seems insignificant they actually helped me with the last thing before finishing this which was...
So, have you ever wanted to randomly send a gif from your entire fav gifs but scrolling down through the list lags it so much and you have so many to scroll through?
no
Also just like idea of having something weird in your favorite gifs, that gets sent and gets you banned from a server
Yeah
Me when I send this in the lastfm server
lastfm got a server?
Oh
omg is this the ultrakill custom level guy

A plugin that adds a context menu option to sync the category permissions to all channels in the category
am i crazy or is that not a native feature
it is
i dont think it ever got removed tho? just never enabled globally rlly
the experiment going to 0% rollout is kinda the same thing tho
igso
It's not
Accidentally committed the change to build.mjs (it was a bug file unix file permissions), please ignore it
interesting, im trippin then
one day we will get pulled
pulling you down a cliff
Made a plugin that mutes a microphone when it's physically muted. A main idea is to show for other members that you can't talk without a need of always remember to mute yourself in the app.
Not fully tested, because firstly it was the plugin to satisfy my need, but then I decide to open a PR.
What happens when the bug or crash occurs?
The plugin has the following check:
if (settings.store.hideWithActivity) {
if (PresenceStore.getActivities(AuthenticationStore.getId()).some(a => a.application_id !== DISCORD_APP_ID)) {
return null;
}
}```
`getActivities` returns the following for me when i have a text status enabled:
```json
[
{
"name": "Custom Status",
"type": 4,
"state": "we freeze, we fall up~",
"emoji": null,
"metad...
i love markdown
easy fixxx
also FUCKK my maloja doesnt set trackData?.["@attr"]?.nowplaying when proxying to lastfm
wouldnt work for me anyway
insan
sorry for the inactivity right now, I've been a bit busy for the end of the semester
I'll get back to helping once it's done (very soon 🙏)
@gritty iris what's the reason for this change
arguments[0] would still work here
also what happened to the pr which fixed it not displaying in the user control pane
What's the usual PR review process like here? I've recently started contributing a few small fixes and was just curious how things normally move through review and merging
fixes are usually merged very quickly
new features it really depends
but also merging fixes depend whether me or vee are available to merge
vtest
Now testing! 
extractAndLoadChunks(["initialSelectedDecoration:", "/initialSelectedDecoration:\i,.{0,300}Promise\.all/"], /(?:(?:Promise\.all\(\[)?(\i\.e\("?[^)]+?"?\)[^\]]*?)(?:\]\))?|Promise\.resolve\(\))\.then\(\i\.bind\(\i,"?([^)]+?)"?\)\)/)
extractAndLoadChunks(["initialSelectedDecoration:", "/initialSelectedDecoration:\i,.{0,300}Promise\.all/"], /(?:(?:Promise\.all\(\[)?(\i\.e\("?[^)]+?"?\)[^\]]*?)(?:\]\))?|Promise\.resolve\(\))\.then\(\i\.bind\(\i,"?([^)]+?)"?\)\)/)
is it 100% rollout already
For whatever reason arguments could be undefined
I have a fix for the broken patch as well it's just not good
Is the new settings UI still too unstable for Vencord, or is there another reason it hasn’t been switched over yet? Just curious since I remember seeing it mentioned a while back that it was going to be unstable to patch
Also I don't think I fixed the user pane but I can in a sec
I pushed a fix
the only issue is the user panel
I meant the decor one
this?
Ye
Oh lmfao
\e 
you probably meant to type \i ?
I meant to type \i\.
and nope
.e is the chunk load function
⚠️ Unable to find any images matching that.
so it's meant to be hardcoded like that
ah
the decor isnt being set down there is the problem
it seems to be patching the right place so I honestly dont know renderNameZone uses renderAvatarWithPopout to display and were already patching the decor there
oh wait no im just dumb I fixed it
@limber skiff you think setting it back to args is gonna be fine?
it was randomly undefined which is why I changed it
pushed a fix for user panel
yeah
there's no difference between the parameter and args
it's not an arrow funciton
@gritty iris can you make the decoration override here too?
I can look into it
I think the shop uses that
that uses this tmk
im taking a look rn
alr
I guess not
I got it working but I think the finds are iffy
ill push rq
ill take a look
just pushed
it replaced it in all the right modals which is good
why not .nameplatePreview,{
it seems better than the other one
True
for the other one I think we can use the hash
ayozFl
I dont know the non hashed msg tho
#{intl::ayozFl::raw}
I don't have the non hashed either I looked
that list is now old
I would've done the intl key otherwise
That only changed the last char
If you remove the last char it will show the old key which works
Alr will do when I get back upstairs
alr
#{intl::ayozFl::raw} fails
huh

I fixed it
Now testing! 
have they setled with the new version?
think so
vtest
Now testing! 
WebContextMenus (took 8.1ms):
ID: 29264
Match: ```
/(?<=#{intl::COPY_IMAGE_MENU_ITEM}),)action:/
Seems like everything is working fine (for now) 
nice
thanks @gritty iris

Easy green square on the chart
commit farmer
Nah I'm just being mean
what's the new alternative
it was just removed
--icon-default and --text-default use the same color mix tho
Pull request overview
This PR adds a new plugin called syncCategoryPerms that provides a context menu option for Discord category channels to sync their permissions to all child channels within the category.
- Adds a new plugin that allows users to sync category permissions to all channels in that category with a single click
- Includes permission checking, retry logic for rate limiting, and user confirmations
- Provides helpful feedback via toasts and alerts to inform users of the syn...
Consider using channel.isCategory() instead of checking channel.type !== 4 for better code readability and maintainability. The Channel class provides an isCategory() method that makes the intent clearer.
if (!channel || !channel.isCategory()) return;
Consider using channel.isCategory() instead of checking channel.type !== 4 for better code readability and maintainability. The Channel class provides an isCategory() method that makes the intent clearer.
if (!category || !category.isCategory()) {
The confirmColor property references a CSS class "vc-sync-perms-danger-btn" that is not defined anywhere in the plugin. Either:
- Create a corresponding CSS file (e.g.,
styles.css) with this class definition, or - Remove this property if not needed, or
- Use a standard approach for styling confirm buttons.
Note: Other plugins like ReviewDB have commented out similar confirmColor usage with a note that "this just adds a class name and breaks the submit button", suggesting this appr...
HideServers adds the ability to hide Discord servers from your guild list.
✨ Features
- Hide/Unhide Server added to guild context menus.
- Hidden servers are removed from the guild tree & flattened list.
- Hold Ctrl+H to temporarily reveal hidden servers.
- Fully compatible with folders.
- Includes a small “How to Use” section in settings.
🛠 Internals
- Patches SortedGuildStore (getGuildsTree, getFlattenedGuildIds).
- Stores hidden guild IDs via plugin settings.
- Auto-refreshes...
Insert "it can be done with css" gif
idk abt --header-secondary, but --text-subtle looks visually nearly identical to the old --text-secondary
too niche (to hide servers just put them in a folder on the bottom, no plugin needed) and has big potential for confusing users who either are dumb or forgot they enabled this plugin
also based on the pr description this seems like aislop
It's been 2 years and it still works without a trouble 🙏 ( well, technically 5 month since last small fix )
This is a cool plugin
Fix: Use cancelText intead of secondaryConfirmText, because it does not show.
New:
Old:

Love that image
What happens when the bug or crash occurs?
CSS variable --header-secondary is not defined in ServerListIndicators, in the latest Discord, making those indicators invisible.
Thus, I cannot see X ONLINE and Y SERVERS under avatar.
What is the expected behaviour?
We should see X ONLINE and Y SERVERS under avatar.
How do you recreate this bug or crash?
Open Discord and see this.
Errors
No response
Request Agreement
- [x] I am using Discord Stable ...
btw @limber skiff did u see i did this (as an option)
so you don't have to have the button in your user panel
yeah
the user panel has so little room..
That's why you need my snippet (shameless self-plug) /j
Thing is that is 1 click less than going to settings so a slight bit better, but imo not worth it if you use BetterSettings
The way better settings has the right click menu is amazing btw, idk who had the idea, but it's so nice
Can confirm the snippet is peak
So weird using Discord without it
what snippet
i might have forgotten to update it
should probably do it
meh not a fan
peak
wait that's what it does now ?
it's not as broken as i'd expect
no thats just discord lol
how
this is your snippet
even if u make ur channel list as small as possible u get this
holy F the snippet still work lmao
made that so long ago and didn't update it
actually this
seems like discord has a fine default now
i still prefer older style stuff basically only being on the channel list because having some element hover on top of the UI is smth that feels weird to me when it's always there
but that's just design choice
A plugin that allows users to customize notification sounds for specific users and servers.
also there's a thing i wonder, i have all my confidentiality on since well always and it seems like discord says i've spent 0 minutes in VC, i assume NoTrack is blocking those ?
I had all those on and voice still didn't show correctly 
Everything else seemed fine, just not the voice stats
i have all of those enabled since always
and the VC stats are all 0 or null
they've only started tracking recently
Oh, that makes sense
From a quick look through my recent calls, I've spent at least 10 hours in November and over 50 hours the month before that, but mine only shows 4 hours and says November was the month I spent the most time in voice so unless they started tracking late November 
Hop off the third
I'll bet they started tracking when the timer for how long a VC has been active became a feature
yeah maybe
mine only said 133 hours
I've def did way more earlier in the year
hope it wasn't actually no track haah
i've been in VCs recently, yes this is the relevant part
{
"voice": {
"total_voice_minutes": 0.0,
"total_voice_minutes_percentile": null,
"top_month": {
"month": 1,
"num_minutes_in_voice": 0
}
}
}
guhhhhh
i'm pretty sure i was off the third, but yeah shouldn't change much
always with a client mod?
my theme is becoming abandonware
i only go in VC with Vencord on PC
actually no, i used to come with the official client in 126.21, but now VC is completely broken with it
yes i still rock the vanilla 126.21 on my phone, yes maybe i could use Aliucord, but the vanilla client just work anyway
is that that the last version before tabs v2
no no, the native kotlin app
oh
not the react bullshit that works like ass
I've got used to the react native version once I got a new phone
but if your phone is slow the kotlin version is much better
it does have weird bugs tho
to me the fact that the kotlin app still works except for things like VC which are broken due to no support of DAVE show how much better it is
the new react version has had so many glitches, i've seen json errors, i've had shit like slowdown, the voice overlay just used to not work
and it also has buggy design on android (on 2 different devices) and just actually crappy design
it's not slow per say, not the latest anymore, but fine
Samsung Galaxy A52s 5G (EU variant)
the fact you can't swipe to see the member list and the search being even worse than usual is like bruh to me
oh yeah the search sucks
Here by example
I opened the app and it's alr the wrong size and is missing a part
This just does not happen on the old app
also idk what they did to the size of the interface
but it's HUUUGE
the information density is so bad
anyway (for the rest of a convo, let's move there : #🧊-off-topic-iceman-only message)
back to the point, maybe NoTrack should give more options or smth
maybe there's some tracking that we're ok with
i say maybe
because some people do want to have stats like how much time they have spent in VC
and others don't
also notrack being greyed out at the bottom of the list will maybe make people not consider checking its settings
maybe the config wheel and text shouldn't be greyed, maybe just the switch and/or maybe it could have a lock on it instead of smth ?
When was that?
My alt shows 50 minutes and March is the month I was in calls the most
bruh discord removed secondaryConfirm from alerts
idk about this, discord also doesn't show their buttons here
if anything, only plugins that actually insert something in the chatbox should show here. Translate, SilentMessageToggle and SilentTyping shouldn't show here. InsertTimestamps could
idk about this, discord also doesn't show their buttons here
if anything, only plugins that actually insert something in the chatbox should show here. Translate, SilentMessageToggle and SilentTyping shouldn't show here. InsertTimestamps could
isn't silentmessagetoggle the same as inserting @silent in front of the message ?
also preview message would be incredibly useful
being able to see how your message will look formatted is useful everywhere
Just your average Daddy
it looks suspiciously ai generated but i couldnt care less i will still test it cause it seems cool
by the way, i think they don't show the message buttons, solely due to limited space
clearly they seem to show the buttons when space is present
At the moment the only thing that appears there is emojis, even though you'd expect any chat related plugin to show up as well. Just thought it would be nice to also be able to use them in these places
<img width="848" height="372" alt="image" src="https://github.com/user-attachments/assets/70c0633b-d7f0-4e3c-8b9f-70b60205627e" />
<img width="837" height="367" alt="image" src="https://github.com/user-attachments/assets/f160c098-927c-4fc3-9edb-873bd5fa4e03" />
i've tried to do smth with CSS to make it so that when you type more and the chat bar enlarge up, it basically make buttons more grid like until it can become a straight line up, but it didn't work well
Thanks for working on this! Some feedback below
const enum LayoutType {
SECTION = 1,
ENTRY = 2,
PANEL = 3,
PANE = 4
};
this shouldn't be necessary. it can never error unless you're calling it too early. this shouldn't be a problem, but if it is, you can just use PlainSettings.plugins.Settings instead
customSections should remain respected. this is used by Vesktop and some userplugins
please keep the order unchanged. Updater should be above cloud. consider using
const vencordEntries = [
makeEntr(),
!IS_UPDATER_DISABLED && UpdaterTab && makeEntry()
].filter(isTruthy)
Right now all titles are duplicated. The titles inside our components should be removed and the ones in this PR should be adjusted to match the old titles
<img width="2231" height="1345" alt="image" src="https://github.com/user-attachments/assets/fe60f2d1-89fe-4932-a1af-f1aeeee530e1" />
works perfectly - tested from me
i also recommend removing the emojis as they make it feel more cluttered
all these transforms are really weird. where did you take these svgs from?
oh and also fix the spelling mistake in the folder name
<img width="244" height="30" alt="image" src="https://github.com/user-attachments/assets/89928854-ef16-4df2-a7ab-f95b7292c0a5" />
why does this still exist
Note: Not quite the same issue but similar enough I figured not worth a separate issue / would help in debugging
Subheadings in the Plugins panel of the Settings view appear to be background (default?) color
<img width="1180" height="634" alt="Discord Settings panel on the Vencord Plugins page, showing subheadings that are not their correct color" src="https://github.com/user-attachments/assets/62bf53ea-fe0f-4f49-9748-f32920a752fe" />
Funnily enough, it's the wrong color on both dark/light ...

dude imagine if devtools were actually usable instead of laggy as fuck
Thanks but I don't really like this fix.
Also, it seems that Discord just fully removed secondaryConfirm stuff. SupportHelper is not the only plugin that uses that. I will probably just make our own custom alert modal
thanks for testing. i just pushed a fix for the typo and removed the emojis. should be better now
thanks for testing. i just pushed a fix for the typo and removed the emojis. should be better now
as i said i prersonally dont like emojis and i dont think they fit the vibe and if you really want to use emojis use the discord ones
no you can't imagine, only hope and inhale a lot of copium...
The icons are based on the Discord assets, which I found in a Figma file (https://www.figma.com/community/file/1445040225357227161), except the cloud (I made that one) and a slightly adjusted plugins icon. The odd transforms came from how I exported them originally, for some reason I decided to fix it that way rather than re exporting them which I’ve now done properly

By this I assume you meant the entire toggle for the old UI, which would have been nice to have but I imagine it would get removed eventually
u marked two things as resolved without actually resolving 😭

Which two?
dw about it ill do those
I assume one of them was the customSections (I wasn't 100% sure what that one was trying to point out because I didn't touch them to begin with
), but what was the other one I missed?
the fallback position
because I didn't touch them to begin with
yes that is the issue
they are not being added to the new ui
anyway don't worry about that i will implement it
for future reference if u don't understand what a feedback is asking just reply instead of marking it as resolved 😭
anyway like i said i will fix this
should deprecate the old one and add a new property but we need backwards compat because otherwise vesktop users won't have settings until they update vesktop
Also the thing about the titles, did you want vencord changed to vencord settings to match the old one?
Yeah it was just when I changed the text it also changed what it said on the side bar so I just left it
index.ts: Lines 26-33
const customSettingsSections = (Vencord.Plugins.plugins.Settings as any as typeof SettingsPlugin).customSections;
customSettingsSections.push(() => ({
section: "Vesktop",
label: "Vesktop Settings",
element: SettingsUi,
className: "vc-vesktop-settings"
}));
oh gotcha
that's rather annoying
i mean u pass the title thrice
they are independent
the pane one is likely useless
Gonna blame that on the fact I did that part over a week ago and clearly didn't recheck it 
no it's not wrong
i'm just saying the panel and entry title are separate
you can have different titles for them
look
Yeah I more meant I just missed that's how I set it up when I was trying to change the title 😭
What plugins even add extra tabs there?
that switch is so dirty btw
way cleaner
okay
can u come up with an icon for vesktop
that one looks ugly as hell lmaooo
try this one mayhaps
let the ai choose
Did you have something else in mind?
not at all
Would the VC logo look weird as the icon?
is it just me or is the padding on the left really fucking ugly
we could use a monochrome version of the vesktop icon
ulgy
Imo this is perfect
Probably the best you're gonna get for now 
also you just yoinked the patch from my wip pr right, lmao
Yeah I just built off what you had in that PR
Oh sorry
god the strikethroughs are so beautiful
Apparently it's because it's a deprecated feature
But what's the new version?
honestly hate this formatting
I thought I did it wrong at first but I'm fairly certain that is correct
looks better
cursed asf patch for this
@gritty iris i made https://github.com/Vencord/ShikiPluginAssets
why did someone alr star 😭

maybe we can make that json smaller
I was thinking minify and remove excess stuff
i can just add you as collaborator
alr
I dont think the license github put (says I did) is right btw
I just selected mit because its what the other one used 
i fix
are u doing rn or should i
it seems really easy
im bouta clone you can do it rq
okay i shall do it
i don't think themes.json is even used is it
we can delete
i pushed @gritty iris
also pushed to pr
can u test again
works for me
yup will in a lil
down from 200kb to 20kb lmao
10x smaller
oh yeah i did i just wanted you to also test :p
name on grammars should be renamed in the json no?
Im pretty sure im just setting it client side right now to do that
wdym?
still no clue what u mean :p
the json has displayName, name and scopeName
shouldnt we do that just for the json?
meh whats the point
alr 
this is closer to their original json and simpler
we could also make our own devicon json
rn it contains so many unused icons
130kb css
eh whatyever
thanks thoro
ye
hopefully this will fix shiki not working randomly
I still think only buttons that apply to this specific chat should be shown.
Shown:
- PreviewMessage
- InsertTimestamps
Not shown: - SilentMessageToggle
- Translate
- SilentTyping
shouldn't you just add an option for plugins to say wether it should be in the sidebar chats then
(for userplugins)
that's up to the plugin itself
yeah this makes sense (don't show things that are just global qol)
yop
guh???
obsolete
oh
vencord now lets u control that for all buttons without plugins having to do anything
it might not help that i'm 20 commits behind
add this for discord buttons as well sound:1015931589865246730:1099107090829676645
guhhhh
whats the evil reporter plugin that just removes emojis
(yes this means u can make plugins like PreviewMessage useless by disabling the chat bar button lmaoo)
u daily drive reporter build
vtest
Now testing! 
RCE
RoleColorEverywhere (found no module):
ID: -
Match: ```
/.reactorDefault/
RoleColorEverywhere (found no module):
ID: -
Match: ```
/.reactorDefault/
ContextMenuAPI (took 7.3ms):
ID: 955116
Match: ```
/navId:(?=.+?([,}].*?)))/g
doing this rn
We gotta stop calling it that
leave me alone 😭
i havent touched vencord in a bit
why did they make it ugly
tallllll
u love them renaming the className for no reason
yop
what other prs should i merge
why
using hooks in patches is evil
i took care to make sure it follows the rules of hooks
thats why the patch is kinda wonky now
@austere talon what
did you enable copilot for vencord
Pull request overview
This PR addresses issue #3717 by making the ShowHiddenChannels plugin reactive to permission changes. Previously, when channel permissions changed, the UI wouldn't update to reflect the new visibility state until a re-render was triggered by other means.
Key Changes:
- Introduces a new
useIsHiddenChannelhook that wraps the existingisHiddenChannelfunction withuseStateFromStoresto make it reactive toPermissionStoreandChannelStoreupdates - Update...
This replacement attempts to call useIsHiddenChannel (a React hook) within a parameter destructuring default value. While this might technically work in JavaScript, it's an unconventional pattern that may not be compatible with React's Rules of Hooks, which require hooks to be called at the "top level" of function components.
Additionally, the renamed property _muted (which doesn't exist in the props object) combined with the fallback to arguments[0].muted creates an indirect and hard-...
merge my prs @austere talon
NO
[key: ApplicationIntegrationType]: string;
and add enum
const myId = AuthenticationStore.getId();
const isMe = msg.author.id === myId
const isSelfInvokedUserApp = msg.interactionMetadata?.authorizing_integration_owners[ApplicationIntegrationType.USER_INSTALL]) === myId;
why are we even using authenticationstore @austere talon
can't you getCurrentUser() or whatever
because getCurrentUser is literally an indirection of it
UserStore.getCurrentUser().id;
// this is equivalent to
UserCache[AuthenticationStore.getId()].id;
it doesn't really matter much but it's still dumb to use getCurrentUser().id
Since one is so fucking incompetent and closes legitimate PRs without comment, I will no longer support this fucking store in any way! Die with this shit here!
One even makes the effort to rewrite a plugin from BD to Vencord...
Die with this fucking shit here!
did you forget to add enum or was it already there
already there
garbage codee
????
ngl just merge these two ykyk
const isMe = msg.author.id === myId || msg.interactionMetadata?.authorizing_integration_owners[ApplicationIntegrationType.USER_INSTALL]) === myId;
I heard message click actions also apparently randomly triggers deleting?
Even when the key isn't held it sometimes does
I don't use it so I wouldn't know tho
that was fixed
works
it was an edge case where if you alt tabbed while holding delete then let go of delete, vesktop wouldn't get the key up event so it still thought you were holding down delete
hop off bunner
When???
lowkey ages ago
I thought it was happening with discord desktop tf
Am I tweaking
Istg they were using discord desktop
merged june 8
Thank you for clarifying I'm losing my shit
shrimple fix
Oh I have a question while your here
https://github.com/Vendicated/Vencord/pull/3651
When using accountpanelserverprofile it was tweaking out and spam opening the modal I added a thing in that plugin to just trigger the modal if my plugin was enabled problem is it doesn't open the server profile?
It uses the user one instead
Ill get a gif of what was happening without the plugin edit and what happens now and such
you have to load your profile first in the guild
actual old issue
how would I load the guild profile before opening the profile?
using guildmemberstore?
I tried using fetchUserProfile with a guild id but returning with cache is breaking it I just added a cache bypass to fetchuserprofile
Changes --header-secondary to --text-default in heading and QuickAction styles to fix visibility after Discord UI update.
Changes --header-secondary to --text-default
guh
isn’t lfm api rate limit ip based yk
To increase your Last.fm API rate limit, you must obtain express consent from Last.fm. You can request this by contacting them via email at partners@last.fm.
Last.fm implements rate limits to prevent abuse and maintain reliable service. Their API terms of service state that you agree to these limitations and should not attempt to circumvent them. Continuously making several calls per second or excessive calls can lead to your account being suspended.
-# Response generated by gemini-2.5-flash. AI may be incorrect or misleading.
you have to email them
okay get to work then
NO
dont delete
no idea lol
