#๐พ-core-development
1 messages ยท Page 281 of 1
i just waited a minute or two after reporter finished than ran loadLazyChunks again
fbfc38a RoleColorEverywhere: Fix not working on voice c... - sadan4
l35 ๐ญ
I forgot to add this to the pr 
I was fixing all of my stuff that was broken and ended up fixing the rest of the stuff that was missed but I took a break and forgot 
seems to be true
very awkward space inbetween messages
blocked message above & under the third one, slightly noticable
what is Kevin yapping about
sentient
unrelated i think showtimeoutduration could get merged into showhiddenthings as an option, since hiddenthings shows timeout icon anyway
and petpet should get nuked since https://discord.com/discovery/applications/1247630337027084309 is a thing
vtest dev2
Now testing! 
Seems like everything is working fine (for now) 
BetterRoleDot (took 6.1ms):
ID: 180798
Match: ```
/"(?:username|dot)"===\i(?!.\i)/g
thank
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
Has the tag even been pushed yet
yop
i dont think vext can show new version if the tag isnt made
shrug
How does the review process even work
Do they have to go through 10000 lines of js with every update or do they only check the diff?
Either way seems kinda inefficient and prone to human mistakes
Also if vencor were to steal user's data through a very specific patch that constructs a token stealer in a random module, how would they know
My guess is mostly automated
Then it should be instantaneous smh
I think its weird because equicords web already got approved
we get approved in like 1-3 hours
Key word being mostly
@austere talon anything you wanna merge to dev before I push to main?
some couple more fixes
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
does your dad work at google inc or something
sorry
the more installs an extension has the more scrutiny it gets put through
thats legitimately the answer
its just because equicord is a smaller extension by userbase so the checks are less extensive
oh ic
to prevent u from making a legitimate extension and then switcharooing
nah
I'm really sick today
hope u feel better soon!
gws
is it me or are the new discord switches just ugly and chonky
i like them
your opinion is different than mine but it's okay @desert cosmos
tjeyre bouncy
they're vertically slimmer and wider yea
they wanna be windows so bad
i have a slight suspicion that this name isnt used internally
yeah they suck ngl
yeah there are a lot of collisions if you brute force you can find some garbage like that
Kitty spotted 
@fossil inlet, <t:1769216619:R>: check if this is still an issue
Simple plugin to disable the global keybind for starting a voice call when in a DM or Group DM.
I often find myself accidentally hitting CTLR+' instead of CTRL+ENTER when typing up longer messages that need line breaks.
is that actually a command to start call
what insane person thought that was a good idea
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
I paid them to not accept the update
evil
have you considered making the extension 1 line of code which fetches the actual extension code from github so you never have to update it in the extension stores ever 
against chrome store guidelines
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
css: exists

vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
kill chrome
this makes me get why people hate liquid glass

They're PRETTY
@Hazrtine just an FYI (sorry to bother you if your already working on it), i have merged the fixes for the recent discord update into my fork and it seems like this is just broken right now. dosnt show up anywhere
windows switch
Needed it for a custom plugin of mine so I figured I'd PR it back here.
Discord code for reference:
old ones are cute and animate nicely!!!! (well at least they used to do that)
these ones dont deserve the quirky animation
also not showing a visual indicator of the on/off state apart from a background color (colorblind people exist) and left/right position on the screen (other cultures exist) should be an accessibility concern
left right is universal
also is there even a form of colorblind that wouldn't be able to tell the difference between an off (black) and on (not black)
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
come on
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
some button redesign classes were murdered if you were using
--redesign-button-secondary-background
--redesign-button-danger-background
--redesign-button-danger-pressed-background
--redesign-button-danger-pressed-text
--redesign-button-secondary-pressed-background
--redesign-button-positive-pressed-background
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
Tbf it's Sunday 
up dude
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
they were murdered on canary unless they reverted
it was yesterday when I noticed
ill check rn
they didnt revert is seems
oh yeah guh
Currently supportHelper.tsx does not change the message content to lowercase before checking if it includes update, this means the Update Now button (below) won't appear on messages that have Update.
Right now, no button:
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
GUHH
@signal sundial fix the sticky message
it had the button even with uppercase update
do yk the replacements?
for like 1
I found direct replacements not the same button thing tho
other variables were
--redesign-button-danger-pressed-background: color-mix(in oklab, var(--red-460) 100%, var(--custom-theme-base-color, #000) var(--custom-theme-base-color-amount, 0%));
--redesign-button-danger-pressed-text: color-mix(in oklab, var(--white) 100%, var(--custom-theme-text-color, #000) var(--custom-theme-text-color-amount, 0%));
--redesign-button-secondary-pressed-background: color-mix(in oklab, var(--primary-130) 100%, var(--custom-theme-base-color, #000) var(--custom-theme-base-color-amount, 0%));
--redesign-button-positive-pressed-background: color-mix(in oklab, var(--green-460) 100%, var(--custom-theme-base-color, #000) var(--custom-theme-base-color-amount, 0%));
thats it lol
all of redesign
I dont follow your logic
wym
but you found out the replacements?
they just purged all the variables using the same color mix as those
they arent using --primary-130 anymore
--redesign-button-positive-background = --status-positive-background
--redesign-button-secondary-pressed-background = --redesign-button-tertiary-pressed-background
--redesign-button-secondary-background = --channeltextarea-background
--redesign-button-danger-background = --status-danger
--redesign-button-danger-background = --status-danger
--redesign-button-danger-pressed-text = --text-default (?)
--redesign-button-danger-pressed-background = --text-feedback-critical (?)
thats all I got rn
they also moved to --red-new
not sure if anything else was murdered but if you need me to look just let me know
you can just drag the channel?
the server i use it for has a lot of categories so i made it a little while ago, figured i may as well push incase anyone else wanted it.
you can just drag the channel?
Takes long on Community Servers if you have more than 15 Channel. And I dont want to hold left click and drag it up and wait for Discords slow scroll.
Plugin seems like a cool Feature and should be merged tbh
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
@fossil inlet, <t:1769131258:R>: add companion hover hint for mangled class names
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
this still seems to be broken for me, guessing its something in my fork but there are no changes i can see that should be breaking things. and i get this error when i right click on a user
Vencord ContextMenu Patch for user-context errored, TypeError: Spread syntax requires ...iterable[Symbol.iterator] to be a function
at ag (components.tsx:135:15)
at Object.zI (ContextMenu.ts:147:17)
at C (WebpackModule861672:2:5679)
at i6 (web.d4014ee71ec82f1b.js:12:1192137)
...
Forgot to mention this ties in with #2601 and specifically the ability to import and export JSON. Although I do believe I may have changed how existing tags are handled with this... May need review.
https://github.com/Vendicated/Vencord/pull/2601#issuecomment-2182102966
Vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
i checked, my pr doesnt fix that
i could probably look into adding that to it tho
yop
hmmmm
what if it was moved to an api
because the timeout duration should have it's own line afaik
but the message delay should be inline
the order needs to be flipped i think
Vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
A fun plugin to share hidden notes with friends. It automatically hides any text wrapped in > < syntax using invisible Unicode characters.
How to use: Hello
Others see: "Hello"
Plugin users see: "Hello
Encrypted message: I love you :3 "
Messages remain fully invisible on mobile and for anyone not using the plugin.
is this invisiblechat (Even Nicher Edition)
this used to exist as InvisibleChat but it got removed because it was too niche and gave a false sense of security
vext
The Vencord Chrome Extension is out of date! (v1.13.12 vs v1.14.1)
Vesktop works flawlessly on aarch64 linux (Asahi), good job y'all
vext
The Vencord Chrome Extension is up to date! (v1.14.1)
hoooooooooly shit
vtest dev2
Now testing! 
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 

Content
I would like to help with Russian translation of Vencord texts
Request Agreement
- [x] I have read the requirements for opening an issue above
oh yea what happened to the translation plans
i can do those tonight
Old
757942(e, t, n) {
"use strict";
(n.d(t, {
A: () => S
}), n(896048));
var r = n(627968);
n(64700);
var i = n(735438), a = n.n(i),
s = n(397927),
o = n(310953),
l = n(366811),
c = n(808728),
u = n(967198),
d = n(711014),
f = n(645959),
p = n(203982),
_ = n(265422),
h = n(652215),
m = n(790782);
function g(e, t, n) {
return ((t in e) ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e);
}
function E(e) {
for (var t = 1; t < arguments.length; t++) {
var n = null != arguments[t] ? arguments[t] : {}, r = Object.keys(n);
("function" == typeof Object.getOwnPropertySymbols && (r = r.concat(Object.getOwnPropertySymbols(n).filter(function (e) {
return Object.getOwnPropertyDescriptor(n, e).enumerable;
}))), r.forEach(function (t) {
g(e, t, n[t]);
}));
}
return e;
}
function y(e, t) {
var n = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var r = Object.getOwnPropertySymbols(e);
(t && (r = r.filter(function (t) {
return Object.getOwnPropertyDescriptor(e, t).enumerable;
})), n.push.apply(n, r));
}
return n;
}
function b(e, t) {
return (t = null != t ? t : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : y(Object(t)).forEach(function (n) {
Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n));
}), e);
}
function O(e, t) {
let n = [h.ME, ...d.Ay.getFlattenedGuildIds()], r = n.indexOf(e);
return t > 0 ? n.slice(r).concat(n.slice(0, r), e) : (n.splice(r, 0, e), n.slice(r + 1).concat(n.slice(0, r + 1)));
}
function v(e, t) {
return e === h.ME ? f.A.getPrivateChannelIds() : (0, o.A)(e, {
withVoiceChannels: t,
withCurrentVoiceChannel: !0
}).map(e => e.id);
}
function A(e, t) {
return [{
resourceId: e,
type: m.P.GUILD_EVENT
}, ...v(e, t)];
}
function I(e, t) {
var i, a;
let o, {channelPredicate: d = () => !0, guildPredicate: f = () => !0, guildFeaturePredicate: m = () => !1, ensureChatIsVisible: g = () => !1, withVoiceChannels: y = !1} = t, v = null != (i = l.A.getState().guildId) ? i : h.ME, I = l.A.getState().channelId, S = O(v, e), T = e > 0 ? 0 : S.length - 1, C = A(v, y), N = C.indexOf(I) + e;
for (; null != v && "" !== v; ) {
if ((o = C[N], f(v))) for (; null != o && "" !== o; ) {
if ("string" == typeof o) {
if (d(v, o)) return (0, _.i)(v, o, !1, g(v, o));
} else if ("object" == typeof o && m(o.resourceId, o.type)) return (v !== u.A.getGuildId() && (0, _.i)(v, null == (a = c.Ay.getDefaultChannel(v)) ? void 0 : a.id), (0, s.mMO)(async () => {
let {default: e} = await Promise.all([n.e("51354"), n.e("7453"), n.e("27728")]).then(n.bind(n, 926956));
return t => (0, r.jsx)(e, b(E({}, t), {
guildId: v
}));
}));
(N += e, o = C[N]);
}
if ((T += e, null == (v = S[T]) || "" === v)) break;
(C = A(v, y), N = e < 0 ? C.length - 1 : 0);
}
p._.dispatch(h.jej.SHAKE_APP, {
duration: 200,
intensity: 2
});
}
let S = a().throttle(I, h.ugG);
}
New
757942(e, t, n) {
(n.d(t, {
A: () => h
}), n(896048));
var r = n(627968);
n(64700);
var i = n(735438), l = n.n(i),
s = n(397927),
a = n(310953),
o = n(366811),
c = n(808728),
d = n(967198),
u = n(711014),
_ = n(645959),
p = n(203982),
m = n(265422),
g = n(652215),
A = n(790782);
function f(e, t) {
return [{
resourceId: e,
type: A.P.GUILD_EVENT
}, ...e === g.ME ? _.A.getPrivateChannelIds() : (0, a.A)(e, {
withVoiceChannels: t,
withCurrentVoiceChannel: !0
}).map(e => e.id)];
}
let h = l().throttle(function (e, t) {
var i, l, a;
let _, A, h, {channelPredicate: b = () => !0, guildPredicate: E = () => !0, guildFeaturePredicate: x = () => !1, ensureChatIsVisible: O = () => !1, withVoiceChannels: C = !1} = t, I = null != (i = o.A.getState().guildId) ? i : g.ME, T = o.A.getState().channelId, S = (a = I, A = (_ = [g.ME, ...u.Ay.getFlattenedGuildIds()]).indexOf(a), e > 0 ? _.slice(A).concat(_.slice(0, A), a) : (_.splice(A, 0, a), _.slice(A + 1).concat(_.slice(0, A + 1)))), j = e > 0 ? 0 : S.length - 1, v = f(I, C), N = v.indexOf(T) + e;
for (; null != I && "" !== I; ) {
if ((h = v[N], E(I))) for (; null != h && "" !== h; ) {
if ("string" == typeof h) {
if (b(I, h)) return (0, m.i)(I, h, !1, O(I, h));
} else if ("object" == typeof h && x(h.resourceId, h.type)) return (I !== d.A.getGuildId() && (0, m.i)(I, null == (l = c.Ay.getDefaultChannel(I)) ? void 0 : l.id), (0, s.mMO)(async () => {
let {default: e} = await Promise.all([n.e("51354"), n.e("7453"), n.e("27728")]).then(n.bind(n, 926956));
return t => (0, r.jsx)(e, (function (e, t) {
return (t = null != t ? t : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : (function (e, t) {
var n = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var r = Object.getOwnPropertySymbols(e);
n.push.apply(n, r);
}
return n;
})(Object(t)).forEach(function (n) {
Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n));
}), e);
})((function (e) {
for (var t = 1; t < arguments.length; t++) {
var n = null != arguments[t] ? arguments[t] : {}, r = Object.keys(n);
("function" == typeof Object.getOwnPropertySymbols && (r = r.concat(Object.getOwnPropertySymbols(n).filter(function (e) {
return Object.getOwnPropertyDescriptor(n, e).enumerable;
}))), r.forEach(function (t) {
var r;
(r = n[t], (t in e) ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r);
}));
}
return e;
})({}, t), {
guildId: I
}));
}));
(N += e, h = v[N]);
}
if ((j += e, null == (I = S[j]) || "" === I)) break;
(v = f(I, C), N = e < 0 ? v.length - 1 : 0);
}
p._.dispatch(g.jej.SHAKE_APP, {
duration: 200,
intensity: 2
});
}, g.ugG);
}
inlined the shit out of everything ๐
HORRORRRR
doing more than just that
hold on sadan
we already have fixes for most of these
I just copy pasted this and it works
what commit is that from
not exactly from this but
on these commits we were removing those patches
which were the inlined stuff patches
I'm just putting them back now
should we get stable compat for these
does this find work without ) or ,?
i think it does
might be worth to just switch the find tbh
right now I kept both patches
stable and new
it does
could probably grab something from these defaults
this also works but it's worse
yeah prob
you can pretty much pick any prop, my guess is all the others work as well
ignore activites module is pretty nasty now
we might be able to anchor after this intl string
vtest dev2
Now testing! 
the only issue was the lookbehind to grab a variable
oh, i missed that ๐ญ
im blind
NoticesAPI (had no effect):
ID: 519057
Match: ```
/(?<=,NOTICE_DISMISS:function(\i){)return null!=(\i)/
**__SuperReactionTweaks (had no effect):__**
ID: `900210`
Match: ```
/(BURST_REACTION_EFFECT_PLAY:\i=>{.+?if\()(\(\(\i,\i\)=>.+?\(\i,\i\))>=5+?(?=\))/
Seems like everything is working fine (for now) 
?remind make eslint rule for unused capture groups in finds
Invalid time provided, try e.g. "tomorrow" or "3 days".
?remind 1w make eslint rule for unused capture groups in finds
Alright @fossil inlet, in 1 week: make eslint rule for unused capture groups in finds
huh
i have a branch that has vencord eslint rules i work on sometimes
vtest
Now testing! 
may they stop breaking our stuff for a little please
never
NoticesAPI (had no effect):
ID: 519057
Match: ```
/(?<=,NOTICE_DISMISS:function(\i){)return null!=(\i)/
**__SuperReactionTweaks (had no effect):__**
ID: `900210`
Match: ```
/(BURST_REACTION_EFFECT_PLAY:\i=>{.+?if\()(\(\(\i,\i\)=>.+?\(\i,\i\))>=5+?(?=\))/
ContextMenuAPI (took 5.4ms):
ID: 36456
Match: ```
/navId:(?=.+?([,}].*?)))/g
okay
who broke RCE again
it colors on messages that failed to send
which i had fixed originally
what tf happened to it
๐ญ
fix it then
vee broke it by mistake so it was fixed in https://github.com/Vendicated/Vencord/pull/3934, you might want to take a look at the git history
DID THEY ACTUALLY MAKE IT IDENTICAL?
its very very similar to my role color so that could be the reason i was unable to tell
wtf
First time contributing here, not sure if adding myself to Devs for something this small is ok or if that should be removed.
since when ๐ญ
the hell is that
Hiding accessories seems outside of the plugin purposal
experiment since early dec #๐ง-discord-changes message

huh
must have broke for another reason
they just added a prop in the middle of the old patch which is why it originally failed to match
unrelated to that error
I dont use the plugin cuz no Vesktop ๐
oh wait u didnt push to main
ah it works fine
i thought u had pushed to main and it was broken fix
7a66079 [WIP] custom alert modal to fix #3891 - Vendicated
Content
Description of problem: my old vencord with userplugins doesnt show settings for vencord after new discord UI update, i tried installing vanilla as in image and i got error when try to run discord. But vanilla pre build binary "https://github.com/Vencord/Installer/releases/latest/download/VencordInstallerCli.exe" just works as in one of screenshot but its a bummer that we dont have userplugins folder in prebuild vanilla CLI
So i tried Vanilla from git and it Errors out at startup...
I don't think there is any scenario where someone who is invisible would like the plugin to change their status, so I removed the option
tbh this plugin should also handle manual status changes
- Open game while online
- Plugin changes you to DND
- Change to invisible manually
- Close game
- Plugin will now change status to online, which is probably not what you want
I think if the user manually changes their status we should just set savedStatus to null again
this looks kind of bad and discord seems to be deprecating their old modal api i think
they have new modal components
return (0,
r.jsx)(i.Modal, {
transitionState: n,
onClose: m,
title: j.intl.string(j.t["GD/8X8"]),
actions: en,
actionBarInput: (0,
r.jsx)(o.Checkbox, {
checked: D,
onChange: e => I(e),
label: j.intl.string(j.t["Ux+iQU"])
}),
children: (0,
r.jsxs)("div", {
className: y.Qs,
onKeyDown: et,
children: [null != F && (0,
r.jsx)(o.wx6, {
type: "critical",
children: F.getAnyErrorMessage()
}), (0,
r.jsx)(h, {
question: S,
onChange: U,
error: null == M ? void 0 : M.question,
inputRef: k
}), (0,
r.jsx)(o.hKd, {
size: 26
}), (0,
r.jsxs)(o.D0$, {
role: "group",
label: j.intl.string(j.t.oMBfeS),
children: [_.map( (e, n) => (0,
r.jsx)(p.A, {
answer: e,
channelId: t.id,
index: n,
isLastAnswer: n === _.length - 1,
onEmojiSelect: K,
onEmojiRemove: B,
onAnswerTextChange: L,
onRemoveAnswer: z,
addAnswer: q,
submitPoll: ee,
answerRowRefs: R,
error: null == M ? void 0 : M["answer-".concat(e.localCreationAnswerId)],
canRemoveAnswer: W,
ref: e => {
R.current[n] = e
}
}, e.localCreationAnswerId)), Y && (0,
r.jsx)("div", {
className: y.Ox,
children: (0,
r.jsx)(o.Button, {
icon: o.j96,
variant: "secondary",
onClick: q,
"aria-label": j.intl.string(j.t.B2Uvme),
buttonRef: x,
text: j.intl.string(j.t.B2Uvme)
})
})]
}), (0,
r.jsx)(o.hKd, {
size: 18
}), (0,
r.jsx)(v, {
selectedDuration: N,
onSelect: T
})]
})
})
new modal api
so much better its crazy
hmm
reporter doesnt seem to work for css classes
oh yeah
vtest dev3
Now testing! 
findCssClasses("optionName", "optionIcon", "optionLabel")
findCssClasses("optionName", "optionIcon", "optionLabel")
icon looks out of place tbh, someone should make a new one
canโt you find one in discord
hop on IconViewer
it has a mic icon
veediot
vee so antisocial that he forgot discord has calls
const MicrophoneIcon = findComponentByCodeLazy("7.94V20H9a1");
basically the same icon
it will also look out of place
text area setting
bro ๐
vtest
Now testing! 
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 
yeah this contribution is too minor to add yourself as author
besides that, looks good, thanks!
d86423c VcNarrator: only narrate events of current session - Vendicated
Thanks! But using SessionsStore for this is suboptimal, which also makes all the other changes redundant, so I did this myself via https://github.com/Vendicated/Vencord/commit/d86423cae3a52b4daef70038d8a507c1c4dd9e37
38a9f12 CrashHandler: log component stack on crash (#3933) - sadan4
0126090 Translate: update DeepL language list (#3919) - songnguxyz
Adds SelectToQuote, a plugin to quote specific parts of a message.
Features:
- Adds "Reply with Quote" to the context menu when text is selected.
- Smart Formatting: Detects if selection is inside a codeblock (
hljs/language-) and preserves the language + auto-fencing (N+1 backticks). - Diff Mode: specific Shift+Click behavior to create a
diffblock for corrections.
Technical:
- Uses
FluxDispatcher(CREATE_PENDING_REPLY) for native reply state (no DOM text...
i made a plugin called UserTimeZones it allows you to set a users GMT time zone and view what time it is for them currently
Some images
<img width="271" height="80" alt="image" src="https://github.com/user-attachments/assets/5ae4ebb6-a229-4d73-905e-25be7661a40a" />
<img width="303" height="530" alt="image" src="https://github.com/user-attachments/assets/7a294b70-aa83-402e-ae49-ff8d831d75a8" />
Hey can you show you set the time zone please? like a submenu i think ?
<img width="390" height="893" alt="image" src="https://github.com/user-attachments/assets/20500a9e-340a-4bc8-85d5-8f68ca609945" />
Hey can you how show you set the time zone please? like a submenu i think ?
thanks, and how the command works plz
thanks, and how the command works plz
<img width="515" height="202" alt="image" src="https://github.com/user-attachments/assets/7f5f4a25-2ae8-42e7-82d6-eeafb24ef145" />
is it sync with all people who has the plugin ? like i can set the timezone for my friend and other friends can see the first friend's timezone ? if yes, can y set the timezone for myself ?
thanks, and how the command works plz
<img alt="image" width="515" height="202" src="https://private-user-images.githubusercontent.com/64756450/541435922-7f5f4a25-2ae8-42e7-82d6-eeafb24ef145.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njk1ODE2OTgsIm5iZiI6MTc2OTU4MTM5OCwicGF0aCI6Ii82NDc1NjQ1MC81NDE0MzU5MjItN2Y1ZjRhMjUtMmFlOC00MmU3LTgyZDYtZWVhZmIyNGVmMTQ1LnBuZz9YLUFtei1BbGdvcml0aG09QV...
is it sync with all people who has the plugin ? like i can set the timezone for my friend and other friends can see the first friend's timezone ? if yes, can y set the timezone for myself ?
i did not think of that but i could see about adding that in the future just right now u set the users time via the list i just have my timezone in my bio
is it sync with all people who has the plugin ? like i can set the timezone for my friend and other friends can see the first friend's timezone ? if yes, can y set the timezone for myself ?
i did not think of that but i could see about adding that in the future just right now u set the users time via the list i just have my timezone in my bio
ok thanks
thanks, and how the command works plz
<img alt="image" width="515" height="202" src="https://private-user-images.githubusercontent.com/64756450/541435922-7f5f4a25-2ae8-42e7-82d6-eeafb24ef145.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njk1ODE2OTgsIm5iZiI6MTc2OTU4MTM5OCwicGF0aCI6Ii82NDc1NjQ1MC81NDE0MzU5MjItN2Y1ZjRhMjUtMmFlOC00MmU3LTgyZDYtZWVhZmIyNGVmMTQ1LnBuZz9YLUFtei1BbG...
do you think this will get added its aa cool plugin my friends love it
yes i think, i'd love using it too
what is that header ๐คท๐ปโโ๏ธ
idk tbh i used ai to make it i dont like ts and didnt want to deal with ts
why the hell are you role-playing with your alt account bruh
and bugger off with the ai slop jesus christ
random guy that never left a comment before somehow found this pr within 2 minutes and asks these super specific questions and somehow knows the plugin has a submenu and command despite the pr not mentioning that
idk tbh i used ai to make it i dont like ts and didnt want to deal with ts
yea because its right there wait
v+ no programming
I am crying 
I approve of merge ๐
10 billion more ai slop plugins to vencord
loadLazyChunks() resulting in a ton of net::ERR_CONNECTION_CLOSED for anyone else?
stable, canary, fresh after a reload, in a client sitting open for over an hour, every one just gives me a bunch of connection closeds ๐ค
Recently, my Vencord crashed (after a Discord update). I went into the installer, but it couldn't patch it because I kept getting this error. I couldn't find it anywhere on the Internet. Cli or GUI version of installer gives me same error
Idk what i can do, I tried to open the installer with Cloudflare Warp enabled, but the error is the same.
atleast they self-closed
@bright island this looks extremely familiar lmaooo
Teto
neat
I thought it was one of you guys when I first saw it ngl
vtest dev2
Now testing! 
Seems like everything is working fine (for now) 
PinDMs (took 5.2ms):
ID: 828100
Match: ```
/"renderRow",(\i)=>{(?<="renderDM",.+?(\i.\i),{channel:.+?)/
lmao, unfortunately I'm having a really busy week, will try and look into ours this weekend
thanks
@limber skiff should we migrate to the new mana modal api? I think they will remove the old one sooner or later
there's a pr for it
is it visibly different or pretty much the same?
I mean the new modals haha
๐
I cant get a find ๐

but it seems risky
alright
soon we will start hardcoding mangled names like BD
๐
im still annoyed with the intl hashing
Intl keys were so useful
oh and classes too
those made it so much easier to understand what you're looking at
yeah
this seems to be forcing a dummy user to always be present in plugin settings even once the actual authors have loaded?
Fixes the dummy author from remaining as the first author of every plugin forever.
-1465912127305809920 is an interesting id choice
Want to notify, that I won't continue to improve the plugin, because of an absence of a wish to do this, so if someone want to improve, then go ahead.
- Invisible zero-width encoding for message content with auto-decode for users who have this tool.
- Mention preservation for user, role, and channel pings.
- Optional "shared key" encryption for message payloads and supported attachments. Messages you send will be encoded and should decode for users with the same key
- Attachment encryption/decryption for images and
.txtfiles. - "Show more..." expands long decrypted text for easier reading.
there should be some readme file about what plugins not to pr
Including Removed Ones
cus i have a big feeling all of these invisiblechat fork makers dont even know that plugin existed
removed ones could be added to this or something
yeah
@vendicated.machine add!!
I didn't even know invisiblechat was removed
same lol
Anyone here on Linux using the newest electron 40.0.0 (chromium 144.0.7559.60) 1.6.4 build?
if on kde, could you try launching Vesktop and turn the brightness to 100%, then back to 95%. Do you experience visual artifacts?
Not a vesktop issue, but the 144.* builds of chromium are broken, at least on asahi linux. I will keep an eye out on electron builds are make a MR when it ships fixed chromium..
what the acutal fuck
horror
beloved
def
make sure to prepare a good sandwich and a nice hot coffee to go with it
oh yeah
3k loc of slop might need something stronger
I was thinking beer but sure that works
what the fuck did they really make their own implementation of sha256 or smth
they did
my god
and it's all in one single file as well lmao
this isnt even ai slop anymore it's pure slop slop
if only there was a web crypto api built for this
(that api is async tho, so while there is a reason to not use it, rolling your own is insane)
Ai moment
Old way not compatible with this
{
find: "#{intl::GUEST_NAME_SUFFIX})]",
replacement: {
match: /#{intl::GUEST_NAME_SUFFIX}[^"]+""(?<=user:(\i).+?)/,
replace: "$&,$self.showInjection($1.id)"
}
}
This plugin allows to set a minimum account age for friend requests and automatically declines them, if a friend request does not fulfill the requirement.
I tend to get random friend requests from very new accounts regularly. Currently Discord only allows to disable friend requests based on friendships and common servers or allow everyone to send you a friend requests. Because I sometimes need to get a friend requests from someone I do not share a friend/server with, I have to keep my sett...
good concept good concept..
not a single file has 2026 copyright in it be so fr ๐ญ
@Nuckyz can I get another review please?
i think this guy Is Nitro #๐ง-off-topic-iceman-only message
die
Me Nitro
-# i get they want fakenitro but damn man atleast try to use a translator
-# otherwise how are you using vencord
Me Nitro
This PR adds full type definitions for discord's custom Slate input component (used by the ReviewDb plugin for example), along with a wrapper component that provides default properties to make features like autocomplete work out of the box.
I've also added the slate and slate-react libraries for their type exports (used by getSlateEditor() and the Transforms and Editor objects), but I can remove them if needed.
The SlateNode type is somewhat basic, but iirc @imjustprism has ...
prism made this for us but I was wondering if you would want me/him to pr it for you??
Check for updates is self explanatory
Repair is basically force update it runs the update func and then relaunches so if settings gets destroyed again or something you can repair and it should update and relaunch
that'd be awesome to add lowkey
atp just pr it and see if john vencord feels like adding that or not
good thing It's unused
It's from before we decided to completely stop relaying on names once they started mangling more exports
Check for updates and open settings dir are self explanatory
Repair just force updates and relaunches for either broken settings menu or other reasons
Have you considered an about entry that just shows version, git hash, support server invite, etc....
i'm thinking something akin to vesktop
<img width="781" height="1400" alt="image" src="https://github.com/user-attachments/assets/5025a9d3-8d79-4c0d-9187-f0a5e050e6b4" />
@fossil inlet, <t:1769187163:R>: implement testing findCssClasses in companion
i did that i think
i wonder if this is the end of needing installer to update whenever discord breaks everything
Adds a Typing section to the Friends list and typing indicators on server icons.
TypingFriends
Shows which of your friends are typing across servers.
TypingFriends adds a Typing section to the Friends list and displays small typing indicators next to server icons when friends are typing.
What it does
- Shows friends who are currently typing across servers
- Adds a typing section in the Friends list
- Displays typing indicators next to server icons
Settings
*...
it's always the overuse of markdown
Gotta love the Overstepping Boundaries category of plugins
probably will still need it because it can still unpatch
but other than that its fine
@fossil inlet, <t:1769192884:R>: fold numeric constants in companion patch helper
when discord updates it can remove the patches
so yes itโs still needed
oh i was thinking of it another way then nvm
itโs useful for when you refresh discord and vencord breaks due to them updating it client side n such
time to pull a bd ๐ญ
but when the app updates itโs a different story
soon
vee also doesnโt want to change how the installer works rn
@fossil inlet
ignore the desc
didnt think of one yet
Vencord is an open-source client modification for the Discord desktop and web applications, designed to enhance user experience through customizable features not available in the official client. Developed primarily by Vendicated, it began with initial commits in September 2022 and has since grown into a lightweight yet feature-rich tool, boasti...
what the hell
Have you considered an
aboutentry that just shows version, git hash, support server invite, etc....
<img width="824" height="404" alt="image" src="https://github.com/user-attachments/assets/15928fab-31b2-478c-a98a-187988a81032" />
What happens when the bug or crash occurs?
Unable to install/repair Vencord
What is the expected behaviour?
Installation of vencord as regular
How do you recreate this bug or crash?
Download the software from the site, open it, and the message will be displayed
Errors
Request Agreement
- [x] I am using Discord Stable or tried on Stable and this bug happens there as well
- [x] I am a Vencord Developer
I should mention, I have never encountered this issue before with Vencord, nothing changed with my firewall etc.
heh vns works even in github 
Anyone else experie9cng this, I use NextDNS and one of the filters was updated to block github causing this
tech service blocking github is mental
have you considered making the version link to the tag and the hash link to the commit
This is an idea
Ill do it in a sec
@fossil inlet, <t:1769211554:R>: add GAME_FRIEND to intl list
๐ญ
im using that in icon finder
Content
It would be nice if there is an option to auto disable this notification setting for the "NewGuildSettings" plugin.
Request Agreement
- [x] I have read the requirements for opening an issue above
The last option. Sorry for not hovering over it.
yop thats how i know about it lol
what experiment
2025-12-desktop-message-previews
what experiment
it's still alive
in stable
Content
It would be a good option to change in what language the plugin "Translate" translates. Right now it only translates into english.
Request Agreement
- [x] I have read the requirements for opening an issue above
hate
feature requestomator 9000
โฆ if nick and username were identical with different casing
I added this small validation to index.tsx on line 100:
if (isRepliedMessage && !inReplies || (username.toLowerCase() === nick.toLowerCase() && mode !== "user"))
Which validates if the username only mode is active, in which case it should fall back to return <>{prefix}{username}; and display the username, all in lowercase.
Here's the fix, before and after:
@Nuckyz did you suggest to use FileInput to replace this button that was already here? Sorry, I don't understand what the problem is. Could you please elaborate?
bro is spitting straight facts
1515319 HideAttachments: support bot components v2 (#3944) - MrCRACKDev
This will only set the authors once all of the promises resolved. It should set each author as soon as their individual promise resolves
match: /#{intl::GUEST_NAME_SUFFIX}[^"]+?""\](?<=guildId:(\i),.+?user:(\i).+?)/,
Would this work?
#1412573823676579975 message i've had 3 people in support get vencord installed just fine if they use the cli installer without deleting any certificates
curious
Does the GitHub app join, send an update, and leave for each update? Or is that just me
webhook
Changed it to update during the loop.
Automatically wraps links in <> to prevent them from embedding.
TextReplace
it's always text replace
This a real issue?
Just tested. No.
Should be like this after patching.
{
className: a()(c, T.Xh, q, {
[T.Pi]: !U && !G && R
}),
children: [
null != z ? z : j.Ay.getName(Z),
F ? (0, r.jsxs)("span", {
className: T.IW,
children: ["\xa0", E.intl.string(E.t["pFO/Ph"])]
}) : "",
Vencord.Plugins.plugins["AllCallTimers"].showInjection(Z.id)
],
style: Vencord.Plugins.plugins["RoleColorEverywhere"].getColorStyle(Z.id, W),
}
Chiming in to say that this actually doesn't work for me neither years later? Status is updated client-side but nothing is appearing on the other end, just tested this by creating a different account and adding myself as a friend
A plugin which uses my Song Spotlight API (originally for a Revenge plugin) to allow users to pin songs to their profile.
remarks:
- CORS is a pain in the ass
- i had to make the plugin desktop only w/
native.tsalong with turning album cover art intodata:URIs - i didnt wanna do the same thing with audio previews so I just added those to CSP, i could potentially figure out something else if needed
- i had to make the plugin desktop only w/
- the css might be a bit messy ...
@copilot @grok what do you have to say about this
use our support channel
dc27c4d plugin settings: fix not removing dummy user af... - Vendicated
i was wondering why the relationshipnotifier buttons werent working
good job discord

warp 
how come I dont have that
discord users are the only people who want ads because of FOMO
I want warp+ for free
vencord will soon add ads like this
lmao
approved
I don't know what a warp+ is but anything advertised like that is a virus
yap
vtest dev2
Now testing! 
thanks I guess Discord
FakeNitro (had no effect):
ID: 465364
Match: ```
/(?=return{hasSpoilerEmbeds:\i,hasBailedAst:\i,content:(\i))/
Seems like everything is working fine (for now) 
guuuulp
niiiice
ngl I cant tell anymore
it looks like they did but not fully
these still exist but I cant find the actual ui
I found it
this is v2 no?
its both
v1 is 1st v2 is second
360619 is v1
patch 2 doesnt apply tho
also startup timings wasnt ever moved ill just move it to pushing entries
seems like they just partially removed it
the diff doesn't have a lot of deleted stuff
im assuming they're getting ready for removal or smth
yeah prob
ill deal with startup timings
eh
I have a fix for platform indicators as well if you want me to pr
does anyone even use that

I do sometimes
I just want it to not patch and move the settings array to be able to push lol
they purged old settings open
oh wait I might be blind
this is gone
628965 has something to do with user_settings_modal_open tho
@fossil inlet, <t:1769485794:R>: make eslint rule for unused capture groups in finds
soon
never
@fossil inlet satan
@fossil inlet satan
@fossil inlet satan
@fossil inlet satan
nvm works fine
vendroid
I was wondering if it was really worth thing https://github.com/Vencord/ShikiPluginAssets/blob/main/grammars.json to a commit hash in shikicodeblocks or not because when it actually updates it would need a new hash everytime for a json update
Summary
Adds a new plugin that allows users to switch between different GIF providers (Tenor, Giphy, Klipy) directly from the GIF picker UI.
Features
- Provider Selector Dropdown: Injects a dropdown into the GIF picker header next to the search bar
- Seamless Integration: Uses React component patching to wrap Discord's SearchBar component
- API Interception: Patches fetch/XHR requests to modify the
providerparameter in GIF search requests - Persistent Settings: Sel...
This behaviour can be changed via Discord's experiment, so there's no point having a plugin for it
Tenor will die soon anyway and discord will eventually settle with either giphy or klipy
So I will reject this plugin, but thank you for your contribution nevertheless! (but next time please don't use AI to write your pr description)
Content
nsfw channels are still not reach able
Request Agreement
- [x] I have read the requirements for opening an issue above
Because they removed it dm me on discord dxrx99_og
Because they removed it dm me on discord dxrx99_og
use the support channel as the big warning tells you to
@ryukzxe I can help you please dm me on discord dxrx99_og
so...
Uuuh
Is that 60 failed patches???
discor seems to have upped the build target
Well I can't help this time with fixes I'm without my laptop
Surely they'll revert that anyway
It's definitely a silly intern 
wait discord completely changed their intl system?
discord found out how to not target internet explorer 11
iirc typescript 6.0 prerelease has deprecated the "es5" target, literally the oldest thing it still supported
rip
i hope they keep this
updating build target
it generates much more modern code now
Ohh
so we dont get stupid random lines now 
just modern build target
oh god
Break 60 patches and a lot of finds
probably
yes
but it's still annoying to fix regardless
we have a lot like this which is static class field compat shit
this is "thing ".concat(var) which is now just `thing ${var}`
did they nuke the polyfil that was spammed across every module
I'm scared to open the diff
it's fine
๐
but making our fixes stable compatible will be difficult
not everywhere yet ๐
lets not bother
not worth it
the code is too different now
yes but that means we have to leave either canary or stable broken for a while
and extension users will cry
true
this broke lol
just leave canary broken for a while
who cares if they complain they're using canary
we want to have patches out before it hits stable
so most stable users wont even notice
i mean you could try to time it around when stable gets the update
no
Are they finally using object spreads instead of that? Insane. Polyfill
I'll start fixing stuff later (in ~ an hour(
yes
n.e(49681) = require.ensureChunk(49681)
n(544676) = require(544676)
it's loading a bunch of chunks then requiring module 544676
im so sad we cant use \i in finder strings
the source code is
onContextMenu: e => openContextMenuLazy(e, async () => {
const { default: Menu } = await import("./ContextMenu");
return props => <Menu guild={p} {...props} />
})
i relied on null!=x and now its changed to x?. so i cant find it
wait we can use regex for find?
yes but avoid
cant really think of anything else atm
discord kinda just copy pasted the entire module im looking for into a different module
Someday they'll enable module concatenation 
luckily most of the song spotlight patches still work
one of them i just slightly edited and it works both on the stable & canary versions
so yay
is that the old find
the one with the error is the old one
idk if you're joking ๐ญ
no like i thought everyone who used it knew i made it
idk how else you would find it in the first place
it shows up above the official vencord companion i think lmao
i wanted to give it a shot and its so good
ty
i did not think that was a cat in your banner at first omg
looks like showConnections patches the same module, might want to try this
i saw which is what lead me to realise regex finds exist
but i wanna see if i can figure out a way to find the module without using a regex find
dont think you really can
you might find something at the top
guhhhhh
why does vesktop renderer always crash when loading lazy modules
so bad
?remind 3d webpack-ast-parser fix store display name parsing to handle static props
Alright @fossil inlet, in 3 days: webpack-ast-parser fix store display name parsing to handle static prosp
.isProvisional?
I think that's a find
vee suggested it to me some days ago
escape the ??
I'm dumb it's a string
It's no longer unique
i'll check but i think thats matching the other themeType:POPOUT component
rip
im starting to fix things, will add here as i go
this has the fix for all the error boundaries popping up everywhere
there's ?.isProvisional??t.isProvisional somewhere
so ig .isProvisional?( is unique
right
@fossil inlet i need a Vencord Companion: View module by ID command :hopeful
the humble extract command:
and also a maybe builtin module finder but i'd diagress
<C-P> extract
oh ur kidding
why is there no prefix
๐ญ
<C-F> filter .modules
whaat thats so cool
also u can press F1
hop on .git/info/exclude
hop on git bartender
palm made it with his little fursona
@palmde
his little furry guy
oh yeah that
i wanted to try that
what does that do
oooh
(it says download modules but i already downloaded)
doesnt work on vesktop because electron crashes whenever i try it
idk
but works on discord desktop
did these changes reach canary yet or no
๐ญ
no im asking cuz i use development
yes lol
what question is this
wrong reply
any change hits canary first
of course they did ๐ญ
#1337479880849362994 our reporter runs on canary
oh
guhhhhhhhhhh @limber skiff have you looked into load lazy chunks being insanely slow after the last major explosion
not really but like
nothing changed tbh
just doesnt work on vesktop for me
it just takes 1 year to load all the language files
time to use desktop
i forgot
ooh
should make it much faster
now i just get a bunch of css chunk loading errors instead of vesktop hanging forever 
ty
๐ค
they look like the requests timed out
spot the bug 
discord devs are so good
oh so thats why ctrl clicking on a module inside of webpack preview tries to open .modules/X.js
you should make it fallback to extract module
i was so confused before
opened 2 issues
@limber skiff context menu api cooked
how so?
I mean that's only one place
they were already cooked before
if it's on a renderPopout they were probably already just a function or something without access to the actual arguments we want
loaded all chunks and it seems like it actually only 3
that would be a runtime error
@austere talon this vesktop patch seems to be causing crashes (rending invalid react elements)
wait it might not be that
how the fuck did chat bar buttons get into the context menu api
oh
menu api find failed
Change the GIF provider Discord uses in the GIF selector (choices: Discord default, Klipy, Tenor or Giphy).
Why?
Google is discontinuing Tenor's public API and only keeping it in Google products (of course ๐). This means Discord's beloved GIF picker will slowly roll over to use other GIF providers, like Giphy and Klipy. Klipy is made by former Tenor employees and is amazing, but Giphy misses quite a lot of fun GIFs and doesn't feel as extensive as Tenor and Klipy. Since there is no wa...
theres been a lot of submissions for a picker for gif providers, a/b testing moment
I got put on giphy and it's completely useless, at least klipy is decent
your friend can use the experiments plugin to change to klipy or even back to tenor
Besides that, Duplicate like sadan mentioned
Thanks for your effort anyway! โค๏ธ
About the gif thing could one make something that allow to use all 2/3 at once ?





