/VRWorldToolkit-vrchat

Unity Editor extension for making VRChat worlds

Primary LanguageC#MIT LicenseMIT

VRWorld Toolkit

GitHub stars GitHub all releases GitHub release (latest SemVer) Project License GitHub repo size

VRWorld Toolkit is a Unity Editor extension for making VRChat world creation more accessible and lower the entry-level to make a good performing world. The main supported use case is for VRChat world projects but avatar projects and projects without the VRChat SDK are supported in limited capacity.

To report problems, you can either join my Discord server or create a new issue. Pull requests are also welcome.

Setup

Requirements

  • Unity 2022.3.x

Getting Started

  • Import the latest release from here into your Unity project
  • After, if everything went well, you will see the VRWorld Toolkit dropdown appear at the top bar if not check Troubleshooting

Troubleshooting

Important

First, if you are working on a VRChat project make sure you are running the latest SDK (SDK2 / SDK3 Worlds or Avatars) if not update. This project is kept up to date, supporting the latest SDK versions. Support for older versions is not guaranteed.

Start by opening the Unity Console either by using Ctrl + Shift + C or from Window > General > Console. Afterward, make sure red errors are enabled from the top right corner of the window. Finally, press Clear in the top left corner, which will narrow the view down to only compilation stopping errors.

If the errors that are left mention Post Processing or Bakery when the project * does not* have these in it currently, see the following paragraphs.

The most common issue is when the project previously had Post Processing or Bakery but has since been removed. This will leave behind a Scripting Define Symbol that the assets automatically add, making VRWorld Toolkit think they still exist in the project.

This can be manually removed from Edit > Project Settings > Player > Other Settings > Scripting Define Symbols

  • For Bakery: BAKERY_INCLUDED
  • For Post Processing: UNITY_POST_PROCESSING_STACK_V2

These symbols' primary function is to load parts of code only when they are set in the project. However, they do not automatically get removed with the asset.

A more rare issue is also caused by having a Bloom.cs script or just Bloom class in the global namespace in your project conflicting with Post Processing. This can usually be seen in the console by having repeated errors for Post Processing bloom not being able to be accessed from VRWorld Toolkit scripts. The easiest solution is finding and removing the offending script often found just by searching for Bloom in your assets.

Main features

World Debugger

Goes through the scene and checks for common issues, and makes suggestions on what to improve. Includes over 90 different tips, warnings, errors, and general messages!

It also allows viewing the stats of the latest builds SDK has done for an easily accessible overview of what the build consists of. It also saves the latest Windows and Android builds separately for easy comparison between the two.

Disable On Build

After the setup is run from VRWorld Toolkit > Disable On Build > Setup a new tag is added DisableOnBuild that automatically disables all GameObjects marked with it before a build happens. The most significant use case for this is easier to manage trigger-based occlusion.

Post Processing

Offers a one-click solution to having a working Post Processing setup with a simple example profile for further editing.

Quick Functions

Copy World ID

Helps you to quickly copy the current scenes world ID to clipboard without having to fumble finding the Scene Descriptor.

Mass Texture Importer

Batch processes textures to quickly apply crunch compression and other settings to all textures in the current scene or all assets in the project.

Custom Editors

Adds more features to the pre-existing VRChat components to make them easier to use and provide quality of life improvements. If not needed, they can also be easily disabled from VRWorld Toolkit > Custom Editor > Disable.

Includes additions to:

  • VRC Mirror Reflection
    • Quick set layers to commonly used setups
    • Warnings and messages for common problems people run into with mirrors
    • Explanations for VRChat specific layers
  • VRC Avatar Pedestal
    • Adds a feature to mass copy and set IDs to pedestals while having multiple selected
    • Draws outlines to where the pedestal image will appear in-game when you select the GameObject with the pedestal component on it

Special Thanks to

  • Pumkin - For helping me a lot to get started and creating the original Disable On Upload feature that got me started on this project
  • Silent - For making my texts more clear and for help on Post Processing features
  • Metamaniac (Table) - Checked through my texts and found all the stupid typos I made

Disclaimer: This extension is still a work in progress. Even though I try to test it thoroughly, things can break. Remember to make backups of your projects and use this at your own risk!