A small desktop GUI for VRChat's avatar scaling OSC endpoints. Drag a slider, see your eye height update live, and get warnings when you ask for something the world or avatar won't allow.
- Weighted logarithmic slider for VRChat's full 0.01 m – 10 000 m range, tuned for finer control in the supported 0.1 m – 100 m range.
- Custom reset default saved locally, because VRChat OSC does not expose an avatar's original eye height.
- Live readouts of every scaling endpoint VRChat exposes:
/avatar/eyeheight/avatar/eyeheightmin/avatar/eyeheightmax/avatar/eyeheightscalingallowed
- Warnings when:
- the world or Udon has disabled scaling (writes will be ignored),
- the requested height is outside VRChat's officially supported 0.1 m – 100 m range,
- the requested height is outside custom world/Udon-configured min/max.
- OSCQuery integration so VRChat actively pushes current values on connect — readouts populate without waiting for an avatar change.
- Windows (the prebuilt EXE is Windows-only; the Python source runs anywhere Tk runs)
- Python 3.10+ if running from source
- VRChat with OSC enabled — Action Menu → Options → OSC → Enabled
Grab QuickVRCScaler.exe from the latest Release and double-click it. No install required.
git clone https://github.com/dtupper/QuickVRCScaler
cd QuickVRCScaler
pip install -r requirements.txt
python quickvrcscaler.pytinyoscquery is pulled directly from GitHub, so git must be on your PATH at install time.
- Launch VRChat with OSC enabled.
- Launch QuickVRCScaler.
- Drag the slider, type a value, or use Reset. The avatar's eye height updates live.
- Refresh forces a re-poll of the read-only endpoints (min/max/allowed) via OSCQuery.
Use the reset button's menu to save the current height as your local default.
The app sends to 127.0.0.1:9000 and listens on 127.0.0.1:9001 — VRChat's standard OSC ports.
Run the tests:
python -m unittest discover -s tests -vBuild a single-file EXE locally (matches what CI produces):
pip install pyinstaller
pyinstaller --onefile --windowed --name QuickVRCScaler \
--collect-all zeroconf --collect-all tinyoscquery \
quickvrcscaler.pyThe result lands in dist/QuickVRCScaler.exe.
Pushing a v* tag (e.g. git tag v0.1.0 && git push --tags) triggers CI to run tests, build the EXE, and attach it to a GitHub Release.
MIT