#👾-core-development
1 messages · Page 166 of 1
show stack trace
is this a try it and see moment
hold on
the code is not committed and it's on my laptop
give me 2-3 mins
I'm about to merge context menu api changes so that's your best time
Also do note that the crash occurs after the patch has been rendered twice

let me guess
documented already and i didnt find it by searching
const AudioDeviceContextMenuPatch: NavContextMenuPatchCallback = (children, props: { renderInputVolume?: boolean; }) => () => {
const s = settings.use(["isEnabled", "timeout"]);
console.log(s);
// const s = { isEnabled: true, timeout: 300 };
if ("renderInputVolume" in props) {
children?.push(
<Menu.MenuGroup
label="Auto Mute"
>
<Menu.MenuCheckboxItem
checked={s.isEnabled}
id="vc-auto-mute-toggle"
label="Enable Auto Mute"
action={() => {
settings.store.isEnabled = !settings.store.isEnabled;
}}
/>
<Menu.MenuControlItem
id="vc-auto-mute-timeout"
label="Inactivity Timeout"
control={(props, ref) => (
<Menu.MenuSliderControl
{...props}
ref={ref}
minValue={15}
maxValue={900}
value={s.timeout}
onChange={debounce((value: number) => settings.store.timeout = value, 10)}
renderValue={(value: number) => `${value} seconds`}
/>
)}
/>
</Menu.MenuGroup>
);
}
};
dont mind some of the debugging junk
yes it was originally being destructured
yop
what is it 
basically the second callback you are using is only ran once
where?
but react component need to always run the same amount of hooks
(children, props) => () => {}
you return a function
the hook wouldnt work either way because the current context menu api is bad
the pr I'm merging will fix it
oh?
give me a sec
const AudioDeviceContextMenuPatch: NavContextMenuPatchCallback = (children, props: { renderInputVolume?: boolean; }) => {
const s = settings.use(["isEnabled", "timeout"]);
if ("renderInputVolume" in props) {
children.push(
<Menu.MenuGroup
label="Auto Mute"
>
<Menu.MenuCheckboxItem
checked={s.isEnabled}
id="vc-auto-mute-toggle"
label="Enable Auto Mute"
action={() => {
settings.store.isEnabled = !s.isEnabled;
}}
/>
<Menu.MenuControlItem
id="vc-auto-mute-timeout"
label="Inactivity Timeout"
control={(props, ref) => (
<Menu.MenuSliderControl
{...props}
ref={ref}
minValue={15}
maxValue={900}
value={s.timeout}
onChange={debounce((value: number) => settings.store.timeout = value, 10)}
renderValue={(value: number) => `${value} seconds`}
/>
)}
/>
</Menu.MenuGroup>
);
}
};
pull from dev
this should be your new patch
okay
wait what
contextMenus: {
"navId": AudioDeviceContextMenuPatch
}
no need to manually use start and stop anymore
so
contextMenus: {
"audio-device-context": AudioDeviceContextMenuPatch
},
yes!
4f0c0a1 feat(plugin): ResurrectHome (#2232) - dolfies
612fdf8 FakeNitro: Fix trimming wrong content - Nuckyz
42a9fa2 Refactor ContextMenuAPI (#2236) - Kyuuhachi
0498fa2 Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
I know
copy and paste the new patch again
alright
thanks a lot @brazen bone
does the checkbox update when you click?
yes
nice
something very much not working with my code though
37ec1ef We can try letting other mods run with Vencord ... - Nuckyz
Incomplete URL substring sanitization
'discord.com' can be anywhere in the URL, and arbitrary hosts may come before or after it.
SSHUT UP
None
None
None
None
None
None
None
None
that's so fast
what's the issue?
good question idk how to explain it properly but thing activating when i dont want it to
real commit
for real
Rookie mistake
Here you can see my incompetence

I wanna try running better discord with vencord now
why tho
If that is possible to support, that's cool
I mean
that's the reason I did this
Where's your sense of Adventure
for example I know better discord hooks the push method too
because of my commit vencord wont overwrite the better discord hook if it runs after
but better discord still overwrites vencord hooks
can't control that though
horror
WorseDiscord
**patchWebpack.ts: **Lines 32-34
// The property descriptors in the monkey patches are used to ensure that if anything else (maybe another mod) hooks the same stuff as we do, we don't overwrite their hooks.
// Of course the other mods should also do this, but we can't control that, so lets at least make sure in our end we do it.
const webpackChunkPropertyDescriptor = Object.getOwnPropertyDescriptor(window, WEBPACK_CHUNK);
so technicallyyy if someone runs better discord first, then vencord after
dumb question but
vencord should at least not overwrite the better discord hooks
oh
inb4 "random"
let me show
this is in the vencord preload
it runs Vencord in the window, then runs the normal discord stuff
yop
if you want better discord to run first you just need to add the line above the vencord one
is that determined usually by which mod you install first?
so you'd have to inject it manually?
I could try installing better discord
horror
and modifying this
what the fuck
to run this after the better discord one
webFrame.executeJavaScript(readFileSync(join(__dirname, "renderer.js"), "utf-8"));
(the vencord one)
in fact I wil try rn
Your sacrifice will be remembered
just cursed
@limber skiff Please press 1 if you are being held hostage by DevilBro
goodbye
Please press 2 if you are about to explode.
fuck
it cant patch discord dev
it will be in canary then
installing didnt work
nice
hi
@limber skiff run bd in vesktop 
but I think shelter still works even without my changes
I could be wrong but I think it barely touches webpack
hmm
I could use this
Is updating a settings.store value not a setter that calls onChange?
it should be IMO
would that be considered a bug?
Pretty sure that only applies when changing it through the menu
You are right
Whether it should is a different question
Setting .store.foo does run .use() hooks at least
nah it worked
just their original preload doesnt work
but vencord does
now I'm gonna try running bd together
well the bd loader doesnt work
@cunning canyon what's the difference between TimestampMode NOW and TIME
time will show like 7:45:26 elapsed and that is same as my local time
ohh that's cool
46d7abf CustomRPC: Change timestamp to milisecond (#2231) - AutumnVN
fadd317 Fix waitFor initial finds traces getting logged... - Nuckyz
fd34c5f Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
46d7abf CustomRPC: Change timestamp to milisecond (#2231) - AutumnVN
9a7340c Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
Merge Merge Merge
oh fuck off

fadd317 Fix waitFor initial finds traces getting logged... - Nuckyz
fd34c5f Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
46d7abf CustomRPC: Change timestamp to milisecond (#2231) - AutumnVN
9a7340c Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
me sitting here with my fucked up dev flow where I commit to feature branch, merge to personal stable, then repeat until cozy or i forget about the feature, then i will eventually pr

sometimes it's another
wdym?
right now I'm using this as my personal use
oh
12bc09a MemberCount: Add options to choose where the me... - cheesesamwich
751673a Merge branch 'dev' of https://github.com/Vendic... - Nuckyz

577c523 Fix trying to check for updates if origin doesn... - Nuckyz
577c523 Fix trying to check for updates if origin doesn... - Nuckyz
1b0daf3 Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
Object.keys is O(n) so having this rather pointless check is meh
force push war
here goes the force push into dev
thanks for pointing it out ven
980206d Fix waitFor initial finds traces getting logged... - Nuckyz
a59c14f CustomRPC: Change timestamp to milisecond (#2231) - AutumnVN
f701142 MemberCount: Add options to choose where the me... - cheesesamwich
1979976 Fix trying to check for updates if origin doesn... - Nuckyz
26f50ab Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
omg lmao
@austere talon this is caused by this line, specifically mainWindow
do you think maybe reassigning it to a variable could fix?
nvm I dont think that can fix, it was just a guess
Object has been destroyed means like the window was closed
yeah
but i cant repro no matter what i do
well it means the window was closed
but like
how would it be closed?
I've seen many people have the javascript error in timers, not sure if it's always the same position
i guess?
I will push this
is thatn ur error?
but that looks like windows
well
Any help possible? this is making using discord and playing games unbearable, Keeps popping up whenever I open roblox, seems to effect the theme for some reason?
why tf does roblox trigger the watchers
nono it's not roblox issue
^^
mm
well i think it means that the window is somehow being destroyed?
maybe we should add a listener for window created
and grab the new one
but our pather should already do this
just this will probably fix it?
we already monkey patch the window constructor
shouldnt that catch every window?
so no need for listener
yea thatgs what i said
It's guess but prob lmao
but still need to remove old listeners
ye this will remove the old listeners
5184658 Close Ipc FS watchers if window is closed - Nuckyz
9076e21 Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
ya
while youre at it add a .catch(() => {}) to the open()
102842d Close Ipc FS watchers if window is closed - Nuckyz
3bb5fdb Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
when vencord broke? xd
yes lmao
also tauri uses webkit on linux meaning nvidia wayland users will suffer to https://megastutter.org/
wait thats so long ago? horror
I would like to have the app icon to be same as Discord's icon. I tried to find in in the source code myself but i didn't succeed.
Maybe if there was an option to upload your own icon for the app to use.
I have no idea how hard it may be to implement, it isn't a app breaking bug so I understand if you don't want to spend amounts of time to implements this.
the world just see shiggy at all costs
Don't get me wrong, I like the app. It has some features Discord app doesn't have by default. I just don't want to explain to my parents why there is a Pride flag on my computer.
homophobia
cancelled!11!11!11!
So I guess issue closed ?
Doesn't Windows let you do this with the properties dialog?
I am on Ubuntu
Doesn't Windows let you do this with the properties dialog?
you can change the desktop icon yourself
1c1d82f VencordToolbox: don't subscribe to all settings - Nuckyz
950b397 Merge branch 'dev' of https://github.com/Vendic... - Nuckyz
why when I'm always in bed I think of stuff I could have done better
like why do I remember the most random code I wrote
wdym why?
why dont subscribe to all
oh
im thinking of a case where some action might use settings
the subscription is to update the checkmark when quickCss toggle is changed
for example we might add additional capabilities in the future
I only need to subscribe to that setting
like plugins adding checkboxes
I think you are confusing of what the commit changed
im saying it should sub to all settings in case some toolbox action uses settings
like a plugin action
well
then the action should use the setting hook on its own
it makes no difference
I added that setting subscription with the context menu changes
I just only realized now it was subscribing to everything
I wondered if listen together is easily fixable
or they fucked it up hard
@shy veldt would you know anything about that?
or maybe you @median rapids
sorry for pingies but you two know everything that happen lmao
im on stable with this experiment enabled
i doubt the experiment makes a difference
maybe spotify fixed spotify crack?
nono
I don't have premium and it works now
I don't even think they can fix it
discord handles it purely client side I guess
spotify only gives the api key for unlimited permissions
they can fix it
by restricting the permissions of the spotify token
to only allow pause and nothing else
but that would also break SpotifyControls
cause SpotifyControls also uses discords spotify token
but how would listen together work then lol
for non premium users i mean
idk why they dont check at all lol
Shows the Date you and someone else became friends in the user popout.
Implements https://github.com/Vencord/plugin-requests/issues/157
shhh keep it like this
yeah xd
use a margin on the Heading element below instead
or rather dont do any of this and instead use discord's classes and it'll automatically do it correctly
What class would I even use for that from what i understand discord also just uses fragments
all of these
the h2 is just FormTitle but maybe with custom class
use react devtools to look at their code
it is identical but it does this
although for some reason the div class didnt get applied properly but thats fixed now
maybe friends since should be in its own .section
ooh
Bumping as I added a more clear title
Same here two months later...
yeah chrome changed them iirc
what happened to it
and dw 
My partner on Windows 10 is having the same issue only when running Vesktop, Discord Web is working fine. all audio settings already got played around with and nothing changed. She's using a studio mic, but we also tried lowering the sample rate and it didn't change stuff.
6d7390c New plugin: QuickRoleEdit ~ edit shortcut in us... - Vendicated
BetterRoleContextMenu
@austere talon btw I think role context menu only exists if you have developer mode to show the button to copy ids
yes
also while you are at it, change the plugin name and add option to copy role color
true true
nop
It's difficult isnt it
I remember it was bad
Ohh yeah
can you fix resurrect home readme image for me
I couldnt find the assets issue
the pull request for it as an image
we could just force enable developerMode
findByProps("DeveloperMode").DeveloperMode.updateSetting
Why does it require developer mode at all?
the context menu doesnt exist without it enabled
the button it normally exists is the copy role id button
so with it enabled the menu doesnt exist it all
this is it
its used in a few places
also copy command id
okay removing the check is pain
we'd need to patch this and check if label is the localised role label
i think just force enabling dev mode is okay
Force push smh
Discord Account
wixonic
What happens when the bug or crash occurs?
The URLs of buttons in the CustomRPC seems to be dropped by Discord when sent, as they're not displayed anymore.
Activities properties seems to have changed for buttons, as my own script doesn't work too.
What is the expected behaviour?
I expect to be able to click on buttons of the activity with or without Vencord
How do you recreate this bug or crash?
- Enable CustomRPC
- Fill all required, and a...
I have the same issue on Arch Linux (with KDE) with vesktop from the aur - I can't seem to reproduce this consistently though, however it happens fairly often and always when Vesktop is minimized or sometimes even when it's merely unfocused.
When regaining focus (or being restored) the discord (re-)loading screen is shown and shortly after I'm thrown back into discord as if it just started
I've been having this issue with any vesktop version as well
Managed to reproduce this on m...
Feel free to remove me as reviewer. I do no longer work with timezone related stuff
The css class hashes are always of the form _[0-9][0-9a-f]{4}|[a-f][0-9a-f]{5}. Wonder why that is.
None
None
None
None
ShowHiddenChannels (had no effect):
ID: 296262
Match: /maxUsers:\i,users:\i.+?=(\i).+?;/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /\i>0(?=&&.{0,60}renderPopout)/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /(?<=\.value\(\),(\i)=.+?length-)1(?=\]=.{0,60}renderPopout)/
MutualGroupDMs (had no effect):
ID: 279286
Match: /(?<=\.MUTUAL_GUILDS\}\),)(?=(\i\.bot).{0,20}(\(0,\i\.jsx\)\(.{0,100}id:))/
None
None
None
cool
wdym?
they're that way cause that's how the generator makes them

Yeah but why isn't it like, always six hex digits
Discord changed the profile sections code a little in build 273250, so this is a fix:tm: for once it's pushed to stable
match: /(?<=\.tabBarItem.{0,50}MUTUAL_GUILDS.+?}\),)(?=.+?(\(0,\i\.jsxs?\)\(.{0,100}id:))/,
replace: '(arguments[0].user.bot||arguments[0].isCurrentUser)?null:$1"MUTUAL_GDMS",children:"Mutual Groups"}),'
This works on both stable and canary
ShowHiddenChannels (had no effect):
ID: 296262
Match: /maxUsers:\i,users:\i.+?=(\i).+?;/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /\i>0(?=&&.{0,60}renderPopout)/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /(?<=\.value\(\),(\i)=.+?length-)1(?=\]=.{0,60}renderPopout)/
MutualGroupDMs (had no effect):
ID: 279286
Match: /(?<=\.MUTUAL_GUILDS\}\),)(?=(\i\.bot).{0,20}(\(0,\i\.jsx\)\(.{0,100}id:))/
None
None
None
ShowHiddenChannels (had no effect):
ID: 296262
Match: /maxUsers:\i,users:\i.+?=(\i).+?;/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /\i>0(?=&&.{0,60}renderPopout)/
ShowHiddenChannels (had no effect):
ID: 296262
Match: /(?<=\.value\(\),(\i)=.+?length-)1(?=\]=.{0,60}renderPopout)/
MutualGroupDMs (had no effect):
ID: 279286
Match: /(?<=\.MUTUAL_GUILDS\}\),)(?=(\i\.bot).{0,20}(\(0,\i\.jsx\)\(.{0,100}id:))/
None
None
None
yeah
I'm fixing
might also be good to make another browser release
if u do push to main
oki bai have fun
None
None
None
None
None
None
None
None
1a1156e Add more settings to IgnoreActivities (#2153) - Nuckyz
806960f ClientTheme: do not use lodash on start method - Nuckyz
553a48b FakeNitro: Fix hyperlink text setting for stickers - Nuckyz
23ff82f FakeNitro: Remove extra space in modal - Nuckyz
4f0c0a1 feat(plugin): ResurrectHome (#2232) - dolfies
nice
I hate this find but there is not anything better
there is a new mod pretty much identical to it, and it's also super small with very generic stuff

why is it telling people to go to support for something unsupported
it is written long time ago
it was last touched 5 months ago
thats from back when installing from source was still the official way to install
before we had prebuilds and a http updater
it should be updated however
oh really
the only reason I even noticed was because I was updating the readme for my personal "stableish-but-not-ready-for-upstream-fork" or whatever to tell my friends to NOT bother y'all
contribute your soul by join join join join join join join join join join join join join join join join join join join join join join join join join
never check the history of the LICENSE file
morbid curiosity time
||The Giant Penis License (GPL)||
.
Plasma 6 upgrade swapped my compositor to wayland instead of x11, runs perfectly on x11!
Discord Account
fairwellnoob
What happens when the bug or crash occurs?
The file name is not anonymized
What is the expected behaviour?
The file name is anonymized
How do you recreate this bug or crash?
- Create a forum channel
- Upload an image on the forum post (the one that is embedded in the forum itself)
- Re-download the file to see if its anonymized
- File is not anonymized
 outside of the above if-else block to get this to work. Still fails initially, but the streaming button afterwards will grab the then grab the camera every time.
is there some kind of api for toolbar buttons?
Look at how vencord toolbox does it
I had already tried this solution without success, in my case setting the environment variables via the Steam launch options
SteamOS=1 SteamGamepadUI=1 %command%
or via the NixOS module
programs.steam = {
enable = true;
gamescopeSession = {
enable = true;
env = {
SteamOS = "1";
SteamGamepadUI = "1";
};
};
};
had no effect.
what GPU vendor & where is the source of your gamescope session launch script
I had already tried this solution without success, in my case setting the environment variables via the Steam launch options
SteamOS=1 SteamGamepadUI=1 %command%or via the NixOS module
programs.steam = { enable = true; gamescopeSession = { enable = true; env = { SteamOS = "1"; SteamGamepadUI = "1"; }; }; };had no effect.
You have to put it before the binary:
 and requires a reload to continue. This behavior continues no matter how many times you reload.
It is worth noting that the "white screen" portion sometimes doesn't happen, and it simply stays on the Discord error screen.
To Reproduce
- Open Vesktop
- Click on a server from the side pan...
provide error logs obtained via ctrl shift i
**index.tsx: **Lines 116-117
const guild = GuildStore.getGuild(guildId);
const role = guild?.roles[id];
TypeError: Cannot read properties of undefined (reading '461281895557365760')
unavailable guild?
yeah maybe
but hmm
should wrap that in a error boundary anyways
then it wouldn't be able to render the role
yep
we should go through plugins and see which ones don't use error boundaries and fix it
yeah but
we can probably automate it
there is a lot...
should context menu api use error boundary?
I've never thought of that
find all index.tsx files that contain $self and don't import ErrorBoundary
not necessary
and not possible
menu api can only use menu items 
yeah
but yeah it's also not needed for things like menus or popups
because worst case scenario they will crash the app and crash recovery will recover
that's okay imo
Yeah if they crash it'll just close the menu
if it only is rendered after a specific user action and recoverable then it's not necessary
It's poor ux and should be fixed asap, but it's not exactly fatal
it's only necessary when it's always rendered (like spotifycontrols or similar) to prevent crash loops

yeah
if you wanna like
pick half of the plugins and go through
I can do the other half later or something
Does anyone know what the 23 in s.el("865981").then(s.t.bind(s,"865981",23)) means? It's on some but not all lazy modules
oh wtf
that's new
it's not using the wreq
it's using wreq.t
I've never noticed that
Oh, that's true, didn't even notice that
we need to find what it does differently and make our stuff do it
Which is... exports.createFakeNamespaceObject = "__webpack_require__.t";?
Maybe it's different in rspack, should check that
that's not even picked up by my lazy chunk regex
**create_fake_namespace_object.js: **Line 9
__webpack_require__.t = function(value, mode) {
**create_fake_namespace_object.js: **Lines 9-26
__webpack_require__.t = function(value, mode) {
if(mode & 1) value = this(value);
if(mode & 8) return value;
if(typeof value === 'object' && value) {
if((mode & 4) && value.__esModule) return value;
if((mode & 16) && typeof value.then === 'function') return value;
}
var ns = Object.create(null);
__webpack_require__.r(ns);
var def = {};
leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
Object.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; } });
}
def['default'] = function() { return value };
__webpack_require__.d(ns, def);
return ns;
};
**create_fake_namespace_object.js: **Lines 3-8
// create a fake namespace object
// mode & 1: value is a module id, require it
// mode & 2: merge all properties of value into the ns
// mode & 4: return value when already ns object
// mode & 16: return value when it's Promise-like
// mode & 8|1: behave like require
it's absolutely lovely how unreadable these methods are
23 is eerything except 8
>>> 23 & 1 == 1
True
>>> 23 & 8 == 8
False
>>> 23 & 2 == 2
True
>>> 23 & 4 == 4
True
>>> 23 & 16 == 16
True
>>>
Also mode & 8|1 is clearly a bug, should be mode & (8|1)
its a comment
Though I guess it's just meant as pseudo syntax so whatever
does it use the return value?
Used like this (I think 865981 is the lottie runtime) ```js
async componentDidMount() {
let [animationData, { default: _default }] = await Promise.all([
require.el("432201").then(require.t.bind(require, "432201", 19)),
require.el("865981").then(require.t.bind(require, "865981", 23)),
]);
this._animItem = _default.loadAnimation({
container: this._lottieRef,
renderer: "svg",
loop: true,
autoplay: false,
animationData,
});
}
ohh
it's probably just a way to load the chunks, require and merge into a return
and it seems to be a Lottie related chunk
which our reporter ignores
search for \w\.el\("[\w\d]+?"\).then\(\w\.t\.bind\(\w,"[\w\d]+?",\d+\)\)
HORROR
it works
nop
virus
30 matches
i'm getting way more than 30
Huh, weird
but yeah these are more or less lottie related
they prob just have some lazy chunk loaded which has more of that stuff
fym not found
Oh that's why I only got 30
rg --count only counts once per line (aka once per file) unless you use -o
With -o it gives 111 matches
just search in devtools
I'm not a masochist so no thanks
It's really no trouble
i mean
you do you
using devtools is no trouble
okay and what is the error?
Cannot read properties of undefined at object.rolegroupcolor
It's like 8-ish clicks to download it, and then I can browse it with ripgrep, a good formatter, multiple tabs, etc
Oki ty
that only uses cache
if the module wasn't required ever it won't be found
husk
you can find it manually then require it
wreq(findModuleId("emojiTermsImporter:")).emojiTermsImporter
using non cache isn't possible because then we'd have to require every module which will lead to side effects
so you have to manually do it
yeah fair wnough
this should work but make sure the find is unique
it uses same find as a patch would
Or you can use findByProps("getTermsForEmoji"), which wraps that function
huh?
if that module is loaded then the one he wants would also be loaded
unless it lazy loads it when you call the function
It's... weird ```js
let a0 = new _0.default(function (b0) {
{
let c0 = require("952110").emojiTermsImporter[b0];
return void 0 !== c0 ? c0().then((d0) => d0.default) : Promise.resolve({});
}
});
It's a lazy require but not a lazy chunk, don't see a lot of those
until you call the func for the first time
difference is very simple
inline require = lazy require without lazy chunk
inline import() = lazy chunk
because inline require is synchronous it can't split the chunk
since inline import is async it can split it into a new chunk
Makes sense
@austere talon can you push an update to role color everywhere to main?
it's kinda bad to have the clients crash
@real flower re: flatpak, yeah i dont know either
it's something wrong with the main repo (rerunning the build causes the same error) but it's not documented and it's not even in the linter source code
so i don't know what the error means and i have no discernable way of fixing it
but there was also an appstream error that needs to be fixed so
that is fixed now
the other linter issue, no clue lol
actually that might not work
might have to wait for flathub updater to go "hey there's a new update available for the appstream file"
where are they now
horror
good to know
yeah i realized after a it more digging how stupid of an error it was
EXACTLY LIKE HOW 
i searched for it on google and the linter's github and it just
discord is so insane wtf
didnt exist
some discord dev is cooking crazy stuff
hmm
so how tf we we get roles now??
there has to be some way
ofc we could always patch but id rather not if it's not needed
btw there are more than just rce that use roles
g is roles
m is guilds
haha CRAZY
stable guildstore doesnt even have those methods
of course it doesnt
why would it exist
why would they have good documentation
imo just add error boundary for now and we can fix it if they push it to stable
I'm gonna do a fake lazy find which checks for getAllGuildsRoles
so when stable dont fail for it, we fix it
ye
wha?
eh
nvm
it was for the reporter to warn us when they push that stuff to stable
but it's whatever
we'll notice it sooner than reporter xd
bad commit name
I love how it's always after an extension bump
@lime stone rate
for some reason i thought they rewrote in go
whar
i thought i was looking at go code
bruh
no
for like 1 hour straight we were trying to get mf ipc working between the two instances
wait global keybinds, cool
rewrite vesktop in go
Issue solved - not sure what actually fixed it but the crash no longer occurs.
did they revert @limber skiff
^^
oh
because nookies already fixed it and you updated / have auto update enabled. it was a crash related to RoleColorEverywhere, because discord changed something about how their internals work.
https://github.com/Vendicated/Vencord/commit/992533245bc08ccaac258aaca803d362942dde74
None
None
None
None
None
None
None
None
Describe the bug
Vesktop is spawning countless WMIC processes that are for some reason attempting to scan all running processes and save the results as a CSV file. The exact command line is 'C:\Windows\system32\cmd.exe /d /s /c "wmic process get ProcessID,ExecutablePath /format:csv"' Upon killing enough of the rampant processes, I received an update notification, so I'm assuming it's something awry in the update check procedure.
To Reproduce
Starting Vencord and letting ...
it's arrpc. they shouldn't stay alive though, they should promptly exit again though, this is very strange behaviour. can you still reproduce after restarting?
I didn't notice that the "Failed to connect to arRPC" message wasn't showing up. It's acting fine after restarting Windows.
I also found a number of event logs under WMI-Activity that would indicate that these WMIC queries were running for 20 minutes in an idle state ("PossibleCause = Throttling Idle Tasks, refer to CIMOM regkey: ArbTaskMaxIdle"), so I wonder if some weird problem was holding up the query, but the arRPC component assumed that the query failed, so it ran another one? I'm g...
WMIC is depreciated and needs to be replaced with the PowerShell version anyway. see https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features
i would personally just make this a part of vesktop directly no vesktop-cli
we already did
Describe the bug
Vesktop uses more resources than Discord app on Windows 11, thats all :)
To Reproduce
Just open both app and compare.
Expected behavior
Expected to use less resources than Discord app.
Screenshots
Desktop (please complete the following information):
- OS/Distro: [Windows]
- Version: [11]
Discord Account
taf1337
What happens when the bug or crash occurs?
The listen along session never starts. It's basically a "spinner" that goes on forever but never syncs. This is without any plugins related to spotify enabled as well. Reproducable with the Spotify plugin enabled too.
I removed Vencord to ensure something wasen't broken on Discord's side and it worked as expected.
What is the expected behaviour?
I can listen along to someone else/invite someone else to list...
Being literate challenge: impossible
a
fucking github users
This PR adds a card at the top of CustomRPC settings that tells the user that their custom RPC won't be visible if their game activity isn't enabled, with a button to quickly enable it.
Here's a recording of the feature in action:
and here's a screenshot of the card itself:
 it has to be something specific to the flatpak, and not the driver.
I would continue to use the .rpm or AppImage (which I also tested and also works fine), however I would not get updates automatically like I would with the flatpak as far as I can tell.
The Flatpak is just the AppImage repackaged. If it doesn't work with Flatpak, it's an issue with the runtime and not us. There's nothing we can do.
I don't get whatever VSCode did with the merge here :sob: Gonna fix my JetBrains and force push from there.
That's unfortunate, but thanks for the information. I guess the appimage is my best bet for now.
Describe the bug
When trying to open any server, Vesktop crashes.
To Reproduce
- Open Vesktop
- Try to open any server
- Crash
Expected behavior
No crash occurs
Screenshots
Desktop (please complete the following information):
- OS/Distro: EndeavourOS
- Desktop Environment (linux only): dwm
- Version: 6.4
Command line output
...
Lets u save messages locally like personal pins
Todo
[ ] Add Messages to different Notebooks
[ ] Fix Refresh Avatars
[ ] Finish ContextMenu inside Notebook
What context you want? The vesktop is using more ram as compared to discord. But it is said that vesktop uses more ram than the discord's own app.
All you gave is a task manager screenshot, without knowing how many plugins you have on for each app, or if you have a theme
a lot of factors can actually have an influence on performance, like right now I opened task manager with the exact same config on both vesktop and the official app, and the official app uses more RAM
the one I have given is also with the same configurations on both the apps and the vesktop seems to use 2x ram compared to the official app. (sorry fo r not telling that yearlier, I'm new & thanks)
if you actually want to report memory usage and have it be meaningful, you need to share as much info as possible, and check the memory profile
in any case, vesktop makes no attempt at using less memory than the official Discord app. that is not possible, because they both use the same web app (discord.com/app). their usage will be fairly similar, with vesktop usually using slightly less.
https://github.com/Vendicated/Vencord/issues/1985#issuecomment-1810628323
It also occurs on
flatpak install https://dl.flathub.org/repo/appstream/dev.vencord.Vesktop.flatpakref
flatpak update app/dev.vencord.Vesktop/x86_64/stable --commit=70a623e0e430953bbd39aac618662b4009459692c82c335b1131f412e4e9b047`
Decor currently uses a worker to serve decorations. This worker is getting nearly a million hits a day leading to it costing $20+ a month to run Decor.
Changing the formula back to something static will allow me to use R2's public access features instead.
^ this works fine with the current worker too, I just need this changing so I can switch
you are paying with your own money for that? @junior olive
Partially, some of it is from gh sponsors
oh nice
Ideally I cut the cost though
🙏 at least you got some help
Yup I'm grateful
didn't i raise concerns about that before the plugin was even made
that's why fully selfhosting is still really good
reviewdb gets a shit ton of requests too but it's all handled by our go server 
which runs in your oracle server right
and it's the free tier
fully selfhosting decor would not be fun imagine selfhosting all the decorations
how much storage does it use
what if oracle bombs it
regardless i can get the cost down by this means its not a difficult change
like what they did to mantika
then i switch to a different server
its not the storage (but it's around 1gb) it's the amount of requests for the images
not a big deal
can't you like make one account per person?
or does it let you make other servers
if you generate unique filenames then you can put cloudflare in between and set cache headers to a year and have cloudflare cache 99%
that's what i do for vencord badges
once this change is merged i can just switch to r2 public access and boom costs gone (with cache and evrything)
?
okay so it's high priority?
will merge tomorrow
None
None
None
None
None
None
None
None
This adds a option that can be selected to use this little prettier Channel Section.
Inspired by https://github.com/Vencord/plugin-requests/issues/173
UserPopout
UserProfileModal
PrivateChannelProfile
 {
const plugin = plugins[pluginName];
for (const prop in plugin) {
const value = plugin[prop];
if (value == null) continue;
const valueStr = value.toString();
if (valueStr.includes("VencordCreateElement") && !valueStr.includes("ErrorBoundary")) {
console.log("plugin:", pluginName, "prop:", prop, "=", value);
}
}
}
some false positives but we can just ignore them
better than search for every manually
Content
Description
Deleting media with MessageLogger enabled doesn't show any indication that the media was deleted even when it was.
More info (with video): #🏥-vencord-support-🏥 message
Expected behaviour
I expect Vencord to still show the deleted media, but greyed out like in a normal logged deleted message.
I also expect to be able to toggle the deleted highlight and remove the message history through the ri...
Have the webhooks for the other related projects been moved yet?
Those star messages are kinda annoying imo
,
yeah
Yeah they have like no use
The pr hooks are nice though
I'm building a plugin that effectively replaces Discord's custom titlebar, and I am using this to make the titlebar more compact when the window is maximized. Other plugins could find this useful, or even Vesktop itself could patch the standard maximized button to have a different icon.

channel tabs be like
i mean discord itself is the reason its so fucking slow
but it is like 10x more noticable using channeltabs 
I don't know what that is but it sure doesn't look good
Is vesktop supposed to run into a runtime error when there's no internet connection on startup?
I think so?
Performance graph of switching guild and back
i mean this is not using channeltabs (discord's shitcode still makes it lag 400-600ms)
Hm. Perhaps it would be nice if it didn't.. I'll look into it today. We could put shiggy under a tap water image there - just a proposal
Me when while (true)
wet shiggy 
dont do that then
Because it looks so silly. Just as you not having an internet connection yet trying to load Vesktop 
Just as you not having an internet connection yet trying to load Vesktop
autostart on a laptop
not an unrealistic situation
Hm. That's fair. Even more reasons for it to not crash. I am sure the first thing you want to see when you open a laptop is a Vesktop runtime error splashed on your screen. I would rather see a wet silly shiggy splashed there instead with a retry button or something.
^ wet in a meaning of water, as mentioned above, a tap water
#🦊-shiggy-and-friends message
sometimes elaborating is a bad thing
this is one of those cases
do not reply if you have no new info to contribute. it's spam. react with a :+1:
by the time autostart programs actually get launched, my internet is already connected
true
internet also tends to connect while entering password for me
but i think i enter it a bit too quick since my internet doesnt get connected until like 2s after i unlock
(also wasn't talking in this channel locked to a specific role before or something)
will fix next version
that's the update check
actually it shouldn't be
Since firefox bombed the extension and the only way to get it now is through a devbuild it's better to just remove it from FAQ too, especially that it was removed from the download page.
I see. I though it was some type error on a failing fetch
i honestly don't know what it is
Well, it probably is, but I though it was trying to access discord api not vesktop
there shouldn't be a request that can fail
unless there's a bug and it downloads all vencord files every time you open it
ill debug
Wouldn't replicating discord's functionality when theres no internet be fine?
What's the behaviour?
it just has a timer which retrys, and adds up exponentially
u can try it urself rn just disable internet and open a discord client
that is not the problem
does it just crash?
Bruh, quick question - I see that we've got prettier inside of the vesktop repo. I ran prettier -fix and it fixed most of the files. Is there something wrong with prettier reading that file or has anyone never ran it
For instance I was doing some work on src/main/utils/http.ts and this file in particular it formatted a lot. Could anyone check if that's indeed the case
Nevermind, my bad
Fixes runtime error on startup when network's unavailable
Before
https://github.com/Vencord/Vesktop/assets/49836430/7c17cae7-647b-4958-86e1-d7eacd039ec5
After
https://github.com/Vencord/Vesktop/assets/49836430/25da02f8-ddc7-41cd-8a40-60dda520fc84
I debugged it and found out there was an onerror and a try catch missing
I'll just handle the possible undefines now 
this makes sense but i don't like the way you solved it
you should be able to differentiate between an error during dns lookup / connection (request fails, aka Internet no work) and http error (request succeeded but responded 404/etc)
and in the former case it should retry until it works
@austere talon can i scare you with a disgusting no good horribly inefficient idea I had
optimally with an exponential back off like discord
what if i inject css to set heights and offsets and similar but dynamicslly load the css classes using findByPropsLazy
i should just be using parent selectors shouldn't I
Uh, that sentence makes no sense
i already hack in some always resolving parent selectors anyway to prioritize my custom css rules
What's the context
btw we should look into switching to the fetch api anyway
i think our electron version has it
Changing Discord's hardcoded 22px vertical offset for overlays so the titlebar shows
Alright. I'll do that
do a search for .platform-win in devtools to see what i mean
I probably sound crazy
how about invalid SSL certificate errors
those are also common enough to need to be handled too
?
github is never gonna have ssl errors
but that would fall under the first category
are you talking about the loading splash screen still
local mitm (& dns?)
Well, it would seem like I can get this info from the error.code that I get in catch. I can check for stuff such as ENOTFOUND, EAI_AGAIN etc. I get EAI_AGAIN when I disable my network interface, but the same error is what I'd probably get on dns lookup fail. Should I just implement a retry mechanism for all cases?
don't bother checking what it is
never were
horror
@austere talon does discord have a hard cap on the backoff? like 100 seconds or something
don't hack more on the https.get
- unpack their desktop core asar and see for yourself

Alright this should be good
I limited it at 5 retries, but perhaps that's not even needed because of the backoff now is it
why not just reject(err) atleast you'll get the extra props set on err when catch-ing, as opposed to new Error
This Pull Request introduces the addition of Third-Party resources. This tab will contain the following resources:
- Third-Party Plugins
- JavaScript Snippets
- CSS Snippets
It includes filters allowing you to sort by Desktop/Web or search by name, author, and description.
To add plugins, you would create a .json file in src/content/third-party, structured as follows:
{
"name": "Album as Spotify Controls Background",
"description": "Use album cover as SpotifyCon...
good point. is the backoff good like this? https://github.com/Vencord/Vesktop/pull/432/commits/90e32a454d3806399385d295b7f74d8e42015ce1
i'd just write the fix now and do the thing we did before where we make it work on both
until it's pushed to stable
then remove the old code
messy
a what
They did something so roles are no longer in GuildStore, I think
husk
2 days is plural
insanity yeah


