Before getting started ensure you have a Unity project with the SDK setup.
If you want a great intro to creating your first world with pre-created assets, a tutorial video, and detailed steps, check out the VRChat Home Kit!
The first thing you need is a scene, this can either be an existing one with content or a new one. Now with the scene open you either want to:
- Create an empty GameObject in the scene then attach a VRC_SceneDescriptor component
- Place the VRCWorld prefab in the scene
You now need to setup at least one point in the scene where users can spawn in, to create a spawn point just create an empty GameObject and place it where you want users to appear, then add the GameObject to the spawns array in the VRC_SceneDescriptor. Do this for as many spawn points as you want.
If you have more than one spawn point you can choose the order in which people will spawn into them by changing the Spawn Order property.
There are various different options you can set the VRC_SceneDescriptor which change the behaviour of the room, here are some of the more important ones.
Reference Camera - A camera which you can apply settings onto that are applied to the player when they join the room.
Respawn Height -Y - Height in which players respawn and pickups are respawned or destroyed.
Update Time in MS - How often clients should communicate with each other, this affects smoothness of user and pickup movement. The default 33ms should be good in most cases, in worlds where you want a lot of users increase the time.
More settings can be found on the VRC_SceneDescriptor) page.
You're close to uploading the world now, next you need to go to
VRChat SDK > Show Build Control Panel there you'll see optional things you can setup in your scene as well as options to build your world. Optional settings include:
- Setting up layers to match VRChat's
- Setting up the collision layer matrix to match VRChat's
- Apply 3D spatialization to 3D AudioSources automatically at runtime
- Apply 3D spatialization to 3D AudioSources in the scene currently
Next you need to build the world, but you need to choose what you will be doing, you can either make a test build to test your world without uploading it or publish your world to VRChat. Under both Test and Publish headings you will find Last Build and New Build buttons, last build takes the last build of the world to either test or upload, the new build option puts a new world together to either test or upload.
If you wish to test your world first press the New Build button under the Test heading, this will build a new version of your world and launch into the world in VRChat. The Number of Clients option is used for when you want to open multiple clients for testing networked behaviour such as triggers.
Now we can build and upload your world by pressing the New Build button found under the Publish heading, this will build you world and get it ready for upload. Unity should go into play mode showing a screen in which you can enter details about the upload which includes:
- World name
- Player capacity
- Content warnings
After all that is entered you need to confirm you have the rights to upload the content to VRChat then you can press the upload button. The room will then upload to VRChat and when finished you should able to see it in-game or via the content manager in the SDK via
VRChat SDK > Manage Uploaded Content
If your world fails to upload check the console to see if there are any errors, if so then solve them before trying to build your world again. Check our other documentation or post in Discord if you need help