# VRCX [![GitHub Workflow Status](https://github.com/pypy-vrc/VRCX/actions/workflows/github_actions.yml/badge.svg)](https://github.com/pypy-vrc/VRCX/actions/workflows/github_actions.yml) [![VRCX Discord Invite](https://img.shields.io/discord/854071236363550763?color=%237289DA&logo=discord&logoColor=white)](https://vrcx.pypy.moe/discord) VRCX is an assistant application for VRChat that provides information about and managing friendship. This application uses the unofficial VRChat API (VRCSDK). VRCX isn't endorsed by VRChat and doesn't reflect the views or opinions of VRChat or anyone officially involved in producing or managing VRChat. VRChat is trademark of VRChat Inc. VRChat © VRChat Inc. pypy & Natsumi are not responsible for any problems caused by VRCX. **_Use at your own risk!_** ## How to install VRCX - Download latest release setup from [here](https://github.com/pypy-vrc/VRCX/releases/latest). - Run `VRCX_Setup.exe`. ## Is VRCX against VRChat ToS? **TL;DR:** no. _VRChat's official stance on usage of the API, as listed in their Discord #faq channel._ ![vrchat api](https://user-images.githubusercontent.com/11171153/114227156-b559c400-99c8-11eb-9df6-ee6615b8118e.png) # Screenshots ### Login ![login](https://user-images.githubusercontent.com/82102170/178106023-6ae98d45-0cc8-4174-baf9-4e6188082853.png) ![2fa](https://user-images.githubusercontent.com/82102170/178106050-975072a4-766a-4b00-8ebb-2ba829f1506b.png) ### Feed ![01feed](https://user-images.githubusercontent.com/82102170/178106390-644e34b1-76cd-4f44-811a-ed05c7ff60b8.png) ### GameLog ![02gamelog](https://user-images.githubusercontent.com/82102170/178106694-29ff1659-7050-43a1-ae54-b9e1171145ac.png) ### UserInfo ![03search](https://user-images.githubusercontent.com/82102170/178106833-68d5584e-3cf6-4ffb-9ef1-19c359915e82.png) ![note](https://user-images.githubusercontent.com/82102170/178106941-36960e75-e0ac-489a-975e-bf47824911a4.png) ### World ![09w1](https://user-images.githubusercontent.com/82102170/178107058-7eb833d0-7a37-4780-a654-5e002e3cc95f.png) ![09w2](https://user-images.githubusercontent.com/82102170/178107085-0815d23b-fb3c-4434-b57a-cce9ac524e00.png) ### Favorite ![04favavatar](https://user-images.githubusercontent.com/82102170/178107292-ec8691e8-657b-4266-9780-7027437483af.png) ![04favworld](https://user-images.githubusercontent.com/82102170/178107326-63b9d1bc-93e1-47d1-bb32-e77244ca961b.png) ![04favuser](https://user-images.githubusercontent.com/82102170/178107414-f2371c29-89d7-4155-9053-7cebf3ad2bd6.png) ### FriendsLog ![05fr](https://user-images.githubusercontent.com/82102170/178107611-191b272f-1640-401c-b553-bc0cf7a8cfa0.png) ### Moderation ![06mo](https://user-images.githubusercontent.com/82102170/178107715-59d1d35f-595e-4cc0-8c1d-4142f9d49635.png) ### Notification ![07no](https://user-images.githubusercontent.com/82102170/178107869-f8292dce-6d3f-4d5a-89f5-f4bc11ac943d.png) ### PlayerList ![10playerlist](https://user-images.githubusercontent.com/82102170/178107947-dc153a6e-c553-48f9-bc86-45b45a7de86e.png) ### Settings ![08op1](https://user-images.githubusercontent.com/82102170/178108340-9da1fd80-71e6-4c69-b210-f28f3f259fe1.png) ![08op2](https://user-images.githubusercontent.com/82102170/178108364-32f79f72-005c-45da-b8f1-20dd77443a6a.png) ![08op3](https://user-images.githubusercontent.com/82102170/178108373-930c36ea-78e7-4f32-ab85-59f934fb3297.png) ![08op4](https://user-images.githubusercontent.com/82102170/178108383-2165fef6-293d-44a9-8f39-7e007939f7e4.png) ![08op5](https://user-images.githubusercontent.com/82102170/178108402-d921c47e-b581-4b9b-8b6f-fa553d4d34de.png) ![08op6](https://user-images.githubusercontent.com/82102170/178109408-42d5106d-b68f-4201-918b-6aaf648e19a3.png) ### Join ![join](https://user-images.githubusercontent.com/82102170/178108718-a75d2371-c46f-45e4-aa75-558b10211f46.png) ### NewInstance ![newin](https://user-images.githubusercontent.com/82102170/178108739-858033d4-435c-4b13-be60-b3111e57f72a.png) ### Discord Rich Presence ![dis](https://user-images.githubusercontent.com/82102170/178109155-7888e67a-c02d-4732-aebb-4fceb162984d.png) ### VR Overlay ![overlay1](https://user-images.githubusercontent.com/82102170/178281800-af4c69da-a0f5-43d8-9515-e960e1a16b39.png) ![overlay2](https://user-images.githubusercontent.com/82102170/178281884-ea1df88c-f16c-4c83-825c-c285f49b1ff1.png) ## Themes To install a theme place `custom.css` into your `%AppData%\VRCX` folder then press `Shift + Alt + R`. [Dark Vanilla](https://github.com/MintLily/Dark-Vanilla/tree/main/VRCX) by [MintLily](https://github.com/MintLily) ![dark-vanilla](https://user-images.githubusercontent.com/11171153/190136499-13ab2fe3-9fed-4b45-a764-e8665993d994.png) [Pink Theme](https://github.com/kamiya10/VRCX-theme/tree/main/pink) by [Kamiya](https://github.com/kamiya10) ![pink-theme](https://user-images.githubusercontent.com/11171153/190136121-4d6ba6e5-4a04-43b2-8264-0325c858f2d8.png) [Material 3](https://kamiya.tk/VRCX/themes/m3/m3) by [Kamiya](https://github.com/kamiya10) ![material-3](https://user-images.githubusercontent.com/11171153/190136730-65268fac-1dab-4528-813c-b4d5e5e86f7d.png) ## VRCX launch parameters - `--debug` launch Chromium DevTools with VRCX. - `--config="C:\VRCX.sqlite3"` set a custom path for VRCX database. - `vrcx://user/usr_id` open VRCX user dialog. - `vrcx://avatar/avtr_id` open VRCX avatar dialog. - `vrcx://world/wrld_id` open VRCX world dialog. - `vrcx://world/wrld_id:12345` open VRCX world dialog with instance. - `vrcx://world/https://vrch.at/0gmbxjpj` open VRCX world dialog with unlocked instance. - `vrcx://import/avatar/avtr_id,avtr_id...` open VRCX avatar favorites import dialog. - `vrcx://import/world/wrld_id,wrld_id...` open VRCX world favorites import dialog. - `vrcx://import/friend/usr_id,usr_id...` open VRCX friend favorites import dialog. - `vrcx://addavatardb/https://website/vrcx_search.php` open VRCX remote avatar database provider dialog. ## Keyboard shortcuts - `Ctrl + Shift + I` open Chromium DevTools. - `Ctrl + R` restart VRCX. - `Shift + Alt + R` reload custom css. ## Common issues ### **VRCX opens to a white screen** This can be caused by a few different things here's some things to try: - Install [Microsoft Visual C++ Redistributable 2019](https://aka.ms/vs/17/release/vc_redist.x64.exe). - Reboot your computer, maybe another process is trying to read the database file. - Disable antivirus software, Avast and AVG are known to delete Cef/VRCX. - Test a fresh database, first close VRCX then backup your current database by opening `%AppData%\VRCX\` and renaming `VRCX.sqlite3` to something like `Backup.sqlite3`, if this solves it but you'd like to still keep your data follow the steps bellow on how to repair your database. ### **SteamVR Overlay not working** - Disable SteamVR safe mode. - If your computer has an iGPU follow these [steps](https://www.windowsdigitals.com/force-chrome-firefox-game-to-use-nvidia-gpu-integrated-graphics/). ### **How to repair VRCX database** - Close VRCX. - Install [DB Browser for SQLite](https://sqlitebrowser.org/). - File > Open Database... - Browse to `%AppData%\VRCX\` then select `VRCX.sqlite3`. - File > Export > Database to SQL file... - Click Save and place the file somewhere. - Rename `VRCX.sqlite3` in `%AppData%\VRCX\` to something like `Backup.sqlite3`. - File > Import > Database from SQL file... - Click Yes to creating a new database. - Save it in `%AppData%\VRCX\` as `VRCX.sqlite3`. - File > Write Changes. - Close DB Browser and delete the no longer needed `*.sql` export file. ## How to run VRCX on Linux Guide made by [RinLovesYou](https://github.com/RinLovesYou) - Installing Wine - Arch Linux: Wine can be installed by enabling the [multilib](https://wiki.archlinux.org/title/Multilib) repository and running `sudo pacman -S wine` - Ubuntu: Please refer to the [wiki](https://wiki.winehq.org/Ubuntu) - Winetricks Magic > It is imperative that you are using Wine 7.0rc5 or later! this has not been tested on earlier versions. Wine 7.0 Finally allows for full installation of the .net framework, which is needed for VRCX to function. - Start over with a clean wine prefix. Either create one for VRCX or `rm -rf ~/.wine` and use the main prefix. - `winetricks --force dotnet472` yes, you'll have to sit through all of the installers (there's a lot of them). - `winetricks corefonts` - `winetricks winecfg` - Set it to Windows 10 for good measure, you should just be able to run `wine VRCX.exe` now. Should you get an error about CEFSharp, you can try wine `VRCX.exe -no-cef-sandbox` - Notes - VRCX on Linux is known to have a nasty memory leak so keep an eye on memory usage or restart it frequently. - If you have a laptop that uses hardware muxing with an Intel iGPU you'll need to set your graphics device in `nvidia-settings` to only the NVIDIA GPU. ![image](https://camo.githubusercontent.com/ed672a01defae989c4bf5963c0cc9db973b42203e1e5e927f3341c6a9115beb8/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f3835343037313233363336333535303736362f3933353531333532313839373233343435322f756e6b6e6f776e2e706e67) ## How to build VRCX from source - Get source code - Download latest source code [zip](https://github.com/pypy-vrc/VRCX/archive/master.zip) or clone repo with `git clone`. - Build .NET - Install [Visual Studio](https://visualstudio.microsoft.com/) if it's not already installed. - In Visual Studio "Open Project/Solution" and browse to the [Solution file](https://docs.microsoft.com/en-us/visualstudio/extensibility/internals/solution-dot-sln-file) provided inside the downloaded source code. - Set [Configuration](https://docs.microsoft.com/en-us/visualstudio/ide/understanding-build-configurations?view=vs-2019) to `Release` and Platform to `x64` - Restore [NuGet](https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio) packages. - [Build](https://docs.microsoft.com/en-us/visualstudio/ide/building-and-cleaning-projects-and-solutions-in-visual-studio) Solution. - Build Node.js - Download and install [Node.js](https://nodejs.org/en/download/). - Run `build-node.js.cmd`. - Run `make-junction.cmd`. - Create release zip - Run `make-zip.cmd` for [Bandizip](https://www.bandisoft.com/bandizip) or `make-zip-7z.cmd` for [7-Zip](https://www.7-zip.org).