A Forceful Blend of Discord Awesomeness! ๐๐๐ค
Don't fork this repo to make plugins for Vencord. We will pull changes from upstream, so if you want to make a plugin for Vencord but have it in BV, just wait for us to pull from upstream.
[!NOTE] External Sources were used.
- BrowserFS: https://github.com/jvilk/BrowserFS
- Some of BetterDiscord's code: https://github.com/Davilarek/Vencord/blob/main/src/plugins/bdCompatLayer/stuffFromBD.js
"it's called Vencord because it's made by ven,
it's called BetterVencord because it's bettter than Vencord"
- Davilarek
Node.js I recommend LTS version,
git clone https://github.com/Davilarek/Vencord.git
cd Vencord
BetterVencord needs to be compiled:
pnpm install --frozen-lockfile
pnpm build --standalone
pnpm buildWeb --standalone
Could be optionally run if you intend to use BetterVencord on the web, like ArmCord, or Discord in a browser.
After compile has finished, the resulting files in dist
is required to be left intact, in order to maintain BetterVencord functionality. The rest of the source could be optionally removed. Should you wish to keep the source, you could for instance, set it up to have partial update functionality (see Updating
section below), and/or for implementing other third party Vencord plugins
If for whatever reason you are an error during pnpm install
e.g.
pnpm install
ERR_PNPM_BAD_PM_VERSION This project is configured to use v8.10.2 of pnpm. Your current pnpm is v9.1.0
If you want to bypass this version check, you can set the "package-manager-strict" configuration to "false" or set the "COREPACK_ENABLE_STRICT" environment variable to "0"
This is set by package.json
You have few options:
COREPACK_ENABLE_STRICT=0
via either export COREPACK_ENABLE_STRICT=0
or set COREPACK_ENABLE_STRICT=0
,pnpm install
again.package.json
so that it correctly matches your installed pnpm
version, and retry running pnpm install
again.In BD Compat Layer, there is a toggle "Enable Experimental Request Polyfills" that allows plugins to use network.
There are some occasions you might see that error,
Steps to confirm:
Access to fetch at https://xxxxxx/xxxxx from origin 'discord.com' has been blocked by CORS policy
4 times close to eachother, it's likely this is your issue.Solution:
Steps to confirm:
Solution: There is no known fix for this issue right now. Try adding more RAM, perhaps.
Stepts to confirm:
Solution: There is a limit on localStorage size that varies on different platforms. If possible try migrating to IndexedDB.
Run Vencord's official installer first. If your discord installation path includes files or directories that are not owned by you, or that you are not a member of, or you have no write access to, ensure that you run the installer as a privileged account. Vencord needs to patch app.asar
.
Once done,
XDG_CONFIG_HOME
, as $HOME/.config/Vencord/
, on Windows, try checking %appdata%/Vencord
.dist
directory/folder into own Vencord user data.Once installed, BetterVencord functions similar to Vencord but with BD Compatibility Layer under Plugins. This needs to be enabled first before you can add BetterDiscord plugin(s). A successful enabling of BD Compatibility Layer will show up an extra menu entry (on the left of discord UI) as Virtual Filesystem, under Backup & Restore. To then add BetterDiscord plugins, in Virtual Filesystem, left click on /
, then BD
, then right click on plugins
, and click on Import a file here.
BetterVencord will not function properly if BD plugins are missing ZeresPluginLibrary, the BD Compatibility Layer does not provide this library either. You will need to click on the link download the file somewhere temporarily, then import the ZeresPluginLibrary. See the next section about adding BD plugins.
Newly imported plugins will not be immediately visible. To make it visible, collapse the plugins directory/folder then expand it again. This should ideally be done to visually confirm that the BD plugin has imported into the Virtual Filesystem, prior to enabling BD plugins to be visible within Vencord's plugin list. To do that, you will need to click on Reload BD Plugins, so that these changes should take effect under Vencord โ Plugins. Confirm that the BD plugin has its own entry within Vencord. If the imported BD plugin does not have its own entry within the list of Plugins, it may not be compatible with BetterVencord, and should therefore be removed.
To remove BD plugins from BetterVencord, navigate to plugins directory/folder as mentioned above. Right click on the BD plugin that you wish to remove, and click on Delete file. You should also visually confirm that the removed BD plugin is no longer visible via collapsing and expanding plugins directory/folder. Once that is done, make sure you hit the Reload BD Plugins button to have changes take effect.
It should be possible to uninstall BetterVencord via Vencord's official installer tool. If that fails, you will need to revert changes done to your Vencord user data path first, before running the uninstaller. If you do not have a backup for whatever reason, try deleting your Vencord user data directory or folder first, run through Vencord's official installer to install, then try uninstalling.
You should keep the source code you cloned in first step to be able to update BV.
First, you cd
to your directory where you cloned the source code.
Then,
git fetch
git pull
and then repeat compiling steps.
Discord is trademark of Discord Inc. and solely mentioned for the sake of descriptivity. Mention of it does not imply any affiliation with or endorsement by Discord Inc.
For people who don't see it. Before you can actually use BetterVencord for the purpose of running BetterDiscord plugins on Vencord, You actually have to enable the compatibility layer for any BetterDiscord plugin to work. BD Compatibility Layer is a plugin that is NEEDED for BetterVencord to actually run BetterDiscord plugins.