#🧩-plugin-development
1 messages · Page 35 of 1
I'm making a feature for the "Copy Current Colors" feature in the creator that will allow you to copy colors from different known themes, and select what colors you want
How hard is it actually making a discord client mod?
depends how much you know.
Well I know JavaScript if that helps
and a few other languages but i'm not mentioning it here
never used webpack
then, you will prob have a hard time
stdlib
shoutout to rust where you use std
I love std
i write as stdlib, speak as standard lib
good lord copilot
so, there is a feature I wanted to add to my plugin, but didn't know how stable it would be, and that is on-demand theme generation, basically ignoring the imports/css of colorways and instead using the provided colors to immediately generate a colorway, using the latest template
bro has witnessed horrors
So did the original creators decompile discord?
nop
it's not compiled
js is not compiled language you can look at their minified code from dev tools
it's just Javascript you can read everything
did Discord use TypeScript?
Its an electron app though right?
maybe more like transpiling?
yes
if you look at electron apps it's not hard to find the resources/app.asar
Alright
theres still types in some strings 
ah
- it's just loading a website lol
Where would I find the 'src/userplugins/' directory on my machine (Windows 10)
Should I make it in 'Roaming/Vencord'
I dont understand
this has everything you need https://github.com/Vendicated/Vencord/tree/main/docs
why are you trying to create the userplugins folder
if you can't follow those instructions then how will u be able to make plugins
i got jumpscared by the 4k stars but its just githubs rounding
So is it saying to clone the repo?
it looks like we use the repo ourselves and compile instead of using vencord official installer
That seems to make sense
It's annoying though
I might move to bettercord because there is a plugin that I want that I was going to put in vencord, but...
then do it
Why is it called vencord?
named after me. it was a very old running gag that eventually got turned into reality
Can you add a plugin that prompts for a password to open discord please?
bruh
?
No, for the actual application, every time you go to view discord it prompts...
why though
I dont think you would need vencord to do that
Because I share a computer with someone sometimes, and though this may not be very secure, it would stop the average person
just lock ur pc bro 😭
ik
or close discord
nvm
log out of discord even
exactly
if you make an empty alt and add it with account switcher
and I dont want to log out
and use css to get rid of the acct switcher
basically no one knows the account switcher exists lmao
🔥
maybe
unless the person knows how to switch back thats good enough - and someone who knows how to switch account probably also knows how to just uninstall vencord
anyone here have experience getting a reference to the MediaStream object for vc connections on desktop? I was looking at the RNNoise plugin but it appears to only be for vencord web
I set breakpoints on the constructors on the web version of vanilla discord and that worked but on desktop discord, the breakpoints don't trigger. Perhaps I'm missing something
ah, when you say they have their own shit, is it native code?
yes
node native addon
i dont have any experience trying to mod it
it might not be possible
ah damn that's what I feared. Well, ty for the help
it might be possible so i wouldnt give up just yet
I'm too lazy to learn to use ghidra 😭
from web
? wdym
hey is there a plugin that was made so i can mass change server profiles. if this doesnt exist i can see if its possible lol - basically i just want to change my nickname in every server im in without having to change my actual username
@dull magnet If I already installed vencord should I uninstall when rebuilding it to develop a plugin?
against #rules 9
this blud fr ong ☠️
I could try disassembling it, in case you'd want to mod it we could have a proxy so/dll that loads the original, modifies it, and then does whatever
How do plugins find where they belong on the screen?
For example this game icon comes from the gameActivityPlugin
code
how do you find a setting in your status to modify, for example i want to do something like the game activity plugin but have it toggle if spotify is showing in your status
you can look at the source code
Yeah I dont understand the source code is my problem
it's this https://github.com/Vendicated/Vencord/blob/main/src/plugins/gameActivityToggle/index.tsx#L72-L80
Ah thanks
the renderNameZone part
that patch basically produces this
ours is the first, the rest is default discord stuff
that's to select the right file to patch
only the file that renders those buttons has that exact code in it
Where would the messages file be in the repo?
nono, that's discord stuff
Oh ok
Also do you build your own version of vencord when developing your own plugins?
does anyone know how to find the name of a setting
Yes
Thanks
One more question, Do you have to uninstall your current version of vencord when building for it to work
No
how do you find the name of a setting to modify, for example gameActivityToggle uses showCurrentGame, how would i find something like that https://github.com/Vendicated/Vencord/blob/544edce9f9da6263a20a293e6b4d0a60e5657253/src/plugins/gameActivityToggle/index.tsx#L28C65-L28C80
Did you look at line 19 ```ts
import { getSettingStoreLazy } from "@api/SettingsStore";
yeah
ive been looking at settingsstore for a while
cant seem to find anything that could help me find the name of it directly
im trying to make a plugin that toggles spotify showing up as your status
Could you explain a bit more
okay, so line 28 uses getSettingStoreLazy to find the module that controls whether the game you are playing is shown in your status
but they use showCurrentGame as the name of the setting
i dont know the name of the setting i want
how do i find that?
So from my findings there seems to be global settings and plugin settings
I would assume their stored as cookies or something but I dont know where
Do you understand patching?
yeah
Im rather confused because are you looking at the html name or the name in the react component view
I dont know, im trying to find the right name
Why are you concerned with the settingStore then?
im not really
or is there a way i could just look at a list of all the settings inside the status group
yeah
no
For setting breakpoints?
click the {} on the bottom left please
Will that deminify it?
So Im working on the patching right now
How should I start searching for the name of thing I want to find
Should I use its html stuff or its react stuff
what is it that you want
what with it
enable react devtools and inspect it
but either way, search for message-context and you should find it prob
I got the message- part but not the context
How did you find that
also because I happen to have already worked with context menus how I know what to look for
@cedar olive can I dm you about smth
THANK YOU SO MUCH! It paused on the breakpoint so it seems Im moving in the right direction
is it this you want
yeah
i thought you wouldknow since you made the game activity plugin right
when you search for it, the function under is what renders the menu
k, hold on I will find it for you real quick
tysm
The typescript is imposssible to read though
Vencord.Webpack.findByProps("setShowActivity").setShowActivity
thank youuuu
that's the function to toggle
nice
you need to call it with the spotify type
an id, and whether it's enabled I think
let me check
ah
Vencord.Webpack.findByProps("setShowActivity").setShowActivity("spotify", accountId, false or true)
nice thank you!
Am I supposed to read the typescript in this form
?
can you show what you're talking about
one more question, is there a way to check wheter its true or false
sorry im pretty new to all of this
oh
yes
that's javascript, not typescript. but yes you have to read and understand it in this form
Are the single character names a result of minification?
we still have it pretty good cause discords code is very readable
it could be way way worse
100%
their old android java code was even more readable
this one
basically no minification
and everything statically typed
aliucord was peak modding, it doesn't get better
Even the RN mobile app's code is reasonably reasonable after decompiling the bytecode
More readable than desktop in places
aliucord was basically source code
imagine desktop codebase but all variables have static types and function names are all not minified, and everything is exported without webpack search
also full typings for their entire codebase
a lot more function/export names are left unminified by metro which is why I think hermes decompilation can win in some aspects
Is there a way to edit these js files to see their changes in real time
there's probably some way to do that but it wouldnt be practical
I dont know how do that to be honest
I read the patching guide but couldnt take action
did you find anything, sorry if im seeming rude or anything lol
What do you know how to do because that could give me some more info to work with
oh sorry I did not search
I mean all the rest besides actually making the keybinds
I inspected the button that changes that setting
ohh okay
with react dev tools
found the onChange listener because it's a switch
and inside it that function was called lol
yeah thats a good point, i just didnt really know how to search it
now i do tho
What I find reliable is using react dev tools to find the component that is related to/does what i'm looking for, find the component in the js via the components (minified) name and a lil bit of guesswork (ex looking for avatar decoration stuff you might see a prop like avatarDecoration)
then see what the component does
yes that's one of the better ways
ill try that
another decent way is just searching for keywords
ctrl shift f in sources tab and search for keywords
that too
am i stupid or is there a better way to do this
but for commonly mentioned stuff it can be annoying
another good way is having another plugin do something similar and just looking at that plugin :)
i have tried that actually
i just couldnt find the name of what i was looking for
return x
holy shit
i am stupid
im sick rn
got hand foot and mouth disease
i need sleep
Damn hope you get better soon
whats the point of this command ```
Vencord.Webpack.wreq.m[447887].toString()
@dull magnet
anyone know how i could get the active now bar to always appear in css
i wanna shrink my discord and it disappears when it gets small :/
.nowPlayingColumn-1eCBCN {
display: block;
}
👍
what has that got to do with coding
How to code a movie
you give me your credit card information
- 16 numbers on front
- expiry date + year
- 3 cute numbers on back
fun MutableState<Boolean>.inverse(): MutableState<Boolean> {
val primary = this
return object : MutableState<Boolean> {
override var value: Boolean
get() = component1()
set(value) {
component2().invoke(value)
}
override fun component1(): Boolean {
return !primary.value
}
override fun component2(): (Boolean) -> Unit {
return { value ->
primary.component2()(!value)
}
}
}
}
i am not sure if this will work
actaulyl wait why did i do component2 like that
one moment
can aria-pressed only be changed with JS?
yes, why?
shit
prevent this piece of shit menu from reappearing every time
it keeps toggling back to true after a restart/shutdown
well aria pressed does nothing
ig the other way is try to hide it with CSS
hide with css or make a userscript
yes. properties starting with aria- are purely for accessibility and do nothing
that
actually makes sense
now i understand why aria-label exists
hilo guys
china wants to know ur opinion
managed to find a JS userscript for automatically removing it if detected opened
interesting
youtube html is fucked
i wish you good luck
they've fucking frankensteined their own browser at this point
yea no im done
^
shit looks clunky as hell with a small res monitor
I have started to dislike non-m3/material you UIs ever since m3 released
but it does look interesting nonetheless
actually, that does look like dynamic theming
but the iconography is, questionable
as well as how cluttered they make the navbar look
7 items holy
m3 docs
oh its kind of a mix
has some m3 parts but not fully m3
up to unlimited lmao
but defaulted to 5 ig
personally i prefer usability/ux over guidelines
I actually like it so far. There's a lot of settings, though
feels situational lol
if discord was m3 i wouldnt like it probably, but the things that are already m3 are fine
just like tabs v2 too used to this
but tabs v2 is genuinely just horrid
nah it really aint that bad
compared to other google owned websites at least
K thanks
magic
ig you can add it as a workflow
sql is evil
sql so slowwwwwwwwwwwwwwww
nop sql fast
@dull magnet @dull magnet then fix my sqlite3 database that is 12 gigabytes and make it not take 2 seconds every query
have tried
doesnt help
each row stores like 512kib blob + metadata
and i added like 25k rows for testing
inserts are faster than queries and thats when you know youre fucked
why
cdn backing storage
🔥
"cdn" debatable
mor like file storage
which im overengineering
✅ is cd (it delivers content)
✅ is dn (is ballware
TRUE
deez nuts?
deliver dn
Read the description
is it only for audio or video too ?
read the description
least complicated ts error

fuck
it doesnt wanna merge because im using non published discriminating union type which should:tm know its an object type but it doesnt accept
pings in case you two might wanna link up to work on audio stuff @visual berry #🧊-off-topic-iceman-only message
(@rustic aspen you can’t talk here rn as the server is on temp semi lockdown b/c dc borked client mods again)
Well currently the whole project is just a open source voice engine reimplementation in C for linux
it uses Jack Audio as the audio engine
but this may change
how the fuck do you put a grave in a markdown inline code
\
does not work
\asd`
this is what shows up
i want `asd
but in a code thing
``asd`
ok
im just stupid
asd
that's called a grave ??
I didn't even know what to name it for so long rather than a backtick
yay, discord broke the entirety of my plugin, all of my themes, all colorways, and all of my snippets
Noooooo
discord seemed normal for a second until I remembered I had abt 4-5 snippets on
yea iirc
Uh
i think?
well im trying to see if it works in vesktop
in vesktop folder yeah
i see dist
the vesktop
ok
ill let you know when i get there
alr I got it to work. thanks for the help
guh
wowzies
??????????????
java 💀
im copying the packet exactly, WHY IS DISCORD KILLING ME
oh my god i was sending identify wrong
L
yooooooooo
stop cooking before you get banned
:3
kotlin is better than java but literally everhthing is better than java
id rather write a program in c
How do I add pronouns to my bots profile ;-;
I've searched how but it's just pronoun commands.
does someone know a good discord embed generator
@dull magnet how could i monkeypatch discord webpack things halp
im making a userscript and i need to like
proxy a function
but its a direct export so its not configurable 😭
Mods, I know a bit of python and JavaScript, if you have a proplem with ven I might be able to help. Thx for updates
no..
everything just to not use the debugger
nono i needed to add a prop for a userscript
a callback to the oauth2 auth button
so it wouldnt redirect and would run my code instead
bc compose desktop is built on top of swing
swing fans when i swing my sword and chop their heads off
im the swing fan
but here’s the swinger
what theme you are using Bro?
gruvbox material
why are u making that 😭

why not
I mean
I wanna learn on how to write proper interpreters and emulators
and the chip8 is a good starting point
now it feels pointless

nah if you're learning then it's not pointless!!
when are u writing a vencord user assembler tho
bachelors thesis on runtime type validation
https://valibot.dev/thesis.pdf
hes in solid server if you wanna talk to him 
why would i
idk
might hop on next now
yippee first 2 instructions fully parsed and assembled
i got so confused bc the image didnt load and was a bit scared
im not normal
what r u cooking
insanity
Hey all, sent here via:
#🏥-vencord-support-🏥 message
Basically looking to make a plugin that lets you easily create Masked Links. Similar how they handle it in Obsidian/VSCode via md Plugins.
Basically the thought being if you highly text, and have a hyperlink in your clipboard, when you paste it auto highlightedText kinda thing.
So I wrote something vaguely how I'd think it'd work...? But can't really debug it as when I open dev tools to see why the plugin failed to load on desktop, it crashes (The whole 2GB electron BS, I know)
But how would I test this in the browser or otherwise?
I saw the response there that noted to try with the new 64bit client; however, this also just crashes too 😐
Context: Write lots of guides for my discord servers, and use masked links alot. Kinda PITA to do manually.
Admittedly, I'm not much of a FE engineer, more backend, so not super great with the ts jazz.
I basically have something like:
hyperlink() {
const selection = document.getSelection();
if (!selection) return;
const clip = (navigator.clipboard.read())[0];
const data = new DataTransfer();
if (selection) {
for (const type of clip.types) {
if (type === "image/png") {
return;
} else if (type === "text/plain") {
const blob = clip.getType(type);
data.setData(type, blob.text(`[${selection}](${clip.text})`));
}
}
}
document.dispatchEvent(
new ClipboardEvent("paste", {
clipboardData: data
})
);
},
start() {
this.document.addEventListener('paste', this.hyperlink);
},
Semi-based on how the webContextMenu plugin does it. But not sure if that's entirely right.
(Same account, forgot password to throwaway 👀 )
Alternatively something like:
handlePaste(event) {
const clipboardData = event.clipboardData || window.clipboardData;
if (!clipboardData) return;
const text = clipboardData.getData('text');
const selectedText = window.getSelection()!.toString();
if (selectedText) {
const hyperlink = `[${selectedText}](${text})`;
document.execCommand('insertText', false, hyperlink);
event.preventDefault();
}
},
textreplace
How would textReplace get the content* of your clipboard though?
If it's just doing regex, the most you could do is something like a snippet like !link to expand into ?
Unless I'm not thinking of it properly?
Basically need to store the highlighted text + clipboard.
TextReplace can't really view either?
Also I think when I was looking, the way textReplace plugin handles it, is on send it was performing a transform vs in the messagebox, right?
yeah textreplace cant help with that
From looking at how most md editors handle it, it's basically like the above. Pretty short and sweet. Get both clipboard + highlighted text context, and on paste reformat it.
Hell, even having a button added to the md popup would be convenient so you could just paste a link in (like github bydefault does it)
looking at the code for the chatbox, there's an badinsertText method (module 663190) which is called every time text is added or pasted in, to modify the text in the chatbox. perhaps you could patch that?
i'll see what i can do
nevermind, insertTextData in 541926 is likely what you care about
it's what's called when you paste in text and handles the replacing
this seems to work
Sorry, had to run and grab some groceries. Will test this! Much appreciated!
Works like a charm! You absolute legend!
Not sure if you want to, but you should submit it as a public plugin; I know quite a few people were asking for it outside of this server which is partly why i decided to try tackling it.
If not, I can open a PR and credit you as you did most of the troubleshooting!
This account is obv a tossaway as you can tell anyway :fingerguns:
asking for a friend: are you allowed to use fs in a public plugin
no and if you need to use fs you're doing something wrong
yea i expected it to be no considering how dangerous it can be, thanks !!
you shouldn't have to use fs at all. for plugin settings there's definePluginSettings, for storing other data there's DataStore, and for uploading files from the user's pc discord has methods for it
it's not quite no
you can use it if you have a really good reason to and make it secure
hm
what for
use a settings value in a patch
why in the world would you need fs for that
IDK i'm not the one who suggested it
$self.settings.store.banana
$self.settings :clueless:
oh.
or make a getter on your plugin instance for it

you can access your own plugin object via $self
so if you need anything in a patch, just put it on your plugin object and you can use it
hehe rust self
nop

i just use whatever emojis i find fitting
i discover new emotes like weekly and use them way too much for a bit then never use them again
except for menhera hopefully
does someone have a quick css file to remove discord's stupid avatar frames?
.avatarDecoration__14b3c,
.avatarDecoration_ae35e3 {
display: none;
}
.avatarDecorationHint__03e0b {
left: 0px;
top: 0px;
}
.avatarDecorationHint__03e0b > foreignObject {
width: 80px;
height: 80px;
}
[mask="url(#svg-mask-avatar-decoration-profile-status-square-80)"] {
mask: url(#svg-mask-avatar-status-round-80);
}
[mask="url(#svg-mask-avatar-decoration-profile-status-mobile-square-80)"] {
mask: url(#svg-mask-avatar-status-mobile-80);
}
I wonder if I could use the new view transition api to make clean discord state transitions
i dont think? api is in chromium 111 and stable is at 108 rn
vesktop


I have made my own client for funsies and its garbage and broken
u loe chromiume 118
so rn I have normal discord
oh does electron builder work with 27? i wasnt sure so i stopped at 26
How can I test out custom plugins?
see docs folder on github
Does someone know where the direct upload module is now?
Can't figure out how to get it so I send an image on click
anyone know how to remove the discord watermark in the top left?
i mostly just need the name of it
wrong channel
which channel
lmao watermark
DON'T ASK WHY I'M BUILDING VENCORD INSTALLER JUST HELP ME TURN OFF THE "warnings being treated as errors" THING
try using different toolchain
or build the cli, it doesn't use cgo
i already built the cli but i'm just doing gui
been struggling with that
but
dang it's working
does Alerts.show() not have an event for when the alert is dismissed (cc @dull magnet)?
i have onCancel, onConfirm, and onConfirmSecondary handlers
but it doesnt fire any of them if you click out of the alert window
ah well thats unfortunate
this should do tho
the npm experience
Any good universal code formatter for VS Code?
Prettier, but it fails the constraint of good imo
For me it kinda errors out a lot and says it doesn't support stuff iirc.
Tried Unibeautifier, kinda confused whether I need to manually install dependencies or whatever.
I have made a plugin which adds a few badges to users, but whenever its enabled, certain user's profiles will crash discord.
disabling it fixes this issue, any ideas?
if you want help, you need to share code, errors, etc
this is one of the few badges i'm adding to users part of a specific guild.
Where would i see errors?
Is there a log file i can open?
@dull magnet where would logs be located?
have you perhaps tried checking in devtools
(also please don't ping for support #rules)
This is not working anymore with the latest patch update, not sure what to change to make it kick in again 😕
quickcss editor is saying this is an error when it is valid css (it applies correctly)
i guess the editor css linter is outdated?
hi i'm stupid, how do i use react devtools with vencord
settings
i do have it enabled, and have devtools opened via pnpx react-devtools
wasnt pinging for support, was more of a follow up question
ctrl shift i
Is anyone else instant crashing via react devtools?
It happens even on full client refresh
so it's not the memory thing
devtools is fine on vesktop
...Huh, opening devtools while it's loading does prevent it from crashing
bizarre
danke
having an issue where useState is not a function
however i'm importing the useState from discord's react here:
import { useState } from "@webpack/common";
// ...
const [cps, setCps] = useState<number>(0);
why is brokie?
well shit
log it and see what it is
uh oh!!
if you aren't nesting at least three macros deep is it really rust coding
please god help me
so true
least confusing if match statement
you sure?
kid named &str
fun
hmm?
Is anyone down to teach me coding?
no
So I made a build of vesktop that allows for transparency on linux, the issue is the fact linux really only has two options: on or off
yet the UI expects you to be on windows 11 so it shows more options
but they all do the same exact thing
What theme is that? Looks good
catppuccin i think(?)
I regret wanting to learn rust
Looks hella confusing
just make the menu options conditional 

youre running code before react is loaded
❓ Probably not the right place to ask this but how to install plugins shared in #1032200195582197831 ? Want to install this one but not sure how to get started: #1032200195582197831 message
pins
hey guys, i was trying to make a plugin for vencord but I am having some trouble. Should I ask for help here or #🏥-vencord-support-🏥 ?
here, as there is no official support for plugins
alrighty
I just wanna know how to send a modal, I was able to add some slash commands but I don't know how to create and send a modal
do you mean show the user a modal? or execute a bot's modal?
show the user a modal
"community material theme palenight" I think
thank you
do any of you guys know where i can buy a cheap hosted domain link with .dev ?
porkbun
Got it, thank you!
how do i iterate over threads in a given text channel
you were right thank you
i managed to fix it
how can I debug a patch that doesn't apply to an id-assigned module?
what?
I looked at the sendTimestamp plugin and found out how to make a plugin. Although does anyone know if it's possible to remove the space between the "Title" and input field ```tsx
<Forms.FormText>
Title
</Forms.FormText>
<input
type="text"
value={title}
onChange={e => setTitle(e.currentTarget.value)}
placeholder="The embed title..."
/>
style={{ marginBottom: 0; }}
hallo
haii
thank you, I did style={{ marginTop: 0 }} in the input and it removed the space
any idea why my gateway keeps DYING
I eated it
fat!
i never expected to need to do this but time to polyfill object.hasown i guess ?
just ```js
Object.hasOwn = (obj, prop) => obj.hasOwnProperty(prop);
yea
just what i did lol
but gateway still gets KILLED
murdered
oh what de hell
it is ALIVE
phew i legit thought this was teh end of the line lmao
anyone know what that weird line is? and how to remove it
in 2637a020d5aec5c71021.js,
match: `(\w+)\.\w+\s*=\s*function\(\w+\,\w+\){for\(var\s+\w\s+in\s\w+\)\w\.o\(\w,\w\)&&!\w\.o\(\w,\w\)&&Object.defineProperty\(\w,\w,{enumerable:!0,get:\w\[\w\]}\)}`,
replace: `$1.d = function (target, exports) { console.log("hello there"); for (const key in exports) { Object.defineProperty( target, key, {get: () => exports[key](),set: e => { exports[key] = () => e }, enumerable: !0, configurable: !1}); } }`
doesn't do anything but gives errors
why would you need to patch that
I need

update ur browser noob
tell it to valve :')
you cannot patch webpacks own code
if you're talking about #👾-core-development message, that still works. if it doesn't, you're doing it wrong. in any case, you should not manually push, use vencord's wreq
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
why
cause that's not how patching works
it is
patches are for discord's code, not webpack's
our patcher works by monkey patching webpack's module loader. thus its not possible to patch webpacks own code
I mean, the thing I mentioned in #👾-core-development partially works, just for some reason doesn't for Module
also, if I set wreq.d, wouldn't it be too late?
bump
how would you embed an image (blob) in a sendbotmessage?
I don't think you can send anything other than content using SendBotMessage
the pain is real :(
wtf is a webpack
My solution was by dispatching a MESSAGE_CREATE event ```ts
FluxDispatcher.dispatch({
type: "MESSAGE_CREATE",
channelId: ...
message: {...}
})
The message is only available to the client but it does not look ephemeral
**commandHelpers.ts: **Line 40
export function sendBotMessage(channelId: string, message: PartialDeep<Message>): Message {
I tried making it send an embed, could you show me how
do I do this ```
{
content: "",
embeds: [{...}]
}
yeah
I am not sure why I did not think of this earlier lol
do you might know what this is about?
I want it removed if possible
when a bot sends a modal it is not there so I assume there is a way
idk how to do it
unfortunate, thanks for help anyway!
hey i have a code that is a / command that sends a link to a pic of a goose and i was wondering if there is a way to send both the link and say above the link "HONK"? without the link shoing
Upload the goose as an attachment once, then use the same attachment id in every message to reuse the pic
Oh
should have prob posted the code lol
do you have an idea on how to do it here?
@silk sorrel
You'd have to send two messages or hide the link somehow (like the spoiler trick)
ok tnx for the help ill try that
Hello guys. Is it possible to have different fonts for different languages? I've came to this peace of code that almost make some sense but it doesn't work...
/* Fonts */
@import url("https://fonts.googleapis.com/css2?family=Playpen+Sans:wght@550&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Comfortaa:wght@550&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@550&display=swap");
:root {
[lang="en"] {
--font: "Playpen Sans";
}
[lang="el"] {
--font: "Comfortaa";
}
--code-font: "Roboto Mono";
}
body {
font-family: var(--font), sans-serif;
}
code {
font-family: var(--code-font), monospace;
}```
It will work, but when defining css variables inside the root selector, you have to use the -- prefix for variable names
can you give me an example? where to look at? what do i need to change?
You have to modify the way you are defining and using css variables
:root {
--font-en: "Playpen Sans", sans-serif;
--font-el: "Comfortaa", sans-serif;
--code-font: "Roboto Mono", monospace;
}
body[lang="en"] {
font-family: var(--font-en);
}
body[lang="el"] {
font-family: var(--font-el);
}
code {
font-family: var(--code-font);
}
<body lang="en">
<h1>Englis </h1>
<p>Meow meow emow.</p>
<h1 lang="el">Ελληνικό</h1>
<p lang="el">Αυτό είναι ένα παράδειγμα κειμένου στα ελληνικά.</p>
<code>console.log("Hello, World!");</code>
</body>`
hm... it seems that it's not working.... i also made sure to include the google fonts in above lines..
What is not working..?
I think the "body" parts
Wait, is it about custom css or
Yeah.. trying to make my own file css for "custom" settings in discord.. since i'm using themes, developers are using their own fonts, in my eyes don't seem very nice in greek and such, so i made this little file and add this type of code there...
oh shit... i think i figured it out... take a look @pliant pasture
/* Fonts */
@import url("https://fonts.googleapis.com/css2?family=Playpen+Sans:wght@550&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Comfortaa:wght@550&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@550&display=swap");
:root {
--font-en: "Playpen Sans", sans-serif;
--font-el: "Comfortaa", sans-serif;
--code-font: "Roboto Mono", monospace;
}
body:not([lang^="el"]) {
font-family: var(--font-en);
}
body[lang^="el"] {
font-family: var(--font-el);
}
code {
font-family: var(--code-font);
}```
Yeah i guess the above code would work
is there a way to change what this button dose? (what link it opens) in the listening rpc?
im already changing the activity type from playing to listening but i was wondering if i can change this
well it seems that it's working .. half way.. i think it doesn't read "el" correctly or something.
ok
Do inspect element
Oh
I mean, you can technically change anything on your client
You can make that button send a message named "cat" as well
can I to change it for other ppl tho?
any changes made in your client affect only your client. If you want to make ppl being transferred in other links, you can use an addon/plugin called "CustomRPC" where you can make your own RPC like myself. You can use your own links, texts, titles.
no there i have the rpc of the app and i made a plugin that changes it from playing to listening and i was wondering if i can change the link that button gives
i want it to give the link of the song
I need help making the UserPFP plugin for vencord. I know this code only loads the css but that is all that I have managed to make and I am also trying to make the plugin less laggy. Might be able to only load Profile Picture on user profile and not in members list or anything unless Always Animate is toggled on in the plugins directory.
I have anonymise file names on btw
No because it is laggy
if it's laggy then your css is likely at fault
a plugin to load it wont fix that
Thats why Im saying that I want to add more features
The css loads all of the pfps
It applies the pfp to the user profile and replaces it
You can check all of the code out
i know how it works
Css also includes bbadges and has to be a plugin to show names of badges
if you really want a plugin then modify usrbg
why in the world do you have those :is() selectors
they do nothing
anyway your selectors seem very inefficient so that's probably why it's laggy
Because ive never made a vencord plugin before
and why im asking for help with making the plugin
stop with the :is(), just omit it
stop targeting img and div, use the proper classes of those elements instead
But then the CSS file will be longer, also we have a bot that adds to the CSS each time someone requests and it gets approved
And it is integrated into Aliucord and Vendetta
@dire fern please rewite the userpfp builder and remove the junk
just store a json file??????
The json file is where the links are stored
how would that break plugins then
ohhh yeah im gonna husk that instead of explaining
I don't have any brain cells left
"changing the css file would break the plugins that load from json"
thats what youre saying
Might be able to automatically create a new CSS file specifically for Vencord that has specific selectors
The CSS is made using GitHub workflows
what? why would you not make the general css file everyone uses better?
don't tell me you parse the css file on mobile
.
?
https://github.com/UserPFP/UserPFP/blob/main/source/template.css
you can improve these selectors to be more efficient
**template.css: **
/* AVATAR-TEMPLATE-BEGIN */
/* Custom avatar for {id} */
div:is([style*="{id}"]),
img:is([src^="https://cdn.discordapp.com/avatars/{id}"]) {
content: url({img});
object-fit: scale-down;
aspect-ratio: 1;
background-image: none !important;
}
/* AVATAR-TEMPLATE-END */
/* BADGE-TEMPLATE-BEGIN */
/* Custom badge for {id} */
:is([class^=userPopoutInner], [class^=header_], [class^=userInfo_], [class^=none_]):has(img[src^="https://cdn.discordapp.com/avatars/{id}"]) div:is([class^=profileBadges_], [class^=badgeList_]):before {
content: "";
width: 22px;
height: 22px;
background: url({img}) center / 100% 100%;
}
/* BADGE-TEMPLATE-END */
it will not break anything
Idk how to do that
then get nex to do it???
Also the aria labels for badges only work with scripts, not css
- all of these :is() are useless
- targeting elements like div and img is very inefficient
badges??
why are there badges
this is about pfps, no?

Only a few
just know they have badges
no you don't, at least if you don't want to break the app (talking about the link):
Check the database:
https://raw.githubusercontent.com/UserPFP/UserPFP/main/source/data.json
That's just a link to the discord, to request
that will break
click it
see what happens
add target="_blank" to fix that
iirc
yeh that
you need to redirect it to "a different tab", in this case, opening the browser
I can take a look, not sure if that look will mean anything tho
i can in like 10m
Can I send the new link and see if it is ok
Half of the imports go unused
.
also, don't
so not all react imports break, got it
I would assume so
peak
it does that when i send one from vendetta
bc it doesnt give the ?name param in the link
vencord cant know what the emoji name is
I wonder, how easy would it be to patch the pfp components to add these usrpfps
Timed out for 5 mins lol
L
https://raw.githubusercontent.com/UserPFP/vencordplugin/main/userpfp/index.tsx
Made 2 changes, dunno if I did anything really
did you, try sending the discord invite?
Changed the URL and removed react
read what i sent.
read
Yes
Does it just import css
yes
Peak typescript
I asked and index.tsx said go for it
thats not what i meant
Should I just add u as a contributor on GitHub because idk
id prefer not
Ok
I don't know what u mean by add _blank
sorry for ping but @vapid oar can you help please
omg
LMAO
wouldn't it be easier to use some component to add the user avatars instead of css?
That was Coolesding btw
i can tell
yes
extremely
prob, if you can make the right patch
i tried to say look at what usrbg does patchwise
So a plugin would be better than CSS
probably decor has something
That was the basis of v1 UserPFP VencordPlugin
ty wolfie
I tried reverse engineering the thing by hand 
but yeah, you can get something if you look at the right place
It's hard to add to Vencord Dev build
once im bored of working on genesis for yhe day i might do usrpfp
No I mean discord's react props
guh
no
I love regex i love regex
an overlay should be fine
all the patch does is override discord's banner to get it from the plugin
I hate regex
for usrbg that is, I would assume
Can someone just completely fix the code to be much better, I will give them a badge and a sparkly sticker
we shouldn't use Regex for anything
It's shiny
unfortunately though, we have to
another one to the collection
The sticker
i will see if i still have wifi at home when i get home
please learn how to patch (says the guy who can barely patch)
dont patch
Patchimari











