Automatically uploads a list of patrons to VRChat everytime a patron joins or leaves, without reuploading the world. For use with https://github.com/Miner28/AvatarImageReader
This is a Discord bot that sends everyone in a server with a role a message to link their VRChat account to the bot. The bot will upload an avatar to VRChat, encoder with every patreon name.
This system is written in TypeScript and compiles to JavaScript (NodeJS code).
- Make sure to install Node.js.
- Download the latest release.
- Extract the contents of the zip file called
VRC-Patreon-Link
. - Install the NPM packages by running
npm install
in the main directory. - Install PM2 by running
npm install -g pm2
. - Start the linker by running
pm2 start src/index.js
.
Make sure you changed the variables in .env
The whole config can be changed in the .env file. Rename .env.example
to .env
to get started. These are the different options.
Warning: Enable Server Members and Message Content Intent in the dev portal. The bot will throw the error
Privileged intent provided is not enabled or whitelisted.
if this is not enabled.
DISCORD_TOKEN
: The discord bot token. Look at this create a bot and get one.GUILD_ID
: Your Discord Server id. Look here if you want to know how to find it.ROLE_ID
: The discord roles ids, separated by a space (ID1 ID2 ID3
). Find the role ids by going to the role settings in the server, right click on the role and copy the id.
Note: You have to enable developer mode. Look here for more information.
PATREON_CHANNEL
: The patreon notification channel. When someone doesn't have their DMs open, the bot will send a message here notifying that user. Look here if you want to know how to find them.
Currently using a VRChat account with 2FA enabled is not supported, so its recommended to create a secondary account purely for use with this bot.
VR_CHAT_USERNAME
: The username of the VRChat account.VR_CHAT_PASSWORD
: The password of the VRChat account.VR_CHAT_AVATARID
: The blueprint ID of the avatar that will be changed to update the patreons. The same blueprint ID should be used in AvatarImageReader
LOGGER_ENABLED
: If the logger should be enabled (true
orfalse
).LOGGER_TIMEZONE
: The timezone for the logger messages (Look here for the possible values).