Debug Menu: Difference between revisions

From VRChat Wiki
jetdog8808 (talk | contribs)
mNo edit summary
Hackebein (talk | contribs)
Testing with multiple clients
 
(25 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Noticebox/official}}{{Stub|debug key's needing documentation}}<span id="debug-menus"></span>
{{Noticebox/Official}}
= Debug Menus=
[[File:World Debug Menu 1.png|thumb|300x300px|Screenshot of AssetBundles / Memory debug UI tab]]
<span id="world-debug-console"></span>
The '''Debug Menu''' consists of multiple menus and consoles which are windows within the [[Special:MyLanguage/VRChat|VRChat]] client that display various pools of data, and are used for troubleshooting. There are different debugging windows for [[Special:MyLanguage/Worlds|Worlds]], [[Special:MyLanguage/Avatars|Avatars]], and even [[Special:MyLanguage/Open Sound Control|OSC]].
==World Debug Console==


This console is used to debug your worlds in-game.
==Avatar Debug Console==
 
The Avatar Debug Console displays information about your current avatar's animator, and other settings. This console can be found in the [[Special:MyLanguage/Action Menu|Action Menu]] in <code>Options &gt; Avatar &gt; Debug</code>. To scroll up and down you can press <code>Page Up</code>, and <code>Page Down</code> on desktop.
 
*Left column: Lists the avatars parameters.
**'''Parameter''': Name of the parameter.
**'''Type''': What variable type the parameter is. Available types are Bool, Float, and Int.
**'''Value''': Their current value.
*Center column: Contains 3 sections. 
**'''Tracking control''': Shows if the parts of the avatars body has IK enabled or disabled.
***'''Name''': Name of the avatars body part.
***'''Value''': What type of tracking its using. Either tracking the Ik, or an animation.
**'''Animation Controllers''': Shows the current weight of the avatars Playable Layers.
**'''Miscellaneous''':
*Right column: Lists all the layers for each Playable Layer and their current weight and state.<span id="avatar-dynamics-overlay"></span>
 
==Avatar Dynamics Overlay==
 
These options allow you to visualize Avatar Dynamics features like PhysBones, and Contacts. These options can be found in the [[Special:MyLanguage/Action Menu|Action Menu]] in <code>Options &gt; Avatar &gt; Avatar Overlay</code>
 
*'''None''': Turns off all the Overlays.
*'''PhysBones Proximity''': Visualizes PhysBones near your hands.
*'''PhysBones''': Visualizes PhysBones on all avatars.
*'''Contacts''': Shows all contacts on avatar and their current contact state.
 
See also, '''VRChat Learning Channel's''' [https://www.youtube.com/watch?v=8hqDquZWvhY Avatar Dynamics Debugging Overlay Demonstration] on ''YouTube''.<span id="osc-debug-console"></span>
 
==OSC Debug Console==
[[File:Osc debug.png|thumb|Screenshot of OSC debug console.]]
Displays incoming OSC messages to VRChat, and their values. The OSC console can be found in the [[Special:MyLanguage/Action Menu|Action Menu]] in <code>Options &gt; OSC &gt; OSC Debug</code>. To scroll up and down, you can press <code>Page Up</code>, and <code>Page Down</code> on desktop, or use the scroll bar in VR mode. See also VRChat's [https://docs.vrchat.com/docs/osc-debugging| OSC Debugging page].


*In order to access you must add the launch parameter <code>--enable-debug-gui</code>.
==World Debug Menus==
* Press <code>Rshift + Tilde + 1-9</code> with the number corresponding to the menu number you want.<span id="debug-menu-1"></span>
{{Noticebox/Update|type=section|Images and information such as using launch options to access are outdated.}}
===Debug Menu 1 ===


Debug menu 1 displays information about your connection to the VRChat API.
This menu is used to debug your worlds in-game. The Debug UI can be opened by:
 
*Pressing the <code>Toggle Debug UI</code> button in the Debug section of the Quick Menu settings page.
*Press <code>Right Shift + Tilde (~) + 1-9</code> with the number corresponding to the menu number <span id="debug-menu-1"></span>you want. On non-QWERTY keyboard layouts (such as French AZERTY), the key combination uses the same ''physical'' key positions, regardless of the key labels or system language. It must be the Right Shift key specifically, not the Left Shift key.
 
Some tabs of the Debug UI can only be accessed if the world has World Debugging enabled in its world's settings. By default, only the creator of the world can access these menus.
 
More information can be accessed at {{VRC link|https://creators.vrchat.com/worlds/udon/world-debug-views|World Debug View}} on ''creators.vrchat.com''.
 
===AssetBundles / Memory===
 
AssetBundles / Memory or Debug Menu 1 displays information about loaded assets.
[[File:World Debug Menu 1.png|none|thumb|Screenshot of World Debug Menu 1]]
[[File:World Debug Menu 1.png|none|thumb|Screenshot of World Debug Menu 1]]


=== Debug Menu 2===
===Version & Info===
Debug menu 2 displays information about the build of VRChat you are using, also shows your fps.
Version & Info or Debug Menu 2 is default page and displays information about the build of VRChat you are using, and explains the Debug Menu.
[[File:World Debug Menu 2.png|none|thumb|Screenshot of World Debug Menu 2]]
[[File:World Debug Menu 2.png|none|thumb|Screenshot of World Debug Menu 2]]


===Debug Menu 3 ===
===Log Viewer===
 
Log Viewer or Debug Menu 3 displays your output log. Hold <code>Tab</code> to activate the mouse cursor so you can use the buttons at the top as well as scroll the log output.
Debug menu 3 displays your output log.


For additional information you can use two launch parameters.
For additional information, you can use two launch parameters, if you're using VRChat on Steam or SteamVR: 


*<code>--enable-sdk-log-levels</code>
*<code>--enable-sdk-log-levels</code>
Line 27: Line 64:
[[File:World Debug Menu 3.png|none|thumb|Screenshot of World Debug Menu 3]]
[[File:World Debug Menu 3.png|none|thumb|Screenshot of World Debug Menu 3]]


===Debug Menu 4===
===Players===
Players or Debug Menu 4 displays stats about players.


Debug menu 4 displays stats about users.
*'''M''': Whether or not the player is the master of the instance
*'''L''': Whether or not the player is the local player
*'''VR''': Whether or not the player is in VR
*'''Group''': The current group that the player is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
*'''Ping''': The player's ping
*'''Intrvl''': The amount of time between the player sending synced data about themselves.
*'''D''': The current delay.<span id="debug-menu-5"></span>


*M: Whether or not the user is the master of the instance
*L: Whether or not the user is the local player
*VR: Whether or not the user is in VR
* Group: The current group that the user is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
*Ping: The user's ping
*Intrvl: The amount of time between the user sending synced data about themselves.
*D: The current delay.<span id="debug-menu-5"></span>
[[File:World Debug Menu 4.png|none|thumb|Screenshot of World Debug Menu 4]]
[[File:World Debug Menu 4.png|none|thumb|Screenshot of World Debug Menu 4]]


===Debug Menu 5===
===Debug Menu 5===
 
Debug Menu 5 displays graphs related to networking. World Debugging must be enabled.
Debug menu 5 displays graphs related to networking.
[[File:World Debug Menu 5.png|none|thumb|Screenshot of World Debug Menu 5]]
[[File:World Debug Menu 5.png|none|thumb|Screenshot of World Debug Menu 5]]


{{Noticebox|Warning-icon-png-2749.png|World debugging menus after 5 are restricted.|By default, only the creator of the world can access these menus. However the world creator can allow others to see them by enabling World Debugging in the world's settings on the website.|size=24px|border=#F8CC3A|border-width=2px|background=#F5EFDC|textcolor=#000022}}
===Net Objects===
Net Objects or Debug Menu 6 displays all networked objects in the world. Showing networking stats of that object sorted from the highest networking impact to least. World Debugging must be enabled.


===Debug Menu 6===
*'''Name''': GameObjects name.
 
*'''Owner''': The PlayerID of the owner of the object.
Debug menu 6 displays all networked objects in the world. Showing networking stats of that object.
*'''Group''': The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
 
*'''Sleeping''': Whether or not the object is sleeping. Only objects with VRCObjectSync can sleep. Sleeping causes the object to stop transmitting data.
*Name: GameObjects name.
* '''Delay''': The current delay of this object between the owner and the viewer.
* Owner: The playerid of the owner of the object.
*'''Size''': The current number of bytes per serialization of this object. Every time it needs to sync, it will send this many bytes.
*Group: The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
* '''Bps''': A rough approximation of how many bytes per second this object is using up.
*Sleeping: Whether or not the object is sleeping. Only objects with VRCObjectSync can sleep. Sleeping causes the object to stop transmitting data.
*'''Since Last''': A running counter of how long it has been since the last time this object has sent data.
*Delay: The current delay of this object between the owner and the viewer.
*'''Interval''': A rough approximation of how many times this object tries to sync per second.<span id="debug-menu-7"></span>
*Size: The current number of bytes per serialization of this object. Every time it needs to sync, it will send this many bytes.
*Bps: A rough approximation of how many bytes per second this object is using up.
*Since Last: A running counter of how long it has been since the last time this object has sent data.
*Interval: A rough approximation of how many times this object tries to sync per second.<span id="debug-menu-7"></span>
[[File:World Debug Menu 6.png|none|thumb|Screenshot of World Debug Menu 6]]
[[File:World Debug Menu 6.png|none|thumb|Screenshot of World Debug Menu 6]]


===Debug Menu 7<!-- currently not displaying anything will need to check with devs. -->===
===Debug Menu 7 ===
Debug Menu 7 highlights all the PhysBones and Contacts in the world, similar to the Avatar Dynamics Overlay. World Debugging must be enabled.
[[File:World-debug-view-7.webp|none|thumb|Screenshot of World Debug Menu 7]]


Debug menu 7 displays the same information as 6, but sorts the objects from highest networking impact to least.<span id="debug-menu-8"></span>
===Debug Menu 8===
===Debug Menu 8===
Debug Menu 8 displays a panel on top of every synced object in the world. Each panel displays stats about that object. World Debugging must be enabled.


Debug menu 8 displays a panel on top of every synced object in the world. Each panel displays stats about that object.
*'''P''': Ping of the owner
 
*'''Q''': Quality of the data (100% is no dropped packets)
*P: Ping of the owner
*'''O''': PlayerID of the owner of the object
*Q: Quality of the data (100% is no dropped packets)
*'''G''': The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
*O: PlayerID of the owner of the object
*'''Held''': Whether or not this object is held, if it is a pickup
*G: The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
*'''Status''': Displays various things about what this object is doing, such as <code>Should Sleep</code>, <code>Player</code>, <code>Held</code>, or <code>Discontinuity</code><span id="debug-menu-9"></span>
*Held: Whether or not this object is held, if it is a pickup
*Status: Displays various things about what this object is doing, such as <code>Should Sleep</code>, <code>Player</code>, <code>Held</code>, or <code>Discontinuity</code><span id="debug-menu-9"></span>
[[File:World Debug Menu 8.png|none|thumb|Screenshot of World Debug Menu 8]]
[[File:World Debug Menu 8.png|none|thumb|Screenshot of World Debug Menu 8]]


===Debug Menu 9===
===Debug Menu 9===
Debug Menu 9 displays a panel near players to display their networking stats. World Debugging must be enabled.
[[File:World Debug Menu 9.png|none|thumb|Screenshot of World Debug Menu 9]]


Debug menu 9 displays a panel near users to display their networking stats.
===Performance===
[[File:World Debug Menu 9.png|none|thumb|Screenshot of World Debug Menu 9]]
The Performance tab displays selected performance graphs and allows saving them to disk. This menu has no keybind.
[[File:World Debug Menu Performance.png|none|thumb|Screenshot of World Debug Menu Performance]]


==Avatar Debug Console==
===Audio Sources===
The Audio Sources tab displays all audio sources in the scene. It includes information such as source names, types, playback state, distance from the user, Steam Audio near-field enhancement details, audio conversion state, and perspective correction data. This tab is only viewable if the world has the World Debugging setting enabled.


Displays information about your currently warn avatar's animator, and other settings. This Console can be found in the [[Action Menu]] in <code>Options&gt;Avatar&gt;Debug</code> To navigated up and down you can press <code>Page Up</code> to scroll up, and <code>Page Down</code> to scroll down.
==Testing with multiple clients==
Creators commonly test worlds and avatars by running multiple VRChat clients simultaneously, each logged into a different account. This is an allowed practice among world and avatar creators.


*Left column: lists the avatars parameters.
To launch a second VRChat client on a separate account, create a shortcut to the VRChat executable (for example, located at <code>steamapps\common\VRChat\VRChat.exe</code>) and add the <code>--profile=2</code> [[Launch Options|launch option]]. The <code>--profile</code> flag stores credentials separately, so each profile only requires logging in once. Common launch options for a testing client include:
**Parameter: name of the parameter.
**Type: What variable type the parameter is. Available types are Bool, Float, and Int.
**Value: Their current value.
*Center column: contains 3 sections.
**Tracking control: shows if the parts of the avatars body has IK enabled or disabled.
***Name: name of the avatars body part.
***Value: what type of tracking its using. Either tracking the Ik, or an animation.
**Animation Controllers: Shows the current weight of the avatars Playable Layers.
**Miscellaneous:
*Right column: Lists all the layers for each Playable Layer and their current weight and state.<span id="avatar-dynamics-overlay"></span>
==Avatar Dynamics Overlay==


These options allow you to visualize Avatar Dynamics features like PhysBones, and Contacts. These options can be found in the [[Action Menu]] in <code>Options&gt;Avatar&gt;Avatar Overlay</code>
<code>--no-vr --profile=2 --enable-debug-gui --enable-sdk-log-levels --enable-udon-debug-logging</code>


* None: Turns off all the Overlays.
Building a world with 0 clients in the SDK build panel causes any already-running test clients to reload the world without launching a new client.
*Physbones Proximity: visualizes Physbones near your hands.
*Physbones: visualizes Physbones on all avatars.
*Contacts: shows all contacts on avatar and their current contact state.


[https://www.youtube.com/watch?v=8hqDquZWvhY Video example]
When testing avatar visual consistency (such as Bounds or Anchor Override changes), checking with a second account is more reliable than checking in a mirror, because the local mirror view may differ from what other players see.


<span id="osc-debug-console"></span>
==Official resources==
==OSC Debug Console==
*{{VRC link|https://creators.vrchat.com/worlds/udon/world-debug-views|World Debug View}} page in the VRChat Documentation
[[File:Osc debug.png|thumb|screenshot of OSC debug console]]
*[https://docs.vrchat.com/docs/osc-debugging| OSC Debugging] page in the VRChat Documentation
Displays incoming osc messages to vrchat and their values. Can be found in the [[Action Menu]] in <code>Options&gt;OSC&gt;OSC Debug</code>. To navigated up and down you can press <code>Page Up</code> to scroll up, and <code>Page Down</code> to scroll down.


== External Links ==
[[Category:User Interface{{#translation:}}]]
[https://creators.vrchat.com/worlds/udon/world-debug-views World Debug Views] in the VRChat Documentation
[[Category:Menus{{#translation:}}]]
[[Category:Stubs]]

Latest revision as of 20:22, 6 April 2026

V · EThis is an official VRChat information page!
It is reviewed and approved by the VRCWiki Team. Learn how to contribute to this page by reading the Contribution Guide.
Screenshot of AssetBundles / Memory debug UI tab

The Debug Menu consists of multiple menus and consoles which are windows within the VRChat client that display various pools of data, and are used for troubleshooting. There are different debugging windows for Worlds, Avatars, and even OSC.

Avatar Debug Console

The Avatar Debug Console displays information about your current avatar's animator, and other settings. This console can be found in the Action Menu in Options > Avatar > Debug. To scroll up and down you can press Page Up, and Page Down on desktop.

  • Left column: Lists the avatars parameters.
    • Parameter: Name of the parameter.
    • Type: What variable type the parameter is. Available types are Bool, Float, and Int.
    • Value: Their current value.
  • Center column: Contains 3 sections.
    • Tracking control: Shows if the parts of the avatars body has IK enabled or disabled.
      • Name: Name of the avatars body part.
      • Value: What type of tracking its using. Either tracking the Ik, or an animation.
    • Animation Controllers: Shows the current weight of the avatars Playable Layers.
    • Miscellaneous:
  • Right column: Lists all the layers for each Playable Layer and their current weight and state.

Avatar Dynamics Overlay

These options allow you to visualize Avatar Dynamics features like PhysBones, and Contacts. These options can be found in the Action Menu in Options > Avatar > Avatar Overlay

  • None: Turns off all the Overlays.
  • PhysBones Proximity: Visualizes PhysBones near your hands.
  • PhysBones: Visualizes PhysBones on all avatars.
  • Contacts: Shows all contacts on avatar and their current contact state.

See also, VRChat Learning Channel's Avatar Dynamics Debugging Overlay Demonstration on YouTube.

OSC Debug Console

Screenshot of OSC debug console.

Displays incoming OSC messages to VRChat, and their values. The OSC console can be found in the Action Menu in Options > OSC > OSC Debug. To scroll up and down, you can press Page Up, and Page Down on desktop, or use the scroll bar in VR mode. See also VRChat's OSC Debugging page.

World Debug Menus

V · EThis section needs to be updated!
This section includes information which is outdated. Please update this section with current information.
[Reason: Images and information such as using launch options to access are outdated.]


This menu is used to debug your worlds in-game. The Debug UI can be opened by:

  • Pressing the Toggle Debug UI button in the Debug section of the Quick Menu settings page.
  • Press Right Shift + Tilde (~) + 1-9 with the number corresponding to the menu number you want. On non-QWERTY keyboard layouts (such as French AZERTY), the key combination uses the same physical key positions, regardless of the key labels or system language. It must be the Right Shift key specifically, not the Left Shift key.

Some tabs of the Debug UI can only be accessed if the world has World Debugging enabled in its world's settings. By default, only the creator of the world can access these menus.

More information can be accessed at World Debug View on creators.vrchat.com.

AssetBundles / Memory

AssetBundles / Memory or Debug Menu 1 displays information about loaded assets.

Screenshot of World Debug Menu 1

Version & Info

Version & Info or Debug Menu 2 is default page and displays information about the build of VRChat you are using, and explains the Debug Menu.

Screenshot of World Debug Menu 2

Log Viewer

Log Viewer or Debug Menu 3 displays your output log. Hold Tab to activate the mouse cursor so you can use the buttons at the top as well as scroll the log output.

For additional information, you can use two launch parameters, if you're using VRChat on Steam or SteamVR:

  • --enable-sdk-log-levels
  • --enable-udon-debug-logging
Screenshot of World Debug Menu 3

Players

Players or Debug Menu 4 displays stats about players.

  • M: Whether or not the player is the master of the instance
  • L: Whether or not the player is the local player
  • VR: Whether or not the player is in VR
  • Group: The current group that the player is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
  • Ping: The player's ping
  • Intrvl: The amount of time between the player sending synced data about themselves.
  • D: The current delay.
Screenshot of World Debug Menu 4

Debug Menu 5

Debug Menu 5 displays graphs related to networking. World Debugging must be enabled.

Screenshot of World Debug Menu 5

Net Objects

Net Objects or Debug Menu 6 displays all networked objects in the world. Showing networking stats of that object sorted from the highest networking impact to least. World Debugging must be enabled.

  • Name: GameObjects name.
  • Owner: The PlayerID of the owner of the object.
  • Group: The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
  • Sleeping: Whether or not the object is sleeping. Only objects with VRCObjectSync can sleep. Sleeping causes the object to stop transmitting data.
  • Delay: The current delay of this object between the owner and the viewer.
  • Size: The current number of bytes per serialization of this object. Every time it needs to sync, it will send this many bytes.
  • Bps: A rough approximation of how many bytes per second this object is using up.
  • Since Last: A running counter of how long it has been since the last time this object has sent data.
  • Interval: A rough approximation of how many times this object tries to sync per second.
Screenshot of World Debug Menu 6

Debug Menu 7

Debug Menu 7 highlights all the PhysBones and Contacts in the world, similar to the Avatar Dynamics Overlay. World Debugging must be enabled.

Screenshot of World Debug Menu 7

Debug Menu 8

Debug Menu 8 displays a panel on top of every synced object in the world. Each panel displays stats about that object. World Debugging must be enabled.

  • P: Ping of the owner
  • Q: Quality of the data (100% is no dropped packets)
  • O: PlayerID of the owner of the object
  • G: The current group that this object is in. Grouping in this context is an internal networking system used to combine multiple objects together by distance so that their data can be sent together.
  • Held: Whether or not this object is held, if it is a pickup
  • Status: Displays various things about what this object is doing, such as Should Sleep, Player, Held, or Discontinuity
Screenshot of World Debug Menu 8

Debug Menu 9

Debug Menu 9 displays a panel near players to display their networking stats. World Debugging must be enabled.

Screenshot of World Debug Menu 9

Performance

The Performance tab displays selected performance graphs and allows saving them to disk. This menu has no keybind.

Screenshot of World Debug Menu Performance

Audio Sources

The Audio Sources tab displays all audio sources in the scene. It includes information such as source names, types, playback state, distance from the user, Steam Audio near-field enhancement details, audio conversion state, and perspective correction data. This tab is only viewable if the world has the World Debugging setting enabled.

Testing with multiple clients

Creators commonly test worlds and avatars by running multiple VRChat clients simultaneously, each logged into a different account. This is an allowed practice among world and avatar creators.

To launch a second VRChat client on a separate account, create a shortcut to the VRChat executable (for example, located at steamapps\common\VRChat\VRChat.exe) and add the --profile=2 launch option. The --profile flag stores credentials separately, so each profile only requires logging in once. Common launch options for a testing client include:

--no-vr --profile=2 --enable-debug-gui --enable-sdk-log-levels --enable-udon-debug-logging

Building a world with 0 clients in the SDK build panel causes any already-running test clients to reload the world without launching a new client.

When testing avatar visual consistency (such as Bounds or Anchor Override changes), checking with a second account is more reliable than checking in a mirror, because the local mirror view may differ from what other players see.

Official resources