World Debug Views
These are the tools you can use to debug your worlds in-game.
In order to access debug views you need two things:
- Launch VRChat with the launch parameter
--enable-debug-gui
- Press Rshift + Tilde + 1-9.
If you have a keyboard layout where tilde is not directly to the left of the 1 key, try using whichever key is directly to the left of the 1 key, as it will prioritize the position of the key over the character of the key itself.
Debug Menu 1
Debug menu 1 displays some information about your connection to the VRChat API. It is mostly irrelevant to world development.
Debug Menu 2
Debug menu 2 displays the current build of VRChat that you are using, along with your FPS.
Debug Menu 3
Debug menu 3 displays your output log. The output log is very useful for world creators because it can show you information such as Udon Behaviour crashes, any information logged via the Debug.Log nodes, and any other potential errors in your world generated by Unity or VRChat.
You can hold the Tab key to activate the mouse cursor and use the buttons on the top to toggle different options on and off, as well as scroll the log output.
Debug Menu 4
Debug menu 4 displays various stats about other users.
- M: Whether or not the user is the master of the instance (AKA the person who has been in the instance the longest)
- L: Whether or not the user is the local player
- VR: Whether or not the user is in VR
- Ping: The user's ping
- Desrd D: The desired delay that the internal system is targeting. The actual delay is frequently adjusted to find a good balance between latency and smoothness.
- Intrvl: The amount of time between the user sending synced data about themselves.
- G: 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.
- D: The current delay, or how far back in time you are viewing this user.
Debug Menu 5
Debug menu 5 displays some graphs related to networking. They are unlabeled and mostly not useful.
World debugging views above 5 are restricted
By default, only the world creator can access debug menus above 5. However, you can allow others to see it as well by enabling World Debugging in your world's settings on the website. Don't forget to click "Save Changes"! Other users will need to rejoin the world to be able to access this debug view after World Debugging gets enabled.
Debug Menu 6
Debug menu 6 displays all the networked objects in your world, along with various stats.
- 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.
Debug Menu 7
Debug menu 7 displays all the same information as 6, but filtered and sorted to bring objects that have the highest networking impact to the top.
Debug Menu 8
Debug menu 8 overlays a panel on top of every synced object in the world. Each panel displays various stats about that specific object
- 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
, orDiscontinuity