#๐พ-core-development
1 messages ยท Page 290 of 1
ig people could custom-path to there for now?
yeah it works #๐ฅ-vencord-support-๐ฅ message
could add that as a tip in the known issue for now
we love that
can someone
this cus i can't on a fresh canary install
i dont think windows paths ever changed
i know only one mac user who i could ask 
good luck
@chrome coral Hey bestie can you check
idt macos has much freedom in paths anyway the asar is always in the /Resources dir of the app bundle
cool
iโll check when i get on mac later
alr
i would but idk jack about linux paths cus i dont use
both canary and stable work fine for me
Started working on this again, plugin is in a maybe ok state now
Satan needs to fix shc
have merged this into my fork and it seems to be working well. like you said, still some ui/css stuff to work out but fuctionality wise its good.
Yeah, currently working on some advice that I received, working on the ui/ux/css/whatever
actually, it does look like the "show current time on message" thing is not turning off when the option is off
actually, it does look like the "show current time on message" thing is not turning off when the option is off
Oh yeah I did not implement that yet, I completely forgot about that
idk if it's just me, but shikicodeblocks seems to break now first time it loads or smth
also i tried to look if it's due to one of my modifications of my fork, but doesn't seem to be
it's very likely related to this
dev://experiment/2026-03-arborium-highlight
same but I have no any enabled exps
yeah no when i mean it's related i don't mean enabling it on or off or not enabling the experiment change anything but rather discord did whange code for that experiment and it's affecting shikicodeblocks or smth
Oh, that would make sense
I guess that's one way to do it
they're just commenting on the commit that deleted ctrlEnterSend
what?
?remind 6hr add to compnaion
Alright @fossil inlet, in 6 hours: add to compnaion
Summary
Adds a plugin that allows users to locally override other users' avatars.
Changes are client-side only and do not affect actual user profiles or what other users see.
Features
- Set custom avatars for other users locally
- Overrides are stored on the client
- Original avatars remain unchanged remotely
- Remove or update overrides at any time
Notes
This is a visual customization plugin only and does not modify Discord data.
Another equicord pr
Also this can be done with css 
@import url(https://github.com/UserPFP/UserPFP/blob/main/import.css?raw=true);
usrpfp has some crazy theme for that
thank the lord i thought that was becuase of what i working on
The funny part is we added local to the plugin
Idk why they did that
@fossil inlet, <t:1777396078:R>: add to compnaion
i love loading 32k lazy chunks (not modules)
@gritty iris discord complete removed the function this patched
do you know what this patch did
from what i can tell the old function was only used here
448381
I yanked stable btw not canary
I have shc fixes
didnt have a chance to pr yet busy and the fuckin reporter died for us again ๐ฅ
push to my pr ๐
alr
are you on stable
that ss was on stable ill check canary in a sec
enableClipsNewEmbedUi doesnt exist on canary as a string
nah i think i found it
i think it got moved
oh wait
nevermind
i did the same at first too lol
discord completely removed the logic and feature assosciated with this patch afaik
I dont see a trace either
you should probably improve the find for shc btw
its really bad but I didnt find anything else at the time
vendroid revival when
Summary
The WebScreenShareFixes plugin generates SDP that Discord's RTC server silently rejects on non-Mutter Wayland compositors (niri, hyprland, sway), causing "chooser appears, you pick, viewers see nothing" for Vesktop users on those compositors. Two specific bugs in the plugin:
x-google-max-bitrate=80_000โ JavaScript numeric-literal underscore separator. The80_000is a valid JS literal (= 80000) but the replacement string is interpolated literally into the SDP, pr...
thanks for the link, couldn't see the PR 1 message above
@signal sundial
Pr description smells sloppy
i'm a ๐ค doubting if it's slop after looking at their other activity
yep
I don't doubt that they made the pr description with ai, but the real issue links would make me second guess the actual quality of the changes
the pr is made with AI but the issue exists
Yeah try not to do that
slop means it's garbage
that's the FQ fix
I ran into it because my shit wasn't working (:
I thought it was a bug with mutter at first or xdg-deskop-portal but it was the app layer with the RTC handling
Yes, the pr description is slop
so it's better to be vague or what ๐
Have you tried writing yourself
Believe it or not it's not that hard
You seem to be able to use a keyboard so I think you should be able to do it
is nino head dev
๐
no nino made vendroid actually work with vendroidenhanced
Work is highly subjective
it works dude
stop sending ai prs or you will be blocked
fr
Am I allowed to use copilots inline completion 
no
Or are you gonna ban me
Well tooo fucking bad if the autocomplete matches exactly what I want to write I'm gonna use it ๐ญ
there's a difference between using it as assistant and letting it generate the entire pr
common nino w
Hi! Any updates on this? Could really use this feature...
Sure hoping it gets merged one day
does vee even use projects?
tbh even i forgot about those lol
how do you check that
i saw it was a lot already
did it get even bigger
WHJAT THE FUCK
are they just preloading everything
how much
601
web.1acb3731f6f84cee.js
DownloadApps.5a318d52b335c0f1.js
Search.6a5ce0a4e7d500e3.js
GuildProfileDialog.bea3ae440bee8e99.js
SyntaxHighlightingUtils.f855ec9fc6d4e02c.js
sentry.aa9908de882ee852.js
fast-connect.38f602e36831991c.js
libdiscore-wasm-fetch.7f496c1490ddd377.js
evil chunks
you missed CalendarPicker.94a2933cc7e5bfba.js
dw it was prob in
+590 more
oh i was just looking at sources tab
tbh this looks like some weird manual chunks thing
or maybe chunk asset name misconfig
eg: Search.6a5ce0a4e7d500e3.js is just the search icon
@limber skiff 30k line webpack module
so they added even more?๐ญ
wtf
one chunk for a single component
so weird
fixes an insta-crash currently on canary
we should prob get that on main before discord pushes
Sure hoping it gets merged one day
Me too :)
apple would kill for that username
replace: (m, channel) => `if($self.isHiddenChannel(${channel}))return $self.LockIcon;${m}`
replace: "$1[$2,$self.renderTimer(this.props?.channel?.id)]"
daa48d1 fix CallTimer, ReviewDB, SHC & ImplicitRelation... - sadan4
vtest
Now testing! 
Bad Patches
Experiments (had no effect):
ID: 325091
Match: ```
/(?<==)(?=(0,\i(.+?).\i)({name:"2026-01-bug-reporter")/
Slow Patches
VencordToolbox (took 17.8ms):
ID: 325091
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
Slow Patches
VencordToolbox (took 10.4ms):
ID: 201313
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
whoever wrote the fix forgot to await extractAndLoadChunks
guhhh
i fucked up i commited with git commit -a (commit all changed files - doesn't commit new files, git sees a rename as file deleted + new file added) and forgot i renamed file so it deleted the file instead of rename
i blame nookies 
@austere talon ๐ญ
this doesn't change anything
you need this?.props?.channel?.id
because it matched a funciton component
where this is undefined
this wont be undefined
vext
The Vencord Chrome Extension is up to date! (v1.14.11)
so peak
I guess
It's still not undefined evidently 
I think the way we eval makes it non strict anyway
not entirely sure
tbh this is weird because afaik discord uses writes es modules
which should be strict node
it is strict mode
this
try it out
ve ```js
(0,eval)("0,function(){console.log(this)}")()
undefined```
this will be wreq.m I think
since we put the evaled module function on that object
and it's called that way
maybe node global scope is sloppy
anyway I think it's this
that doesnt make sense because it's inside a jsx function
how does jsx deal with this
it's passed as a function ref, not called as one
doesn't matter
I think
actually it does
maybe react gives function components a special this
no that also can't be hmm
well just see what this is in the function it was actually in
oh
only the main chunk is strict mode it looks like
i think thatw was some bundler change recently
it is, but aren't chunks just added as script tags
so they aren't strict by default
vext
The Vencord Chrome Extension is up to date! (v1.14.11)
wow under 5h
they approved within half an hour
they enabled gemini checks on vencord โค๏ธ
Yay I can finally see codeblocks again 
So, just out of curiosity, what would be needed for this to get implemented as a plugin at this point? This would be incredibly useful and it's been over 2 years. Is the code just not in a good enough state to be added? Or is there something else preventing this from being added?
this is so redundant considering you can just make an empty server with channels
hm
i was too lazy to reproduce it so i just reported on it lmao
fixes the vencord section not being positioned at the logout section cuz discord changed it to utility_section
I swear it worked when I tested
I didnt await because it didn't need to load chunks, only require something which is sync
but I dont remember how Javascript deals with that tbh since there are still promises involved
@fossil inlet i added few more things to ur key_map
idk if u care about the key map anymore
I just looked at that and mine has more
That one only has one key added to it
oh LOL
i'm probably using a very old one then
can u send me ur updated version if u don't mind
This is the one I have use
thank you
It's also the same one that's used in companion (it just curls it)
how are u able to go through the intl keys so well
it took me ages to get down those like 100 or so that i found lmfao
hmm
gonna see if i can find any more keys
I mean you can see from the file I only have five there
oh right true, they're all hashes
if u want i can mass turn them into intl keys?
i've already got the hashes so with bruteforcing it should be easy enough
oh lord
that's not good
What happens when the bug or crash occurs?
i upload the voice msg in opus or ogg and theres no wav
form, no waveform in any format
What is the expected behaviour?
That there is a waveform
How do you recreate this bug or crash?
1 upload a voice msg
2 no waveform idk??????
Errors
Replace this text with your crash-log.
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
wait wtf do u mean by this
Look at how the keys are ordered
yeah alphabetical?
except for the first five keys
Because they are added after discord started hashing
WDYM HAD NO EFFECT
wait that patch is kind of risky now
holy
thank god it failed bro
its just merged now
damn i have only managed to find 2 so far
tf is devcompnaion extended

did it fucking break again ๐ญ
uhh MCP server
i'm testing out the intlkey tools
oh you're that insane one
and how well it works on finding shit
uhm
i guess..?
not sure if i should be agreeing to that or not
i don't mean it negatively
got these so far
nah
wrap in (?:\i\.)?
I had to figure out how to export those btw 
I dont remember what I did ngl
oh
theyre back now so be happy lol
they removed the export it was so annyoing
I was able to patch export with icons: () => U before then they destroyed that
does equicord have it's own plugin for extracting concatonated things
don't we have concatonatedModules
whatever is needed for multiple plugins I toss in it
like exporting iconsmodule
Couldn't find a plugin with that name, and there are no plugins with similar names.
because just requiring it is easier then moving the patch
conflicts
vp concatonate
it would get so annoying
its already annoying 
I hate merging translation
this is hell
equicord has translation ๐ญ
yup
oh good lord
it's equicord nothing is /j
idk if that's better or worse
both
are u looking for
yes
I have no idea what im doing with some of these plugins like if the maintainer dips they gone
99% I can do its just murphys and a few others I have no idea half the time
ima be honest i don't know how a good ammount of vencord plugins work
most of what i do is based on the comapring with the last stable
i barely know what im doing 100% of the time
the only complex plugin i know is better folders because of a few annoying bugs i fixed
i hate working on that plugin
so I pulled the pr move again and forgot to build
its the best with the capability of folders inside of folders
chew on that broskito
no it's not
neat so just dont patch it and its fine now
nuhuh
that doesnt really work on other platforms
i've thought about that idea
but decided against it
i decided the opposite
this sucks
๐ฃ๏ธ
what the fuck
no
hey we made it a setting
thats the most im letting you do
@gritty iris are you going to do fixes or should i
already done with most
alr
just use the store?
wdym
i need to release extension
why arent we just using experimentstore??
is this what broke iconviewer too?
why?
u should look at pr 1036 for equicord rq
I mean if it works then sure use it
i've been debating a better way to do it but i'm out of ideas
-1 is not eligible iirc
It was easy to find the exported definitions before so when fixing it recently I just continued what it used to do
ye I know lol
but manually exported
I mean it's doing it's job ๐ ๐ ๐
a 230k line module is still insane
want me to look into no track or leave it?
notrack solution I came up with 
@fossil inlet should I remove the stable compat for implicit?
only one other thing here is even stable compat ๐ญ
where
if you do add it (i would) i'd also leave a comment
its already added
alr
for the noop do you mean this?
yes
wym
this will break it on stable so I feel like the stable compat below might be useless
evil
not sure how i feel about this, esp with concatenated modules
how
its even used as the find
the .send anchor is useless
the only other results for that key are the enum itself
vtest
Now testing! 
Slow Patches
VencordToolbox (took 16.5ms):
ID: 325091
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
Bad Patches
Decor (had no effect):
ID: 40344
Match: ```
/(#{intl::PREMIUM_UPSELL_PROFILE_AVATAR_DECO_INLINE_UPSELL_DESCRIPTION}.+?return null!=(\i)&&()(null==\i)/
Slow Patches
BetterFolders (took 10.3ms):
ID: 505425
Match: ```
/(?<=[[,])((?:!?\i&&)+)(.{0,50}({className:\i.\i,themeOverride:\i}))/g
**__VencordToolbox (took 24.4ms):__**
ID: `505425`
Match: ```
/(?<=trailing:.{0,50})\i\.Fragment,(?=\{children:\[)/
BetterFolders (took 14.8ms):
ID: 253363
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
This is still happening, occurs now when you have lots of DMs in different groups but mainly with the Direct Messages area especially if it's collapsible
is the permissionsviewer bug just stuck in limbo cus nobody here can reproduce it
i'm trying to understand patchhelper, why does this message in red appear ?
i don't get what the problematic { could be but it appear when i hit compile
-# i technically patch my Vencord to make patchhelper available without DEV enabled, but i've checked and it shouldn't cause an issue even if yes i should really just enable dev
Add Windows background material support.
This doesn't require transparency. And transparency would introduce some issues like missing window animation, unable to actually maximize discord app etc.. So I also added note for enable transparency option for Windows users.
The transparency option cannot be removed, because backgroundMaterial doesn't have working full transparent option, at least in my knowledge.
note : it makes Discord quite unhappy as it says NaN KB left if the range header is just removed
patchhelper is broken
do u know whats breaking it
ye
why does Cannot read properties of undefined (reading 'call') not happen anymore 
What bug
whatever this is #๐ฅ-vesktop-support-๐ฅ message
they're on latest btw
Description
This plugin plays a custom notification sound when the user receives a Direct Message (DM) while their status is set to Do Not Disturb (DND).
Key Features:
- Custom React UI: A modern and integrated settings panel.
- Audio Source Flexibility: Supports both local file uploads (Blob URLs) and direct MP3/WAV/OGG links.
- Volume Control: Includes a slider to precisely adjust notification volume.
- Quick Test: Built-in test button to verify audio settin...
Sure hoping it gets merged one day
Yeah, I'm also just waiting around here.
smells like slop
holy shit lmao
did u make ur openclaw agent write this
okay thats my one github comment for the year
"Evet, aรงฤฑklamanฤฑn profesyonel ve net gรถrรผnmesi iรงin bir yapay zekadan yardฤฑm aldฤฑm ama kod ve mantฤฑk tamamen bana ait! Sadece topluluk iรงin gรผzel bir sunum yapmak istedim. :D"
I was only able to recreate once
And it was by pure chance that it didn't load the css fast enough
yeah iโm gonna warn you on that one, please be more inclusive
Openclaw isnโt the only ai agent
they may be using Gemini Cli
ITโs BEEN A YEAR 
hoii ruben
Am I blind or are you insane
hiii
huge
thank you moree
doesnt kagi have support for any made up language via ai now
or did they remove that again
yeah I am checking
becaues the language list in the pr is quite old 
had to remember how to even use vencord from source again
good news it still works
good for u

otherwise u would have been in for a bad time

i added this
so it doesnt confuse clueless users
yeah I noticed that
I remember asking about that previously but being told it wasn't possible at the time lol
well I simply added support for it 
.
W
there's a couple new ones and some changed language code
also whoever made the Get your API key from ... the placeholder is insane
linkedin ๐ญ
funny
kinda made the translator become a meme but ig it being more popular isn't bad
uuh where should I push this now
good marketing 
besides persian these are pretty irrelevant
yeah
send me the git diff/patch and I shall add it
how do I do that w
git diff > epic-diff-dot-txt
nice
a002395 remove deprecated plugin.options field - Vendicated
[Vendicated/Vencord] New branch created: remove-deprecated-options
huge
lmaooo
I realised how few plugins still use options so I decided lets just do it
only a few plugins needed changes
half of these werent even using deprecated options they were just accessing other plugins' settings in a suboptimal way
it seems to work fine for me but it's a kind of major change so needs special care
vtest remove-deprecated-options
Now testing! 
Bad Patches
Decor (had no effect):
ID: 40344
Match: ```
/(#{intl::PREMIUM_UPSELL_PROFILE_AVATAR_DECO_INLINE_UPSELL_DESCRIPTION}.+?return null!=(\i)&&()(null==\i)/
Slow Patches
BetterFolders (took 10.4ms):
ID: 702638
Match: ```
/(?<=[[,])((?:!?\i&&)+)(.{0,50}({className:\i.\i,themeOverride:\i}))/g
**__VencordToolbox (took 23.1ms):__**
ID: `702638`
Match: ```
/(?<=trailing:.{0,50})\i\.Fragment,(?=\{children:\[)/
BetterFolders (took 13.3ms):
ID: 253363
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
Bad Patches
Decor (had no effect):
ID: 40344
Match: ```
/(#{intl::PREMIUM_UPSELL_PROFILE_AVATAR_DECO_INLINE_UPSELL_DESCRIPTION}.+?return null!=(\i)&&()(null==\i)/
Slow Patches
BetterFolders (took 11.3ms):
ID: 505425
Match: ```
/(?<=[[,])((?:!?\i&&)+)(.{0,50}({className:\i.\i,themeOverride:\i}))/g
**__BetterFolders (took 13.6ms):__**
ID: `505425`
Match: ```
/(?<=className:)\i\.\i(?=,"data-fullscreen")/
VencordToolbox (took 27.3ms):
ID: 505425
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
**__BetterFolders (took 10.7ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
Summary
This PR fixes #4116 by adding a max-width of 500px to the .vc-notification-root element.
What was the issue ?
On ultrawide screens, the notification alert (e.g., "Click here to restart") was displayed at 25vw width (25% of viewport width), which resulted in an excessively wide alert that looked out of proportion compared to other UI elements.
Fix
Added max-width: 500px to cap the notification width regardless of screen size, while still maintaining the respons...
Did we really need to use AI to make this one line change :exploding_head:
I just wanted to write the body of the PR but well, yes sorry :(
e0e6363 improve documentation - Vendicated
I'll never understand why people use AI to write their text, just screams "Hey, this is slop" even if the thing might actually be good
Pull request overview
This PR removes the deprecated plugin.options field and migrates the codebase to rely solely on plugin.settings (from definePluginSettings) for plugin configuration, including updating settings UI and several plugins to the new access patterns.
Changes:
- Remove legacy
PluginDef.optionsand old โlegacy optionsโ types; unify plugin settings typing aroundsettings.def+settings.store. - Update settings UI + toolbox plugin menu to enumerate settings vi...
In initPluginManager, the onChange listener registration uses an undefined name variable when building the settings path. This will throw at runtime and also prevents any plugin setting onChange handlers from being registered. Iterate Object.entries(p.settings.def) so you have the setting key, and use that key in the plugins.${p.name}.${key} path.
DefinedSettings.store doesn't include an enabled property unless it was explicitly added via withPrivateSettings, so PermissionsViewerPlugin.settings.store.enabled is not a valid/typed enabled check and can break compilation. Prefer isPluginEnabled(PermissionsViewerPlugin.name) or Settings.plugins.PermissionsViewer.enabled here.
DefinedSettings.store only contains keys from the plugin's settings definition (and any explicit private settings), so TypingTweaksPlugin.settings.store.enabled is not a valid/typed way to check whether the plugin is enabled. Use isPluginEnabled(TypingTweaksPlugin.name) or Settings.plugins.TypingTweaks.enabled instead (and avoid accessing .store just to read the enabled flag).
so much copilot
holy shit
so dumb that name is a global ๐ญ
e2b74b7 use better way of checking if plugin enabled - Vendicated
188b3c5 lint: ban use of error, event & name globals - Vendicated
moved some code around and forgot to declare name variable but because name is a global typescript did not warn me about this at all 
yeah lol, same for just projects as a whole sometimes
ehh i could understand not wanting to be bothered with writing a pr description
I donโt think Iโve ever let an llm write text for me because it just sounds so weird always
but this may not even be ai text
not even an essay about how congress works? https://cdn.discordapp.com/emojis/1460029433221218334.webp?size=48&name=soAhh&lossless=true
no I would just give up instead
you know ball
- implement
canceltodo - use that to implement the handleError todo
// TODO: Representing paths as essentially "string[].join('.')" wont allow dots in paths, change to "paths?: string[][]" later
me when i accidently commit my ai slop shell script
alright i'd say the plugin is ready to be reviewed, just have to figure out the ritual to summon ven

What happens when the bug or crash occurs?
Error appears
What is the expected behaviour?
Discord should start normally
How do you recreate this bug or crash?
- Install Vencord
- Close Discord
- Run Discord
Errors
* Activated plugins don't cause this
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
O thought this was an intentional one and has been like that for ages
Description
Allows Vencord to be used within the Safari browser, the submodule here is located at Vencord/Vencord-Safari-Extension.
# Run this with Xcode installed on Mac
pnpm buildWebStandaloneXcode
Preferably this should get merged once we get a proper workflow for uploading builds to Testflight/AppStore, but it does properly build the extension on its own.
Notes
- There will be no themes/quickcss wind...
pnpm buildWebStandaloneXcode
this fella doesnt know she will get put in the pr backlog for 3 years
vee will have to merge in a week dw
platform support important
@twilit vector are you excited having another company review an extension for their store
it will take days
first submission denied โค๏ธ
Apple is a perfect and flawless company this won't happen
PEAK
when will vencord fix this issue
that makes no sense lmao
yeah i knew they were onto NOTHING #๐ฅ-vencord-support-๐ฅ message
expect the unexpected yk โค๏ธ
nomosaic is dead on stable again
Like the client crashes
How does it crash, it doesn't have a start function
@turbid hatch I have a developer account I'm willing to use for notarization/distribution, was wondering if I could use it instead of yours for Vesktop
I'm not worried about the name of that account being public
@limber skiff rspack more insane than i thought
in wreq.u, sometimes it inlines the module id, other times it just doesnt
nah how the fuck does this even get generated
oh
wait that's kinda smart tho
It's not rspack it's the minifier
are you sure
if the id is 5 characters it uses the variable cuz it's smaller
but if the id 4 characters it inlines it cuz it's smaller
insane
that's what I think is happening there
lowkey smart
but
swc
It's prob the minifier
rspack uses swc
swc doesnt do it
even terser doesn't do it
i don't think it's the minifier
It would be insane if a bundler generates such minified code
It's the minifier job to modify what the bundler does
even if it's part of the webpack stuff
over the years the webpack stuff changed a lot just because of minifier changes
in discord
yeah, but i can't get swc to do it, even when enabling unsafe minifications
okie dokie
that works
This issue is not fixed, same for #2944 but that thread was locked. Pinned DM's in multiple groups turn invisible unless you scroll further down to reveal them.
Have reported this several times in the Discord server but gotten no response from any staff members. This has been an issue now for at least 2 years, please fix it.
might be because of this
This PR adds a simple plugin that blurs all images and GIFs by default. I made it for public privacy purposes since I couldn't find it in another plugin.
Customizable options:
- Blur amount (px)
- Transition duration (s)
comment on pr
forget im shadowbanned
did you ever email gh about it
wdym
@austere talon
on android if signature changes you can't update, you have to uninstall the app
surely it's the same on mac
#๐พ-core-development message
There's no unified updater for notorized macOS apps, all they do is replace the bundle when updating (apps are just folders, remember)
I checked the source code a few months ago for Vesktops updater and it has no check seeing if its from another identity
what's the point then 
Point then for what
signing
the entire point of it on android is verifying the app is by the legit developer and not tampered with
if you can just change signature it's basically pointless
For macOS apps it doesn't really matter that much, but they do enforce it on iOS similar to android where if the identity changes you need to completely reinstall the app
I donโt really know the point of signing on mac that much either but it does make the apps more convenient to open so 
Iโll triple check to see if it caused any issues though
Right click a message to hide specific media links everywhere they appear in discord. good against people who spam naughty gifs.
This is already a plugin inside of Vencord: https://vencord.dev/plugins/HideMedia
<img width="216" height="95" alt="image" src="https://github.com/user-attachments/assets/9d6ebb68-c093-4f0d-ab10-46cd626e39e8" />
aislop
i read the rules and it never said anything against ai usage and regarding hidemedia, hidemedia does it on an individual basis while hidemediaeverywhere stores the url and blocks it everywhere. just felt like keeping them separate made more sense.
itโs a neat idea, minus the ai
Too niche imo
If someone is spamming a gif to fill chat, then they will normal get muted or smth
If someone is spamming it to annoy you, you should just ignore/block them
Plus this all breaks if they upload it instead of using a media link
Oh yeah, fair
w vee
47cabdf fix Notifications being comically wide on ultra... - Vendicated
someone's feeling like doing spring cleaning
i just closed this guy's ai spam prs
oh it's the same guy LOL
337ee16 Settings: fix "At the very bottom" location not... - RoScripter999
This can basically 1:1 be implemented as a Discord bot that dms you notifications. Or just use a calendar
Don't think we really have a use case for this but thanks vap
why
it would make sense, discord anways shows when u are in a vc
just extending that ^
discord already tells you if someone's live
because it's an extremely minor ui change that has low relevance
1936e99 New plugin: NoMiddleClickPaste (Linux only) (#2... - Darxoon
edd9e3b QuickCSS: prevent white background flash when l... - n1ckoates
vencord 1.15 is coming ๐
@austere talon https://github.com/Vendicated/Vencord/pull/376
GitHub
Fix Timezones looking ugly in user profiles somehow (@Vendicated will figure out)
Confirm This weird code is working
Bottom Text
PS: Ignore commit history
โvโban
too niche and probably doable with css
3848702 Settings: add option 2 exclude Vencord when cop... - JustABrian
Please merge this into the lastfm rpc plugin to avoid duplicating code
b3ad64f LastFMRichPresence: add variables to custom sta... - Kisakay
b3ad64f LastFMRichPresence: add variables to custom sta... - Kisakay
users should use the settings ui for deleting tags
This is a stock Discord feature
<img width="1352" height="532" alt="image" src="https://github.com/user-attachments/assets/9caad760-25a0-46e4-adf0-9becc6118014" />
probably obsolete?
I guess not obsolete but needs reviving, we can close this
meh, I don't really think this would be good to have
there are valid reasons for targeting main
Obsolete I think? The underlying types have all been changed since. Thanks though!
pr spring cleaning
bleh
don't forget to patch the languages w

@austere talon waited over 2 years for someone to review this, only for it to be closed without reason?
Overview
This PR introduces a new plugin called VoiceRPC and adds Pankaj to the developers' list in the constants.
Changes
- VoiceRPC Plugin:
- Adds a rich presence (RPC) status when joined to a voice channel.
- Displays the guild name, channel name, and a list of participants in the status.
- Automatically updates when the user switches channels or when participants change.
- Uses a debounced update mechanism to prevent rate-limiting.
- **Const...
all the way at the top lol
insane
Description
Adds a BulkDelete plugin that lets users delete their own messages in a channel by preset amount, custom amount, selected range, or by scanning the full channel history.
Delete All scans channel history through paginated message requests instead of relying on the loaded MessageStore cache, so the displayed count matches the actual messages selected for deletion more reliably.
Features
- Delete last 5, 10, 25, or 50 own messages
- Delete a custom amount of recent...
Pull request overview
Adds a new BulkDelete plugin that integrates into the message context menu to help users bulk-delete their own messages in a channel, supporting preset counts, a custom count, a selectable range, and a full history scan via paginated fetches.
Changes:
- Introduces
BulkDeleteplugin entrypoint with message context-menu actions (preset/custom/all/range). - Implements message history pagination + filtering to count/select only the current userโs undeleted m...
In the 429 handling path, retryAfter can be NaN (when the response doesnโt include retry_after). In that case Math.ceil(retryAfter * 1000) becomes NaN and Math.max(delayMs, NaN) yields NaN, causing sleep(delayMs) to effectively not wait and rapidly retry while rate-limited. Guard the Math.max with Number.isFinite(retryAfter) (or rely solely on getRetryDelay(...)).
This new plugin file is missing the repositoryโs standard Vencord GPL/copyright header comment. Most plugin entrypoints include it (e.g. src/plugins/alwaysAnimate/index.ts:1-17), and adding it here keeps licensing consistent across the codebase.
Same as in DeleteAllModal: the alive flag prevents state updates after unmount, but does not stop loadMyMessagesInRange(...) from continuing to page-fetch in the background after the modal is closed. Adding cancellation/abort support would avoid unnecessary requests for large ranges.
Closing the modal/unmounting the component sets alive = false to prevent state updates, but the underlying loadMyMessages(...) loop continues to fetch pages in the background. For large channels this can generate a lot of unnecessary requests (and hit rate limits) even after the user closes the modal. Consider adding cancellation support (e.g. AbortController or a shouldCancel() callback checked inside loadMyMessages/fetchChannelPage).
@copilot apply changes based on this feedback
@copilot apply changes based on this feedback
@copilot apply changes based on this feedback
@copilot apply changes based on this feedback
@signal sundial apply changes based on this feedback
kys
people
@austere talon instead of ignoring me, are you going to provide any justifiable reason why you've closed my PR without reason? you and other maintainers have simply let it sit stale for over two years even though it has been ready waiting to be looked at?
ai sloppers
I closed it because I don't like it
aside from that being the dumbest thing i've heard from an OSS project maintainer, could you not have simply said that years ago? what a joke lol
I did though
shush @twilit vector
cameoo
upgraded PermViewer context menu
is that a context menu (view server as role)
oh its not
horrible icon choice
its meant to be like this but we have the wrong icon 
just steal the correct one
@austere talon make expressioncloner open up this dialog
nope
8cfb152 Cloud Settings: fix sync direction select not u... - Vendicated
<img width="1228" height="1440" alt="Image" src="https://github.com/user-attachments/assets/8ee7a053-7143-486c-8f5a-711bd2ff6f3e" />
so many people are getting issue-closed emails for 3-year-old issues
vencord has no issues whatsoever because vennie closed them all 
can you guys cut out the pointless comments
Adds a new 7TV tab to Discord's expression picker so you can browse and use 7TV emotes directly alongside GIFs and stickers.
Features:
- Dedicated 7TV tab in the expression picker
- Favorites system for quick access to frequently used emotes
- Add 7TV channels to browse their collections
- Global search with smart priority (favorites -> channels -> global)
:+emotename:syntax to auto-expand to 7TV emote URLs
This PR is either partially or fully AI generated. Please don't, AI contributions are not welcome.
I also think this feature is too niche
Problem
The macOS release build currently only produces an Intel amd64 binary. On Apple Silicon Macs, that requires Rosetta and can trigger macOS compatibility warnings about Intel-only apps losing support in a future macOS version, which will be deprecated in macOS 28 (support: https://support.apple.com/en-us/102527).
Proposed solution
Update the macOS release workflow to build both Intel and Apple Silicon variants using a GitHub Actions matrix. The existing Intel build rema...
thanks, but this installer code base is not maintained so these changes wouldn't be used
wait it's not maintained
how is it gonna like work in the future lol
esp for macs
It's finished but I'm waiting for it to get merged so I can work on CI
ah
getting around to re-implementing this, but the approach I'm taking now is basically completely different so I'll close this PR and open a new one when I'm finished.
Ok thanks where would I submit similar changes?
Oh is the project not being supported anymore? Or failing that, can I help revive the installer stuff? I would be happy to help take on maintenance tasks if that's something the team would be open to considering.
๐ญ
That's nice but don't worry about it, it's not going anywhere. Just pending an eventual rewrite/replacement
What this fixes
Pressing Alt+F4 on the Vencord QuickCSS Editor window quits the entire
Discord client instead of only the editor, closes #2548.
Root cause
The QuickCSS BrowserWindow is created without a per-window menu, so
on Windows and Linux it inherits Discord's application menu. The
inherited menu's accelerators (Quit) keep firing from this window even
though autoHideMenuBar: true is set, that option only hides the bar,
it doesn't disable accelerators.
Fix
...
OpenAsar installer fails on Arch Linux: "has no asar file"
Installer used: sh -c "$(curl -sS https://vencord.dev/install.sh)" (VencordInstaller, which installs OpenAsar as part of its flow)
Discord package: discord 1:1.0.136-1 (pacman)
OS: CachyOS Linux (Arch-based, rolling) โ kernel 7.0.3-1-cachyos
Description
Running the VencordInstaller (the standard path to install OpenAsar) fails on Arch Linux because the installer's auto-detection logic finds the boo...
As of today (2026-05-05), simply running sh -c "$(curl -sS https://vencord.dev/install.sh)" triggers this error on Arch Linux. Improving the auto-detection to find the actual app directory under ~/.config/discord/app-*/ would resolve this for all Arch-based distros without requiring the -location workaround.
@fossil inlet, <t:1777173971:R>: can it work on large files
To add to this, it seems that the workaround with the -location tag is the only method that works. Using the custom location option fails to patch, but using the -location does not.
This is for Vencord option, not OpenAsar, on Arch Linux.
Plain '"MessageStore"' appears in many webpack chunks, so MessageLogger and NoBlockedMessages patches could run on the wrong module factory. That produced invalid JS after substitution and eval() threw SyntaxError (e.g. Discord stable 1.0.136), often showing a blank client.
Scope patches to the flux store implementation via static displayName="MessageStore" / "ReferencedMessageStore", which is unique in the main web bundle.
Hi, thanks for the PR, but your entire PR seems to be written by a LLM, which makes me not want to talk about it.
This happened because of the latest Discord update i think.
When i opened Discord with this new update applied i saw a GTK popup saying "Installing Discord" which i had never saw before, i think Discord changed their installation way on Linux since version 136 of the package.
This happened because of the latest Discord update i think. When i opened Discord with this new update applied i saw a GTK popup saying "Installing Discord" which i had never saw before, i think Discord changed their installation way on Linux since version 136 of the package. It wasn't the popup with a spinning discord icon, it was a GTK popup, with a "Cancel" button, with a progressbar that was using my DE's accent color, and was saying "Installing Discord"
when i was updating discord pac...
Hi, thanks for the PR, but your entire PR seems to be written by a LLM, which makes me not want to talk about it.
Hii, the description might've been overkill, lol... first time doing this and English isn't my native language, I just wanted to make it as descriptive and formal as possible, sorry about this. Want me to close the PR then?
<img width="372" height="258" alt="Image" src="https://github.com/user-attachments/assets/72909d41-5206-453e-ae8d-5197c78abf91" />
This is the popup i was talking about.
The progress bar uses my DE's accent color, and the buttons say "Cancel" and "Confirm" (they're in french because i'm french)
no it fucking doesn't, go away with your ai
vtest
Now testing! 
Slow Patches
VencordToolbox (took 23ms):
ID: 702638
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
**__BetterFolders (took 29.5ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
Slow Patches
VencordToolbox (took 23.3ms):
ID: 272879
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
**__BetterFolders (took 35.6ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
What would be the learning process to make plugins?
I would assume it goes something along the lines of
- Learn Javascript (or typescript)
- Learn regex
- Learn patches
?
The big thing is learning to navigate the discord code
9794ab1 Translate: add support for Kagi Translate (#3416) - Ruben172
dbca8ef remove deprecated plugin.options field (#4165) - Vendicated
e50d8c4 Fix PermissionsViewer & NoMosaic - Vendicated
47cabdf fix Notifications being comically wide on ultra... - Vendicated
337ee16 Settings: fix "At the very bottom" location not... - RoScripter999
Because it's obfuscated, right?
@austere talon what are you planning to do with the installer? Iโm not entirely sure what you wanna do with it, or if you even want to use my pr
nomosiac causes funny big images
already doing
what are you doing exactly
indeed
we should have VenAI that reply to them no in the most convoluted corporate AI way
bro ur patch is broken
in settings.json for vscode add this
"git.addAICoAuthor": "off"
vscode now make it so it default to all and always inject AI co author no matter if you done it or not
bro thinks i use git gui
based on the wrong input lol
yes but used it on the wrong input
rip
just send pr lol
you gave me diff between your version a and version b
but the repo has version c lol

lmao
Ven use AI confirmed no way no way Vencor confirmed slopified then /j
This PR updates the language list used for the Kagi translator in translate. The list was generated using the command specified above, and meme/redundant languages were removed with Claude Haiku 4.5.
The unfiltered list can be found here: https://pastebin.com/raw/AmF5JFs6. Or by running the command in the comment.
vtest dev3
Now testing! 
Slow Patches
VencordToolbox (took 24ms):
ID: 272879
Match: ```
/(?<=trailing:.{0,50})\i.Fragment,(?={children:[)/
**__BetterFolders (took 11.5ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
Slow Patches
BetterFolders (took 11.2ms):
ID: 702638
Match: ```
/(?<=className:)\i.\i(?=,"data-fullscreen")/
**__VencordToolbox (took 23.7ms):__**
ID: `702638`
Match: ```
/(?<=trailing:.{0,50})\i\.Fragment,(?=\{children:\[)/
BetterFolders (took 10.9ms):
ID: 253363
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
vtest dev3
Now testing! 
Slow Patches
BetterFolders (took 17.9ms):
ID: 272879
Match: ```
/(?<=[[,])((?:!?\i&&)+)(.{0,50}({className:\i.\i,themeOverride:\i}))/g
**__BetterFolders (took 10.6ms):__**
ID: `272879`
Match: ```
/(?<=className:)\i\.\i(?=,"data-fullscreen")/
BetterSettings (took 20.2ms):
ID: 272879
Match: ```
/class (\i)(?= extends \i.PureComponent.+?static contextType=.+?jsx)(\1,{mode:)/
**__BetterFolders (took 16ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
Slow Patches
BetterSettings (took 11ms):
ID: 702638
Match: ```
/class (\i)(?= extends \i.PureComponent.+?static contextType=.+?jsx)(\1,{mode:)/
**__BetterFolders (took 19.2ms):__**
ID: `253363`
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
[Vendicated/Vencord] New tag created: v1.14.12
Content
https://github.com/Vendicated/Vencord/blob/main/src/plugins/noBlockedMessages/index.ts
Currently the plugin only hides the actual messages from blocked/ignored users. I am thinking about working on having a setting where you can hide all messages to blocked/ignored users, too.
Feedback?
Request Agreement
- [x] I have read the requirements for opening an issue above
vext
The Vencord Chrome Extension is out of date! (v1.14.11 vs v1.14.12)
whoreacted stopped working with 1.14.12 on browser [and desktop](#๐ฅ-vencord-support-๐ฅ message)
worked on 1.14.11 until i updated
<img width="100" height="40" alt="image" src="https://github.com/user-attachments/assets/6491680d-7c71-4e1b-b446-93294f44e02e" />
is it just me or bettersettings visually broken cause limited again ?
An update to fix the known issue where new discord installations are installed in the ~/.config directory on Linux. (https://discord.com/channels/1015060230222131221/1497300840636092516)
e.g.
/home/theo/.config/discord/app-1.0.136/
/home/theo/.config/discordcanary/app-1.0.968/
Adds a plugin to save multiple attachments at once
Making a PR with no title or description was a bold move
Jesus two years and no response is wild, been wanting to find this myself
The current MessageLogger plugin keeps everything in memory. Deleted and edited markers live on the live MessageCache and disappear on reload. Most of what people use BetterDiscord's MessageLoggerV2 for is the persistence side, plus a viewer to browse the log, plus pin/save and attachment caching on top. I wrote a patch that brings Vencord's plugin to feature parity with MLV2 (with a couple of deliberate exclusions, called out below).
The diff is around 2k lines across `src/plugins/messageLo...
Closes #4186.
Most of what people use BetterDiscord's MessageLoggerV2 for is the persistence side: deleted and edited messages surviving a client reload, plus a viewer to browse the log, plus pin/save and attachment caching on top. The current MessageLogger keeps everything in memory; the markers live on the live MessageCache and disappear on reload. This PR brings the plugin to feature parity with MLV2, with a couple of deliberate exclusions called out below.
Around 2k lines added under `s...
Logging users (join, leave, move) between voice channels in chat
dawg that's the 3rd pr for the same plugin
give user1-undefined a break







