#๐พ-core-development
1 messages ยท Page 291 of 1
istg there needs to be like, a discord account ban from this server for posting ai slop
right
V how could you
I'd pr but I dont actually know what that css is supposed to be doing and dont want to break anything so 
Jesus two years and no response is wild, been wanting to find this myself
hah, indeed, apparently I upvoted this back then and I'd do it again
Closes #4182
This is my first time writing patch regexes for Vencord, so hopefully I'm doing this right. Apologies if not.
I initially thought this would be a pretty simple task but it required a lot more code than I had anticipated.
- Patches the Message component to check if its a reply to a blocked user and return
nullif so. - That check uses
ReplyStoreto lookup message references, because messages being replied to often weren't inMessageStorein my testing, especially wh...
ReplyStore? jesus how many stores does discord use
[Vendicated/Vencord] Pull request opened: #4191 VoiceMessages: add Alt+V to record and Alt+B to send
Summary
Adds keybinds to the VoiceMessages plugin: Alt+V to open the recorder and start recording, Alt+B to stop and send.
Motivation: the existing flow requires right-click โ context menu โ Start โ speak โ Stop โ Send (4 clicks plus mouse navigation). Often voice-message senders just want to fire and forget.
Behavior
- Alt+V (global): opens the modal with
autoStart. Permission-checked the same way as the right-click context menu. - Alt+B (modal-scoped): if recording, stops;...
I thought I could overwrite this for the quest box with a higher specificity css selector but even then the icon is hidden until I manually uncheck alignedChatInputFix's rule ๐ค any ideas
From my experience just patching readstatestore and messagestore is absolutely enough to filter out replies, it's the first two patches, just put an or into the if and see if that works if you didn't already (worked fine for me the last time I worked on #3035)
nvm got it
[class*="panels"] [class*="questProgressWrapper"] [class*="outer"] > [class*="inner"] {
height: 100% !important;
}
[class*="panels"] [class*="questProgressWrapper"] > div {
opacity: 1 !important;
}
What happens when the bug or crash occurs?
The bug happens when clicking 'View Role Members' when right-clicking a role
What is the expected behaviour?
I expect Vencord to show members that has that role
How do you recreate this bug or crash?
- Enable the PermissionsViewer plugin
- Right click a server
- Click 'Permissions'
- Right-click any role and press 'View Role Members'
Errors
Replace this text with your crash-log.
Request Agreement
- [x] I am...
[Vendicated/Vencord] Pull request opened: #4193 ShowMeYourName: Update the name in "is typing" field
Fixes #2129
This PR patches the typing indicator at the bottom of the chat to match the plugin's selected mode.
They don't love it anymore ๐
Turns out squirrel does checks on the designated signer (somehow I glossed over that) so it will cause issues unless thereโs a new build with the current identity with a new designated signer allowing the new identity
https://github.com/Squirrel/Squirrel.Mac/issues/160
https://www.electron.build/electron-builder.interface.masconfiguration#requirements
I found it (Iโm so stupid), we can set the designator here -> release a new build with lewis cert with these new requirements which would allow my cert -> we can probably wait a few weeks so people can update to latest -> release a new build with mine
Thanks for your contribution โค๏ธ
We don't work on this codebase anymore, so this PR is obsolete. A new Installer will come sooner or later
Thanks for your contribution โค๏ธ
We don't work on this codebase anymore, so this PR is obsolete. A new Installer will come sooner or later
Thanks for your contribution โค๏ธ
We don't work on this codebase anymore, so this PR is obsolete. A new Installer will come sooner or later
Thanks for your contribution โค๏ธ
We don't work on this codebase anymore, so this PR is obsolete. A new Installer will come sooner or later
Thanks for your contribution โค๏ธ
We don't work on this codebase anymore, so this PR is obsolete. A new Installer will come sooner or later
banned for spam
Thanks! I ended up doing this myself via https://github.com/Vencord/Installer/commit/f5208b55ad612624a80ab967634ec88bf8302d3d, which is simpler (just copy pasted the logic from Windows) and also supports Flatpak โ I also had to do some other changes because the main branch was in a broken state from some WIP commits I pushed ages ago, which should never have even made it to main in the first place
I really appreciate your contribution though
Currently the roles/users list in the permissions modal is unsorted, making it hard to find a specific user or role at a glance.
This change sorts the list alphabetically by name within each type group (roles first, then members), re-sorting reactively when member data finishes loading.
Ordering alphabetically doesnt make that much sense either imo. If anything it should be ordered by hierarchy, i.e. highest role first
What if we do roles per hierarchy and users alphabetically?
If you think that's AI then you have no clue how AI talks
i also have EN DASH
vch โ โ
โโ โ โ EN DASH
โ โ SPACE
โ โ โ EM DASH
wait
the reason they're called endash and emdash are because they are the length of n and m respectively

thats a thing?
you learn something new every day
When though 
Sometime after timedones is merged
?remind 4hr test on windows on arm
Alright @fossil inlet, in 4 hours: test on windows on arm
If discord even supports that ๐ญ
I donโt really remember if it does I know it doesnโt support Linux arm
@fossil inlet, <t:1778093081:R>: test on windows on arm
adds message search across all dms and group dms to the quick switcher. mobile discord has this through an internal api but desktop never got it natively. there was an experiment for it on desktop but it was removed from the client about a year ago.
opens with ctrl+k. searches dms and group dms. tabs for all, messages, media, pins, links and files like the mobile app.
why are they using whatever_case_this_is this is so cursed
Content
Request Agreement
- [x] I have read the requirements for opening an issue above
๐_case
prev fix patched the unrelated expanded
@cunning canyon lurking
Small plugin to let you click on timestamps and switch to one of the other formats. Could probably go in Tweaks if that ever becomes a thing.
i thought this was minified at first ๐ญ
guh
concatenated modules wil cause 500000 more undiscovered bugs
patches don't fail anymore they just silently match the wrong thing
Content
Oh, I'm a developer alright. Just elsewhere. You can take the issue here or you can choose to ignore it entirely. I don't take kindly to being yelled at in red and bold to go subject myself to a chat room full of strangers when I have something concrete to submit to you as a gift of knowledge. You don't get to tell me I'm being combative when this... this... boilerplate image is what you put on your issues page. jfc. Outright hostile and bitterly annoying. Don't want to help?...
LMFAO
Do you think being petty in the issue description is going to improve your chances of being taken seriously?
<img width="480" height="360" alt="Image" src="https://github.com/user-attachments/assets/a3584e35-fe02-456f-b533-9d3785860fa0" />
What the hell is this issue
You don't explain any details.
If you are a developer, you should understand that you can file an issue without being a pretentious prick and intentionally holding back info.
What do you expect to get out of this? Are you trying to prove you are a better person?
If you don't want to aid in resolving the issue, just suffer in silence.
You are not ENTITLED to a fix, nor are we required to deal with your attitude towards this issue.
average linux user
When I saw this I thought he was replying to someone
No, heโs just straight up replying to the automated message that yall wrote
Like what
Adds a local time badge next to usernames in profile popouts.
Your own timezone is auto-detected from your system. For other users, you can right-click their name and select "๐ Set Timezone" to manually set their timezone, which is saved locally on your client.
This is useful for Discord servers with international members where knowing someone's local time at a glance is helpful.
Features:
- Auto-detects your own timezone
- Right-click any user โ Set Timezone (26 timezones availabl...
You know Mr Oh I am so intelligent if you submitted this issue to the correct repository you wouldn't even have seen this warning in the first place...
@cunning canyon pls give this better name that actually describes what it fixes

idk whaty it actually fixes
I don't think this is really correct
The problem is that our above patch makes Discord consider images as nonVisualMediaItems which makes them full width
This patch bandaid fixes that by making all nonVisualMediaItems render without full width, but this will also affect real non visual items (i assume stuff like files, maybe voice messages, etc)
We have to fix it properly some way but I couldn't figure out a good way that's why I just deleted the plugin for now xD
bettersessions doesn't work with sessions menu redesign which has been rolling out, just something to look out for
-# dev://experiment/2026-02-user-settings-redesign-4b/1
holy this is some hot garbage
look decent #imho
they made this permanent i think
nvm it's also experiment
insane downgrade
bro its this
settings redesign
so the patch right above it makes expanded return a list instead of a bool
this fixing patch supposes to makes expanded props use that list to check
but it was matched at wrong place, so the expanded props only see the list and always truthy
which makes all folder think it is expanded and always show blue folder icon instead of normal 4 small guilds
so it causes plainfoldericon-like effect without enable it
idk how to name it
how about this
Also what do we think of the idea of adding a toggle button, which would allow switching from usernames to nicknames?
The current system only does discord usernames.
Closes #4192
Add BetterRoleContext as a dependency for PermissionsViewer.
The โView Role Membersโ button added by PermissionsViewer relies on the RoleMemberPopout hook implemented by BetterRoleContext. Without the plugin enabled, the popout renders without any members.
This makes BetterRoleContext a required dependency for the feature to function correctly.
Summary
Adds NoNameplates, an appearance plugin that hides Discord collectible nameplates in the member list.
Rationale
Discord nameplates can make the member list visually noisy and harder to scan, especially in large servers where many users have animated or high-contrast nameplates. This plugin provides a simple toggle for users who want a cleaner member list without disabling other profile decorations.
Although this is implemented with CSS, keeping it as a plugin makes i...
.container_df39b2 {
display: none;
}```
Consider using QuickCSS instead of aislop
[class*=nameplated]>[class*=container],
[class*=dm] [class*=fadeIn] {
display: none;
}
oh wait their plugin is just css lmao
Yeah it is
I will be guessing every number that ends with those 4
I'm no vencorder but from my experience developing the betterdiscord-equivalent plugin, the state this is in now is still gonna crop images because of discord's width and height link hardcoding (unless something else in vencord prevents this)
Again I didn't test this but that's my interpretation from trying the same things in the bd plugin
Summary
- add a small runtime i18n helper for Vencord settings UI strings
- add an interface language setting with
auto,English, and็ฎไฝไธญๆ - move Simplified Chinese strings into
src/utils/i18n/locales/zh-CN.ts - translate the existing Vencord settings tabs, plugin settings shell, theme/sync/updater/settings surfaces, while falling back to English for missing strings
Notes
This is intentionally scoped as a conservative draft: it adds the localization plumbing and one Simplifie...
duplicate of https://github.com/Vendicated/Vencord/pull/3688
this pr was also made with ai
"This is intentionally scoped as a conservative draft" what the fuck does this even mean
feedback?
discord's bundler broke our find by turning it into gore @limber skiff
LMAOOO
why does it change every single day
i just realised why tf is ContextMenuApi and MenuItemDemanglerAPI two plugins
ill merge them
the bundler for some reason made a lot of special characters unicode escapes now
@fossil inlet
Now testing! 
nope
Guess it got changed a while back
Why fix your character encoding when you can just make everything ascii 
Slow Patches
BetterFolders (took 26ms):
ID: 253363
Match: ```
/(?<=let ?(?:\i,)*?{folderNode:\i,setNodeRef:\i,.+?expanded:(\i),.+?;)(?=let)/
No issues found
Seems like everything is working fine (for now) 
I can't really blame them for doing that. I'd hate to debug a character encoding issue
๐
replace: '$&,useFullWidth:["IMAGE","VIDEO","CLIP"].includes($1.item?.type)?false:undefined'
Seems pretty over-engineered, like AI code usually is
I kind of overlooked the fact that BetterRoleContext needs its patch to function...
This is indeed a fix but I'm not sure if I like making BetterRoleContext a dependency of PermissionViewer
38340bb BetterFolders: fix using wrong folder icon (#4197) - AutumnVN
Ah alright, i'll look at fixing it another way
any news abt https://github.com/Vendicated/Vencord/pull/4193
or just im getting ignored joe_sad
new modal api is so peak
openModal(props =>
<Modal
{...props}
title="Modal Title"
subtitle="Modal Subtitle"
actionBarInput={<Paragraph>Action Bar Input</Paragraph>}
actions={[
{ text: "Action Primary", variant: "primary", onClick() { } },
{ text: "Action Danger", variant: "critical-primary", onClick() { } }
]}
input={<Paragraph>Modal Input</Paragraph>}
preview={<Paragraph>Modal Preview</Paragraph>}
notice={{ message: "Critical Notice", type: "critical" }}
>
<Paragraph>Modal Content</Paragraph>
</Modal>
)
i cant send image because Discord api is shitting itself
Just catbox lmao
well damn that sure is pretty
new confirm modal https://files.catbox.moe/ujpudq.png
openModal(props =>
<ConfirmModal
{...props}
title="Vencord Auto-Translate Enabled"
subtitle="You just enabled Auto Translate! Any message will automatically be translated before being sent."
confirmText="Disable Auto-Translate"
onConfirm={() => settings.store.autoTranslate = false}
cancelText="Got it"
variant="primary"
checkboxProps={{
checked: false,
onChange: checked => settings.store.showAutoTranslateAlert = !checked,
}}
/>
);

is it done
its done
i find it interesting how ai takes as long as a human would
20 mins
claude agent would take 2 seconds btw
`vari...

cursed plugin modal
indeed
so much padding bro
how does customrpc look
just copy the width of the old one?
meh idk
its not really a width prop
its size=lg
holy cow
"size-sm": "size-sm__8a031",
"size-md": "size-md__8a031",
maxHeightViewport: "maxHeightViewport__8a031",
"size-lg": "size-lg__8a031",
"size-xl": "size-xl__8a031",
"size-xxl": "size-xxl__8a031",
i want to see xxl
this api is so nice though
i didnt really give it specific enough instructions
so it copied over some legacy patterns
second
agree but the buttons should be next to title
seconddd
maybe inline with tags
for some reason discord only adds the border if its bigger than 100% height
what's with the empty footer thing
what do you mean copilot branch mate
theyโre vibecoding
lgtm
Yeah I used claude to do this pr. The username sorting alphabetically is good, you already approved. The nickname stuff is pretty over engineered. I can remove it if you want.
even their response sounds like claude
Actually I wrote that response myself 
anthropic should higher you
no
confirmed at the source ๐
5c3c9eb final (?) fixes - Vendicated
2fe8846 Migrate remaining legacy modal APIs to modalV2 ... - Copilot
Essentially finished
Remaining TODOs:
- Test FakeNitro & SupportHelper modals
- Deprecate old Modal stuff
- Update Vesktop
- Eventually remove old modal stuff
Pull request overview
This PR migrates a large set of Vencord UI surfaces from the legacy modal system (@utils/modalโs ModalRoot/ModalHeader/... and Alerts.show) to Discordโs newer modal components (Modal / ConfirmModal) surfaced via a new @webpack/common/modalV2 wrapper, while also updating related types and styles.
Changes:
- Added
src/webpack/common/modalV2.tsand newdiscord-typesdeclarations for the new modal APIs. - Replaced many plugin/settings modals and aler...
dismissedAutoTranslateAlert replaces the previous private setting (showAutoTranslateAlert), but thereโs no migration/fallback. Users who previously disabled the alert will start seeing it again after updating. Consider migrating the old key (or honoring both keys) on startup to preserve existing user preference.
The โClear Notification Logโ action is always enabled now. Previously it was disabled when log.length === 0; consider restoring a disabled: log.length === 0 guard (and/or skipping opening the confirm modal when the log is empty) to avoid a no-op destructive action.
This modal previously had an explicit โGo Backโ cancel action; with ConfirmModal and no cancelText it will default to โCancelโ. To preserve the existing UX (and intent), set cancelText="Go Back" (and optionally use onCancel if any additional behavior is needed).
The previous implementation wrapped the content in a <form onSubmit> to allow pressing Enter in the name input to submit. After the migration to the new modal/actions API, that submit-on-Enter behavior is gone. Consider restoring a <form> (or handling Enter on the input) so keyboard submission still works.
scrollToTop scrolls ref.current, but the ref is now attached to an inner <div> rather than the modalโs scroll container (previously this was wired via scrollerRef). This likely breaks the โscroll to topโ behavior. Prefer passing the ref via the new modalโs scrollerRef prop (or otherwise referencing the actual scrollable element) instead of a child div.
hm
glorious ai ui
it didn't understand the layout fully and put it in the wrong container

wait i pushed to wrong branch lmao
[Vendicated/Vencord] branch deleted: copilot/migrate-old-modal-patterns
[Vendicated/Vencord] branch deleted: remove-deprecated-options
[Vendicated/Vencord] branch deleted: custom-alert-modal
[Vendicated/Vencord] branch deleted: plugin-tags
[Vendicated/Vencord] branch deleted: dev4
[Vendicated/Vencord] branch deleted: ci/rebase-to-dev
[Vendicated/Vencord] branch deleted: ci/contrib-requirement
+1
Installer seems to not work without this
write an autofixer for this @satan
does eslint-plugin-import not have it
no because technically it's not autofixable
isn't that the point of suggestions
it's not an autofix
but you can click a button and it will apply
oh we dont use that
just eslint base
well this works lol
because it can change behaviour
reordering imports isnt safe
it's not reordering tho
import {a} from "foo";
import {b} from "bar";
import {c} from "foo";
import {a, b} from "foo";
import {b} from "bar";
nothing is reordered
foo is still ran before bar
i guess but its ambiguous which one u meant
anyway i dont want to switch to that dependency
no need
not sure if im happy with new sever info modal
2731 miles of padding
old look
looks fine to me
i'm not a fan, but i don't use it often enough to want to fix it either
how would u make it look better
its difficult to do it with new modals
u cant make the banner full width
and u need a modal title
what happens if you don't return a <Modal /> from openModal
could you just do whatever you wanted
well yes you can do that but husk
hop on negative margin
nooo...
evil
this new modal api is so nice to use though
wayyyy less boilerplate
and more consistent look
<img width="100" height="400" alt="image" src="https://github.com/user-attachments/assets/6491680d-7c71-4e1b-b446-93294f44e02e" />
maybe niche, but I personally find seeing people I've blocked react annoying or frustrating
configurable
ai
showmeyourname effectively kills colors/effects from display name styles, only font stays
good luck fixing that was a nightmare to do on my version lol
wait thats new no?
i swear it used to work days ago
ai
goooood
positive side effect
WHAT
okay man
at this point just make a plugin that's filled with css snippets to hide every nuisance in the client
that's not even a bad idea actually

My Anammox does that, though I haven't been maintaining it lately
also no not reliably
cors moment
yikes
how did we never notice this before
is it normal that text replace doesn't work with commands ?
it'd be nice to be able to do smth like
/command argument:smth
and be able to replace it like
/command argument:smth <trailer>
with a regex like
find : ^/command argument:.*$
replace : $& <trailer>
seems like disablecallidle is broken for dms atleast on stable
+1
Just checked on arch linux, it works great!
own review isnt displaying anymore Again
fullsearchcontext also dead
hasn't it been for a while
shrug i just see bug and send here
A plugin that allows to change Discord sounds, replacing them with the seasonal ones or your own sounds that you can upload.
Basically a duplicate of #1765 with some QoL changes:
- Allowed uploading multiple files within the same popup;
- Uploading existing files invokes a prompt to skip or replace files;
- Missing files at configuration import invokes a prompt to upload those files;
- Derived sounds: you can set different sounds to events that either reuse the same sound (connecting...
Funny enough, I was working on a bunch of fixes (including the ones you mentioned) and improvements right as you made the PR
dunno if I should create a separate PR or what since I just pushed an update on the customSound's main repo that includes all the fixes this PR has + additional improvements and feature additions
-# I'm the maintainer/dev for the customSounds plugin
Funny enough, I was working on a bunch of fixes (including the ones you mentioned), improvements, and additions to the plugin right as you made the PR.
[...]
Edit: I just released an update for the plugin with all fixes (including an improved version of the ID/export system) + some improvements, and new features. Dunno if this PR should get closed and resubmitted or what since this version of customSounds is missing many things.
Hey, glad to hear you were working on an update as we...
[Vendicated/Vencord] branch deleted: modalv2
looks really overengineered ngl, feels like 70% of this is just bloat
looks really overengineered ngl, feels like 70% of this is just bloat
At some point I felt exactly the same, like: "cmon, there is no way you would need 1k+ lines just to replace sounds :Clueless:".
It does a bit more than just replace sounds though. You could argue that it should do anything but just that
This is the main culprit for me. The only usage I could think of is people moving their existing configurations from the userplugin which would still require to move the store data. Easily -160 lines.
this entire plugin should be like 500 loc
i dont see the point of this, they'll just reconfigure it for themselves anyway, it only adds extra complexity
this entire plugin should be like 500 loc
I just pushed out an update that compacts the plugin to 470 loc.
https://github.com/ScattrdBlade/customSounds
cant wait for this problem to hit stable
#๐ฅ-vencord-support-๐ฅ message
#๐ฅ-vencord-support-๐ฅ message
#๐ฅ-vencord-support-๐ฅ message
is better settings fucked
on main yes kinda
why are you french
Adds a PdfViewer plugin (.desktop) that previews PDF attachments inline so the user no longer has to download them just to see what's inside.
This supersedes the dormant #2876 by @TheGreenPig โ the original concept and BetterDiscord port are entirely theirs, and full credit for the feature goes to them. Their last code commit was September 2024 and the PR has been inactive since. This is a fresh implementation that incorporates the review feedback you left there:
- Renamed to `PdfVi...
fair enough
@Vendicated would the updated fix I made be better than adding it as a dependency? i don't have much experience with plugins and stuff
That's the neat thing, i'm not French !
I'm Belgian !
oh so youre literally the door into france
cool
A proper viewer would just use pdf.js from mozilla
Oh wait it does
Holy slop code like wtf this could be so much simpler
(please dont kill me)
Not really, we're just neighboor
We can get all the good french things without being french
Like good wine baguettes some cheese
And we also have our own good things !
Genuinely how do people produce so much slop and don't think any second i'm just gonna at least clean this up
Like bro is it really just their AI waifu being so sycophantic that's the issue or what
if they were competent they wouldnt use ai to generate everything
I mean i say i'm competent and i recognize that AI can have a use
Absolutely not left out alone but just as another tool which can do stuff but isn't issueless
Like stupid shit but to actually have ideas about what CSS i could use to work around discord crap i sometimes fire AI while i dig through MDN, but at the end of the day i just get the output and go MMM interesting let's verify that with mdn
there is a difference between using ai as a copilot and putting ai in the driver seat
Definitely, i see AI more as a fuzzy finder than the magic answer equation
Adds the tobezdev's Tweaks plugin which provides the following features:
- option to disable avatar decorations
- option to reduce the scale of the read all notifications button provided by
- option to reduce the scale of the online friends indicator provided by
- option to enable smooth animations client-wide
- option to edit the reply/mention highlight background & bar to one of the following present themes:
- None (keep default highlight)
- Disabled (removes highlight entire...
Please read the contributing guidelines. This is just a glorified theme
VCQueue Plugin
Automatically queues you for full voice channels and joins instantly when a spot opens.
Features
- Clicking a full VC queues you instead of showing the "Channel is full" popup
- Instantly joins when a spot opens
- Supports multiple queues simultaneously โ first channel to open, you join
- Toast notifications for queue status
How it works
Hooks into selectVoiceChannel directly and listens to VOICE_STATE_UPDATES flux events to detect when someone leav...
Summary
- Adds a new plugin that automatically reacts to messages where the user is mentioned
- Supports both unicode emojis (๐, ๐, etc.) and custom server emojis (name:id format)
- Configurable via plugin settings
Context
A small, fun plugin for users who donโt like to be notified and want to add a touch of humor to mentions. Although not essential, it can add a bit of fun to mentions.
How it works
Listens to MESSAGE_CREATE flux events, checks if the current user is mention...
aislop selfbot pr, incredible
holy 3 slop prs a day
omg they said copilot they said the name of the thing
๐ ๐ ๐
Content
The plugin works fine overall but it would be nice if it worked on persons username when they are in voice channel
Request Agreement
- [x] I have read the requirements for opening an issue above
idea, make add a new agreement tick "i understand i will be blocked from the repository if i am not instructed to make post"
trash issues rate drops to 0%
false
threat of getting banned is much more terrifying
false
this is literally what you see
it's just retards who dont care
wait github added maintainers only thing
maybe I can delete the other templates
my brilliant ideas led you to discover something even better
peak
i can fully disable issues
guh but then people like satan cant open issues without having write access
oh wait maintainers
issues, not prs
what if AI
Wait does that mean I can't make issues
Oh I can't scroll down
@austere talon have you considered moving issues to a separate repo
heisenbug ?
yea i was gonna say this
then u just give write access to people wjo should make issues
and have branch protection on or something idk
xdd
trash issues drop to 0%
trash prs increase 900%

What happens when the bug or crash occurs?
What is the expected behaviour?
Usually the channel names were visible and hidden channels were in some category, but now they are uncategorized
How do you recreate this bug or crash?
- Open any server that has hidden channels
- Observe the bug
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 Venco...
Not really this one let's you put in a custom time for the exact Time on the clock you wan't it to be, which I myself found more handy to be automated than just with the preset times.

They removed the tick from the "I am a Vencord developer" after posting
Literacy rates are plummeting
callttimer is doing that bipolar thing again
Closing PR since discord released native version
Closing PR since discord released native version
Doing what?
just not working for multiple people
ofc and everyone in support that it's bugged for, are on latest
can we have "mouse failing to function" as a #1257025907625951423 (please see in:#๐ฅ-vencord-support-๐ฅ click)
one of the workarounds of all time #๐ฅ-vencord-support-๐ฅ message
Id look into it if I could reproduce it
i just emptied my quick css out and attempted to load some online themes, nearly the entire window is a window drag region
im able to reliably get the bug using this ```json
"themeLinks": [
"https://nyri4.github.io/Discolored/support/discolored.theme.css",
"https://davart154.github.io/Themes/Snippets/Mana Page Switcher/ManaPageSwitcherSource.css"
],
although i was able to get it with just one of them earlier (unreliable)
it really isnt though
just swapped those out for these ```json
"themeLinks": [
"https://cdn.jsdelivr.net/gh/LuSaffi/VenCordstuff@main/CSS/oldfont.css",
"https://github.com/CapnKitten/Spotify-Discord/raw/9984ccda043f3fc9b715991eadd81db62c153026/Spotify-Discord.theme.css"
],
same result
as the guy said in that workaround post, it doesnt seem to be dependant on what the themes are, just the mere presence of them causes it
I can reproduce it
it doesn't seem to be an issue with the custom themes specifically since this style is added as an "injected stylesheet"
where tf is this coming from
lol
probably electron bug
yeah i doubted it was specifically the themes, but the correlation with the theme settings key is uncanny
i look forward to it hitting stable
doubt it will
i mean, doesnt occur on non-modded installs, discord have nothing to fix
you talk too much
talking about talking when will you merge my pr
simple css workaround for that issue, gonna use that for now, thank you come again ```css
/* Workaround mouse lockup with online themes /
/ #๐พ-core-development message */
body { app-region: no-drag; }
lets see
insane
ai probably writes better code than u
so this is good news
it has access
why doesnt it work @gritty iris
tbf it took a few minutes to react too which it doesnt usually (I think?)
probably first time setup
or smthn
yeah i checked and it hadnt reacted when I checked
Code Review
This pull request implements a voting system for reviews, allowing users to upvote or downvote content. Key changes include the addition of a VoteButton component, new API endpoints for managing votes, and state management within the ReviewComponent to track scores and user interactions. The review feedback focuses on improving the robustness of the state management by using useEffect to synchronize local state with props, implementing a loading state to prevent race condition...
Add useEffect to the imports from @webpack/common to allow syncing the local state with props when they change (e.g., after a refetch).
import { Alerts, IconUtils, Parser, Timestamp, useEffect, useState } from "@webpack/common";
Introduce a loading state to prevent concurrent voting requests and use useEffect to keep the local state in sync with the review prop. Since useState only initializes once, the local score and localVote would otherwise become stale if the parent component refetches data.
const [localVote, setLocalVote] = useState<boolean | null>(review.userVote ?? null);
const [score, setScore] = useState(review.sc...
Implement the isVoting check to prevent race conditions from multiple clicks. Additionally, use a functional update for setScore to ensure the score is updated correctly based on the most recent state, and wrap the API call in a try...finally block to ensure the loading state is reset even if the request fails.
async function submitVote(isUpvote: boolean) {
if (isVoting) return;
if (review.s...
pay for everyone to use codex 5.5 at 1.5x fast mode in prs
surely cheap
@copilot fix whatever gemini said
copilot been bad since their billing changes
it always swallows my first letter
if u arent focused to it and start typing, it wont register the first letter
worked for me. not 100% updated tho
it takes a bit
test on canary
I main canary. updating it rn
the notes genuinely pissed me off I setup a disgit to specifically ignore gemini
wdym?
everyone was running the cmd
wtf
so it flooded the logs
love
whats disgit
oh now it worked
yeah
eats first character
wtf
no
it eats as many as the time it takes to focus the chat
if you type fast itll eat 2
so peak
I forked it a bit
because it was missing a few matches
thank god it happens on stock discord
yeah try pressing 3 letters at the exact same time while not focused
none get sent in chat
u sure lol
yes
im not sure if I actually care about this change yet. im not sure how often I try typing without focus. guess we'll see how annoyed I get in the next 24 hours
theyll def fix it lol
on the bright side discord autofocuses chat on channel switch
HUSK
One day the reply to review will be merged
Right before timedones is
it really does have to do something with fetching and parsing a stylesheet at a specific time before discord loads ๐ญ
if you comment out this line (or comment out the css imports, or literally do anything to make it not load the stylesheet) it fixes itself
https://github.com/Vendicated/Vencord/blob/909df8b8c22e377aacbab6587db10e952bf1a461/src/api/Themes.ts#L80
Themes.ts: Line 80
themesStyle.textContent = links.map(link => `@import url("${link.trim()}");`).join("\n");
yeah some insane electron or discord bug
rather just the dir in general
I made prism make it 
my soul
u can remove this
options is kill
assuming u merged upstream
i think this is just ai slop
ai loves to use optional chaining on everything
better safe than sorry
Well it's artificial for a reason 
I did just never updated styleguides
COPILOT IS NOT COOKING
@copilot retard fix the issues gemini said
let's see
idk bro do it locally
sugoooooi I think this should be merged
am in debt
I dont even pay my own codex

I use it from family
@austere talon if you pay 195 dollars and I pay 5 dollars we can get codex pro 20x and make millions vibecoding slop with it
Iโve gone ahead and removed the nickname toggle change now.
Idk if I should open a new PR for that change, but it feels more right to keep this PR focused on the original quality of life improvement instead of adding extra complexity for no real reason.
me when i use copilot cli instead of claudius code
FIX: implicitRelationship constantly reloading
send a list of userIDS rather than userObjs
Code Review
This pull request fixes a bug in the implicitRelationships plugin where the GUILD_MEMBERS_REQUEST dispatch was incorrectly receiving objects instead of user IDs, which caused constant reloads. The reviewer suggests removing the newly added explanatory comment, as the code is self-explanatory and the testing details are better suited for the pull request description.
The comment added here is redundant and contains meta-information about testing ("tested and now it won't reload...") that is better suited for the pull request description or commit history. The code itself is self-explanatory, as the userIds property and the subsequent .map(e => e.otherUserId) clearly indicate that a list of IDs is being extracted. Removing this comment improves code maintainability and readability....
it's taking even longer
oh god why is it auto reviewing lmaooo
I thinks its related to FIX:
@gemini FIX: review merge
I have reviewed the changes for adding voting functionality to ReviewDB. The implementation correctly introduces the VoteButton component, updates the Review entity, and integrates the necessary API calls for fetching and submitting votes. The state management in ReviewComponent correctly handles optimistic updates and error feedback.
One minor improvement for maintainability: In src/plugins/reviewDB/components/ReviewComponent.tsx, the submitVote function could be slightly simplif...
@austere talon ready to merge
@astral birch tell
hold on bro let me check google3 real quick
I had that issue it was weird because it was either reviews at all or no reviews
That's how we even ended up with the Gemini folder
Only way I found to properly customize it was via the config.yaml
It's pretty helpful for catching stuff imo
some false positives but it's because no instructions
considering it hasn't received any instructions it's already doing well
Don't get me wrong Gemini sucks but hey it's not so bad when using GitHub integrations I guess
copilot ๐ฌ
Copilot is only good for specific things
I use it to auto fill in vscode that's about it
I absolutely suck at writing descriptions so it's peak for that
gemini is pretty good
#Plugin Description
This plugin automates code detection and formatting for various programming languages and frameworks, enhancing message formatting in Discord.
Too Lazy to add ``` backticks manually? this is the solution lmao + autodetect what programming language of code, this the example
Existing Plugin for other mod
No
Request Agreement
- [X] I read the above and made sure my plugin is possible and allowed
- [X] I checked the [existing plugins](https://...
Code Review
This pull request introduces the smartCodeSnippet plugin, which automatically detects and formats code snippets in messages using a regex-based scoring system. Feedback focuses on aligning with Vencord's standard API by using the onBeforeMessageSend hook instead of monkey-patching sendMessage. Additionally, there are concerns regarding regex efficiency and a bug where multiline flags are lost during regex instantiation. Other requested improvements include correcting plugin me...
Instead of manually monkey-patching sendMessage in the start method, you should use the onBeforeMessageSend hook. This is the standard Vencord API for intercepting and modifying messages before they are sent. It is safer, cleaner, handles unpatching automatically, and avoids the use of any types for the message module.
Example implementation:
onBeforeMessageSend(channelId, messageObj) {
const { cont...
This line has two significant issues:
- Efficiency: Creating a
new RegExpobject for every language in the dictionary on every message send is inefficient. - Bug:
new RegExp(item.keywords, 'gi')replaces the flags of the original regex. This discards them(multiline) flag used by languages likedocker,yaml, andjson, which causes the^anchor to only match the start of the entire message instead of t...
The tags "Auto Format" and "Splitter" are not valid PluginTag values. Please use only tags defined in the PluginTags list in src/utils/types.ts.
tags: ["Chat", "Utility"],
The MAX_LENGTH check (1980) is very close to Discord's 2000 character limit and does not account for the length of the code block wrappers (backticks, language name, and newlines). Depending on the language name, the resulting message might exceed the limit. Furthermore, using setTimeout to send chunks manually is discouraged as it bypasses the standard message pipeline and other plugins' hooks.
The property name for indicating a restart is required is requiresRestart, not restartNeeded. Additionally, if you switch to using the onBeforeMessageSend hook, this may no longer be necessary.
requiresRestart: false,
The author ID 1n appears to be a placeholder. Please replace it with your actual Discord User ID as a BigInt.
oh jesus
omg lol
ai models improved a lot
how do people make ai do this kind of mistakes
are they doing directly inside chatgpt
#Plugin Description
This plugin automates code detection and formatting for various programming languages and frameworks, enhancing message formatting in Discord.
Too Lazy to add ``` backticks manually? this is the solution lmao + autodetect what programming language of code, this the example
Existing Plugin for other mod
No
Request Agreement
- [X] I read the above and made sure my plugin is possible and allowed
- [X] I checked the [existing plugins](https://...
Code Review
This pull request introduces the smartCodeSnippet plugin, which automatically detects code in messages, applies syntax highlighting, and splits long snippets into multiple messages. The review feedback identifies several critical issues: the language detection regexes use word boundaries incorrectly for non-word characters like brackets and tags, the chunking logic fails to handle single lines that exceed the character limit (such as minified code), and the method for sendin...
Several regexes in the DICTIONARY use \b (word boundary) anchors in a way that will prevent detection for common code patterns:
- Start Boundary: In
tsxandvue, the\bbefore the group containing<(e.g.,\b(<template>|...)) will fail to match if the tag is at the start of the message or preceded by whitespace/punctuation, as<is a non-word character. - End Boundary: In
tsx,vue,rust,cs,...
The chunking logic does not handle cases where a single line exceeds CHUNK_LIMIT (e.g., minified code). In such cases, the line is added to currentChunk without being split, potentially resulting in a message that exceeds Discord's 2000-character limit. Additionally, if the first line is too long, it can lead to an empty first chunk being pushed.
for (const line of lines) {
...
When sending subsequent chunks, hardcoding the message properties causes the loss of important metadata from the original message, such as messageReference (if the user was replying to a message) or allowedMentions. It is safer to spread the original message object and only override the content.
MessageActions.sendMessage(channelId, {
...message,
...
Wait thereโs a request agreement
Hold up I might need to edit my PR
Holy gemini spam
are they closing just because gemini is exposing ai LOL
bro stop creating new pr for you ai slop every prompt
just wait for the this is ai comment from gemini itself
@crude hearth try to not give me a stroke please
never
>pull out illustrated diagram explaining what is ai and what isn't
>"its a good PR sir"
>look at pr
>its ai
<img width="1368" height="891" alt="image" src="https://github.com/user-attachments/assets/286decd4-3017-4b16-94de-a8bd8c7cfb4c" />
do you use your discord in %200 resolution
to have it that big it has to be like this
BIG
huge
if you search "pindms scroll" there is literally only ONE message about it
pc issue??
What
Working 1 user version
Code Review
This pull request introduces the CustomDMNotificationSound plugin, which allows users to set a custom notification sound for direct messages from a specific user. The implementation includes a sound picker in the settings, context menu integration for marking users, and a patch to intercept Discord's notification logic. Feedback suggests adding error handling for file reading, providing a valid author ID, and implementing a stop method to properly clean up resources like audio...
The author ID 0n appears to be a placeholder. Please provide your actual Discord user ID (as a BigInt) so that you are correctly credited and linked in the Vencord UI.
It is recommended to implement a stop method to clean up resources when the plugin is disabled. This ensures that any currently playing audio is stopped and the message cache is cleared.
settings,
stop() {
currentAudio?.pause();
currentAudio = undefined;
markedMessages.clear();
},
The readFileAsDataUrl promise can reject if there's an error reading the file. It's better to wrap this in a try-catch block to handle potential errors gracefully and inform the user via a toast.
onClick={async () => {
try {
const file = await chooseFile("audio/*");
if (!file) return;
const dataUrl = await r...
Fair enough
Did bro get scared by gemini
apparently vencord freezes canary installs #๐ฅ-vencord-support-๐ฅ message
^ not the first time someone said smth about it
discussed yesterday
obscure bug with online themes
.
i cant read anything that gets buried under the spam here sry
sick thx
Summary
Adds CustomDMNotificationSound, a plugin that lets users set custom DM notification sounds for specific users.
Features
- Adds a user context menu entry to assign a custom DM sound
- Supports multiple users, up to 10 configured sounds
- Allows changing, previewing, and removing user-specific sounds
- Stores selected audio files in Vencord settings as data URLs
- Adds a 2 MB per-file limit to avoid oversized settings
- Cleans up active audio playback and message c...
Code Review
This pull request introduces the CustomDMNotificationSound plugin, which allows users to assign custom audio files to specific direct message notifications. The implementation includes a settings manager, context menu options for users, and a patch to Discord's internal sound logic. Feedback from the review highlights the need to reduce the maximum file size limit to 512 KB to avoid performance issues with settings synchronization. Other suggestions include fixing a bug in the...
The current logic has a bug: if getSound is called multiple times for the same message (which can happen during UI updates or re-renders), getCustomSound will return null on subsequent calls because the message is already marked. This causes getSound to return defaultSound, playing the original Discord sound alongside or instead of the custom one.
Additionally, this refactor adds support for Group DMs, which is a ...
A 2 MB limit per file, combined with up to 10 users, can result in over 20 MB of base64-encoded data being stored in the Vencord settings JSON. Since settings are loaded synchronously and synced to the cloud, this can significantly impact performance and hit sync limits. Notification sounds are typically very short; a limit of 512 KB is more than sufficient for high-quality audio while keeping the settings file size manageabl...
The settings are cloned before the await chooseSound() call. If the user takes time to select a file, any changes made to the custom sounds in the meantime (e.g., via the settings UI) will be overwritten when the new sound is saved. It is safer to read and clone the current settings immediately before the write operation.
if (!settings.store.customSounds[user.id] && Object.keys(settings.store.cust...
Update the documentation to reflect the suggested 512 KB file size limit for better performance.
Audio files are stored in Vencord settings as data URLs. The plugin supports up to 10 users with a 512 KB limit per audio file.
The migration logic should clean up the legacy userId and soundData keys from the settings store after a successful migration to keep the settings file clean.
settings.store.customSounds = {
...cloneCustomSounds(settings.store.customSounds),
[settings.store.userId]: {
soundData: settings.store.soundData,
fileName: "Migrated custom sound"
...
holy slop
i need to disable auto review
nop hes doin good
Summary
Adds a BaseConverter plugin that lets users encode outgoing messages and decode received messages in a variety of encoding schemes, with optional AES-256-GCM end-to-end encryption.
Features
- Chat bar button opens the encoder/decoder modal
- Encoding options (send & receive): Binary, Octal, Decimal, Hex, Base32, Base64, UTF-8 Bytes, AES-256-GCM
- Auto-encode outgoing messages before sending โ toggle with shift+click or right-click on the chat bar icon (default:...
Code Review
This pull request introduces the BaseConverter plugin, which allows users to encode and decode messages in various formats, including AES-256-GCM, directly within the Discord interface. The review feedback primarily focuses on improving the robustness of the encoding and decoding logic by utilizing TextEncoder and TextDecoder to correctly handle multi-byte Unicode characters and emojis. Additionally, the reviewer suggested refining the AES key resolution logic for group DMs, r...
Similar to the decoders, the encodeBinary, encodeOctal, encodeDecimal, and encodeHex functions use charCodeAt(0), which only returns the first 16-bit code unit of a character. This breaks for any characters outside the Basic Multilingual Plane (e.g., emojis).
You should first convert the string to UTF-8 bytes using TextEncoder, then iterate over those bytes to generate the encoded string.
function...
The decodeBinary, decodeOctal, decodeDecimal, and decodeHex functions use String.fromCharCode on the parsed integer values. This treats each encoded unit as a single UTF-16 code point (effectively Latin-1), which will fail to correctly reconstruct multi-byte Unicode characters (like emojis or non-Latin scripts) if they were encoded as UTF-8 bytes.
Instead, you should collect the values into a Uint8Array and use ...
The logic for resolving the effectiveKey when the current user is the author assumes that recipients[0] is the intended partner. This is true for 1-on-1 DMs, but in Group DMs, recipients contains multiple users. This could lead to using the wrong per-user key (or falling back to the global secret incorrectly) when viewing your own sent messages in a group context.
It is safer to check if the channel is a 1-on-1 DM...
Manually manipulating the DOM to insert decoded text into the reply bar is fragile. Discord's DOM structure and class names are subject to frequent changes, which could break the querySelector logic. Additionally, using textContent (line 125) means that any markdown in the decoded referenced message will not be rendered, unlike the main message accessory which uses Parser.parse.
While patching the reply bar is dif...
The decodeBase64 function uses a legacy hack (decodeURIComponent(escape(atob(...)))) to handle UTF-8. Since you already have a base64ToUint8 helper and TextDecoder is available, you should use them for a cleaner and more robust implementation.
function decodeBase64(text: string): string {
try {
const bytes = base64ToUint8(text);
return new TextDecoder().decode(bytes);
} catch...
bro is Y/N
Code Review
This pull request introduces a new KaomojiPicker plugin, which adds a searchable kaomoji interface to the Discord chat bar. The review feedback suggests several improvements, including optimizing the search logic with useMemo to prevent unnecessary re-calculations, refining TypeScript definitions for optional props, ensuring consistent state initialization for the preview display, and using unique keys for the results list to prevent React warnings.
The maxResultsCap property should be marked as optional in the type definition since a default value is provided in the destructuring.
const KaomojiPicker = ({ maxResultsCap = 250, onPick }: { maxResultsCap?: number, onPick: () => void; }) => {
Initialize the current state to null instead of an empty string to better represent the 'no selection' state and maintain type consistency.
const [current, setCurrent] = useState<string | null>(null);
Add useMemo to the imports from @webpack/common to support the optimized search results calculation.
import { Popout, TextInput, useMemo, useRef, useState } from "@webpack/common";
Wrap the results calculation in useMemo to prevent expensive filtering of the large kaomoji database on every render. Additionally, ensure the search on text is case-insensitive by using the lowercased query variable for consistency with the subCategory search.
const results: KaomojiEntry[] = useMemo(() => {
if (query === "") return [];
return kaomojiEntries.filter(
...
Using text as a key is unsafe because some kaomojis appear in multiple categories (e.g., (โโฟโ) in both 'goofy' and 'cute'), which will cause duplicate key warnings. Use a combination of subCategory and text to ensure uniqueness.
{results.map(({ text, subCategory }) => (
<Button
key={subCategory + text}
I need to seriously disable the clanker lmfao
bruh literally discord experiment
ai slop jumpscare
(audio alert, lower your volume)
people keep getting filtered by "i'll review this later" ๐ญ
There is so many people missing the old moyai plugin
Please add it back
More people missed Ctrl enter send
Code Review
This pull request introduces the 'Moyai' plugin, which plays a sound effect in response to specific emojis in messages, reactions, and voice channel effects. It also updates the Content Security Policy (CSP) to allow media from GitHub's raw content domain. Feedback includes correcting a hardcoded user ID in an interface, improving safety checks for message authors, using more idiomatic string matching for regex counts, and handling potential promise rejections when playing audio.
The userId property in the IReactionAdd interface is restricted to a specific hardcoded string literal. This will cause type mismatches for reactions from any other user. It should be a generic string.
userId: string;
If message.author is undefined, message.author?.id will be undefined, which might cause RelationshipStore.isBlocked to throw an error or behave unexpectedly depending on its implementation. It is safer to check for the author's existence first.
if (settings.store.ignoreBlocked && message.author && RelationshipStore.isBlocked(message.author.id)) return;
Using RegExp.prototype.test() in a loop with a global regex is functional but less idiomatic and potentially brittle if the loop doesn't complete (as lastIndex is shared on the global constant customMoyaiRe). Using String.prototype.match() is cleaner and more direct for counting matches.
return sourceString.match(pattern)?.length ?? 0;
audioElement.play() returns a Promise that can reject if the browser (or Electron) blocks autoplay or if the source fails to load. It is good practice to handle the rejection to avoid unhandled promise rejection warnings in the console.
audioElement.play().catch(() => {});
?remind 2d remind @austere talon to disable gemini spam bot
Alright @fossil inlet, in 2 days: remind @Ricardo to disable gemini spam bot
this is why its always good to ask first before PR ๐
The moyai plugin has been gone for almost a year now.
But there are so many people that are missing it (including me)
Please add it back
Code Review
This pull request introduces the 'Moyai' plugin, which plays a sound effect when specific emojis are detected in messages, reactions, or voice channel effects. It also updates the Content Security Policy (CSP) to allow media from GitHub raw content. Feedback includes recommendations to internationalize user-facing strings, fix a logic error in the blocked user check for reactions, and add missing bot/blocked user filters for voice channel effects.
The VOICE_CHANNEL_EFFECT_SEND handler is missing checks for the ignoreBots and ignoreBlocked settings. This allows bots or blocked users to trigger the sound effect via voice channel effects.
VOICE_CHANNEL_EFFECT_SEND({ emoji, userId }: IVoiceChannelEffectSendEvent) {
if (settings.store.ignoreBots && UserStore.getUser(userId)?.bot) return;
if (settings.store.ignoreBlock...
User-facing strings in plugin settings (descriptions and labels) should be internationalized using the project's i18n system instead of being hardcoded to ensure the plugin supports multiple languages.
The ignoreBlocked check is currently performed on the messageAuthorId. This means the sound is suppressed if someone reacts to a blocked user's message, but it will still play if a blocked user reacts to a message. It should likely check the userId of the person who added the reaction to be consistent with the 'Ignore blocked users' setting.
if (settings.store.ignoreBlocked && Relationship...
@austere talon kys
too busy explaining dbd
@gemini explain dbd
A plugin that allows notifications (sound + popup) from selected users or group chats even when your status is set to Do Not Disturb.
Features:
- Right-click any user to add/remove them from the whitelist.
- Right-click any group DM channel to whitelist the entire group.
- Notifications are suppressed if you are already viewing the same channel (and Discord is focused).
- Works with Discord's built-in notification system.
Implementation notes:
- Uses the Dispatcher to listen for `M...
Code Review
This pull request introduces the DNDWhitelist plugin, which allows users to receive notifications from specific whitelisted users and group chats even when in Do Not Disturb mode. The implementation includes context menu integrations for easy whitelist management and logic to suppress notifications when the relevant channel is already focused. Feedback focuses on aligning with Vencord's idiomatic patterns, such as using the flux property for event handling and importing Webpac...
Parsing the whitelist strings into arrays on every incoming message is inefficient. Since this logic runs for every MESSAGE_CREATE event while in DND, it is better to parse these settings into a Set once and update them only when the settings change.
Directly accessing window.Vencord.Webpack is discouraged. You should import findByProps and other Webpack utilities directly from the @webpack module.
PresenceStore is already available as an export from @webpack/common. You should import it directly instead of searching for it manually in the start function.
import { Menu, UserStore, ChannelStore, SelectedChannelStore, PresenceStore } from "@webpack/common";
Using the flux property in definePlugin is the idiomatic way to handle Flux events in Vencord. It automatically manages the subscription and unsubscription lifecycle, allowing you to remove the manual Dispatcher logic in start and stop.
contextMenus: {
"user-context": userContextMenuPatch,
"gdm-context": gdmContextMenuPatch,
},
flux: {
MESSAGE_CREATE: onMessageCreate,
...
Avoid using any types for modules. PresenceStore already has types available in @webpack/common. For other modules like NotificationModule, consider defining a minimal interface to improve type safety.
how does it know all that
google's probably feeding it all it can
probably just has the entire vencord repo in it's training set or stg
@austere talon add gemini styleguide to vencord
soon
ur on github ofc it knows allat
<img width="167" height="298" alt="image" src="https://github.com/user-attachments/assets/6a677b92-dfc1-428d-b653-5794134798f4" />
67
if I had to guess, when it was first added to repo it searched all the codebase and created specific set of instructions to use later
Fixes #4215
Updated isUncategorized function to handle both string "null" and actual null value for channel.id, as Discord likely changed how they represent uncategorized channels.
Code Review
This pull request updates the isUncategorized function in the showHiddenChannels plugin to include a check for null channel IDs in addition to the string "null". The reviewer suggests using loose equality (== null) to handle both null and undefined cases more concisely and robustly, following the project's idiomatic style.
The addition of objChannel.channel.id === null here is redundant because the only caller of this function (at line 530) already explicitly checks for objChannel.channel.id === null. To improve maintainability and follow the project's idiomatic style (as seen on line 504), consider using loose equality == null to handle both null and undefined in a single check. This centralizes the logic for identifying uncatego...
i guess
thanks Gemini
!medium
gemini is good bro
reminded me my old contribution experiences
3 line code and 500 requested changes
nostalgia
Fix TimestampMode.TIME not resetting after 24h in CustomRPC.
The timestamp was only calculated once, causing the timer to continue past midnight.
Now it recalculates based on the start of the current day so it correctly resets at 00:00 without needing timers or scheduling.
Code Review
This pull request implements a midnight reset mechanism for the Custom RPC plugin to ensure that the 'current time' timestamp remains accurate across multiple days. It introduces a scheduling function using setTimeout and updates the plugin's lifecycle methods to manage this timer. Review feedback suggests simplifying the start-of-day calculation using the idiomatic Date.setHours method and removing redundant timeout clearing in the stop function, as this logic is already enca...
The manual clearing of midnightTimeout in the stop function is redundant. The setRpc function, which is called immediately after, already performs this exact cleanup at the start of its execution.
stop: () => setRpc(true),
The calculation for the start of the current day can be significantly simplified using the built-in Date.setHours method. This approach is more idiomatic, readable, and avoids manual arithmetic that ignores milliseconds, ensuring the timestamp starts exactly at 00:00:00.000.
activity.timestamps = { start: new Date().setHours(0, 0, 0, 0) };
?remind 140m test if 24h is broke
Alright @twilit vector, in 2 hours and 20 minutes: test if 24h is broke
This pull request introduces the SpoofDevice plugin, which allows users to spoof the platform and browser information reported by their client. This can be used to appear as if you are connecting from different devices such as iOS, Android, Xbox, or PlayStation.
What's Changed:
- Added SpoofDevice Plugin: A new utility plugin located in src/plugins/spoofDevice.
- Platform Options: Users can select between Desktop, Web, Android, iOS, Xbox, PlayStation, and VR.
- Contributor ...
Code Review
This pull request introduces a new 'SpoofDevice' plugin that allows users to spoof their reported platform to Discord, along with adding two new developers to the constants file. The review feedback suggests using optional chaining when accessing the current user's ID to prevent potential crashes, correcting the capitalization of 'PlayStation', and including the 'os' property in the returned platform object to ensure Discord displays the correct status icons for mobile and con...
To properly spoof mobile and console platforms so that Discord displays the correct status icon (e.g., the mobile phone icon), you should also include the os property in the returned object. Discord's presence logic relies on the os field (e.g., 'iOS', 'Android', 'Xbox', 'PlayStation') to determine the device type.
case "ios":
return { browser: "Discord iOS", os: "iOS...
The correct capitalization for the brand is 'PlayStation'.
{ label: "PlayStation", value: "playstation" },
Accessing .id on UserStore.getCurrentUser() will throw an error if the user is not logged in or if the store is not yet initialized. Use optional chaining to prevent a potential crash.
if (bypass || userId === UserStore.getCurrentUser()?.id) {
blud did not even check it
check ur manners chud
i think someone alrdy made smth liike this
smth with spoofing websockets, made platform indicator show you as smth else
but kept logging u out for silly reasons like abuse
what is up with ppl not updating the license year bro
let alone not using the short version
index.tsx: Lines 1-5
/*
* Vencord, a Discord client mod
* Copyright (c) 2024 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
wow
i offered just changing all of the license text to short version & years to 2026, when i go back to doing my description pr, but vee didnt like that for some reason
@austere talon
so dude saw the vid and ignored the message
crazy shit bruh
nah they just dont want me to for some reason ๐ญ
he an opp bro
we're palying dbd together as we speak
would just ruin commit history
oh ig
@twilit vector, <t:1779042389:R>: test if 24h is broke
Thats what we call contributing farming
@twilit vector is basically a clawdbot
i thought a little consistency wouldn't hurt ๐ญ๐ญ๐ญ
Theres really no point in doing it as well
if you really care you can just edit it when youre making meaningful edits to the file already
if I wanted to do it I could just do it with regex/script
[Vendicated/Vencord] New branch created: win-material
06d37d8 add Windows background material customisation - Vendicated
Code Review
This pull request introduces support for Windows background materials (Mica, Tabbed, and Acrylic) by updating the Electron window patcher and adding a new settings section. It also refactors the existing macOS vibrancy settings for better platform-specific handling. The review feedback highlights a bug in the Windows build version detection logic and suggests improvements for UI consistency, such as using standard form components and correcting import paths in the newly added ...
The import path for Margins is incorrect (@components/margins instead of @utils/margins). Additionally, for consistency with other settings components in the project, it is recommended to use Forms from @webpack/common instead of custom Heading and Paragraph components.
import { IS_WINDOWS } from "@utils/constants";
import { Margins } from "@utils/margins";
import { Forms, Select } from "@webpack/...
Using .pop() to retrieve the Windows build number is unreliable because the release string may contain a revision number (e.g., 10.0.22621.1234), in which case .pop() would return the revision (1234) instead of the build (22621). This would cause the support check to fail on many Windows 11 systems. It is safer to access the third segment of the version string.
e.returnValue = process.platform ===...
Use Forms.FormTitle and Forms.FormText to maintain visual consistency with the rest of the Vencord settings UI.
<Forms.FormTitle tag="h5">Background Material</Forms.FormTitle>
<Forms.FormText className={Margins.bottom8}>
Windows transparent background effects. You need a theme that supports transparency or this will do nothing. A restart is required after changing...
nooo gemini...

b8a515d add Windows background material customisation (... - Vendicated
[Vendicated/Vencord] branch deleted: win-material
Hi, thanks for your contribution! โค๏ธ
I wasn't fully satisfied with various aspects of this PR (using deprecated components, no check if it's even supported, bad naming/description, merging with mac vibrancy logic) so I ended up doing it myself via https://github.com/Vendicated/Vencord/commit/b8a515dff5163ab31d157a204aa134c09ed7f20d
Similar to RoleColorEverywhere, this plugin adds a server tag everywhere, specificially to 4 locations: Server Tooltip, Server Header, App Title Bar, and User Name Tag.
There are toggles for each location in plugin settings.
Code Review
This pull request introduces the ServerTagEverywhere plugin, which displays server tags in various UI locations such as tooltips, headers, and the title bar. The review feedback identifies several critical issues: the use of this.props in a patch may cause crashes in functional components, guild.profile is likely to be undefined and should be accessed via a proper store, the variable vcGuild is being assigned without a declaration (polluting the global scope), and inject...
Using this.props.currentUser assumes that the patched component is a class component. Most modern Discord components have been migrated to functional components, where this is undefined. If this is a functional component, this patch will cause a crash. You should instead capture the user object from the local scope of the component if possible.
Standard Guild objects in Discord's internal stores typically do not have a profile property. Guild identity data (tags and badges) is usually stored separately or requires a specific fetch. Accessing guild.profile here might result in undefined, causing the tag not to render. You should verify if guild.profile is actually available on the objects you are patching or consider using a store like GuildProfileStore t...
Assigning to vcGuild without a declaration (var, let, or const) will create a global variable on the window object. This is generally discouraged as it pollutes the global namespace. If you need to share this variable between patches, it's better to explicitly use window.vcGuild or, preferably, find a way to keep it local to the component's scope.
Adding a style property directly to the props object may overwrite any existing style prop that the component already has. It is safer to merge the styles if they exist, although in this specific title bar context, it might be acceptable if you are certain no other styles are being applied to this element.
Seems kind of niche
@austere talon was this closed because the plugin is rejected or because i was non-responsive
if its the latter im sorry i recently jumped ships so i didnt pay much attention, i can fix the issues with this and my other prs if needed
Are you a sea sepeard
Shepherd
sepeard
oh ig
?
a voilent marine life activist group
idk how this is relevant or on topic
You were so close yet so far
should i just make a gh issue of all current bugs because it sure looks like there's a lot
to get buried by gemini reviewing slop prs ๐ฅ
new redesign experiment breaks the configurable position of vencord settings
-# dev://experiment/2026-05-user-settings-redesign-4d
but it's fucking ASS so i doubt it'll roll out 
that's what everyone said about visual referesh
bro u wouldnt say this if u checked out the experiment
its literally a piece of shit
is it really that bad?
i can't find it
INSANE
vs old
guh they typed 4d
they moved connections, authorized apps & activity privacy into a new category at the same bottom
4d doesnt exist????
dude oh my god
dev://experiment/2026-05-user-settings-redesign-4d
how new is 4d
[1h ago](#867824692907868160 message)
just me or calltimer just randomily decides it doesnt wanna work anymore
like sometimes its there sometimes it isnt ๐ญ
its injected and such but just doesnt show up
the merge wasnt hell this time ๐ฅ
on 1 account its fine
on another its broken
I have no idea
wouldn't have happened if there were proper formatting rules
vsc just hates me
I watched it randomly format a file it end every line with ;
in a tsx file btw
I was so confused
good
Wa



bro did 0 validation on the code
