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. 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, create an empty GameObject and place it where you want users to appear. Add the GameObject to the
spawns list in the VRC_SceneDescriptor. Do this for as many spawn points as you want.
The VRCWorld prefab by default will cause users to spawn on its own location. This is the simplest setup and the setup that most users employ.
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. Most often used for adjusting the clipping planes and adding post-processing effects.
Respawn Height -Y - Height at which players respawn and pickups are respawned or destroyed. Anything that exists below this Y level will be respawned (or destroyed, in the case of configured objects).
Update Time in MS - This controls how often clients should communicate with each other. It affects smoothness of user and pickup movement. The default
33ms should be good in most cases. When you're building a world for more users, it may be beneficial for performance to increase this time.
More settings can be found on the VRC_SceneDescriptor page.
Let's ! Go to
VRChat SDK > Show Build Control Panel. There, you'll see optional things you can set up in your scene as well as options to build your world. Go ahead and run through these operations:
- Setting up layers to match VRChat's layers. You should definitely do this, otherwise your world may not work properly.
- Setting up the collision layer matrix to match VRChat's. See above. Don't skip this!
- Apply 3D spatialization to 3D AudioSources automatically at runtime. Use this if all AudioSources in your scene are going to be spatialized.
- Apply 3D spatialization to 3D AudioSources in the scene currently. You should use this if you want to later add AudioSources that are 2D, like background music.
Next you need to build the world! You'll need to choose what you will be doing first: you can either make a test build to test your world without uploading it, or publish your world directly to VRChat. Under both Test and Publish headings you will find Last Build and New Build buttons. Last Build takes the last successful build of the world to either test or upload. New Build puts a new world together to either test or upload.
If you wish to test your world, 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 - The name of your world, as shown to everyone!
- Player capacity - The "soft cap" of the world. If the population of a world is above the soft-cap, only friends of occupants can join. Once the world has reached 2x the Player Capacity, it is at "Hard Cap" and further users cannot join.
- Description - This will be displayed on the World Details page in-app, and on the website.
- Content Warnings - Content Warnings are deprecated and not used. You cannot upload content to VRChat that violates our Community Guidelines or Terms of Service. Doing so (even if you have checked off a content warning) will result in moderation action.
You can also go back into the Scene view and adjust the VRCCam Camera so that the thumbnail looks great.
After all that is entered, you must confirm that you have the right to upload the content to VRChat. After you have done so, you can click the "Upload" button. The room will then upload to VRChat! 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