Skip to main content
Version: Current (v5.0)

VRCFaceTracking Program

VRChat has no native face tracking integration, which means there must be an intermediary software accessing face tracking data from the hardware source then sending it to VRC via OSC as avatar parameters. VRCFaceTracking fulfills this intermediary role, not only reading data and repackaging it as OSC messages for VRChat, but morphing the input data into its own unified face tracking standard, thus acting as a Roseta Stone between face tracking hardware and VRChat avatars. VRCFaceTracking works by the concept of "modules", which are add-on files that let the program access eye and face tracking data from different sources.

Install VRCFaceTracking


VRCFaceTracking Unified Expressions Update has been released! Comes with brand new UI, installer with auto-updater, and more.

VRCFaceTracking AppInstaller's image

VRCFaceTracking AppInstaller

Get the latest Release lightweight Windows AppInstaller, just run and install!

Don't want to use the Windows AppInstaller? Visit the latest release page for the MSIX, or install via Winget

winget install BenacleJames.VRCFaceTracking

Using VRCFaceTracking

VRCFaceTracking has its functionality spread across a few tabs


In the home view, you will find the most important "at-a-glance" information when using VRCFaceTracking:

  • The currently initialized module(s)
    • Tracking toggle
  • OSC Status
    • Listening and Sending ports
    • Number of OSC messages incoming from VRChat, and number of OSC messages sent to VRChat
  • VRChat Avatar Status
    • Avatar name and ID
    • Number of loaded VRCFT-compatible parameters

The currently initialized modules section will display the name of the module as well as an image of the related module hardware/software. Outside of a valid initialized module, it may also inform the user that there are no modules installed, no modules loaded, or that a module is currently initializing. The "Toggle Tracking" button on the right controls the receiving of tracking data from the module (grey = off, system highlight color = on).

VRCFT Home view with SRanipal module initialized and avatar active in VRChat

Successful initialization of the SRanipal module. Note that other modules will initialize with their respective name and related hardware image(s)


The Output page is a live view of the logs generated by VRCFT in a scrollable window, and will contain messages from basically every internal part of the program. Messages about module initialization and teardown, avatar changes and detected parameters, and more will be kept here for reference. At the top, you will find two buttons for copying or saving the output log to a text file, respectively. This output is invaluable if you are debugging or asking for help with something that seems wrong with your VRCFaceTracking program.


Note that upon a crash, VRCFaceTracking should automatically save the output log to a file called latest.log in the ...\AppData\Roaming\VRCFaceTracking directory. This latest.log also includes more details than regularly displayed in the log window as it contains the Debug scope. If VRCFT is crashing for whatever reason, you will want to include this in your support post!

VRCFT Output

Module Registry

In the Module Registry page, you will find a list of avaliable tracking modules to download and install. Simply select the module for the headset or hardware you wish to use, and click the Install button. The selected module will display the module author information, total downloads, module source link, and more. You can even rate the module out of 5 stars ⭐⭐⭐⭐⭐ to help other users get an idea of what the community thinks of the module!

VRCFT Module Registry


In the settings tab, you can adjust options relating to the overall look and function of the VRCFaceTracking application, in addition to accessing the Risky Functions. You will also find the version number that you are running at the bottom.

VRCFT Settings with Risky Functions dropdown opened

Change App Theme

You can set the app to use light or dark modes, or follow your system setting (default).

Changing the OSC IP and Ports

You can now easily change the OSC address and input/output ports by adjusting the values in the GUI. Typically, you will not need to adjust these from the defaults. If you are trying to use multiple OSC applications for VRChat (i.e. bHaptics and VRCFaceTracking) and need to use an OSC router such as VRChat OSC Router, you will find this setting essential!

Risky Functions

The Risky functions allows you to perform certain diagnostics and utility functions. So far, we have four functions available to use:

  1. Force Relevancy Force relevancy essentially forces every parameter to be relevant regardless of your currently equipped avatar (excluding binary params as we don't know how many bits to use). This is potentially useful to test if VRChat is even receiving the parameters as it works independently of the avatar loaded. This means you can finally use VRCFT on test avatars as this mode doesn't require a config file to be present!

  2. Force Re-Initialize This is a reimplementation of an old feature from VRCFT 4.0, it allows you to force VRCFT to re-initialize all modules in case an issue has occured at runtime. You'll get mixed results as most modules and tracking runtimes don't particularly want you doing this, but better than nothing!

  3. Reset VRCFT This button will create a file named "reset" in the VRCFT persistent data directory which, upon reload, will cause VRCFT to wipe it's data directory and start fresh. This will wipe modules, settings, configs, and any other data in that folder. Use wisely.

  4. Reset VRChat Configs This is a quick way of clearing out your VRChat avatar osc config directory if (for whatever reason) the in-game reset config button doesn't work. This isn't a particularly destructive action as the files are regenerated on avatar load, though could be a pain if you've made manual modifications to files in that directory.

Resetting VRChat OSC Configs

Because of the sheer number of possible face tracking parameter configurations, VRCFaceTracking does not blindly send OSC messages for every possible parameter. Until VRChat releases the "OSC Query" update, which is currently in closed beta, VRCFaceTracking will rely on the static OSC config .json generated for each avatar to know what parameters to send. This configuration file is never updated automatically, it must be reset manually to force VRC to generate an up-to-date version or manually edited yourself.

There are three ways to reset configs:

1️ Using the OSC Radial Menu (In-game)
  1. While in VRC, open the Radial Menu
  2. Navigate to Options -> OSC
  3. Toggle the "Reset OSC Config" option. Setting this will cause an avatar refresh and hopefully reset the current avatar's OSC config .json
2️ Use VRCFaceTracking's "Reset VRChat Configs" Risky Function
  1. Open VRCFaceTracking and navigate to the Settings page
  2. Enable the "Risky Settings" toggle then expand the list of "Risky Settings"
  3. Click the "Reset" button for "Reset VRChat Configs". Note that this will delete all OSC config .json files for every avatar
3️ Deleting the config .json files manually
  1. Navigate to your AppData folder. You can get to AppData\Roaming by typing %appdata% into the search bar in the Windows Start Menu, or in the address bar of any Explorer window.
  2. Go to ...\AppData\LocalLow\VRChat\VRChat\ and delete the OSC folder.
  3. Restart VRC or refresh your avatar (by resetting or swapping avatar)

Common Problems and How to Solve Them

  • VRCFaceTracking isn't starting at all

    • Cause: There is some invalid file in the VRCFaceTracking appdata location, and it's preventing the program from starting up.
    • Solution: Try manually clearing the ...\AppData\Roaming\VRCFaceTracking folder and deleting everything.
  • VRCFaceTracking is crashing when I join a world / change avatars

    • Cause: VRCFaceTracking failed to parse an invalid avatar OSC config.
    • Solution: Clear out your VRChat Avatar OSC folder. Follow option 2 or 3 in resetting OSC config
  • My personally uploaded Avatar loads 0 parameters!

    • Cause: Your avatar either doesn't have face tracking parameters, or is using an old OSC config that didn't have the face tracking parameters.
    • Solution: Follow resetting OSC config. If completely clearing the OSC configs still results in loading 0 parameters, the avatar does not use VRCFT-compatible parameters.

Don't see your problem here? Make sure to check the page(s) specific to your hardware or module. If you still cannot find an answer to your specific problem, create a help request in the #setup-help-forum in the Discord. If you find a bug specific to the VRCFT5.0 program, file an issue at the GitHub and / or post about it in the #vrcft-v5-feedback