Advanced VRChat Instance Monitoring & Moderation Tool
Real-time monitoring of VRChat instances with SQLite blocklist checking and multi-channel alerts (Desktop, Discord, Audio, VR Overlay).
- 🔍 Real-time Log Monitoring - Automatically detects player join/leave events
- 🚫 SQLite Blocklist System - Fast, indexed database with 86+ groups
- 🔄 Auto-updating Blocklists - Fetches updates from remote sources
- 🔔 Multi-Channel Alerts:
- Desktop notifications (Windows toast)
- Discord webhooks with rich embeds
- Audio alerts (FFmpeg)
- VR overlay (VRCX & XSOverlay)
- 🔐 Full 2FA Support - TOTP, OTP, Email verification
- 💾 Session Persistence - SQLite-based session storage
- 📦 Single Executable - Node.js SEA packaging
- Windows 10/11 (64-bit)
- VRChat installed and running
- VRChat Account with credentials
- Download the latest release from Releases
- Extract the archive
- Run
vrc-monitor.exe - Login when prompted (credentials saved for next time)
# The app will prompt you for:
Username: your_vrchat_username
Password: ********
2FA Code: 123456 # If 2FA enabledYour credentials and session are saved automatically. On subsequent runs, you'll be logged in instantly.
The app features an interactive command system. Once started, type commands at the prompt:
vrc-monitor> help # Show all available commands
vrc-monitor> test-alert # Test all notification channels
vrc-monitor> status # Show monitor status
vrc-monitor> quit # Exit the applicationAvailable Commands:
help- Show all commandstest-alert- Test all notification channels (Desktop, Discord, Audio, VR)status- Display monitor status and blocklist statsupdate-blocklist- Force update blocklist from remoteclear- Clear console screenrestart- Restart the monitorversion- Show app versionquit- Exit
See Commands Reference for detailed documentation.
Edit config.json to enable features:
{
"vrchat": {
"username": "", // Optional: pre-fill or leave empty to prompt
"password": ""
},
"notifications": {
"desktop": { "enabled": true, "sound": true },
"discord": { "enabled": false, "webhookUrl": "" },
"vrcx": { "enabled": false, "xsOverlay": false }
},
"audio": { "enabled": true, "volume": 0.5 },
"blocklist": {
"autoUpdate": true,
"remoteUrl": "https://example.com/blocklist.db",
"updateInterval": 60
}
}See Configuration Guide for all options.
- Interactive Commands - Command system reference
- Setup Guide - Installation, configuration, Discord webhooks, VR overlays
- Configuration Reference - All config options explained
- Blocklist Management - SQLite database schema and management
- Troubleshooting - Common issues and solutions
- Building from Source - Developer build instructions
- Monitors VRChat log files for player join events
- Fetches player's groups via VRChat API (cached)
- Checks against SQLite blocklist database
- Sends alerts to all enabled channels if matched
- Auto-updates blocklist periodically
- TypeScript 5.7 + Node.js 22+
- SQLite (better-sqlite3) - Blocklist & session storage
- vrchat@2.20.4 - Official VRChat API
- Node.js SEA - Single Executable Application
- Session issues: Delete
.cache/session.sqliteand re-login - Authentication failed: Verify credentials, check 2FA code
- No logs detected: Ensure VRChat is running and installed in default location
See Troubleshooting Guide for detailed solutions.
- Issues: GitHub Issues
- Documentation: See
docs/folder
- Complete TypeScript rewrite
- SQLite blocklist with auto-updates
- User blocklist checking (block individual users)
- Node.js SEA packaging
- VRChat API with session persistence
- Multi-channel notifications (Desktop, Discord, Audio, VR)
- VRCX & XSOverlay VR overlay integration
- Interactive command system
- Blocklist management web dashboard
- Built on VRChatMonitor
- vrchat@2.20.4 from vrchat.community
- better-sqlite3
- FFmpeg, SnoreToast
- Inspired by VRCX
MIT License - See LICENSE
VRChat Monitor is not endorsed by VRChat and does not reflect the views of VRChat Inc. Uses VRChat API in accordance with their Terms of Service.
Made with ❤️ for the VRChat community