Multi-game companion server for VRChat, ChilloutVR, and more.
- Multi-Game Support: VRChat (PC/Quest), ChilloutVR
- Game Log Monitoring: Real-time log file parsing with platform-specific path support
- OSC Integration: Full OSC support with router and client modes
- Plugin System: Permission-based plugin architecture for extensibility
- Multiple Storage Backends: SQLite, JSON, MySQL/MariaDB, MongoDB
- REST API: Full-featured HTTP API for all operations
- WebSocket: Real-time event streaming
- Localization: Multi-language support (i18n)
- VRChat API Integration: Complete VRChat API wrapper
- VRCX Import: Import existing VRCX databases
npm installCopy .env.example to .env and configure:
cp .env.example .envKey configuration options:
STORAGE_TYPE: sqlite | json | mysql | mongodbOSC_ENABLED: Enable OSC supportOSC_ROUTER_MODE: Enable OSC router functionality- Game log paths (auto-detected by default)
npm run devnpm run build
npm startGET /health- Health checkGET /api- API info/api/users- User management/api/worlds- World data/api/avatars- Avatar data/api/settings- Settings management/api/plugins- Plugin management/api/import- Data import
socket.emit("subscribe:game-events", "vrchat");
socket.emit("subscribe:osc");
socket.emit("subscribe:plugins");game-event- Game events (player joined, location change, etc.)osc-message- OSC messagesplugin:enabled- Plugin enabledplugin:disabled- Plugin disabled
Plugins must follow this structure:
export default {
async init() {
// Initialize plugin
},
async shutdown() {
// Clean up
},
};Plugin permissions are declared in the database:
{
"files": {
"/path/to/file": { "access": "rw", "reason": "Need to read config" }
},
"network": {
"https://api.example.com/*": { "access": "rw", "reason": "API access" }
}
}MIT