#๐งฉ-plugin-development
1 messages ยท Page 61 of 1
ye
๐
the type is wrong
anyone have an idea
does clienttheme still work or do I need to do something
unbreakable plugin :3
immortal
both times i've tried to make a plugin discord has pushed breaking changes now
its great
uwu
useState is beating my ass thanks react
good night, custom timestamp plugin ๐ญ https://github.com/Vencord/plugin-requests/issues/1#issuecomment-1957949593
Hey, i'm trying to fix one of the patches for a plugin i have (BetterQuickReact) and it essentially needs to inject extra styles into the MenuItem component, i've found the function
MenuItem: function() {
return $.sN
},
But i need to find what $.sN is so i can edit the source, how do i do that? i remember it's something to do with breakpoints but i forgot what exactly to do
Oh, this is the stuff I wrote?
Yop ๐ญ
I pretty much can't live without it now so thought id take a crack at fixing the broken parts after doomsday
Most of it is fine
Look at the call stack i think
It isnt even MenuItem btw
this is entirely irrelevant
You need MenuGroup

My brain aint working ok
WHY THE FUCK IS IT NOT WORKING FOR NO FUCKING REASON
@balmy sky
HOLY SHIT I GOT IT
webpack module 911810
thanks react devtools
lmso
i need the sleep
hot
What's the easiest way to intercept it when the user tries to send a message? I essentially want to check if the message contains a certain term, then if it does- show a "are you sure you want to send this?" type modal or some other action
rather unrelated to plugins but can attachment links be tracked? e.g. does https://media.discordapp.net/attachments/1015063227299811479/1253027912601440367/image.png?ex=66745cae&is=66730b2e&hm=b4736a629bf83e913db5f74cb96cea858149438458314c9a2c6319c505661189&=&format=webp&quality=lossless&width=462&height=734 link it to my client as a viewer? working on a more verbose logger and don't want my account get flagged
ok sorry i'll keep it on topic
no i'm not saying that it's off topic
just a weird question
why would viewing an attachment link have any risk?
isn't it only in the current channel tho?
hmm ok
thanks ||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ||||โ|| _ _ _ _ _ _ https://cdn.discordapp.com/emojis/974156659784040479.webp?size=48&quality=lossless
contextMenus: {
"guild-context": MakeContextCallback("Guild"),
"channel-context": MakeContextCallback("Channel"),
"user-context": MakeContextCallback("User")
}
is there a way to add a context menu to a voice channel?
and maybe based off the user perms?
do you mean add to this?
yeah
you can add to every context menu
I was asking if I can make it specific to only voice channels
yes
the function takes two args, use the second one to filter if you want to add a context menu
this is what i have
i just console.logged the second one to find what to filer by
thanks all. I will play with this example
is it possible to store a map or an object and have it sync with settings sync
like this?
yes, im using the data store rn but i want it to sync with settings sync which ive been told the data store does not
never checked if it does tbh
yeah it doesnt
i was thinking about converting into a string and storing it in a hidden setting
is that a thing vencord could do tho?
but that seems like a bad idea
that kinda asks for breaking
yea, thats why im asking here 
where even is datastore stored
oh its native chrome thing
/electron
but technically we could add the datastore to the cloud sync then
(if we even would want to do that, prob some data that shouldnt be in the cloud)
id hazard a guess and say all of that data shouldn't be synced
yeah there are prob things that should only be present on that client and will have weird behavior if synced
the reason it's not cloud synced is because datastore could have sensitive information
according to an old argument in #๐พ-core-development
well I noticed that some messages below
and rn I use DataStore for like MessageTags but it would be cool if those would be syncable
Hey, i'm trying to figure out how to set an unsaved profile configuration in the profile settings, i found this plugin that does it, but i'm pretty sure doomsday broke it since findByPropsLazy("setPendingNickname", "setPendingPronouns"); doesn't find anything now
Got it!
FluxDispatcher.dispatch({type: "USER_SETTINGS_ACCOUNT_SET_PENDING_PRONOUNS", pronouns: "foo"})
โ
datastore is local data only
i noticed
since, well you can see there, it includes your own cloud secret
if we sync that as well we have no secure place to put it
and also a lot of that data isnt necessary to be synchronised
gotta love plugin testing
my current situation:
this username is a byproduct of when discord announced the new usernames
so are the like 15 backup accounts I have (they didn't get the old username badge)
does anyone know how to check if someone is streaming?
function isStreaming(userid: string) {
throw new Error("not implemented");
}
I think I have an idea but I would need to get the current voice channel, how do I do that?
I looked in stores.ts and found SelectedChannelStore
try that
looks like what I was looking for, thanks
findByPropsLazy("encodeStreamKey") doesn't seem to be working anymore, any clue why?
because the module "encodeStreamKey" was from is mangled, you gotta need to find another way to access the module
you need to findByCode that function now
I see, thanks. Any clue what was the old name of the function? So I can trace it back to the new one
the old name was encodeStreamKey haha
you can either try to find it again by another way, to see what you need for your findByCode
or wait for me to get home in like 3 hours, which then I can lookup the function in my stable client and write the new find for you
I still have the client running the old version open
any chance you will backup the files?
I'd love that. Thanks
I dont need to
nelly.tools contains a link to the assets of each version
you could also download all the files for the old stable and look that way
but it's easier with them loaded in the client
ohh, can you throw the link here or searching nelly.tools is enough
searching is enough
go to builds
filter for stable only
and find a version before 6/18
thanks
fun fact discord still hosts files of versions up to 2018
that explains how amia was able to fix patchs so fast
they host every single build since them (it's a lott)
well yeah I abused that too
but I instead just used my open client for it
lots of finds and patches were fixed that way
would that mean we could possibly host older discord clients through one of our domains
it would have took more time if we had to find everything again from scratch
there's a tool called displunger that did that
idk if it works though
and it would only work for builds under 2022 since it relayed in a service that scratched versions which isn't active anymore
but yeah like I said it's totally possible to load old versions of the client
you just need to replace the scripts and css files the initial dom loads
those are responsible for loading all the rest with the appropriate versions
I'm getting an error
Does this mean they are not hosting it anymore?

you cant open discord assets links from within discord
you have to manually copy into browser
how do I get all the navIds for context menus?
i open the context-menu then click on it with react dev-tools
go up a few parrents and its somewhere in the props
oh okay, thanks again
This is what changed
}, 569545: function(e, t, n) {
"use strict";
n.r(t), n.d(t, {
decodeStreamKey: function() {
return s
},
encodeStreamKey: function() {
return a
},
isStreamKey: function() {
return r
}
}), n("47120"), n("411104");
var i = n("70722");
Old ^
New:
569545: function(e, t, n) {
"use strict";
n.d(t, {
DB: function() {
return r
},
V9: function() {
return o
},
my: function() {
return s
}
}), n(47120), n(411104);
var i = n(70722);
How can I use findByCodeLazy to get the V9 property?
look at the code the function o includes
and match a part of it that only that export has
tbh u dont need to webpack find that func lol
its so simple
just copy paste it into ur code and clean it up a little
It would work as is? Wouldn't some variables change their names?
I am looking at button component, I am not seeing on onClick so I am guessing from the hook name Callback is responsable on the button click? this button is the "Create Role" button in the guild settings I wanna figure out; how is it moving the user to the role panel, so I can open a panel with custom role permission overwrites
that will be unlikely to happen
sorry for the delay but i'm working on getting my moreusertags pr to work again
so far messages work
the function is pure, it only uses what you enter into it
It's all done!
For some reason Discord added another module in the middle of the flow with profiles so i had to patch that one. Fortunately, it all works now.
Vencord.Webpack.Common.GuildStore.getRole doesn't seem to give me the role
this is what I am doing Vencord.Webpack.Common.GuildStore.getRole("1253050471598391357")
Yet another stupid question, how would i go about adding another tab in this list where i can render custom content? Devtools doesn't really give any useful info from what i can see
@balmy sky i do be alive again
You need to concat your text to the children array and then modify the ternary to check between the three of them
Im attempting to emulate a user profile popout, and i managed to find the react component for what i need, although im still confused as to where to go forward from here, could someone point me in the right direction?
Why are you trying to emulate a user profile popout?
trying to make a plugin that adds some features for the pluralkit bot, which uses webhooks for things, but the webhooks are connected to users that have profiles.
the goal is to make it so you can just click on the profile of the user, and itll pop-up with a profile with info from pluralkit's API
You can probably just make a custom user object passed to the popout instead of triyng to emulate it
prob easier to "just edit" the author of the message
the custom user object i can do, the passing it into the popout imma need some help with
is it possible to open a closed dm by id
yes
@dull magnet I need to fetch users/@me/notes and I remember u once said it's better not to use fetch for discord endpoints due to the fact that discord can track it or smth like that and better to use some func from vencord (restapi mb, I don't remember and can't find this message), what should I use?
RestAPI
thanks 
OpenPrivateChannel
Thank you
How do I make a modal that can't be closed at all?
I want to force users to click a certain button inside the modal to dismiss it
@dull magnet you react with ๐ญ but I promise all I am doing is idiot proofing my fork 
Don't quote me on this but you might have to patch the modal code
I found a way to do it
For anyone who comes here later wondering how to make a modal that cant be closed
Set the second argument of openModal to this
{ onCloseRequest: () => false }
example
const key = openModal(modalProps => (
<WelcomeModal
modalProps={modalProps}
close={() => closeModal(key)}
/>
), {
onCloseRequest: () => false
});
Notifying me of this was a very bad idea
What stupid idea are you building now
The brain juices are brewing
Check in later
horror
how can I make my own plugins
thanks
Hello ! I'm documenting myself on Vencord for a potential plugin I'd like to create. I'm really new to this type of modding and I'm searching a starting point. I know it's possible to hide the Friends, and other categories but is it possible to add a functional one with arbitrary content inside ?
If you think it's possible where should I start searching for code to patch/to add ?
Yeah, that's pretty easy
I think i have a plugin that does it actually
Oh nice ! Is it open-source so I can take a look ?
Uhh yeah i'm trying to find it hold on
Thank you ๐
Damnit it got broken on doomsday, still might be useful as an example though
Not often
But obviously code can change and there's nothing we can do other than adapt
Yes that's what I have understood coming from other discord modding communities
Thank you for the fast response and headstart for my project ๐
No problem
Vencord is a lot better than most other client mods because it uses a different patching system, which makes it marginally more robust and also simpler in most cases
ty 
time to make parental controls
Your screen time is up!
wtf
time limit for discord
brainrotmaxxing
husk limit
iโd send the gif i wanna send but i prolly be give brainrot role for it
Done
* {
visibility: hidden;
&&:after {
visibility: visible;
content: "Go outside. Do chores. Get off the computer";
}
}```
Thank you
np
if you have kids, just tell them to set a timer and add that css when the timer goes off!
flawless parental controls
Do you honestly think anyone in this server can let alone talk to a real life woman, nevermind have kids
no
I made it for kids to give to their parents
||(well actually i made it bc funny)||
Is there a store for all the dms you have open?
check ChannelStore declaration
is it possible to have tabbed discord view? the "other plugin" has it, and is the only thing keeping me from switching to vencord (not too sure where to put this question in, can't post in request)
tabbed discord view? the "other plugin"? more context would be helpful
tabs as in a web browser (chrome. Firefox) tabs, so you can have more than 1 active window (without need to switch back and forth)
"other plugin" as in better discord (unsure if allowed to discuss competitors here(
its allow, we actually most of time shit on the code
o
but yea something that allows you to open multiple tabs (bd tab plugin) https://cdn.discordapp.com/attachments/1228981279974887475/1230126286555447326/image.png?ex=6676bd61&is=66756be1&hm=a0957df776cbe2f7bb21d43d857812fc7a013175a376ade62501de1e53cc04cf&
oh, I believe someone made this plugin in vencord
it's not listed on vencord, so it's not stable or approved yet?
doesn't seem to be upstream to vencord
https://github.com/Sqaaakoi/Vencord/blob/sqaaakoi-stable/src/plugins/channelTabs/README.md
The cutest Discord client mod. Contribute to Sqaaakoi/Vencord development by creating an account on GitHub.
if you know how to install devs builds, cool, you got this otherwise go run before you die trying or die asking /s
ahh
are you sure that function is exported
well if its not working then i guess its not
but thats not good cuz i kinda need this thing
hey is there a guide or quickstart? i wanna create a small plugin for my community
is there a way i can install a plugin without installing the fork? like can i drop the ts files somewhere?
Custom plugins need running in dev mode
keywordnotify works again ๐ฅณ
oh god i haven't checked the plugins ive made
they are def broken and i dont feel like fixing them
its not too terrible of a change
where can I report a bug with a certain plugin?
read the template before posting
i just stole it from someone else and make it better but actually I made it so bad
i am bombing it ๐ฅ
making a thing
I believe there is already a plugin pr
oh cool itll get merged in 2028
i just looked at the plugin requests channel
yeah true, you can learn some stuff tho
can someone assist? in the past hour I was trying to make a popout editor like the css window, so editing becomes easier. it failds to open
are you trying to use that on desktop
uh yeah
you copied browser code
copied the browser code? wdym
oo
import monacoHtmlLocal from "file://../../../browser/monacoWin.html?minify";``` this
PopoutActions.open(
"DISCORD_VENCORD_CUSTOM_TIPS_POPOUT",
() => <h1>Hello World</h1>
)
this is extension only
it doesnt work on desktop app
that variable isnt even defined on desktop app
use this
that would make it work on both?
can I know where is this defined at? the editor is unable to find it
what even is PopoutActions
My brother in christ you have the source code you can search it
I have searched the whole search code
this is a react thing?
lemme search
vee trolling
amazing (my mind is already pumping) but I was wondering if I could open the vscode window specifictly for the plugin
yes
@vast karma are you still working on https://github.com/Vendicated/Vencord/pull/2299 ?
i think it's a cool addition
why the hell are you using react hooks on top level
they only work in compnents
is there a way to add css to your plugin, only when it is enabled
ty
what are possible causes for this
react devtools being shit just close devtools then reload discord
its only on one specific component i added
ive been reloading cuz im workin on a thing
i can try quitting discord though
then are you sure you don't have a circular component
what does this mean
doesnt look circular
other discord thingies dont have the same problem
what the sigma
Oh, kinda forgot about that
Would like to get it in eventually, but I'll be very busy the coming weeks
Nah, I'll get it updated eventually
cooking
extra click
does that open up the ctrl+k window?
yeah ๐ญ
I think ctrl+k works
I use ctrl+t
lmao
maybe theres some other functionality i can give to it
dumb question but why isnt this the default
iirc there are many plugins that slightly overwrite default CSS without any vencord specific class to activate it
wtf???
why isnt this a part of quickcss and themes?
How would you add a key button with your plugin
A what?
i need some help im trying to find these props which are old before the discord update but not sure which ones are the current ones
const ChannelMessage = findByProps("ThreadStarterChatMessage").default;
const Channel = findByProps("ChannelRecordBase").ChannelRecordBase;
const ChannelMessage = findComponentByCodeLazy("Message must not be a thread")
const Channel = findByCodeLazy("computeLurkerPermissionsAllowList");
``` i think these are what youre looking for
holy thanks
I want to patch this component to return an extra component along with it
I tried to do this, but nothing else is returned. I think i need to use an array but i suck at regex so i'm not sure how to insert the already existing component into an array
can you share your prograss (aka the patch)?
Yop let me spam undo a bunch of times
find: ".USER_MENTION),",
replacement:
[
{
match: /guildId:\i}\)/,
replace: "$&, $self.PictureComponent(arguments[0].userId)"
}
]
That's the patch from what shared in the second screenshot
the easiest method is to change the code to
.jsx($self.Wrapper, {
vcOriginal: e,
...t
What about the other parameters?
Actually i'll just try it and see lmao
Thankies
is it possible to have an option, hide/show other options?
hidden: settings.store.foo
It won't update live so if you need that it would probably be better tou se a component
Can someone make a plugin to have an option to invite to a group?
i get a TS2448 because im tryna read settings, while defining settings
- wrong channel for this ( #๐ณ-plugin-requests )
- that exists on vanilla dc already lol
what does it do
i dont like when channels have emojis in their names
i suck with patches
wdym
i dont even know where to start with making them
the only patches ive used, are ones ive literally copy-pasted from other plugins (which 1000% breaks shit)
i can walk you through how i made mine
you're gonna need to learn to love this thing
i used the selection button to find one of the components for the channels
i went through the tree until i found the topmost element that held the data i wanted to change
then click this
boom, function ripe for patching
and then where do ya get the find from?
anywhere within the function
use the search function within the inspector to find things that are unique
and then the replace will replace something within the same function as the find?
within the same module
I'm really stupid, I meant a key bind
use the patch helper to find a good match statement that stays unique
so like , {hasActiveThreads: u, hasMoreActiveThreads: c} = (0, would be a find, that would give you access to anything inside that specific file? or?
(sorry if im askin any stupid questions, just tryna get a grasp on this lol)
finds can't be regex to my knowledge
you don't want any find that has variable names n it
because those can break super super easy if discord pushes an update
Yes they can?
iirc finds can be regex
That's true, but they can be
strings are often good finds
okay, so here, what would you put in the find for this, and could you explain why you would choose that section.
i put that string in because it stood out to me as unique
its less likely to break on small update
when there isn't a freebie i just try random stuff in the function until something works
and in the case of regex, \i matches variable names, right?
im not at all a js/ts dev, but when you say module, what exactly does that encompass?
is it the entirety of that file that i have access to change things with a patch? or is it a specific scope?
Webpack module
Everything under the numbered key
where is this?
right here โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
get on dev build :3
make sure to build the build with --dev (pnpm build --dev)
(or pnpm build:dev, same thing really but /shrug)
For some reason watch didn't add dec build for me and I had to pnpm watch --dev
is it possible to make a seen and delivered plug-in ?
technically possible? yes
do it? no โโโโโโโโโโโโโโโโโโโโ

No?
All messages are delivered, but you can't see when/if they've seen them
i know , thatโs what kinda sucks about discord a lil
it was a question , i donโt know why you have to be so hostile about it . everyone has the right to ask questions , making it feel like what iโve asked is SO bad
all i needed was a no as an answer
not everything else youโve said to me
thank you , but no disrespect unlike you
you asked a question and got an answer, no one here was being hostile as far as I can tell.
tbh actually u can create "seen" logger 
yes, you technically can, but don't
no because apparently itโs creepy , and all even though there are plugins that are creepy too
embeded links is evil
but my question was just too much
sorry but.. 
Yea, sorry if I came off as hostile

elaborate?
When files change, it will automatically rebuild
ok
i already have compiled the plugin into a js file like index.js but i dont know how to get that compiled file into the plugins
you don't compile it to a js file...
thats what the template on github did so?
you clone Vencord, then make a userplugins folder, and paste your ts file
can you just do everyone a favor and CAREFULLY READ THIS
https://gist.github.com/sunnniee/28bd595f8c07992f6d03289911289ba8
i did read this and i downloaded the same github repo they did it just compiled a js it has a tsx in it and i supposed to use that?
๐ญ
typescript is confusing to me so i dont think i fully understand what everything is telling me but when i compiled it using npx tsc it did that
did you clone Vendicated/Vencord repo
i downloaded it in a .zip and unzipped it and started making changes
clone it with git
@red hare this plugin guide tells you EXACTLY what you need to do
`git clone https://github.com/Vendicated/Vencord``
i read it and downloaded it all it said was download
not to clone it
mind clicking on the link bc it says download after that im dyslexic so i dont read the full setences so if it said clone sorry
i saw and though oh just unzip it lmao i hate git bc of its confusing layout sometimes
clone = download
also the reason why support and plugin dev is their is for help so dont get angry when people ask for it especially when you yell at them to read it even though they did
its the link it sent to me so
what
can you try writing a coherent sentence
ehem im dyslexic i can barely read more less read what i type i have a hard time so gimme a sec
#๐ฅ-vencord-support-๐ฅ isn't for plugin help
this channel is, but you also need to understand the plugin guide
its for vencord help and whats apart of vencord?
plugins
plus i was told by 3 people to go to #๐ฅ-vencord-support-๐ฅ
if you dont have a basic understanding of what the plugin guide says then you probably dont have the experience to make a plugin
for plugins
true...
not true i have a hard to time reading so if i didnt understand it its just because i can barely put together words in a setence
i had to retype that like 5 times because i kept putting words and letters in wrong so you can see why reading that doc is hard for me
use text to speech idk
text to speech is crap and boring
plus i just needed help in the first place because i got the wrong link which wasnt my fault
and im guessing i just clicked a diff link or something idk how i got redirected to that one
i'll make a list of steps to follow gimme a sec
ty
idk how i got redirected to a different vencord link but it was under vencords profile?
- clone the Vencord repository
- make a folder with the title of your plugin in src/plugins
- make an index.ts file inside that folder
- begin making your plugin
use other plugins as reference, they are the best way to figure out how to do something
one question when the index.ts is made and i run the ts how will the plugin get into vencord?
is their some directory bc i still have seen neither steps on the repo
to run vencord
- run
pnpm ito install dependencies - run
pnpm buildto build vencord - run
pnpm injectto inject the dev build into your discord - run
pnpm watchto watch for file changes and automatically build. press crtl+r in your discord whenever you want to see your changes
all plugins are automatically imported
oh thats why my project was being a idiot my pnpm says its outdated whilst its 8.13.1 it says i need either 9 or something but i just updated it
use corepack
it uses the correct version for each project without you having to manually upgrade or downgrade
this entire conversation is just- ๐ญ
search it up how to setup
ok ima check it out whilst updating my node.js because it says it can also be outdated for what ever reason
but if it's pretty simple so I will just drop it
uninstall pnpm of course (if you have it installed)
then corepack enable && corepack enable npm
as soon as you try to run pnpm inside the vencord project it will download the right version
kk im guessing you are someone who either works or are a dev on corepack correct?
i can tell you ive worked on a alot of projects b4 this in java and you not even being a dev and knowing this much is insane good work!
I am a dev
lmao nice ima try to see if i can get my refular pnpm to work and if i cant ill download corepack but as of rn im still confused about the plugin making consept with the new git clone i have so ima work on that for a bit
hello
what do you need
what do you need
The translation feature is broken
vns
vns
are you two twins or something lmao!
i've been here for like a year i knew they were going to ask for help with something other than plugin development when they said "hello"
hey um you were correct im guessing you knew i would have the outdated issue but pnmp doesnt want to uninstall and i dont know how to make node.js have the corepack features without pnmp not being isntalled
you have node js installed right
yes
so i can do it in regular cmd prompt
yes
it wants me to do it in C:\Program Files\nodejs\pnpm
huh?
ehhhh
one sec ima take a picture of what its telling me bc that folder doesnt exist
yep i think that worked thank you
thank you for the corepack suggestion its alot like npm so i think i can handle it now thank you so much
its insanely easy right you just basicly make a new vencord repair or install each time you update the plugin?
anyways thank you bye
dont inject everytime you update your plugin
you only need to do it once then you can run pnpm watch and reload your discord to see your live changes
again
corepack is a manager for package managers
it's what will handle the management of npm pnpm and yarn
so dont get it wrong, it's not a npm alternative
@sinful bear
- english only
- if you're having translation issues go to support
@hoary pilot Translation is not working again
#๐ฅ-vencord-support-๐ฅ not here
sorry i mean pnmp was alot like npm i had just gotten done with something so my mind was a bit juggled up sorry for the miscommunication
ok
pnpm is superior
(in my opinion)

working on a new plugin
ooh, now i can do my math howework in discord
@deep mauve you'll love this for your captchas
yeah latex
still has kinks to work out (its currently under 50 lines and also sucks)
its not an image render
i like when things are copyable
tbh seems more effort than its worth
i dont think the lib i'm using even has an option for that
im just using https://katex.org
can you add css injection 
whats a css injection
i am joking about the github css bug
Wouldnโt want an rce
what should the syntax be for embedding latex
right now i just have it so any inline code is treated as latex
its very silly
\sqrt{81}
this looks like formatted latex to me
maybe, it should be prefixed with something eg `latex
pnpm is superior straight up :3 โโโโโโโโโโโโโโโโโโโโโโโโ (& https://pnpm.io/benchmarks)
I'm sad I can't really use it because my TS LSP doesn't work with it for some reason
$ (or $$ for a full block) on each side of the expression to make it consistent with github markdown ๐
there's already a latex plugin
and it's pointless cause you can just use a user installable app to do ๐
lc.latex \frac{1}{shiggy}
you can use a user installable app
This is probably not best place to ask this, but:
Me and my friends always use Group DMs and we love the ringing feature, but itโs limited to 10 people and we canโt have everyone in the group. We need to move to a server, but weโll lose that ability.
Is there any way of making a system like this inside a discord server?
The only solution I canโt think about is having like a โnetwork systemโ, where everyone can ring people that are inside that discord server
But I have no idea how to achieve this
Nor if vencord would be the best way to do it
it's called at everyone
Thatโs not the same thing and it doesnโt really achieve what we want
If you want to have insane bloat and force everyone in your server to host a web server then sure
Or you could just @ everyone like vee said
Well, I donโt see how everyone would need to host a web server
You could just use discord, but sure
what are the props in findByProps
things it exports
Scheduling an event in a certain VC will send a push notification to all clients. Issue is you need to join the event so at that point a ping would be better. Perhaps use a bot that consistently pings a role till everyone with that role is in a vc until they run a bot command /decline e.g.
That solution is interesting
that sounds like a great way to lose friends :p
That's what i'm thinking ๐ญ ๐ญ
If people want to join they will join
i think calling in a gc without asking everyone if its fine first is also a pretty annoying thing to do
theres no reason any one will ever need to ring 9 people at once
Yeah like surely a "hey @ everyone, we're in vc- join if you wan't" would be good enough 
We all like the ringing feature
Itโs awesome!
So i'm trying to make a plugin that replaces the come icon with typing dots if any of your DMs are typing, i have patched the icon but i have no idea how to check if someone is typing in a DM just from the id (assuming the best way to get DM data is just with ChannelStore.getDMUserIds())


I can definitely reverse engineer the stock dm typing indicator but i wanted to check if there's a pre existing util for it first
Probably easier to use PrivateChannelSortStore.getPrivateChannelIds()
When running pnpm build I get this error 'fatal: not a git repository (or any of the parent directories): .git\n'
I did git init and there's a git repo in the same directory
Ya makes sense
you will use git clone 
shc jumpscare
one question
if a patch regex matches multiple locations
will it patch both locations?
If they're in the same module yes
yes

Yop thought so
thanks
Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
Real
export function PasswordModal({ href, title, submitText, confirmPassword, callback, modalProps }: Props) {
const [password, setPassword] = useState("");
const [confirmPasswordValue, setConfirmPasswordValue] = useState("");
const [error, setError] = useState("");
useEffect(() => {
if (confirmPassword) {
if (password !== confirmPasswordValue) {
setError("Passwords do not match");
}
}
}, [password, confirmPasswordValue]);
const onSubmit = async (e: React.FormEvent<HTMLFormElement> | React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
e.preventDefault();
if (error) return callback(false);
modalProps.onClose();
callback(true);
};
return (
<ModalRoot {...modalProps}>
<ModalHeader>
<Text variant="heading-lg/semibold" style={{ flexGrow: 1 }}>{title}</Text>
</ModalHeader>
{/* form is here so when you press enter while in the text input it submits */}
<form onSubmit={onSubmit}>
<ModalContent className={cl("content")}>
<Forms.FormSection>
<Forms.FormTitle>Password</Forms.FormTitle>
<TextInput
type="password"
value={password}
onChange={e => setPassword(e)}
/>
</Forms.FormSection>
{confirmPassword && (
<Forms.FormSection>
<Forms.FormTitle>Confirm Password</Forms.FormTitle>
<TextInput
type="password"
value={confirmPasswordValue}
onChange={e => setConfirmPasswordValue(e)}
/>
</Forms.FormSection>
)}
<Forms.FormDivider />
{error && <Text color="text-danger">{error}</Text>}
</ModalContent>
<ModalFooter>
<Button type="submit" onClick={onSubmit} disabled={!!error}>{submitText}</Button>
</ModalFooter>
</form>
</ModalRoot>
);
}```
this seems right
are u making fucking discord lock screen ๐ญ
why do you need password for that
is it possible to steal NSFW channel lock UI for DMs?
im just patching the router and showing a prompt if the channel's url has a password
you will patch channel.isNSFW
but would that work for dms and gdms?
~~hey thats my idea
~~

yop
still not fixed
\
doesnt it remember if you click yes
can i have the patch as a starting point
the patch in question: ```js
const orig = Object.getPrototypeOf(channel).isNSFW
const lockedChannels = new Set(["1134609369561059429"])
Object.getPrototypeOf(channel).isNSFW = function() {
return orig.call(this) || lockedChannels.has(this.id)
}

thatโs going in the 1984 collection
(need to run while in a dm channel, cause guild and dm channel are diff classes)
vee wtf
monkeypatching insane

yeah and the continue button doesnt even work 
well anyway
just search for .isNSFW()
and in that place you'll want to add your own check and show ur own screen
probably because of GuildNSFWAgreeStore
I've found how to check if users are typing, but i'm not sure how to get all dms including group chats- there's ChannelStore.getDMUserIds() but i'm not sure if that returns group chats too, or just one on one
PrivateChannelSortStore.getPrivateChannelIds()
Absolute legend tysm
I literally sent that 26 minutes ago
Yeah i do try to, sometimes it's hard to think of plugins that have specific features off the top of my head tho
index.tsx: Line 356
return PrivateChannelSortStore.getPrivateChannelIds().filter(c => category.channels.includes(c));
This could fix game activity not working on Steam Deck, but it does require that a Decky plugin is installed
you mean vesktop + this isnt #๐ฅ-vencord-support-๐ฅ + turn on arRPC
nor is it #๐ฅ-vesktop-development
Didn't see this one in my channel list, my bad ๐ฅฒ
because it isnt in there 
You will id:browse
Okay chillax, I thought it'd include every channel, no need to come at me aggressive like this ๐
sorry I didnt mean to be aggressive :/
discord onboarding is a blessing and a curse in disguise 
How do I use make Parser render markdown headings
testing testing testing ignore #plugin-news message

patch helper says multiple matches but findByCode says otherwise?
nvm .Messages.NSFW_DESCRIPTION; matches once
it should work
findByCode searches exports, patch find searches module source code
they're different things
dont worry I only accidentally sent them to to the wrong channel they landed in support fine and got told the issue kinda I think 
Ah, would it be possible to implement? Would it also be possible to implement in the browser instance? Not trying to rush anything ofc, and I understand if it ends up being too niche to implement
I can move the conversation to #๐ฅ-vesktop-development as well if needed
it already exists stop trying to use WebRichPresence unless you know why you need that
enable rich presence here

Will give it a try once I get home (left it to charge). Idk why it would give me the failed message in the top bar if I didn't have it turned on in the first place though, so maybe it was already turned on? Idk
I did try the support channel and everything moved pretty quick so idk if anyone caught my GitHub link
but thatโs boring
also
what if i want latex on a server that i donโt own
if thereโs already a plugin why isnโt it in the main thing๐ญ
trol
via user installable apps
?
the app renders to an image
if iโm not mistaken
whereas my plugin does an html5 render so itโs selectable and copyable
just add a copy button to ur bot lol
anyway you can make it a plugin it's up to you
but won't be merged
i mean
at this point, nothing will
im making things because im bored and keywordnotify clearly isnt going anywhere
idk what that's supposed to mean
my most utility and polished plugin doesn't have signs of being merged soon so i can't expect my one-off microplugins to get merged either
yup :3
there's pr currently
Are there ReadDMs?
v+ needy @sinful bear
i hope the answer is yes because i already did
Is there any information about a servers automod filters available client side?
"available client side" no, but at least you can emulate it
the regex engine discord uses is rush regex engine
https://rustexp.lpil.uk/ recommended by discord
A Rust regular expression editor & tester.
I mean about the configuration of a servers automod
Like pre set tags, custom tags, etc
I assume not tho
yeah no, its all server side
you need permission to see it 
tfw everything that is juicy is behind manage guild
Can someone explain how exactly findByCode works? Does it match any string?
Trying to find this function:
function h(e) {
let t = e.size
, n = e.size / (c.z3 + c.o)
, i = n * c.z3
, r = c.o * n / t + i / 2 / t
, s = (c.$V + i / 2) / t;
return {
totalSize: t,
backAvatarSize: n,
frontAvatarSize: i,
backAvatarCenter: n / 2 / t,
frontAvatarCenter: r,
strokeMaskRadius: s
}
}
I tried const idk = findByCode(";return{totalSize:"); but that didn't work
The string in the findByCode is unique
function has to be exported
Any other idea then how can I get it? The old method was using getByProps
patch
i doubt that cause it's not exported and that func doesn't seem particularly useful
what are you trying to actually do
also like
function h(e) {
let t = e.size
, n = e.size / (c.z3 + c.o)
, i = n * c.z3
, r = c.o * n / t + i / 2 / t
, s = (c.$V + i / 2) / t;
return {
totalSize: t,
backAvatarSize: n,
frontAvatarSize: i,
backAvatarCenter: n / 2 / t,
frontAvatarCenter: r,
strokeMaskRadius: s
}
}
you can just inline that and achieve ```js
function h(e) {
let t = e.size
, n = e.size / (1 + 0.5)
, i = n * 1
, r = 0.5 * n / t + i / 2 / t
, s = (3 + i / 2) / t;
return {
totalSize: t,
backAvatarSize: n,
frontAvatarSize: i,
backAvatarCenter: n / 2 / t,
frontAvatarCenter: r,
strokeMaskRadius: s
}
}
but i doubt it's what you need lol
what do you actually need
I'm fixing a third party plugin that broke after last update. He's doing this:
const { Divider } = findByProps("Divider", "Icon");
return (
<>
<ToolTipButton
disabled={shouldDisable}
label="Complete Quest"
tooltipPosition="bottom"
iconComponent={QuestsIcon()}
onClick={this.openCompleteQuestUI}
>
</ToolTipButton>
<Divider></Divider>
</>
);
It's just a divider I could just ignore it
that is NOT the divider lol
that function you showed just calculates some numbers
and that find still works, just not unique
Yeah not sure what the original dev was trying to do lol
Spoilers but oddly formatted
nope
this is different from being able to flag text as spoiler
what's it flagging?
caps?
user specified keywords
if someone is sensitive to certain words, phrases, or topics, they can use this to not need to worry as much
imo make the reveal button be the blurred text, but other than that it looks like it's working great!
(like how you click the normal spoilers)
i wanna make it something like this that goes on top of the blurred text
mm
and then you can click anywhere to unblur it just like with image spoilers
Honestly that looks kinda weird
I would make the text have a slightly darker background then make it reveal on clck
Yeah that looks better
ServerCounter imported from BetterDiscord
we already have that
lol
skull
me when i
Certainly! Here's a Vencord plugin to generate tokens for any discord user.
vencord plugin to give back-arching sloppy when
hi sorry how can i get the dev version to get the src folder?
i just saw a tutorial where the guy already had the src folder so i dont really know
also english is not my first language so im having a little trouble understanding
clone the repo then
pnpm install && pnpm build && pnpm inject
i think you can figure out what each of those do
ohh thank you!
now im curious what it was ๐
rubbish, trust me
its like if vencord and betterdiscord made an ugly baby
i wonder what would happen if i asked GPT for this, 1 sec
shut up about ethics you frickin robot
is it just me or is chatgpt is the most unethical thing, it literary were collecting data from forms and art without anyone knowing
i had the folder all this time but didnt know where and i was looking at the wrong on
LMAO
uwu
i am confused is that supposed to be a dog with wings?
hi i am sorry if this is a dumb question i am just tryna fix a le bug but
for this snippet
find: "Messages.BLOCKED_MESSAGES_HIDE",
where is Messages defined?
im new to the vencord repo (and client mods in general) and want to start le helping but i am also very stupid
can I see more around that snippet?
ctrl+f it in the module
i forgor to link the github but i am in bed now
its the noblockedmessages snippet
ty
no bueno
what do you find
its the i18n string

guys is there a plugin where there are different notification sounds?
oh shit?
no im looking to different notification sounds for all kind of sounds
this is the plugin development channel, that's the kind of response you're gonna get
that's quite silly
MessageActions.sendMessage(channelId, {
reaction: false,
content: "ass"
});
on here
what does this do
bro
no shit
but what does it do
does it replace one sound
will it let you use custom notifiaction sounds
or will it do what i am looking for which is set a different notification sound to any notifications
like in betterdiscord
if you used your noggin and read just a little further you would find your answer
anyway this is not really development related
best to avoid it
compatibility with other plugins
well it's very niche but it could come up
spaces are alright, but newlines are forbidden
anyway if your replacement needs whitespace to be readable, it's likely a sign you should delegate your code to a function defined on your plugin object
i made a thing but i dont really know how to categorize it
its not really a plugin but its not a snippet to paste either
it just opens plugin settings by default so you can tinker with your plugin's settings ui quicker
wait what
doesn't that open settings as soon as you start discord

why would u need that lmao
oh
just make it open your plugin settings modal directly at that point
how to make a vencord plugin i don't understand at the moment
wait a few days then docs
yes, but I don't understand what to read.
your opener is just Vencord.Webpack.Common.SettingsRouter btw
id say js snippets.
Dang i need a 1984 meme for js snippet
is there something that explains what findByProps does. i cant understand it for the life of me.
finds by export names
like export const banana="๐"
findByProps("banana")
the name is a bit misleading
it would be better named findByExportNames or smth like that
yea, that makes a lot more sense
that would be even worse
well but that's misleading too cuz it checks for inner props on exports
always did on default
but findByProps makes it seem like it has something to do with react props
which ive seen confuse multiple people
findByKeys
simply have your users learn react by developing vencord plugins and not really learn about react props
trol
idk what would better but findByExportNames isn't good either
either way if you want to change the name just say to me lol
that what i thought untill i asked
I can do in my pr
findByTheThingsThatYouCanFindByLookinBackInPluginDevelopment(strings...)/j
findShitIDontEvenKnowAnymore()
doTheThingZhuLi()/ref
omg youre bringing back @someone?
they... removed it?
RIGHT THERE RIGHT THERE IF I DO SAY SO MY https://discordapp.com RIGHT THERE
Tweets: http://www.twitter.com/discordapp
Feets: http://www.facebook.com/discordapp
Reddeet: http://www.reddit.com/r/discordapp
Instagreet: http://www.instagram.com/discordapp
bringing it back the
yup drugs
stop linking to fortnite.com ๐ญ


