Skip to content

v2026.9.16.0-beta

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Sep 10:12
077ae95

VRCFaceTracking v2026.9.16.0-beta

What's Changed

Features

Bug Fixes

Changes

  • refactor(osc): replace the native fti_osc dll with a managed codec by RealWhyKnot in 8d7d895
  • refactor: Various fixes incl better async and deprecating need for module uninstall restart by benaclejames in 41d6350

Documentation

CI

  • ci: prefix dependabot commits and accept revert subjects by RealWhyKnot in 4e0de9f
  • ci(nightly): pass repo-specific paths to the beta gate by RealWhyKnot in 6b2a807
  • ci: use the shared changelog-append and nightly-beta workflows by RealWhyKnot in 67e151e
  • ci: use the shared resolve-tag action by RealWhyKnot in 038b86f
  • ci: use the shared commit-msg-check workflow by RealWhyKnot in f181d34
  • ci: fix up incorrect $(OS) identifier as we use Linux GH actions runners to build all versions now and these wouldn't work for Windows. Remove need for vcruntime too since we no longer use winui3 by benaclejames in 60b6c10
  • ci: Make AnyCPU actually build with AnyCPU by benaclejames in b453ee4

Chores

Other

  • style: fix indentation in the packet decoder by RealWhyKnot in 21b3057
  • Include avatarinfo in parameter reset call to allow parameters to make more intelligent decisions and maintain backwards compat with osc json def by benaclejames in fa3514f
  • Remove erroneous double parsing of legacy avatar definition. Dont send native when zero param list passed by benaclejames in c006dc5
  • avatarinfo parsing tweaks by benaclejames in 0ddb523
  • Fix up disposal in baseparameter, oscmessage, and binarybaseparameter by benaclejames in 9dc8f47
  • Fix up localizations by benaclejames in 32a6f50
  • Better conditionals for native=. Cleanup native definitions by benaclejames in 56e6849
  • Experimental approach to ditch 10hz update loop in favor of module reply packet based send quorum by benaclejames in 7d6fe87
  • Attempt to improve binary message send efficiency by benaclejames in 7d2ed42
  • Better osc blob handling. Refactor shared mem buffer in attempt to reduce stuttering. Rebuild fti_osc incl macos arm64 by benaclejames in 2f59bce
  • Adjust module image loader to support multiple images. Attempt to restore formatting from winui by benaclejames in bedc148
  • add padding to module search box. fixed bug with local module in which app would crash due to missing file. reinit modules after local module install by benaclejames in cee3183
  • module install from zip button and search by benaclejames in aa6a75b
  • update rust osc lib; add binary support by benaclejames in c141d07
  • Fix up usingeye usingexpression statuses. Clean up moduleprocess and unifiedlibmanager to separate out sandbox handling by benaclejames in 38ea184
  • Include missing openvr_api.dlls for win64/32 by benaclejames in 2cd8b97
  • Better view navigatedTo notification system. Fix issue on homepage where "no modules installed" would persist after install by benaclejames in ac59aa2
  • Module registry status representation tweaks. Reinitialize libmanager after module uninstall by benaclejames in 6b7f7f0
  • Fix up old namespaces. Clean up logging providers. Separate DI out between core and ui. by benaclejames in 508e5e8
  • Remove redundant module sandboxing fields. Double check for null on teardown. Fix up horizontal scroll bar in output page obscuring latest log line and utilize autohiding. Improve autoscroll reliability. by benaclejames in f1fc591
  • Attempt to speed up logging service and output page to avoid lockup upon log spam by benaclejames in 12f53a2
  • Update module registry install state on change by benaclejames in f91a4bf
  • Update gh action to support linux and diff branches by benaclejames in 021c437
  • Avalonia styling, converters, views & general swapping of all related code. Remove windows dependencies. Fix up various cross platform issues. First party linux support with associated libs. ARM build support. Consider ethernet frame size in udp max transfer unit. Implement (jank) chunking in sandboxclient senddata byte array instead of only ipcpacket by benaclejames in 959f4c5

Full Changelog: v2026.9.8.0-beta...v2026.9.16.0-beta

File integrity

  • VRCFaceTracking-2026.9.16.0-beta-win-x64.zip (92.37 MiB), SHA256 263c55344a222bf7b73deb1a09a4e3c5bbe4ce7e69f5c08f8251f186edd790fd
  • Hashes for every file in the zip are attached as VRCFaceTracking-2026.9.16.0-beta-win-x64.integrity.tsv.

More

Install (fresh)

  1. Download VRCFaceTracking-2026.9.16.0-beta-win-x64.zip from this release.
  2. Extract it anywhere except Program Files.
  3. Run VRCFaceTracking.exe. Install your tracking module from the Module Registry tab if you have not before.
  4. Launch VRChat with OSC enabled. The Home tab shows the module as active once it is receiving data.

Settings and installed modules live in %AppData%\VRCFaceTracking and are shared with the Steam build, so an existing setup carries over.

Uninstall

Close VRCFaceTracking and delete the extracted folder. Settings and modules stay in %AppData%\VRCFaceTracking and logs in %LocalAppData%\VRCFaceTracking\logs; delete those two folders too for a clean removal.

What you need to do

Fresh install: follow the install steps above. Existing installs are offered this update when the app starts; accept it and the app downloads, verifies and applies the zip, then restarts. You can also close the app and extract this zip over the old folder by hand.

Beta releases log verbosely by default. Stable releases log warnings and errors only; turn on verbose logging under Settings, Diagnostics before reproducing a problem. When reporting a bug, attach the newest vrcft_*.log and vrcft_module_*.log from the log folder (Settings, Diagnostics, Open folder).