OscRecvService and OscQueryService use DestinationAddress to construct the receive endpoint, but OscRecvService.UpdateTarget rejects any address other than 127.0.0.1:
Cannot bind to non-loopback IP
The _osc._udp advertisement is also hardcoded to 127.0.0.1, regardless of the configured address.
Observed Behavior
With the OSC Address set to my PC's LAN IP, outgoing face tracking works, but switching avatars does not update VRCFT's avatar information or parameters.
Tested on Windows with both apps on the same PC and a local VRCFT build based on commit 6432e6a.
Local Workaround
I modified the VRCFT source locally and rebuilt it with the following changes:
- Removed the loopback-only check in
OscRecvService.UpdateTarget to allow binding to the PC's LAN IP.
- Changed the
_osc._udp advertisement to use the actual receive endpoint address.
- Kept the configured receive port for LAN addresses instead of switching to a dynamically assigned port.
With this modified build, Receive Port set to 9001, and VRChat launched with the following option, avatar switching worked:
--osc=9000:<PC-LAN-IP>:9001
OSCQuery connection errors remained; the explicit OSC output path worked.
If there is no specific reason to restrict receiving to localhost, I think this should be updated to support the configured local address and advertise the matching receive endpoint.
OscRecvServiceandOscQueryServiceuseDestinationAddressto construct the receive endpoint, butOscRecvService.UpdateTargetrejects any address other than127.0.0.1:The
_osc._udpadvertisement is also hardcoded to127.0.0.1, regardless of the configured address.Observed Behavior
With the OSC Address set to my PC's LAN IP, outgoing face tracking works, but switching avatars does not update VRCFT's avatar information or parameters.
Tested on Windows with both apps on the same PC and a local VRCFT build based on commit
6432e6a.Local Workaround
I modified the VRCFT source locally and rebuilt it with the following changes:
OscRecvService.UpdateTargetto allow binding to the PC's LAN IP._osc._udpadvertisement to use the actual receive endpoint address.With this modified build, Receive Port set to
9001, and VRChat launched with the following option, avatar switching worked:OSCQuery connection errors remained; the explicit OSC output path worked.
If there is no specific reason to restrict receiving to localhost, I think this should be updated to support the configured local address and advertise the matching receive endpoint.