#πΎ-core-development
1 messages Β· Page 278 of 1
you all got that error much later so I thought it was an equicord problem π
does it crash or
no, its just causing CI to fail
1af7eb6 Fix overlay theming issues & improve components... - imjustprism
vtest dev
Now testing! 
sry prism, didnt realise your pr had already fixed it
No issues found
Seems like everything is working fine (for now) 
No issues found
Seems like everything is working fine (for now) 
tbf its a quite mixed pr and doesnt mentiopn that part
its fine
yeah, it was my bad
2fb5494 USRBG: fix missing background in VC (#3851) - thororen1234
eb1edef fix(openInApp): Tidal regex (again) (#3753) - Aztup
ed1acc3 FakeNitro, ExpressionCloner: fix issues with we... - unsigned-32-bit-integer
525f596 add Vencord styles to Discord popout windows (#... - Masterjoona
f7152a3 WhoReacted: improve guild pfp support (#3875) - unsigned-32-bit-integer
this would be a nice feature to have!!!!
move these inside plugin object
i think this adds duplicates every onchange
Full disk access is a pretty big ask. The installer works with the much more limited App Management permission. The App Management permission was introduced in macOS Ventura, so it should be fine to make this change in messaging.
what about big sur and monterey then?
people still use those?
vai when did macos big sur and monterey release
macOS Big Sur was released on November 12, 2020. macOS Monterey was released on October 25, 2021.macOS Big Sur was released on November 12, 2020. macOS Monterey was released on October 25, 2021.
-# Response generated by gemini-2.5-flash. AI may be incorrect or misleading.
no one uses MacOs Monterey/Big sur they are like five years old
Also granting full disk access no longer works on Tahoe
Either way we should mention the App Management permission. Maybe we could change the message based on macOS version?
It's been a year since I've opened this PR...
It's a really simple change, why is this so hard? What am I doing wrong? :(
Adds customizable prefix and/or suffix to messages.
Features:
- Prefix/Suffix addition with space control
- Excludes slash commands
- Custom pattern filtering (skip messages containing specific words)
- Optional empty message handling
- Lightweight with minimal performance impact
Pop out streams and cameras independently from each other.
Hey hey, I've created pr with custom popout's
There are few features it appears I couldn't do without touching DOM, but I've tried to use react/stores for as much as I could. Can someone have a look?
@hybrid blaze wanted to add you as contributor but couldn't find your nickname/id in Dev list π
I have it added in https://github.com/Vendicated/Vencord/pull/3802 right now 
Thanks! Copied it. I'll fix conflict if your pr will be merged first
They added the find twice
The same function with tiny changes I just ended up using a function name for now
I think my thought process behind not using initialLocale:\i was because they are forcing the other to english for now but might add translation later
they could also just remove the entire module and none of this mattered 
@fossil inlet, <t:1767575391:R>: make plugin bisection menu
bisecting sadan
Content
This broke at some point. I think we should just remake this modal ourselves, not too hard.
Request Agreement
- [x] I have read the requirements for opening an issue above
Add Timestamps plugin which allows users to send timestamps by typing a date, time or relative amount of time in their message
This plugin's fuctionality is ported form replugged. The settings were redone to better fit vencord
Possibly irrelevant due to timestamp experiment
Thanks, but this plugin already exists as SendTimestamps
Would I be wasting my time if I added this functionality to the mentioned plugin?
Thanks, but this plugin already exists as SendTimestamps
@Vendicated
Would I be wasting my time if I added this functionality to the mentioned plugin?
discord also added this natively?
they added like a time mention iirc
yes, as an experiment
-# hopefully it goes through
I think there's a high likelihood it does
i still prefer Vencord's plugin UI, it's way better and offer every possible one
also having a datetime picker is just so :_chef:
Hi, thanks but we won't publish any more updates for this installer code base. It'll be replaced by a rewrite soon
you're gonna support asar right 
not initially
aw now i actually gotta add it 
you're free to help with the pr https://github.com/Vencord/Installer/pull/165
but the patcher/unpatcher is not as robust as I would like because it doesnt handle every single case of someones shitty discord install
it just expects the discord instance to be not broken
asar isnt merged yet so it would probably be best to leave that out
or maybe add a flag to it for now to trigger asar I guess for test use
not adding any flags then
so I shouldnt work on it for now?
you're free to but like if its still a wip even on vencords side then it should wait because the installer rw still needs work on other stufff
it cant fixup installs really like the go installer
not robust enough and cant even support custom installs in the gui yet
I think those should be handled first before moving on to a new way of patching
forgot comment rce isnt stable compat but promptToUpload is
I 100% went how often is this too change? prob wont and then threw it in
if you want I can make rce stable compat as well the ending is whats breaking it \}\)\]
@austere talon Would I be wasting my time if I integrated this into the existing plugin?\
probably
For this plugin, I know that it's not available in the official client (since it doesn't have the bitrate cap issue like web version) but I was wondering if it could be refactored in a way that the reversed codec preference could be applied in the official client sans the web-specific fixes?
AMD defaults to using H.264 on VAAPI right now, but it'd be nice to use the plugin to get better quality and bitrate efficiency with a better codec if possible
I was wondering if it could be refactored in a way that the reversed codec preference could be applied in the official client sans the web-specific fixes?
I'm not aware of any (safe) way to modify the official discord desktop client, or inject JS to the webpack of it. But maybe someone with more knowledge can provide a more concrete answer.
Raytracing plugin when
lol
For this plugin, I know that it's not available in the official client (since it doesn't have the bitrate cap issue like web version) but I was wondering if it could be refactored in a way that the reversed codec preference could be applied in the official client sans the web-specific fixes?
AMD defaults to using H.264 on VAAPI right now, but it'd be nice to use the plugin to get better quality and bitrate efficiency with a better codec if possible
I can't say I'm very experienced...
b4eff3b Try to fix Screenshare loading issues on Vesktop - Vendicated
match: /getBadges\(\)\{.{0,100}?return\[/,
a3c64d9 Fix vencord badges not showing if user has no D... - unsigned-32-bit-integer
f9d8c07 VoiceMessages: make text capitalisation consist... - Diode-exe
i just compare member list
i think RCE makes it impossible to see when a message failed to send
cuz they dont turn red anymore
it should have a little text blurb?
bottom left of the message
ill check when i get the chance
theres literally nothing to tell unless you hover over it and see the resend button and i think thats quite bad
unless im blind but this looks exactly as if it has been send
this might send twice idek discord is weird
the message is missing too tf
yea thats why i brought it up
if the plugin makes it indistinguishable whether a message is sent or not thats pretty annoying
isnt that mobile only
that thing
maybe it is mobile then
i mean the "hold" suggests so
it should probably be red if it failed instead of role color
yeah not just probably
well maybe ill look into it later
actually ill do it now just for the fix(RCE) pr title 
real
wow
the patch finds on send failed
π
literally nobody considered that case which is ironic to me
but simple fix
vgh
I've sent you a DM with more info!
[Vendicated/Vencord] Pull request opened: #3895 fix(RCE): Don't recolor messages that failed to send
Recoloring messages that failed to send causes them to become indistinguishable from sent messages without hovering over them. They will appear sent, as if you're partaking in the current conversation, not showing you there was an issue, which makes this unwanted behaviour.
This PR resolves this and lets them appear red, as they do by default.
Earlier return is not possible due to react rules.
we dont


hey, i merged this into my own fork because i wanted to use it and something i have noticed is that the option always being there when no timezone is set can be a bit annoying. i am (and i suspect this will be most people) only setting a timezone on a dozen or so close friends so for everyone else the "TZ" thing is just taking up space. i think it would work well to only so that on the full profile window and not on the DM and small pop up windows
Adds a new plugin that allows users to automate Discord Quest completion directly from the client. This plugin injects a "Spoof Quests" button into the Quests tab header. It utilizes a "Stubborn Engine" approach to manipulate internal Flux stores (RunningGameStore,ApplicationStreamingStore) to simulate game activity, streaming, and video watching. Features include:
- Smart Priority: Prioritizes Videos > Activities > Games > Streams.
- State Persistence: Maintains store state to ensu...
ai slop fortunately
mergeeeeeee
critical issue!!
that doesnt occur in a super rare edge case frfr
millions will kill webp
u can see the quality drop whenever it switches to webp (and even the colour changes lmao)
so insane π
can you send image

what does this become a webp when client loses focus or smthn
oh im stupid thats a video of the offending files
I wanted the offending file lol
oh weird
it does that on the media proxy
on the cdn the look identical
because cdn does not support any of these parameters
ah right cdn changes the ext itself
this pr also fixes issues with uploading files in fakenitro and petpet
i'm not able to get a sticker to appear in upload, so might be related?
50% chance of role colour everywhere, 50% chance of actual rce
discord supports apng natively now right
dont need to convert apng to gif anymore in fakenitro
apng so useless
nope
discord is insane
but you can get apng stickers as webp i think
uh u cant
MEDIA PROXY INSANE
vtest
Now testing! 
No issues found
Seems like everything is working fine (for now) 
No issues found
Seems like everything is working fine (for now) 
That causes a more visible change though 
I liked them being colored while sending now I'm gonna be annoyed π₯
Whatever floats your boat
hmm
maybe we can use the role colour but less dark instead
smth like this
but idk
they should be greyed out in some way to indicate its sending
They are?
how
oh
yop
Unless im completely crazy
no it doesnt play lmfao
without other text in it
it works for me
no youre right
lemme show u
i didnt realise
bro is static
353a699 UserVoiceShow: fix showing in wrong location (#... - unsigned-32-bit-integer
I don't really understand the use case. Why are you trying to host this on a subpath instead of using a subdomain? Doing so is generally discouraged as it will mix cookies etc with other things on the same domain. Subdomains offer better isolation and more reasonable request logs on both ends
you're a masochist for using that feature btw
i hate it so much
ad491a3 fix plugins using intl messages - Vendicated
b4eff3b Try to fix Screenshare loading issues on Vesktop - Vendicated
a3c64d9 Fix vencord badges not showing if user has no D... - unsigned-32-bit-integer
f9d8c07 VoiceMessages: make text capitalisation consist... - Diode-exe
d4d3514 ReplaceGoogleSearch: add startpage (#3438) - w8ck
[Vendicated/Vencord] New tag created: v1.13.12
Did you not undo the rce change
I don't really understand the use case. Why are you trying to host this on a subpath instead of using a subdomain? Doing so is generally discouraged as it will mix cookies etc with other things on the same domain. Subdomains offer better isolation and more reasonable request logs on both ends
I totally understand your point and whilst I can't really "disagree" with it, hosting tooling under a subpath isn't inherently wrong or unusual (it's actually quite common, or maybe I'm outdated...)...
Content
I had a problem that I sometimes didn't see important messages, so i tought of a plugin that will check a selected channel (select a channel by clicking a button in the message input bar that will toggle the feature) for new messages that aren't sent by you and will play the new message sound every minute until read
Request Agreement
- [x] I have read the requirements for opening an issue above
-# Excuse my linux terminology, I'm new to this.
Those alternatives don't work. I've spent the last like 7 hours on trying to get middle click to stop pasting in Discord π. The setting in plasma works only on wayland apps. Discord runs in XWayland.
So for both your points:
- Neither xmousepasteblock nor xmousepasteblock-git work. They both allow the initial paste into the text box to send, but subsequent ones are blocked. It's a weird buggy 50% working situation, but the fact the initial one still pastes makes it worthless overall.
- Force Discord to run in Wayland. Well then multi-clienting becomes scuffed as all of the windows for stable, ptb, canary, and dev will group into one once launched even if you have different wm_classes set in your launch files. There's also apparently a lot of other side effects to forcing Discord to run in Wayland, but I can't really speak to that ||(gemini said so)||.
Ended up just rewriting the plugin in the pr to use patches and intercept Discord's paste handlers. Still slightly scuffed as it relies on a onMouseUp for middle clicks as you can't differentiate between a middle click paste and a normal paste otherwise, but seems to be working fine for me.
For example prevents "joined" message when vencord is started while you are in call in another session
new plugin: copyMentions
adds a plugin that lets you copy discord mentions directly from context menus.
what it does
- copy user / bot mentions from user context menus
- copy channel mentions (text, voice, stage, forum, media)
- copy thread mentions
- copy role mentions from the dev context menu (role badges)
- menu items are placed near discordβs copy id option for consistency
- prevents duplicate menu entries on re-renders
- all features...
wording unfortunately looks like ai
vee reversed the if twice but only reversed half of it the second time 
summary
this pr adds an optional visual tweak to the uservoiceshow plugin.
if you are in the same voice channel as another user, their indicator can be shown in green, making it easier to see who youβre currently in a call with.
notes
- existing behavior is kept as-is
- a separate setting was added so users can choose between the old and new behavior
- nothing changes unless the setting is enabled
i went with an opt-in approach to avoid changing visuals fo...
ai slopping prs at a very high rate
screenshots: n/a (context menu entries only)
aislop and useless (you can just copy id and <@id>) or even better, @username
aislop and useless (you can just copy id and <@id>) or even better, @username
thanks for the feedback, that makes sense
the idea here was mainly about convenience and keeping things consistent with discordβs existing context menu actions, rather than adding a new capability.
that said, i understand if this doesnβt fit the scope or bar for a standalone plugin. totally okay to close this if needed
appreciate you taking the time to review it ^^
we should add agents.md file that instructs the ai to add its own name to the copyright line
yop
I want to post the gnu copypasta to so bad
i got same issue media and gif encode error
<img width="600" height="102" alt="Image" src="https://github.com/user-attachments/assets/bb051cab-88d1-4427-af7a-78a8ce94cbf5" />
this is such a fire idea
tell it to replace a random word in the copyright header with banana
This PR adds two toggleable settings (readAllGuilds and readAllDMs) so users can choose whether the button marks guild notifications, DM notifications, or both as read when clicked.
It also adds support for marking DMs as read, which wasn't supported previously
imo my idea was better #πͺ -progaming message
their readme
Hope its not wrong to ask (or if i am supposed to ask), could I get my PR reviewed? (3885)
request it on github lol
also itβs out of date lol
whatcha mean?
I made the changes from Form to not use anything Deprecated
You gotta be trolling yeahh?

That just means I havenβt synced my branch to the main branch, there arenβt conflicts.
yeah thatβs what i said π
My bad, I thought u said something like it was an issue.
Also wdym?
do you manually assign a reviewer?
Updated to fix and merge RandomQuotes plugin with LoadingQuotes plugin.

@imjustprism Fixed. Forgot about them. Replaced them with the logger used in the plugin.
also, since there is more logger, you better to create logger at module level and reuse it instead of instantiating in catch blocks
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
function QuoteComponent(): JSX.Element | null {
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
if (url.includes("wiki")) {
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
retry with no delay is wild, use sleep from utils/misc
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
or use React.ReactNode return type if you want to keep returning raw string
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
"en.wikipedia.org": ConnectSrc, // Wikipedia
wildcard not needed, api only hits en.wikipedia.org
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
For future updates in case people want a specific language? This might be premature optimization.
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
Do I use en or do I add a language selector?
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
personally i think its not needed to add a language selector, the plugin should do what people expect from it and nothing more, these are already too niche things in my opinion
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
I whitelisted only the English one, so far there was only one or two similar plugin requests to begin with. It can be modified in future updates anyway.
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
if (currentQuote === "" || (url.includes("wiki") && currentQuote.endsWith(":"))) {
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
await sleep(1000 * (retryIndex + 1));
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
unused, just inline the string in useState
Resolved all comments as requested.
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
retry always parses as wiki response, uselessfacts uses data?.text
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
Instead of always checking if it uses Wikipedia by checking the URL, should I pass the chosen API value to the component function?
[Vendicated/Vencord] New review comment on pull request #1729: feat(LoadingQuotes): Add random facts
dont overcomplicate, just
if (url.includes("wiki")) {
currentQuote = data?.query?.pages?.[0]?.extract || "";
} else {
currentQuote = data?.text || "";
}
Appreciate the helpful feedback!
most amount of reviews in a vencord pr
2
Wouldn't it be funni if one created an AI that just review all PRs with LGTM
mmmaaaybe?
i like the notifications, i really hope that it can get merged
Content
I have many gifs as favorite. a folder option would be great so i can sort them
Request Agreement
- [x] I have read the requirements for opening an issue above
not bad actually
terrible terrible idea.
Description
Adds a toggle button to show or hide hidden channels.
Motivation
Implements feature request #3824.
Changes
- Adds ShowHiddenChannels toggle button
- Instant channel list update
Related Issue
Related to#3824
wont that just disable it entirely π
yes
I just noticed rip your reviewdb badge https://cdn.discordapp.com/emojis/1011051634295590942.webp?size=128&quality
what happened
Done π, and apologies for the extra commits.
horror
I just figured I'd report this incase vencord also has the issue https://github.com/Vendicated/Vencord/blob/5c7a90c05f9b51fe0cb44d5d7dc7181861cd81b2/src/plugins/voiceMessages/native.ts#L16 some filenames werent being set to recording.ogg instead I was getting 0recording.ogg 1recording.ogg 2recording.ogg etc only happens when recording with a mic
native.ts: Line 16
if (filename !== "recording.ogg" || !filePath.startsWith(discordBaseDirWithTrailingSlash)) return null;
just had a thought, not sure how hard this would be and might be well out of scope for this plugin but it would be cool to have an option to add the local time a person sent a message next to your local time in the message header. do think this either needs to be on a per user basis (kind of hard) or at least do a check to not do it if they are the same timezone
0recording.ogg C:\Users\~\AppData\Roaming\discordcanary\ C:\Users\~\AppData\Roaming\discordcanary\module_data\discord_voice\0recording.ogg
``` I got that from running discord from console
just tested it on vencord it the issue does happen as well 
is that why some people get failed to finish recording
insane
what is wrong with discord
Title is selfexplanatory, but i also added another marker to emoji sizes.
Hello,
I noticed that the Dearrow plugin does not properly work when the API for Dearrow throws a 404 error, even when the embedded link is indeed a Youtube video. Hence I am proposing this change: if no title nor thumbnail is provided by the main API, the thumbnail API is used instead, which should provide a response for all YouTube videos unless the API is down.
This plugin enables stereo audio when watching streams
My bad

Been looking into the patch that's already being applied in the webScreenShareFixes.web plugin. The only difference I can tell between mine and that one is that the webScreenShareFixes.web plugin doesn't apply the transformation to offers. I've spent an hour or so now looking if I can find a reason. The offers aren't generated with the usedtx part in the SDP.
But I can't find any code for their generation. This is I believe handled in the native code based on the registered devices? May...
BetterSessions isnt on stable yet
nitpick but always prefer lazy to be safe
match: /(renderHeaderContent\(\).{1,150}FAVORITES:return)(.{1,150});(case.{1,200}default:.{0,50}?return\(0,\i\.jsx\)\((?<searchComp>\i\..{1,10}),)/,
8b4a2af fix message hover buttons, BetterSessions & Fav... - thororen1234
guhhh
I did it when I got bored because they pushed stable lol
only if it fails tmk
tmk?
to my knowledge
I didnt see it bloat if it doesnt fail
but could've been a one off
ill just delete it
diff --git a/src/plugins/voiceMessages/native.ts b/src/plugins/voiceMessages/native.ts
index bbc19c89..e191b377 100644
--- a/src/plugins/voiceMessages/native.ts
+++ b/src/plugins/voiceMessages/native.ts
@@ -5,20 +5,21 @@
*/
import { app } from "electron";
-import { readFile } from "fs/promises";
+import { readFile, rm } from "fs/promises";
import { basename, normalize } from "path";
export async function readRecording(_, filePath: string) {
filePath = normalize(filePath);
const filename = basename(filePath);
const discordBaseDirWithTrailingSlash = normalize(app.getPath("userData") + "/");
- console.log(filename, discordBaseDirWithTrailingSlash, filePath);
- if (filename !== "recording.ogg" || !filePath.startsWith(discordBaseDirWithTrailingSlash)) return null;
+ if (!/^\d*recording\.ogg$/.test(filename) || !filePath.startsWith(discordBaseDirWithTrailingSlash)) return null;
try {
const buf = await readFile(filePath);
return new Uint8Array(buf.buffer);
} catch {
return null;
+ } finally {
+ rm(filePath, { force: true }).catch(() => { });
}
}
ca5c58b VoiceMessages: fix 'Failed to finish recording'... - Vendicated
e70747c FakeNitro: improve emoji quality via lossless=t... - Artavazdpet
799ecc3 FixImageQuality: fix webps not animating in chat - Vendicated
pnpm test
Now testing! 
Slow Patches
FakeNitro (took 20.8ms):
ID: 74538
Match: ```
/(?<=canUsePremiumAppIcons:)\i/
Slow Patches
FakeNitro (took 18.4ms):
ID: 74538
Match: ```
/(?<=canUsePremiumAppIcons:)\i/
I love that lmfao
thanks 

wasnt sure what potionbutton looked like before so not too sure if they actually removed it but it was gone from that spot
do you want me to pr any of my finds I added to webpack/common?
or atleast add the ones used multiple times and just import to where they're used
this could 100% be like 25-30 but I made it 50 just incase they add smth else
Hi!
The way the plugin currently works is that it will only replace the thumbnail if the replacement has at least one upvote. I think this was done to only use manually created replacements.
I am not opposed to also using automatic replacements but I think many people probably don't want these. We should make it configurable with a new setting, defaulting to false
Besides that, it'd be much better if you refactored your changes so that it won't use a failed request's response as if it su...
yeah but always use lazy
no matter what
Noted
why? plugins should really not have more than 6 authors, and we don't want to fetch too many users
8b4a2af fix message hover buttons, BetterSessions & Fav... - thororen1234
1047f5b Merge remote-tracking branch 'origin/main' into... - Vendicated
ca5c58b VoiceMessages: fix 'Failed to finish recording'... - Vendicated
e70747c FakeNitro: improve emoji quality via lossless=t... - Artavazdpet
799ecc3 FixImageQuality: fix webps not animating in chat - Vendicated
Devs const
I guess import would've been better 
it is
neat
[Vendicated/Vencord] New branch created: dependabot/npm_and_yarn/diff-8.0.3
1511310 Bump diff from 8.0.2 to 8.0.3 - dependabot[bot]
Bumps diff from 8.0.2 to 8.0.3.
Changelog
Sourced from diff's changelog.
8.0.3
#631 - fix support for using an Intl.Segmenter with diffWords. This has been almost completely broken since the feature was added in v6.0.0, since it would outright crash on any text that featured two consecutive newlines between a pair of words (a very common case).
#635 - small tweaks to tokenization behaviour of diffWords when used without an Intl.Segmenter. Specifically,...
β¦oloring
The condition message.state !== "SEND_FAILED" was returning early for all successful messages, which meant colors were only applied to failed messages.
Changed to message.state === "SEND_FAILED" so that colors are correctly applied to all messages except failed ones.
proof of fix
Just stumbled on this, and I wanted to say you are not alone.
I had to switch from Vesktop to get better performance, and it was laggy even without themes. It just started randomly recently, and is very evident when typing.
Platform is Windows, if that matters.
ok so there's smth really weird
the perf being shit seems related to discord force enabling the new settings panel
i mean "new"
Last edit i did kinda messed up the text above markers, so instead of using a slider i propose to use select method. Also added 2 more sizes cause why not.
Last edit i did messed up the text above the markers, so instead of using a slider i propose to use select method. Also added 2 more sizes cause if it's gonna be a select method then might as well.
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.
If you change your mind, just re-open this PR and I'll resolve any conflicts on it.
[Vendicated/Vencord] branch deleted: dependabot/npm_and_yarn/diff-8.0.3
i have the lag too but it even happens on stock discord (canary) without vencord
Discord cooked
discord always
discord introduced @time i think its fully rolled out
please kill sendtimestamps β€οΈ
Try the competition (other Discord clients), I think they are better except one had a weird quirk on Windows.
no
Understandable, have a great day.
~~what are the differences in getting the workspace started in linux and mac? i am doing something that requires windows, linux and mac and i need to know how to set the repo up in all OSes. I know windows is just git clone, pnpm build and pnpm inject, is it the same in other OSes? ~~
forget what was said, i found the docs
Content
Green is supposed to embody good things happening. Being kicked or banned from a server or having a friend unadd you is never a good thing. Change the color of it.
Request Agreement
- [x] I have read the requirements for opening an issue above
or make it better
idk spawn sendtimestamps modal when @time is pinged
because it fucking sucks in its current state
Imo it's way worse than Vencord's plugin, a time picker so much more convenient
best of both worlds, use either whenever you want
there's also the timestamp tooltip experiment, it's a bit weird they didn't merge these two into one ui
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 ...
the merge branch main commits are from hitting sync with the main repo but i assume you know that
they dont know about when prs get reviewed.....
PRs are eventually looked at, do not bump/reopen them
horrible#
why are they not using discord components
is this new
Retrieved from DeepL's newest documentation as of 16th January 2026.
I've added a new plugin called FakeVoiceState. It allows users to spoof their mute, deafen, and video states locally and to others. This is a helpful feature for privacy and testing.
fake deafen
good for privacy
PRs are eventually looked at, do not bump/reopen them
ah i didnt know that, my bad
average turk pr

insane
i cant reproduce the lag that people have been talking about
what lag
what lag
Uhh try disabling all userplugins, hope that helps!
or well it does feel slightly laggy but even stock discord feels laggy
i don't get any lag, but i am running https://github.com/Vendicated/Vencord/commit/7098f41c5
(this is just my laptop, my desktop has the lag)
smart
That UI is a crime, but the UX is a beauty
I think discord fixed it
Cause it's fixed for me too
I think they did an extra bad update
Encrypt Discord messages to bypass automated link filtering using XOR cipher with unique random keys per message. Messages are encrypted in a stealth format that appears as normal chat.
Features:
- Auto-encrypt messages before sending
- Non-deterministic "encryption" (unique output per message)
- Stealth mode with emoji-based formatting
- One-click decryption via message tooltips
- Translation-style UI for decrypted content
Addresses issues with Discord blocking legitimate links (e...
you forgot to fill in the template the AI gave you
lmfao
yeah, i didn't deem it necessary. if this is something you think people will use, i can open a request again
lol
are you stupid
refer to their username for your answer
interesting π€

@fossil otter
hopefully that's fixed?
Alright I'm back!
hey, i merged this into my own fork because i wanted to use it and something i have noticed is that the option always being there when no timezone is set can be a bit annoying. i am (and i suspect this will be most people) only setting a timezone on a dozen or so close friends so for everyone else the "TZ" thing is just taking up space. i think it would work well to only so that on the full profile window and not on the DM and small pop up windows
Yeah that makes se...
hopefully that's fixed?
its not?
I don't know what's happening with this file but when i checkout your branch I got a crash on the Plugin Settings page.
After running pnpm test it appear that Apexo, rae and thororen was removed which is causing the crash.
The git diff:
git diff main HEAD -- src/utils/constants.ts
diff --git a/src/utils/constants.ts b/src/utils/constants.ts
index 03f5dd6b..a91b6aff 100644
--- a/src/utils/constants.ts
+++ b/src/utils/constants.ts
@@ -30,9 +30,6 @@ const platform = navigator....
<img width="964" height="179" alt="Image" src="https://github.com/user-attachments/assets/d75c1167-3639-4466-ac15-314c8fb57512" />
copy paste mistakeπ
calling enablestyle here is wasteful ig
what is this hardcoded classname and why
you can just
const cl = findByPropsLazy("dotSpacer", "userTag");
man wtf is happening with that file
THAT'S what i forgot about, i could've sworn there was an actually not digusting way to do that
what do i do with these tags anyway? for now at least im just scrapping them
theyβre search aliases so if you have βballsβ in tags if the user searches βballsβ your plugin shows
oh ok, do we have a standardized list of tags or is it vibes
no just donβt use them tbh
It works on my machine :partying_face:
(css broken but can come from my custom theme idk)
Also i don't find how remove completely an assigned tz for a user (like a reset)
Also i don't find how remove completely an assigned tz for a user (like a reset)
i think i thought of implementing this seven different times and forgot each time
dupe send moment
can't believe Vencord is ai slop now
This plugin normalizes channel names with Unicode characters, so people can auto-complete channel names where needed
doesnt discord already kinda do that or am i wrong
For @s yah not #s
(source: just tested)
just reuse their code
I dont think his code is right
.replace(/[^\w\s-]/g, ""); doesn't \w only match [A-Za-z0-9_] so this just fucks up any non-latin script
what da helly
oh I have unicode flag off
you also need to normalize it eg replace Γ© with e
only difference was pcre2 with unicode flag on. it detected the jp and kr
[^\p{L}] is better anyways
full support other than base python. but the popular 3rd party regex package supports it so
nifty page for regex https://en.wikipedia.org/wiki/Unicode_character_property
love you wikipedia.
I will forever despise teachers who say "never use wikipedia".
Agreed
<img width="257" height="28" alt="image" src="https://github.com/user-attachments/assets/a31b4970-78ac-42d6-a7e7-565060174592" />
camelCase? π«
you can simplify if you do it like this
export default definePlugin({
name: "asd",
description: "asd",
authors: [EquicordDevs.Prism],
patches: [
{
find: ",queryChannels(",
group: true,
replacement: [
{
match: /(\i)\.toLocaleLowerCase\(\);return{queryLower/,
replace: "$self.normalize($1);return{queryLower"
},
{
...
EquicordDevs
Bro when are you guys gonna merge this? Timezones is mad useful for working with people internationally.
another thing that would be really nice but might be hard depending on where your getting your data is if the list could include raw GMT offsets and common timezone names. with the current list its kind of a pain to work out what the closest/correct city that is actually on the list is to you friends. also some people might be happy to tell you a timezone but not a city
When the plugin is old enough to use discord
Before that happens the world won't exist anymore
I have never seen a teacher who says to never use wikipedia
Never cite wikipedia is what they usually say
teachers in 2010: never use Wikipedia
teachers in 2026: never use grokipedia
πΏ
another thing that would be really nice but might be hard depending on where your getting your data is if the list could include raw GMT offsets and common timezone names (like ET and AWST). with the current list its kind of a pain to work out what the closest/correct city that is actually on the list is to you friends. also some people might be happy to tell you a timezone but not a city
Thing is, raw GMT offsets aren't actual timezones since places tend to change their GMT offsets and ...
raw GMT offsets aren't actual timezones since places tend to change their GMT offsets
yes but many places dont. and since its only 24 options i think having them there is worth it
and their timezone names
there are spesific names for these timezones. eg, CST and CDT are collectivaly CT and that name includes the changes.
so it would be a hassle to do the time math for that since this plugin is meant to be offline
how are you doing this now? you must be doing some sort of...
yes but many places dont. and since its only 24 options i think having them there is worth it
It's a bit more than 24 options, like India having GMT+5:30 or something like that, also a bit clunky as i'll explain in the next paragraph
how are you doing this now? you must be doing some sort of time maths that accounts for DST
The difficulty in the math is not the time switching, it's that in the same GMT, there are places that switch like the US Central Time switching for DST but m...
It's a bit more than 24 options, like India having GMT+5:30 or something like that, also a bit clunky as i'll explain in the next paragraph
thats fair, i had forgotten about half hour offsets (and lets not mention that Aus has a UTC+08:45 timezone)
The difficulty in the math is not the time switching, it's that in the same GMT, there are places that switch like the US Central Time switching for DST but maybe El Salvador on the same GMT offset might not do that
i would say just ig...
Was wondering if this was okay to do arguments or should I just capture what we need?
This would save me so much effort vencord pls add this
So I was testing to see if raw GMTΒ±X would be a good idea, and it turns out the tz database does not deal with anything but whole hour GMTs? I just linked the fractional GMTs to their cities in the tz database, like Australia/Eucla for GMT+8:45
Overview
This PR introduces the CodeWrapper plugin - a lightweight Discord utility that allows users to quickly wrap selected text in code blocks with automatic language detection and customizable keyboard shortcuts.
What's New
CodeWrapper Plugin
A simple but useful plugin that:
- Detects and prevents wrapping text that's already in a code block
- Wraps selected code with proper markdown backticks
- Supports 20+ programming languages for syntax highlighting
- Auto-de...
i was not expecting to see korean in descriptions
insane
aislop
@austere talon merge
should the license comments at top of plugins stay as they are or can i normalize them to the short design wherever i see them?
-# i might aswell since i'm doing the description-pass pr
index.tsx: Lines 1-5
/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
dont change
ok
Adds a global Reading List (like pinned messages, but across servers and DMs), accessible from the top toolbar with actions in the message popover and context menu.
wouldnt accessing .Message instantly just make it not lazy? π€
i looked into using iced instead of slint for the installer and it does support no gpu using tiny-skia
uses software rendering
had someone else test it for one of my other apps
not sure if this was done or not but this should be the old key mappings just updated to the new keys
I didnt check what was removed I just used a thing to update the keys
I just linked the fractional GMTs to their cities in the tz database, like Australia/Eucla for GMT+8:45
that works well. thanks for looking into it
Adds a global Reading List (like pinned messages, but across servers and DMs), accessible from the top toolbar with actions in the message popover and context menu.
https://github.com/Vendicated/Vencord/pull/3924
How's this diff from bookmarks?
@honest field
doesnt require nitro
ohh shit never realized
yeah requiring nitro is so mid
I have a user app that does this
https://github.com/scrazzz/bookmark-bot shameless plug
well well this does look cute
oh dear emojis
ye makes the text more clear
cba actually
companion now has full support for enums!
should be out on the vscode marketplace now
when zed
when i port it to LSP
π₯
but lspclient-node is a pain to work with
it should be very easy to port it tho
all the logic isn't tied to vscode
does this include higher launch timeout
Nope
agony
Forgot about that
git pull it is
I'll do it tonight
should be on marketplace now
your extension or official
can we have sadan muter back
Now testing! 
i think it exploded
vtest dev canary
Now testing! 
I messed up the command
good
i do not understand what's happening here but i have a feeling that's atrocious discord code.
just small smidge of a feeling
what's wrong here?
π«‘
if they keep this, custom themes are dead
well
technically still possible
but atrocious
oh my god
π
they even mangled the keys
that's gonna destroy so many of our finds
some
now the question is whether they did this intentionally to make themeing harder or just random bundler change some dev cooked up
also why is the action timing out
@austere talon
I have never seen this before LOL
oh my god they are cooking with the bundler
isn't that straight up invalid syntax
0,118356(e,t,n){"use strict";n.d(t,{$o:()=>o,Vy:()=>d,gZ:()=>u,si:()=>c}),n(896048);var r=n(631159);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let a="\nfont-weight: bold;\ncolor: purple;\n",s=()=>{};function o(e){s=e}let l=()=>{};function c(e){l=e}function u(e,t,n){for(var r=arguments.length,i=Array(r>3?r-3:0),s=3;s<r;s++)i[s-3]=arguments[s];"file-only"!==t&&Vencord.Plugins.plugins["ConsoleJanitor"].shouldLog(arguments[0],arguments[1])&&console[t]("%c[".concat(e,"]"),a,n,...i)}class d{enableNativeLogger(e){this.nativeLoggerEnabled=e}constructor(e="default"){var t=this;i(this,"name",void 0),i(this,"nativeLoggerEnabled",void 0),i(this,"logDangerously",function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];s(t.name,"log",e,...r),t.nativeLoggerEnabled&&(null==l||l(t.name,"log",e,...r))}),i(this,"log",function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];(0,r.G)(e,...i),s(t.name,"log",e,...i),t.nativeLoggerEnabled&&(null==l||l(t.name,"log",e,...i))}),i(this,"verboseDangerously",function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];s(t.name,"debug",e,...r),t.nativeLoggerEnabled&&(null==l||l(t.name,"debug",e,...r))}),i(this,"verbose",function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];(0,r.G)(e,...i),s(t.name,"debug",e,...i),t.nativeLoggerEnabled&&(null==l||l(t.name,"debug",e,...i))}),i(this,"info",function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];(0,r.G)(e,...i),s(t.name,"info",e,...i),t.nativeLoggerEnabled&&(null==l||l(t.name,"info",e,...i))}),i(this,"warn",function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];(0,r.G)(e,...i),s(t.name,"warn",e,...i),t.nativeLoggerEnabled&&(null==l||l(t.name,"warn",e,...i))}),i(this,"error",function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];(0,r.G)(e,...i),s(t.name,"error",e,...i),t.nativeLoggerEnabled&&(null==l||l(t.name,"error",e,...i))}),i(this,"trace",function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];s(t.name,"trace",e,...r),t.nativeLoggerEnabled&&(null==l||l(t.name,"trace",e,...r))}),i(this,"time",(e,t)=>{let n=Date.now(),r=t();return this.log(e,Date.now()-n),r}),i(this,"fileOnly",function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];s(t.name,"file-only",e,...r),t.nativeLoggerEnabled&&(null==l||l(t.name,"file-only",e,...r))}),this.name=e,this.nativeLoggerEnabled=!1}}}
this is what we are trying to eval
yeah makes sense
right...
because before it was anonymous function
and now it includes the name
yikes
so that's why everything is failing
yeah
we have to come up with a new solution
we could do {code}
like add {} around it
then use object values to get it
maybe they'll revert
fixed it
but everything is dead π
this doesn't seem right
huh..
oh
right
split happens multiples times...
horrible news for canary users
okay actually fixed now
push to a new branch and run reporter

d70d05b WebScreenShareFixes: improve video codec select... - LeviSnoot
746f31e Type a bunch of stores (#3861) - thororen1234
fcb8276 PatchHelper: Fix incorrect escape handling (#3194) - sadan4
3e036d1 add new plugin MoreQuickReactions (#3865) - programminglaboratorys
58ef658 PetPet: fix dark colours being transparent in t... - unsigned-32-bit-integer
vtest dev2 canary
Now testing! 
lovely
It seems to mostly be the class name change
why not just wrap it in an object and extract by name? keep the function name and dont have to slice anything
smh like this ig
why tho
seems more complicated than it needs to be
there are only 3 ways this can exist
1: () => ...
2: function(){...}
3(){...}
first and second case were already handed
only the third needs the name stripped and function keyword added
anyways, fixing all these finds will be a good amount of work
I think we should wait a bit and see if they are going to revert or not
right 
vtest dev2
Now testing! 
No issues found
Seems like everything is working fine (for now) 
alright
this is not harmless
half of our patches depend on something like \i.guilds
where guilds was a class name
oh
now it's \i.x
ims low
impossible to use
I mean, at the end of the day it is fine probably
but it's just a good amount of work to adjust them
yea
and some modules might be very hard to find
i mean yeah
ig themes are pretty much just all based on updating classnames with a script now
huh?
it seems to work but it takes ages
the first one takes ages, seems the http cache helps with any after that
companion plugin is fixed for those who use it
pog
guhhhh
all module ids got re-hashed
(most likely due to new rspack version)
oh
is discord's bundler just generating wrong code?
LMAO
i think they will roll this back
this is what is supposed to happen
their minifier doesnt catch all use cases of class names
you should probably make this a const
this is what was happening
not the time
custom entries wont show unless they are in that mapping
wait this is just a discord bug
accessing an undefined property
it didn't exist before the mangle
class names should still be in the same order if anyone was wondering
yeah i realised a while ago but somehow vesktop shows anyway
vesktop is just cool like that
what are we going to do about finds that search for classes themselves
eg:
where this is the used class
what now..
For whatever reason sections are fine
Only sections
I have no idea why
I just copy and pasted it as a const and made it return that so it could be pushed too
so is this likely to be a change that sticks and should I get started on updating any of my relevant patches or nah π€
oof
It's just the yearly vencord promotion
they break everything so that people join our discord server
i dont think we've had one in a while 
looks alright btw
yeah
wait did they undo the class name changes?
no
and reverted to the previous style from months ago
that's just a weird module
is it just me or does this make css chunks fail and error in console
important is 100% unused afaik
it does
yeah it should load fine then
REVERT?
yeah
discord so funny
sucks but whatever
(element tree is what matters)
doesnt really matter for us lol
mangled names in the modules impacts us much more
vtest dev2
Now testing! 
we can still find them if we really need to
can check each export see if it's string and contains substring
when are they actually gonna notice the same two functions copied on every module?
?remind 3d add companion hover hint for mangled class names
Alright @fossil inlet, in 3 days: add companion hover hint for mangled class names
new function findModuleByExportedStringsAndMapMangledExports will go hard
No issues found
Seems like everything is working fine (for now) 
yeah so funny
fixed already
but half the patches are broken anyway
btw keep stable compat in mind if possible
idk how fast they will push to stable
we optimally want to support both at once
i think most things should be stable compatible by default, ill run reporter against my pr later
I will help tomorrow with porting some patches
gonna push to your branch
should we push what's on dev2 to dev and main already?
or else settings won't work at all once stables gets bumped
@austere talon
uh
does it make it functional?
but with some plugins not working
ensure all settings ui works and the app doesn't crash with all plugins enabled (it's fine to crash when opening specific tabs / menus)
if yes, then yes
updated version of #πΎ-core-development message if someone wants to replace the pin
mostly functional
.
i would have known if you did because i would have seen it in the pins π
plugin settings dont work
π₯
try to fix that first
sort alphabetically by value
they all should be except for the first one
I can do tomorrow but im not sure if they wont push before it
why is the first one an exception
it was a key found after they hashed them
move it then
I fixed it after I sent it the first time lol
I'll look into some patches in a moment 
I have a PR with a bunch of fixes already
discor loves shipping 10000 polyfill functions instead of updating their build config and accepting that most browsers already support baseline 2015 features
Content
as said in the title i wanted to see if its possible for yall to fix the fake nitro plugin by making emoji and stickers embed to discord almost like a photo so that anyone can see it like a normal sticker (just without some features) for example: taking a sticker/emoji and embedding it as a picture like jpg so that it still shows for everyone and allows you to use emojis everywhere
Request Agreement
- [x] I have read the requirements for opening an issue above
it does? fakenitro says it shows as a link to others who dont have vencord
i cant bruh 
vtest
Now testing! 
No issues found
Seems like everything is working fine (for now) 
@limber skiff I think we have to add a new findCssClasses() webpack method
how would that work?
just checks if exports are string and contain all your classes
688963(e, t, n) {
"use strict";
e.exports = {
kL: "container__183c2",
Kk: "icon__183c2",
dl: "size56__183c2",
H: "avatarContainer__183c2",
aV: "avatarContainerMasked__183c2",
UC: "clickableAvatar__183c2",
F2: "emptyUser__183c2",
Hb: "size32__183c2",
q1: "size24__183c2",
nc: "size16__183c2",
F_: "emptyUserDimmed__183c2",
WK: "avatarWithBackground__183c2",
my: "avatar__183c2",
In: "moreUsers__183c2",
iq: "moreUsersDimmed__183c2"
}
},
findCssClasses("moreUsers", "clickableAvatar");
// returns
// {
// moreUsers: "moreUsers__183c2",
// clickableAvatar: "clickableAvatar__183c2"
// }
but what if they hash it again?
then we cant find
in that case we just hardcode the hash?
idk
we could still have something like
findCssClasses({
moreUsers: "includes this",
clickableAvatar: "some hash"
})
so that the reporter catches when the hash changes
idk π



