#๐พ-core-development
1 messages ยท Page 292 of 1
the app-region thing seems to have extended to even catppuccin themes (which was fine on canary until today)
im scared i didnt know there were more demons 
Summary
Adds OnlineThemeInstaller โ browse the BetterDiscord theme store and install themes into Vencord's Online Themes with one click. Resolves stylesheet URLs from GitHub source / @import when available.
Test plan
- [x] Built with
pnpm buildand injected on Discord Stable - [x] Enabled plugin, opened theme browser, installed and removed a theme
- [x] Verified themes appear under Settings โ Themes โ Online Themes
Here are s...
Code Review
This pull request introduces the 'OnlineThemeInstaller' plugin, which allows users to browse and install BetterDiscord themes directly within Vencord. The implementation includes logic for fetching the theme catalog, resolving stylesheet URLs from GitHub, and handling local file operations for themes that cannot be linked directly. I have reviewed the code and provided a suggestion to improve error handling in the file deletion logic to ensure that only 'file not found' errors...
The empty catch block will suppress all errors during file deletion, including permission errors, not just the expected "file not found" error. This can hide potential problems and make debugging difficult. It's better to explicitly check for the ENOENT error code and allow other errors to be reported.
await unlink(path).catch(err => { if (err.code !== "ENOENT") throw err; });
Don't ??? me you well know you ai generated this lmao
builds also expire in 90 days so people wont be able to use outdated builds.. which may be good
auto updates are still available as well
Theres an option to load it from zip or smth right?
wdym
alright I finished the workflow for uploading to testflight, but I haven't tested (and the workflow makes it kinda annoying its on my fork and not the main repo)
As in you can turn on developer mode or smth and load it locally, it not being on the AppStore
I know chrome allows for smth like this
https://github.com/Vendicated/Vencord/pull/4171 @austere talon it needs some of my credentials for upload
otherwise it should be ok, but see if theres anything wrong with the workflow tanks
https://testflight.apple.com/join/JNPxzZeD @torpid mason
PEAK
thanks twin :3
love
[Vendicated/Vencord] New branch created: no-more-aislop-plox
d80d3df Update contribution guidelines & add Gemini rev... - Vendicated
oh my god vee how long did you spend onthis
Holy based
the style guide?
I stole it from equicord
of course you did
Also I think that style guide was partially ai generated
#๐งฉ-plugin-development message
that aged well lol
you got V hooked on gemini just to replace equicord's with greptile a day later 
blame prism

is greptile better
feature requests are welcome?
according to prism and thor just listens to prism so possibly
Code Review
This pull request refactors the project's issue and contribution workflows by removing the blank issue template, updating the bug report template, and introducing a new feature request template. It also establishes a pull request template and updates CONTRIBUTING.md with a strict policy against AI-generated contributions and revised guidelines for major changes. Feedback from the reviewer focused on ensuring that all agreement checkboxes in the bug report and feature request t...
For a bug report, this label should use "reported" instead of "suggested". Additionally, this checkbox should be mandatory to ensure users have performed a search before opening a new issue.
- label: I've searched existing issues and this hasn't been reported before
required: true
These checkboxes should be marked as required: true to ensure users acknowledge these conditions before submitting. Note that the checkbox on line 68 is also missing this property and should be updated to maintain consistency with the previous version of the template.
- label: I installed Vencord via an official method (download from vencord.dev or from source), not via something like AUR or Nix p...
These checkboxes should be mandatory (required: true) to ensure the requester confirms they have followed the guidelines and are willing to contribute, as mentioned in the updated CONTRIBUTING.md (line 22).
- label: I've searched existing issues and this hasn't been suggested before
required: true
- label: This is a **core modification feature**, not a plugin request (tho...
greptile edits the original pr message with reviews though which is ass and @gritty iris refuses to turn it off
No plugin requests, go to our Discord server for that
telling them to join server just to get a "no plugin requests" anyway ๐ญ
you can be 5 stages deep in a review and it'll edit the pr message rather than leave a new comment at the bottom
actual buns
we can make a forum 
but my ass will not look at that shit
I did and it ignored my other settings
let it ignore them all. this 1 is not worth compromising
give helpers deletion perms to keep only the greatest ideas
encourage jannies with pay raise for janitoring
back to gemini hooray
gemini is peak
i hate that this doesnt do suggestions
gemini does have like a 30-40 pr limit daily I think
could tell it to in the style guide no?
arent suggestions just a formatting thing on the code block
I deliberately made them not required so we can immediately see if someone is stupid
LOL
based gemini
forcing feature request openers to work on their suggestion themselves
based ngl
false, pledging to fix stuff and taking the workload of from you is very bad
Some plugins may sometimes break, but we have automatic tracking for that
ehhhhhhhhhh
what about the 6 or so half-broken-half-unbroken plugins currently
ab54a67 Update contributing guideline and pr & issue te... - Vendicated
[Vendicated/Vencord] branch deleted: no-more-aislop-plox
to prevent supply chain attacks, all third party actions should be pinned to a long commit hash instead of tag
does this even need an action? looking at https://github.com/Apple-Actions/import-codesign-certs/blob/main/src/security.ts it seems like this is just a few shell commands
can it close prs?
we have a forum for that and I also dont read it
๐ฅ
just like my favorite comment
"this is most likely ai" - gemini
name something more aura than gemini telling you your pr is aislop
I know right ๐ญ
lmaooo same thought
I was laughing so hard when I saw it comment that
its certainly funnier than ai trying to detecting other ai's writing (turnitin etc)
mfw fully human written paper is 10% plausible but the teachers dont know how to interpret that
@austere talon btw what r we gonna do with credentials do would I need to just give them to u to add 
its on testflight publicly rn, its the appstore but for beta testing and apps expire in 90 days
the appstore reviewer needs to login to discord for every submission, and it changes reviewer every time
I cant approve login requests every time, so i opted to publish on testflight since theyre super lenient

insane
mehh
isnt that size limited etc
I have it set to unlimited (apparently its hardcapped at 10k? dont take my word on that)

auto updates are still available and such, and with how often vencord updates I dont think the expiry issue will be a problem
much lower than I thought, but honestly I dont know if I want to suffer trying to get the reviewers to login to an account just to test each update
I'll try once again to get them logged in but its so annoying
how many people would even be able to install from testflight
isnt that an alpha thing dont u have to opt into smth for that
partially why I stopped supporting firefox extension
if safari ext is going to be pain then i dont really want it tbh 
i have ptsd from mozilla maintainers ๐ญ
10k users can join the public group
isnt that use case against testflight rules though
I'm sure they didn't mean it to be used as standard distribution channel

they might ban no?
idk if it really matters tbh
I was thinking if theyre able to login the first time and they approve it'll be fine afterwards because there are discord clients on the appstore
we can wait a few days and see what happens

I prefer minimising third party dependencies
lowkey just fee the action's code into claude + your input variables and tell it to give you bash script that does the same

# Setup Certificates
KEYCHAIN_NAME="build.keychain"
KEYCHAIN_PASSWORD=$(openssl rand -base64 32)
P12_FILE=$(mktemp)
# Decode base64 p12 certificate and save to temp file
echo "${{ secrets.APP_STORE_CONNECT_P12 }}" | base64 --decode > "$P12_FILE"
# Create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_NAME"
# Set keychain timeout to 6 hours
security set-keychain-settings -lut 21600 "$KEYCHAIN_NAME"
# Unlock the keychain
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_NAME"
# Import certificate into keychain
security import "$P12_FILE" \
-k "$KEYCHAIN_NAME" \
-f pkcs12 \
-T /usr/bin/codesign \
-T /usr/bin/security \
-T /usr/bin/pkgbuild \
-T /usr/bin/productbuild \
-T /usr/bin/productsign \
-P "${{ secrets.APP_STORE_CONNECT_P12_PASS }}"
# Set partition list
security set-key-partition-list \
-S apple-tool:,apple: \
-k "$KEYCHAIN_PASSWORD" \
"$KEYCHAIN_NAME"
# Update keychain search list
security list-keychains -d user -s "$KEYCHAIN_NAME" login.keychain
# Clean up temp p12 file
rm -f "$P12_FILE"
# Optional: At the end of your workflow, delete the temporary keychain
# security delete-keychain "$KEYCHAIN_NAME"
vencord safari*
we're only talking about vencord for safari in this convo
icic
Me for one
one of the reasons why i'm awaiting vencord analytics 
github provides download stats
go look at that
unsurprisingly mac is the least
wtf is an exe blockmap
something electron builder generates idk
vai
An exe blockmap is a metadata file, usually in XML format, that describes the blocks of data within an executable or application package. It contains cryptographic hashes for each data block and file locations. Its main purposes are to enable efficient differential updates, allowing only changed parts of a file to be downloaded, and to verify file integrity.
-# Response generated by gemini-2.5-flash. AI may be incorrect or misleading.
Ah so that's the weird issue I've been having! That fixed it, thanks!
how does one fix the drag issue
la css
or is that a genuine question cus then it's just body {app-region: no-drag;}
ya I got it
bookies caught not updating..
bookies
havent pulled in 2 days ๐ญ
๐งฉ A feature-rich Vencord plugin that reworks the Discord UI to be fully modular. Collapse, resize, and float any UI panel with smooth animations, shortcuts, and hover states.
Code Review
This pull request introduces the ModularCollapse plugin, which provides a modular UI for Discord by allowing users to collapse, resize, and float various interface panels. The implementation includes dynamic CSS management, lazy-loaded module selectors, and a customizable settings system. Feedback focuses on a critical security vulnerability involving the use of eval() for conditional logic, performance optimizations for mouse and keyboard event listeners to prevent layout thr...
Security: Using eval() on strings from settings is a critical security risk. It allows for arbitrary code execution (Self-XSS) if malicious content is placed in the settings. This should be replaced with a safer logic evaluator or a predefined set of supported conditions.
Hardcoded Discord class name detected. Using static class names like layer_bc663c is brittle as they change frequently with Discord updates. This should be mapped in modules.ts using findCssClassesLazy or identified via a more stable attribute selector.
Minor formatting issue: missing space after the comma in the import statement.
import { getCurrentLabels, ICONS, PANEL_COUNT } from "./constants";
Performance: getShortcutSets() creates new Set objects for every panel on every call. Since this is called inside tickKeyboardShortcuts which runs on every keydown event, it's better to cache these sets and only update them when settings change.
Redundant DOM query. You already have a reference to the newly created element in the toolbar variable.
toolbarElement = toolbar;
wtf
this setting is disabled by default, so unless you turn the plugin and the setting on the L449 if statement wont run
the string inside eval is a condition the user gives the plugin, so like window.innerWidth < 1200
but surely there's a better way to do this without using eval ๐
and who knows if they have some mega plan and this will be their way to like an rce
better safe than sorry
I don't have time to look through the entire code
mate please it's ai slop
Based on what you told me, I made the modifications.
dude this is mostly ai and i dont think this will ever be pulled and also i dont know why it marked me as a reviewer
me when I review a comment: why am I a reviewer
what even is that pr bro
me when im just chasing glowy greenery:
thorogoat
I had friendssince fixed for awhile
lowkey forgot it was from friendssince tho
half of that pr is useless to vencord but its whatever 
Code Review
This pull request updates the patch anchors in the fakeProfileThemes and friendsSince plugins to refine how code is matched. In fakeProfileThemes, the find string was extended to include an onClick handler. In friendsSince, the anchor was changed from an internationalization key to a hardcoded string. Feedback suggests that using a hardcoded string for the anchor is less robust and recommends using an internationalization key instead to ensure better maintainability.
Using a hardcoded string like "UserProfileSidebar" as a find anchor is less robust than using an internationalization key, as it's more likely to appear in multiple modules or be changed/removed by Discord. Since the match regex already depends on #{intl::USER_PROFILE_MEMBER_SINCE}, using that as the find string would be more specific and maintainable.
find: "#{intl::USER_PROFILE_MEMBE...
do we have a vencord icon svg 
well lmao
please someone have a better svg for the vencord icon ๐ญ
Code Review
This pull request introduces several new SVG icons and integrates them into the betterSettings plugin to provide visual indicators for different settings sections. The review feedback points out that the Menu.MenuItem component should use the icon prop instead of iconLeft to ensure icons are rendered correctly. Furthermore, it is recommended to use a group element with the evenodd fill rule in the VencordIcon component to correct rendering artifacts and simplify the code.
To address the rendering issues mentioned (weird holes) and improve code maintainability, you should wrap the paths in a <g> element with fillRule="evenodd". Design tools often require the evenodd fill rule to correctly render subtracted shapes (holes). This also allows you to define the fill prop once for the entire group.
export function VencordIcon(props: IconProps) {
return (
<Icon
...
The Menu.MenuItem component in the provided type definitions (packages/discord-types/src/menu.d.ts) uses the prop name icon, not iconLeft. Using iconLeft will likely result in the icons not being displayed in the settings menu.
const icon = SECTION_ICONS[key];
items.push(
<Menu.MenuItem
key={key}
label=...
You could take the favicon from vencord.dev
https://github.com/Vencord/vencord.dev/blob/main/public%2Ffavicon.svg
thats a png ๐
its what I threw at adobe
thats what adobes thing did
@gritty iris if u feel like fixing more
FullSearchContext doesnt work, CallTimer doesnt work sometimes due to some voice panel experiment
does this also fix the top stuff not being categorised?
nop
that stuff just isnt in a category
do you want me to add it too one?
it should be
also what experiment
its just a bug
lol idk
its literally not in a category
I was checking for them when I was logging item they werent there
what should I name the section?
oh true
but still it should be in category lol
probably
ill do account settings
wait it does have one
its just getting ignored ๐ญ
why did it log until I logged list wtf
oh label is undefined
I can move profiles and the developer settings and logout into a section
do you want me to leave as is?
idk how to get rid of the bar but if I map both profiles will do it Edit Profiles and the 2 bottom settings into Misc...
idk how to spell misc fully
im thinking leaving profiles out is fine
just ignore the equicord settings
used intl keys
fullsearchcontext seems fine?
oh wait
I read the wrong line
insane search pull
Code Review
This pull request updates the search string for a patch in the fullSearchContext plugin. A review comment identifies that the new search string includes a leading backtick, which could make the patch brittle due to how minifiers handle template literals, and suggests a more robust string search.
The find string includes a leading backtick (`). This makes the patch brittle because minifiers may convert template literals into regular strings (using " or ') depending on the build configuration and whether the string contains interpolations. Removing the backtick and searching for the string content directly is more robust as it will match both template literals and regular strings.
...
@austere talon above has calltimer and fullsearchcontext
vee's gaming 
๐ฅ
lie
anymore bugs??
:)
I dont want to fix our betterfolders stuff so I will do literally anything else nvm all of our bugs were fixed
I played that one trapper game then closed the game @twilit vector
I'll play some more later
either trapper or pig
spoken like a true killer main
why would he need nerfs ๐ญ
ultimately he still needs to m1 chase to down you
he's only oppressive if the player is crazy and gets insane bodyblocks
he's able to ignore dead hard (especially if ur healthy), and can deep wound you from like the opposite side of a rock
well ngl i'm larping as a surv main cus i LOVE doing that
legion also does that and he still sucks balls
legion got no mobility ๐
the only reason ghoul is "broken" is because the average survivor is terrible at the game so you can follow up the free injury in like 15 seconds and because he can do this while having good map control
i guess bro but being able to launch yourself across the map (especially if you have 3 charges/you're doing a flinging trick off a rock ledge or sth) is way crazier than Murderous Teen Go Stab
play ghoul against actually good players and it won't be as easy 
that one trickster vaultblock perk has been doing wonders 
ghoul is good on some maps and walled maps hes bad imo
crowd control
oh right
#๐พ-core-development message the bullshit that lets me hit behind a wall will save me โค๏ธ
v any idea whats adding the line?
is it a separator or a group
removed map for util section
so just push
should I move them to actual menu items?
ghoul definitely strong but not broken
I got him because of tokyo ghoul I dont play him tho
i got him because of the ridiculous hits during reveal ptb & awesome feedback from perfect timing on m2 hits
im so sorry vee this looks like ass
*incoherent noises of suffering*
*cracks finger for some reason*
-# i might be making every tg fan frown oops
yes but itll name them r and i
alr
should I move playground and such into the misc section?
I just want you to know this code looks like a war crime
but it works
mountain icon is cute
yeah this would be a good merge
is IS_STANDALONE supposed to be hardcoded in the buildWeb script? https://github.com/Vendicated/Vencord/blame/698e156e71628f1daeb02e80bb4ec911d7da9053/scripts/build/buildWeb.mjs#L47
does it not just negate certain devtools on web and make buildWebStandalone pointless? https://github.com/Vendicated/Vencord/blob/698e156e71628f1daeb02e80bb4ec911d7da9053/src/plugins/_core/settings.tsx#L211
who tf deving web
was just an inconsistency i noticed
Initial edit, unsure if anywhere else needs editing.
Conversation: #๐พ-core-development message
Thanks,
pointy
Code Review
This pull request updates the web build script to import and use a dynamic IS_STANDALONE flag instead of a hardcoded value in the common build options. A review comment suggests explicitly overriding this flag to false for extension and userscript targets to prevent them from inheriting an incorrect standalone status.
[Vendicated/Vencord] New review comment on pull request #4238: Unhardcode IS_STANDALONE in web build
By unhardcoding IS_STANDALONE in commonOptions, this value is now inherited by all build targets in this file, including the extension and userscript. Since these targets are not 'standalone' environments (they are injected into Discord), they should ideally have IS_STANDALONE set to false.
You should consider explicitly overriding IS_STANDALONE: "false" in the define blocks for the extension (lines 92-95) and userscrip...
[Vendicated/Vencord] New review comment on pull request #4238: Unhardcode IS_STANDALONE in web build
False is inferred if --standalone is not passed โด this is correct.
me i used to

ignore the clanker
already did xdd
i think the fact that this went unnoticed for years speaks volumes

added ThemeAttributes patch fix
When I have the FakeNitro plugin enabled (enabled it before I got a Nitro subscription) while my Nitro is activated, and I use for example - an external sticker from another server, FakeNitro gets prioritized over the real Nitro, and it will send a FakeNitro hyperlink instead of a regular sticker. This becomes annoying for some users at some point, and will eventually lead them to disable the extension altogether. To combat this, I've:
- Disabled FakeNitro when the current user already has a...
Code Review
This pull request introduces a hasNitroSubscription helper and an isActive method to ensure that fake Nitro features are only enabled for users without an active subscription. The implementation involves adding predicates to various patches and early returns in several utility methods. The review feedback points out multiple instances of redundant !hasNitroSubscription() checks in nested replacement objects where the parent patch already handles the condition. Additional...
The !hasNitroSubscription() check is redundant here because the parent patch object already has this predicate defined at line 199. If the parent predicate returns false, this replacement will not be evaluated.
predicate: () => settings.store.enableStickerBypass
The !hasNitroSubscription() check is redundant here because the parent patch object already has this predicate defined at line 332.
predicate: () => (settings.store.transformEmojis || settings.store.transformStickers),
The !hasNitroSubscription() check is redundant here as it is already covered by the parent patch's predicate at line 199.
predicate: () => settings.store.enableStreamQualityBypass
The !hasNitroSubscription() check is redundant here because the parent patch object already has this predicate defined at line 332.
predicate: () => settings.store.transformEmojis,
The !hasNitroSubscription() check is redundant here as it is already covered by the parent patch's predicate at line 199.
predicate: () => settings.store.enableStreamQualityBypass
Committed some of Gemini's suggestions
This isn't a real issue, the plugin already handles those cases. They will only be sent as FakeNitro emojis/stickers if that expression is unavailable for some reason
@Vendicated Could it be because Ext. Stickers and Emojis are disabled in the server?
If so, much love
yes if you don't have permission to use external emotes/stickers it will also send them as FakeNitro emoji (assuming you have embed perms)
People who don't want this behaviour can just turn over emoji/sticker spoofing in settings
Hmmm today I will fix https://github.com/Vendicated/Vencord/issues/3691
GitHub
Content #๐พ-core-development message fake-nitro-bug.webm i did a terrible job of describing the issue in the video you couldn'...

who are you that video is muted
Is there anything blocking the merge of this? I'd love this to get through
added a plugin that appends a ping counter to the title of the window
it replicates the functionality of the default website and vesktop
this is useful for small taskbar + visible labels setup on windows 10 (and windows 11 26h2 once its released) where the badge is invisible, maybe also some linux setups
hidden on non-desktop clients since its already visible
one difference with my implementation of this from the default discord one is that it only counts pings, not friend requests to...
Code Review
This pull request introduces the TaskbarPingCounter plugin, which prepends the unread mention count to the window title for Discord desktop clients. Feedback includes correcting a version typo in the documentation, expanding the Flux event subscriptions to ensure the counter remains synchronized during message deletions or bulk acknowledgments, and a suggestion to include pending friend requests for consistency with native Discord behavior.
To maintain consistency with the official Discord web app and Vesktop, it's recommended to include the pending friend request count in the total. You can use RelationshipStore.getPendingCount() for this. Since you mentioned you might want to hide them, perhaps this could be a plugin setting in the future, but the default should ideally match native behavior.
The current list of events is missing several cases where the mention count might change. Consider adding MESSAGE_DELETE, MESSAGE_DELETE_BULK, MESSAGE_UPDATE, and BULK_ACK (for 'Mark as Read' on folders/guilds) to ensure the counter stays in sync with the actual state.
const EVENTS = ["MESSAGE_CREATE", "MESSAGE_ACK", "MESSAGE_DELETE", "MESSAGE_DELETE_BULK", "MESSAGE_UPDATE", "BULK_ACK", "CHANNEL_SEL...
Windows 11 24H2 is the version that re-introduced the small taskbar buttons and 'never combine' features. 26H2 is likely a typo as it hasn't been released or announced yet.
On Windows 10 (and Windows 11 24H2) turn on Small Taskbar Buttons and set Combine taskbar buttons to something other than always hide labels.
this feature is available in 26h2 insider builds
i have specified that this is on purpose, but i guess making it a setting is a good idea, will do
i havent noticed any issues of not syncing in use, and i just tested this now, mark as read works already works fine, and discord already doesnt remove ping notifications if a message is deleted
me when windhawk for some reason
itโs literally working as intended, idk why this PR is here
- updated some of the descriptions to make more sense
- updated the api to use basetext instead of text
Code Review
This pull request refactors the HiddenChannelLockScreen component to use BaseText, improves accessibility with image alt text, and updates plugin settings for better clarity. It also introduces a fallback lock icon and fixes SVG attribute casing. Feedback highlights critical issues regarding the execution of React components as functions within patches, which could cause runtime crashes, and a dangerous comma operator in a replacement string that might hide icons for non-hidde...
Calling a React component as a function (e.g., $self.LockIcon()) is an anti-pattern that bypasses React's reconciliation and lifecycle management. Additionally, the previous version returned the component reference ($self.LockIcon). If the patched code expects a component to be rendered later (e.g., <Icon />), returning an element here will cause a runtime crash. If an element is truly required, use `React.createElement...
The regex switch\((\i)\.type\) is significantly broader than the previous version and may match unintended locations within the module. It is recommended to include more context in the match (like the previous isNSFW check) to ensure the patch is applied only to the correct switch statement.
match: /(?<=(\i)\.isNSFW\(\);)switch\(\i\.type\)/,
Including permissionOverwrites (an object) in the useEffect dependency array can lead to unnecessary re-executions of the effect. In Discord, channel objects are frequently recreated, meaning permissionOverwrites might have a new reference even if its content hasn't changed. Since this effect dispatches a Flux action and updates state, this could impact performance. Consider using a more stable dependency or a deep ...
The use of the comma operator here (${m},$self.isHiddenChannel...) is potentially dangerous. If this patch targets a property value (e.g., icon: originalValue), the expression will evaluate to the last part. This means for non-hidden channels, the expression evaluates to null, which would hide the icon for all normal channels. If the goal is to replace the icon when hidden, a ternary is safer: `$self.isHiddenChannel(${c...
- Replaced Forms components with new BaseText, Heading, and Paragraph components for consistency in styling.
- Updated Button imports to use the new Button component from @components/Button.
- Adjusted various sections in plugins such as ignoreActivities, imageZoom, messageLinkEmbeds, and others to improve readability and maintainability.
- Fixed type definitions in imageZoom plugin for currentMagnifierElement.
this took me ages... 4 hours to be exact
there shouldnt be any plugin relat...
vee would just ctrl + h
Code Review
This pull request performs a large-scale refactoring of UI components across numerous plugins, replacing legacy Discord form and text components with standardized Heading, Paragraph, BaseText, and Button components. It also removes deprecated settings sections and updates various event handlers for better consistency. The review feedback identifies inconsistencies in import styling and component usage, as well as a potential visual regression caused by an incorrect button vari...
Inconsistent use of single quotes for the Button component import. Other imports in this file and throughout the project use double quotes. Please use double quotes for consistency.
import { Button } from "@components/Button";
Inconsistent use of BaseText with tag="h2". In other parts of this refactor, headings are replaced with the Heading component. Please use Heading here for consistency with the rest of the project.
<Heading tag="h2" size="lg" weight="semibold">No permissions to display!</Heading>
The mapping of Button.Colors.PRIMARY to variant="secondary" seems incorrect, as PRIMARY is mapped to primary in other refactored files. This will change the visual emphasis of the button. Additionally, size="medium" is a significant reduction from XLARGE; please verify if this change was intended.
variant="primary"
size="medium"
so like are we gonna address the gemini in the room
This pull request introduces a new "AntiBadWords" plugin for Discord, which filters inappropriate words in messages using a system inspired by the Roblox chat filter. It also adds a new developer entry to the constants file. The main focus is on providing two filtering modes and integrating the plugin with Discord's message event system.
AntiBadWords Plugin Implementation:
- Added a new
AntiBadWordsplugin (src/plugins/antiBadWords/index.tsx) that filters banned words from messa...
Code Review
This pull request introduces the 'AntiBadWords' plugin, which provides message filtering through a comprehensive banlist and two distinct redaction modes. Several critical issues were identified, including a configuration error where both filtering modes shared the same setting value, and significant performance bottlenecks caused by re-compiling regex patterns for every message. Feedback also highlighted logic flaws in how messages are splitโpotentially bypassing multi-word f...
These entries contain trailing semicolons (e.g., "nigger;"), which will prevent them from matching the intended words unless a semicolon is explicitly present in the message. You should remove the trailing semicolons here and on line 150.
"nigger",
"nigur",
"niiger",
"niigr",
The Flux interceptor runs for every single action dispatched in the client. To minimize performance impact, you should check the event type and settings at the very beginning of the callback to avoid unnecessary overhead for unrelated events.
findByProps("_dispatch").addInterceptor(e => {
if (e.type !== "MESSAGE_CREATE" && e.type !== "MESSAGE_UPDATE") return;
switch (settings.store.ver...
The banlist processing, sorting, and regex compilation are currently performed inside the message handlers, meaning they run every time a message is created or updated. This is a significant performance bottleneck. Additionally, the setup logic is duplicated between robloxVersion and hardVersion.
Refactor the code to pre-compile the patterns at the top level of the file. Important: Remove the g (global) flag from t...
The value for 'Hard Version' is set to 1, which is identical to 'Roblox Version'. This will cause a conflict in the settings menu and prevents the logic in the start function (which expects case 2 for the hard version) from being reachable.
{ label: "Hard Version", value: 2 }
Splitting the message content by non-alphanumeric characters prevents the 'Roblox Version' filter from matching banned phrases that contain spaces or special characters (e.g., 'Ass Monkey' or 'f u c k' in your banlist). These will be split into separate parts and fail the regex check.
please don't send meaningless reactor prs.
too niche and we don't accept fully ai generated plugins

Love when prs explicitly list "It also adds a new developer entry to the constants file." as if anyone gives a shit
that's because they didn't write that
that's their claude output
they just copy pasted or maybe even made Claude create the pr
they also often include a "test plan" which basically is just ai telling a human how to test it

I wrote it myself tho, I just let Gemini commit their suggestions, but I actually coded it myself.
note: Remove deprecated component usage and complete TODO migration away from Forms/Text compatibility APIs
Your entire PR description is obviously AI generated. That implies the code also is. Either way like I said this is too niche
Please don't send refactor PRs
"The plugin normalizes words to catch common obfuscations (e.g., replacing 0 with o, 1/l with i)." my balls
๐ญ
Issue:
Resizing the sidebar to a narrow width causes the bottom account controls to compress, making the settings gear icon overlap or disappear.
Fix:
Prevented the account button group from shrinking while allowing the avatar/user section to absorb width compression.
Fixes #4125
dear lord gemini
oh wow
nuke
specifically gemini and copilot
claude costs too much for dumb people to use nowadays

nop
i will keep hating on gemini because i dont like google
xd
does ur gemini do this i didnt think so
fair
nyako on a roll
Discord's modal scroller started handling the entire PermissionsViewer content, so the roles and permissions lists no longer scrolled independently.
This change sizes the modal content to the visible height of the modal scroller so the existing list scrollers can handle overflow again. The layout and panel widths stay unchanged.
Tested with:
- pnpm build
Pull request overview
[!NOTE]
Copilot was unable to run its full agentic suite in this review.
This PR updates the permissions viewer modal so the inner โselected itemโ container stays height-synced with the modalโs scroller, improving layout/scroll behavior.
Changes:
- Add refs for the modal scroller and the selected-item container.
- Add a
ResizeObservereffect to sync the container height to the scroller height. - Pass
scrollerRefinto the modal to access the scroller DOM...
[Vendicated/Vencord] New review comment on pull request #4245: Fix PermissionsViewer modal scrolling
This effect only runs once ([] deps) but containerRef.current is null on any render where the selected-item container isnโt mounted yet (itโs conditionally rendered). If the user selects an item after the first render, the effect will early-return and never re-run, so the height will never sync. Fix by re-running the effect when the selected-item view mounts (e.g., include the selected-item state in dependencies), or switch to a callback-ref/state approach so the effect runs when `contain...
[Vendicated/Vencord] New review comment on pull request #4245: Fix PermissionsViewer modal scrolling
The inline cast to an augmented HTMLDivElement with an optional getScrollerNode makes the ref contract unclear and hard to maintain. Consider introducing a named type for the scroller-ref target (e.g., a union of HTMLDivElement and a scroller instance interface exposing getScrollerNode()), or isolate this into a small helper function so the component logic isnโt dominated by type coercion.
[Vendicated/Vencord] New review comment on pull request #4245: Fix PermissionsViewer modal scrolling
Updating container.style.height unconditionally inside a ResizeObserver callback can cause resize feedback loops (and โResizeObserver loop limit exceededโ) if changing the container height affects the scrollerโs layout. Consider guarding the write (only set when the computed height differs from the current height), and/or schedule the write with requestAnimationFrame to avoid synchronous resize-observer feedback.
Code Review
This pull request introduces a mechanism to synchronize the height of the modal container with the modal's scroller node using a ResizeObserver. The review feedback correctly points out a potential runtime TypeError if modalScroller does not resolve to a valid DOM Element before being passed to ResizeObserver.observe(). A code suggestion was provided to defensively check that modalScroller is an instance of Element.
[Vendicated/Vencord] New review comment on pull request #4245: Fix PermissionsViewer modal scrolling
If modalScrollerRef.current is a React component instance rather than a DOM element (and does not implement getScrollerNode), modalScroller will resolve to that component instance. Passing a non-Element to ResizeObserver.observe() will throw a runtime TypeError.
To prevent potential runtime crashes and ensure defensive programming, we should verify that modalScroller is an instance of Element before observing...
holy slop
aiception
looked at the feedback:
rerun height sync when the selected item container mounts
guard the scroller target before observing it
avoid redundant ResizeObserver writes
move scroller-node resolution into a helper
Rebuilt with pnpm build
How come CtrlEnterSend was removed? Will it ever be added back?
โญ
"v2" we are witnessing a new era ๐
vendroidenhanced competition
Discord writes shortcuts as keyboard keys one after another, like "CTRL K" with its own styling. The plugin already uses this styling but it combines it with the plus symbol, like you do in text, e.g. CTRL+K.
However, Discord doesn't use the plus sign when displaying keybinds, as the custom display buttons make this intuitively unnecessary, so this change just standardizes that display to be more in line with other Discord menus. See imgur link below for comparison.
Code Review
This pull request updates the keyboard shortcut display in the experiments plugin by removing the '+' characters between keys and replacing them with spaces. The reviewer suggested a minor cleanup to remove redundant literal spaces before the JSX space expressions to prevent potential rendering inconsistencies.
There is an extra literal space before the {" "} expression (i.e., </kbd> {" "}). This is redundant and can be cleaned up to just </kbd>{" "} to keep the JSX clean and avoid potential rendering/spacing inconsistencies.
<kbd className={KbdStyles.key}>{modKey}</kbd>{" "}
<kbd className={KbdStyles.key}>{altKey}</kbd>{" "}
most useful gemini review
What
Code Review
This pull request corrects a minor typo in the user interface text within the sendTimestamps plugin, changing "send send time only" to "send time only". There are no review comments, and I have no additional feedback to provide.
What?
Adds a ClearRecentMentions plugin with a Clear Recent Mentions action in the Inbox > Mentions filter dropdown. The plugin fetches recent mentions, optionally marks the fetched channels as read, then dismisses the fetched mentions.
Why?
Discord can leave stale entries in Inbox > Mentions, and clearing them one-by-one is tedious. This adds a single manual action in the menu where users already manage Mentions filters.
How?
Patches the Mentions filter menu (`navId:"mentions-fi...
Hope AI-first plugins aren't a problem.
Code Review
This pull request introduces a new plugin, ClearRecentMentions, which allows users to mark recent mentions as read and dismiss them from the Inbox Mentions tab. It also registers a new developer, TheLonelyDevil, in the constants file. The code review feedback suggests several key improvements: using Vencord's built-in contextMenus API instead of raw string patches to avoid fragile patching and React lifecycle issues, deduplicating channels by channelId before dispatchi...
Use Vencord's built-in contextMenus API instead of raw string patches.
Raw string patches on menus are fragile and prone to breaking when Discord updates. Additionally, calling the React component renderClearMentionsMenuItem() as a function inside the patch is a React anti-pattern that breaks the React lifecycle and prevents the ErrorBoundary from catching errors.
Using the contextMenus API is much cleaner, more rob...
Deduplicate the channels by channelId before dispatching BULK_ACK.
Currently, if there are multiple mentions in the same channel, this sends redundant ack requests for the same channel. Since the API returns mentions in reverse chronological order (newest first), we can keep only the first occurrence of each channelId to ack the latest message and mark the channel as read. This reduces the payload size and avoids r...
Add a guard to check if RecentMentionUtils.deleteRecentMention is a function before calling it.
Since RecentMentionUtils is loaded lazily via findByPropsLazy, it might be undefined or missing the method if Discord updates its internal modules. Adding a check prevents a generic TypeError and allows throwing a descriptive error.
async function dismissMention(messageId: string) {
try {
await RestAPI...
Code Review
This pull request introduces a new plugin, ClearRecentMentions, which allows users to bulk-dismiss and mark recent mentions as read from the Inbox Mentions tab. It also registers a new developer in the constants file. The review feedback suggests an optimization in the ackMentions function to deduplicate channel IDs before dispatching the BULK_ACK action, which avoids redundant processing when multiple mentions occur in the same channel.
If a user has multiple recent mentions within the same channel, mapping all of them directly will result in duplicate channel entries being dispatched in BULK_ACK. Since acking a newer message automatically marks all older messages in that channel as read, we can optimize this by deduplicating the channels and only keeping the latest mention per channel. This reduces redundant dispatches and unnecessary processing overh...
Hope AI-first plugins aren't a problem.
"AI-first" your brain has turned into slop
yeah, it was working fine for me yesterday, but now today i cant see the names of ANY channel i dont have role access to
yeah, it was working fine for me yesterday, but now today i cant see the names of ANY channel i dont have role access to
proves that ain't nobody read before submitting prs
truthnuke
well
the "plz no ai" for contributing.md is in dev branch for some reason
where merg
just search no-more-aislop-plox in here tbh
wasn't discord gonna start cracking down on this plugin
probably that's why
separate pr because this just broke yes I know the patches are bad ill fix them in a bit
Code Review
This pull request refactors the betterSessions plugin by introducing a class name utility (cl) to replace hardcoded class names and moving inline styles to styles.css. It also updates the webpack patches to target AUTH_SESSIONS_OS_UNKNOWN and replaces renderTimestamp with renderDescription to handle both labels and timestamps. The review feedback highlights a critical issue in the webpack patch where the description variable is not captured, which will lead to a ru...
To prevent potential runtime crashes if description is undefined or does not contain the expected delimiter, we should add a defensive check and safely destructure the split result.
renderDescription: ErrorBoundary.wrap(({ session, description }: { session: Session, description?: string; }) => {
if (!description) return null;
const [label, timeLabel] = description.split(" \\xb7 ");
The patch does not capture the local variable representing the description text (matched by \i), which means description is not passed to renderDescription and will be undefined. This will cause a runtime TypeError when calling description.split(...) inside renderDescription.
We should capture the variable name using a capture group (\i) and pass it as description:$2 in the replacement.
...
beat these people with heavy hammers
All those flux subscriptions are bad, you should sub to stores instead, see https://github.com/Vencord/Vesktop/blob/main/src/renderer/appBadge.ts
Either way this is indeed too niche so I'll close it, sorry!
is it intended that you're deleting code here? Also this .*? needs to be limited or it's veeery likely this will nuke large sections of unrelated code if the structure ever changes
@austere talon
the deletion is intended
ill ss the module rq
it needs to replace from i the n
both are labels
i is label n is sublabel
ill cap it rq
alright just fixed it
thanks for the feedback, this is definitely a way better method for doing it. i'll keep it as a community plugin in case someone other than me might find it useful
vee
themeattributes ๐ฅ
all of them are in that pr
also I dont think bettersessions was on main yet ๐ญ
Small edge case I noticed while reading through this: if the permissions array changes after a user has selected an item near the end, selectedItemIndex can point past the new array length. That would make selectedItem undefined even when permissions still has entries, so the modal could briefly render the empty state instead of clamping back to an available row. Might be worth resetting or clamping selectedItemIndex when permissions.length changes, especially now that the scroller height syn...
One accessibility/readability thought: removing the visible '+' separators makes the shortcut read more like separate labels than a key combo in plain text or copied output. If the visual styling now handles spacing, it may still be worth adding an aria-label like 'Ctrl plus Alt plus O' on the combo wrapper so screen readers keep the shortcut meaning clear.
@Vendicated please don't let me end up like ImSkully ๐
who is that
A clear and concise description of the feature you'd like to see
Enabled plugins should show up at the top in alphabetical order before the rest of the plugins.
This makes turning plugins off / getting plugin info / changing plugin settings more streamlined.
Implementation Notes
No response
Additional context
No response
Request Agreement
- [ ] I've searched existing issues and this hasn't been suggested before
- [ ] This is a core modification feature, not a p...
bad idea, just filter by enabled only
vencloud seems to be exploding
I can confirm these allegations
failed ssl
vencloud has exploded*
vencord has exploded*
I dont think anything is actually wrong just funny
ye same 525
Can someone review this maybe pls? https://github.com/Vendicated/Vencord/pull/3430
in due time
i have this issue too.
Describe your Changes
Bump GitHub actions
Bump Node to latest LTS (24) in actions
Fixes warnings on action runs
ref https://github.com/Legcord/Legcord/commit/fbc9d723920eed86303f046f964625725154f9e3
(MacOS and cache saves fail for unrelated reasons)
Checklist before submitting
- [x] I have read the CONTRIBUTING.md file and made sure this pull request complies with it
- [x] This pull request was written by me, and not an AI agent
It appears my formatter took some creative liberties in this
If you would like me to fix that just let me know
actions should probably be pinned to a hash instead of a tag
I can fix that one moment
there is 0 reason to do random version bumps, nothing is gained
To me action/dep bumps just seem lile contribution farming
if the actions work they work
i'd like to think their intentions were pure
I dont doubt
oh it's aspy
yeah doubt it was farming
unable to click out of server owner popup in serverinfo, tapping esc fixes
even if clicking outside the modal
fun

It says on the Vencord page 'Stay tuned for more future features!' but this project hasn't been updated in 3 years, what are possible future features to add?
to vencloud (look at the repo the issue is in)
So it would seem
known bugs so far
- TypingTweaks (everyone, stable)
- AccountPanelServerProfile (occasionally)
- BetterSettings (some plugins missing from context menu -> plugins)
Did discord push an update recently
guhhhhh
index.ts: Lines 37-40
if (e.code === "F8") {
// Hi! You've just paused the client. Pressing F8 in DevTools or in the main window will unpause it again.
// It's up to you on what to do, friend. Happy travels!
debugger;
oh lewi you're adorable
hi youve just paused the client
how dare you
whats wrong with friendssince?
call timer and fullsearchcontext are both pred already
experiment I wonder
any specific part of ui
or all?
dm sidebar was edited last week by me
idk if my pr fixes bettersettings
?
i completely missed #๐พ-core-development message
fixed ๐ญ
got any plugin names for bettersettings test?
customrpc
I gotchu
because it has no settings manageable by the context menu
deliberately filtered out
oh
the menu only includes plugins with settings because otherwise it'd be too long
why not make it show, but clicking opens its full settings?
i find that easier than having to click & scroll a bunch for the same goal
thoro typing out entire rewrite of vencod
i knew it ๐ญ
keeping it going so I can test typing tweaks 
I got the rewrite dw
its uh
when discord opens it install teamspeak 6
well I meant I got it to align this time
I have no idea what its doing but I mean hey
ay
they seem ight as rain to me
alr
pic is on the other side of the planet but otherwise looks good to me
please dumb that down
I dont have the caffeine for that
oh the gap?
nah gap is normal i think
its ugly tho
oh now it looks good
i'd say no because it would just look ugly
everything's perfectly aligned as is so yknow
Just Make ur Channel List larger Lol
i think it'd be nice to put friendsince right beside their registration date
^ side profile in dm
am I touching better settings or no?
whats wrong with AccountPanelServerProfile
I mentioned it awhile ago
you have to open a profile for it lol
idk why I never looked lol
because its useless
^
incredible
it only decodes like 5 of the errors I get
in the past month ive been able to find the file 5 times
its like githubs status page
f34b679 Fix typo in sendTimestamps description (#4247) - ArcturusLight1
I'm looking at account server something something rn btw
it just needs to load lazy module probably
these issues are hard to find if you use BetterSettings because it preloads a lot of modules
It is lazy lol
Also it happens with better settings
what the fuck did I do ๐ญ
u cant make react components async lmao
aw I cant extract lazy?
Highlighter.tsx: Lines 46-63
let didLoadHljs = false;
export const HighlighterContainer = (props: HighlighterProps) => {
const [_, _err, isPending] = useAwaiter(requireHljs);
useEffect(() => {
if (!isPending) didLoadHljs = true;
}, [isPending]);
if (!didLoadHljs && isPending) return null;
return (
<pre className={cl("container")}>
<ErrorBoundary>
<Highlighter {...props} />
</ErrorBoundary>
</pre>
);
};
technically no
we were finding solely user profule
one 1s canary is lagging its heart out
I just made it go for this
589022
ill check if its fine without bettersettings
ye its good without it
this module uses 4 different profiles
insane amount but anyways
d is userprofile
I mean atleast it doesnt need extract chunks
iull push this for now
there was no promise in the profile so it was annoying me
v1.15 when
ask gemini to fix conflicts
oh no its easy conflicts lol
type of conflicts tho
it got mad over equicorddevs being in typingtweaks import
guess its a good thing I changed it last second lol
yk it feels great to not have gemini in my email
What program even is that
We don't talk about that
I was never told there was a program called git when I started coding
So I googled GitHub repo manager and found gh desktop
And I just never stopped using it because it's easy
time for me to shill
Terrible for anything off gh tho
Nah I'd only use smth like gh desktop at this point
I literally just type gh into my search bar lol
It's kinda ingrained into my flow
The custom patch feature of lazygit is invaluable to me
You can create a custom patch from a commit and then apply or revert it anywhere
I just open up cmd run the cmd atp
The custom patch can be whole files, lines or anything in between
git CLI can't do this (easily)
Describe your Changes
Checklist before submitting
- [ ] I have read the CONTRIBUTING.md file and made sure this pull request complies with it
- [ ] This pull request was written by me, and not an AI agent
lol. lmao even
Describe your Changes
The "View Role Members" button didn't work because PermissionsViewer relied on the RoleMemberPopout patch from BetterRoleContext. If BetterRoleContext was disabled, the popout rendered empty.
Duplicated the patch in PermissionsViewer so it works independently.
Checklist before submitting
- [ ] I have read the CONTRIBUTING.md file and made sure this pull request complies with it
- [ ] This pull request was written by me, and not an AI...
make a bot that auto closes when the checkboxes aren't checked
Describe your Changes
Summary
- Adds a PasscodeLock plugin that locks Discord with a passcode
- Press Ctrl+Shift+L or use the toolbox action to lock
- Includes auto-lock timer, recovery key, and settings panel
- Passcode is hashed with SHA-256 + salt before storage
Features
- Set/change/remove passcode from Vencord settings
- Lock screen overlay with passcode input and "Forgot passcode?" recovery key
- Auto-lock after configurable inactivity period (off, 1m, 5m, 15m,...
oh my god why didnt i block you after the first dumbass pr
What happens when the bug or crash occurs?
The hidden channels now just show as No Access, and only owner + admin roles appear to be able to view them
What is the expected behaviour?
I expect to see the hidden channels in their categories with their names
How do you recreate this bug or crash?
- go to any server where you have channels you don't have access to with the plugin installed
- observe No Access spamming the top of the channel list
Errors
No errors.
R...
Discord is experimenting with hiding channels names again.
As a temporary workaround, enable the Experiments plugin in Vencord & restart, then toggle the below experiment to "Not Eligible", and restart your client again
-# dev://experiment/2026-02-private-channel-hiding
But I don't wanna fill it out
I went out of my way to delete the entire description
What happens when the bug or crash occurs?
It was working fine till today, I see the hidden channels but they are all named "No Access"
What is the expected behaviour?
It used to show the names of the hidden channels
How do you recreate this bug or crash?
.
Errors
No response
Request Agreement
- [x] I've searched existing issues and this hasn't been reported before
- [x] I am using Discord Stable or tried on Stable and this bug happens there as well
- [x] I in...
- [x] I've searched existing issues and this hasn't been reported before
A clear and concise description of the feature you'd like to see
hello i thought about new feuture "streamer mode" when u have streamer mode on or streaming on dc u have a switch which blurs messeges
Implementation Notes
No response
Additional context
No response
Request Agreement
- [ ] I've searched existing issues and this hasn't been suggested before
- [ ] This is a core modification feature, not a plugin request (those go in Discord)
- [x] This feature would...
@austere talon how do you expect illiterate users to distinguish between a modification feature vs a plugin request
I was using the same feature today and it happened to me too but restarting discord seem to temp fix it

This plugin allows users to schedule messages to be sent at specific dates and times.
It is fully client-side, uses a secure background heartbeat interval, and integrates cleanly into the chat bar.
- Added a custom-styled, native-looking clock icon and tooltip next to the chat bar buttons.
- Provides an elegant modal to pick date/time and draft messages.
- Includes a built-in "View List" panel to manage or cancel scheduled items.
- Safe for direct messages and groups (utilizes purely r...
Author set to 1400hertz.
so kind of them
๐น๐ท
fork found in kitchen
need to make a bot that uses ai to determine if a pr/issue is stupid and auto closes
make gemini do it
shrimply auto close prs by randoms and if it ends up being worth merging reopen
first off you can clear anything not following tmplate
or with invalid/ too old license header
old being anything under current year
REAL coders take great PRIDE AND CARE in their submission
am I gonna watch half my prs get closed
also feed it vencords prs be like
this list bad:
this list good:
@twilit vector I hope it auto closes yours if you ever make any </3
harassment I need an adult
thororen is like eleven
You can fix this by enabling the better role context plugin, I did submit a PR to fix this without enabling the better role context plugin but it hasn't been merged.
Description
A plugin that automatically corrects grammar and spelling before sending a message. Click the wrench icon in the chat bar then type your message โ the content gets corrected on send.
Features
- Multiple providers: LanguageTool (free), OpenAI, Anthropic, or any OpenAI-compatible API
- Local PT-BR corrections: accent fixes, commas, sentence-ending punctuation for Portuguese (Brazilian)
- Local English corrections: common typos, contractions ("don't" โ "don't"), ...
@tacit light
well do i have a choice
PS @Vendicated you should change your contributor guidelines.
Every contribution to improve vencord is NOT welcome here. I'm sure I blasphemed in using AI, but still sad and hurt about this. I rest my case anyway.
<img width="1022" height="382" alt="Screenshot From 2026-05-31 17-21-17" src="https://github.com/user-attachments/assets/45edca83-3df9-4156-9906-9f69cec24caf" />
<img width="666" height="42" alt="Screenshot From 2026-05-31 17-21-27" src="https://github.com/user-attachment...
"anyone" refers to humans and does not include clankers
Describe your Changes
DiscordKit is a client-side integration for PluralKit.
Current features:
- Retrieve PluralKit system information (
/system) - Retrieve other system's information (
/system id:[system id / username / user id]) - Activate autoproxy in member mode for the current guild (
/autoproxy member:[member id / name]) - Deactivate autoproxy in current guild (
/autoproxy mode:off) - Autoproxy changes the banner colour, display name, and bio.
To-do:
- [ ] M...
i guess bro
@austere talon Iโm gonna ask you not to use slurs, thank you
This has gotten rejected before: https://github.com/Vendicated/Vencord/pulls?q=sort%3Aupdated-desc+is%3Apr+pluralkit+is%3Aclosed
Also this violates one of the guidelines:
No plugins that interact with specific Discord bots (official Discord apps like Youtube WatchTogether are okay)
lets hope this doesnt end up in an unnecessary argument
- It doesn't interact with a Discord bot, it authenticates with PluralKit's Discord application.
- I specifically made this pull request a draft because I knew this needed adjustments.
Also, if that 1st point is invalid to you, wouldn't that mean that ReviewDB is breaking the guidelines too? What is the difference?
well well well
genuinely 0 thought in this message
okay finally made it a single find please review once again hopefully this can be included
2642 ๐ญ
what?
wha about it?
funny ancient pr still being fixed with love
yep!
almost 2 years going!








