Dynamically loaded cross-platform VRChat OSC plugins in Rust.
plugin-debug
: Print all received packets, enable debug inconfig.toml
.plugin-spotify
: Sends the currently playing track from Spotify to the chatbox.
plugin-controls
: Controls various system functions via avatar parameters.plugin-lastfm
: Sends the currently playing track from LastFM to the chatbox.plugin-librefm
: Sends the currently playing track from LibreFM to the chatbox.
I'd like to expand this project with a shared config and socket, and add more plugins.
If you want to help please feel free to join the Discord
The configuration file is generated on first-run
Here's an example with comments
[debug]
# Log all OSC messages from VRChat to stdout
enable = false
[osc]
# Address to listen for OSC messages
bind_addr = "0.0.0.0:9001"
# Address to send OSC messages
send_addr = "127.0.0.1:9000"
# You must create a Spotify Developer Application
# Follow the instructions on GitHub
# https://github.com/ShayBox/VRC-OSC/tree/master/plugin-spotify
[spotify]
# Spotify Client ID
client_id = ""
# Spotify Client Secret (Non-PKCE)
client_secret = ""
# Enable Spotify Plugin
enable = true
# Use Spotify PKCE authentication
# PKCE is the appropriate authentication method for a desktop program
# But it asks for in-browser oauth approval for already approved apps
# Non-PKCE requires a Client Secret but doesn't ask for approval
pkce = false
# Seconds between polling Spotify
# Default VRChat Chatbox Timeout is 30 seconds
polling = 10
# Spotify Redirect URI
redirect_uri = "http://127.0.0.1:2345"
# Spotify Refresh Token - Saved to reduce in-browser oauth approval
refresh_token = ""
# Only send one chatbox message per song change
send_once = false