Unity

Unity #

For the best experience, we found that running Unity from Flatpak is usually preferred.

Setting up a VRChat avatar/world project #

First, take a look at this page from the official VRChat docs about the Unity 2022 upgrade. We’ll do something similar.

  1. Install Unity Hub from Flatpak.
  2. Install the 3rd party VRChat package manager vrc-get.
    • NOTE: while the version you can install via cargo works fine, it is actually out of date, so a better option would be to build from source and add the executable to your $PATH.
  3. Open Unity Hub and sign in with your Unity account.
  4. Install 2022.3.6f1 (the current supported Unity version, at the time of writing) by running xdg-open unityhub://2022.3.6f1/b9e6e7e9fa2d.
  5. When prompted, select Android Build Support and Windows Build Support (Mono).
  6. Create a new project with the 3D Core template, making sure to name it and give it a better location than $HOME.
  7. If it opens a window partially offscreen like it did for me (KWin Wayland), press ALT+F3 -> More Actions -> Move.
  8. Close the Unity project (will probably crash later if you don’t, no big deal but still).
  9. Open terminal and cd to the project dir.
  10. Run either vrc-get install com.vrchat.avatars or vrc-get install com.vrchat.worlds depending on what you will be making.
  11. Reopen the Unity project and it will import the new packages.
  12. Go to VRChat SDK -> Show Control Panel and dock it to the main window.

Now you should be able to create and upload avatars and worlds like you normally would.

If you’re having issues, consult the Troubleshooting section.

Troubleshooting #

NullReferenceException when uploading #

This is an SDK bug. Vote for this Canny!

To patch it temporarily, run this command:

cd ~/YourProject
git apply << EOF
diff --git a/Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/API/VRCTools.cs b/Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/API/VRCTools.cs
index 5104edb..5820d61 100644
--- a/Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/API/VRCTools.cs
+++ b/Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/API/VRCTools.cs
@@ -108,7 +108,13 @@ namespace VRC.SDKBase.Editor.Api
                 {
                     continue;
                 }
-                var groups = (IEnumerable)groupsList?.GetValue(servicePointGroups.GetValue(scheduler));
+                // var groups = (IEnumerable)groupsList?.GetValue(servicePointGroups.GetValue(scheduler));
+                var servicePointGroup = servicePointGroups?.GetValue(scheduler);
+                if (servicePointGroup == null)
+                {
+                    continue;
+                }
+                var groups = (IEnumerable)groupsList?.GetValue(servicePointGroup);
 
                 // we're going to retry finding the active service point
                 if (groups == null)
EOF

Using VCC instead? #

The Creator Companion’s code is (mostly) cross platform, using the cross-platform framework Photino. This even includes MacOS. Certain code paths seem to have given up at some point (depending on .exe files, Windows-only paths, etc).

LinuxCreatorCompanion #

Warning

LinuxCreatorCompanion is highly experimental, therefore you should backup all of your projects before using this.

A HIGHLY EXPERIMENTAL wrapper around the Creator Companion for Linux, can be found here.

As it would be rather legally dubious to distribute anything from the Creator Companion, the original VCC is automatically downloaded at first launch. LinuxCreatorCompanion will then take care of copying content & grabbing needed C# Assemblies.

You can simply run it with ./LinuxCreatorCompanion

Only tested on Arch Linux so far, all patches are quite dirty. If paths for UnityHub/Unity Editor can not be found, please open an issue.

Contributions welcome!

Legality #

No content from VRChat’s intellectual property is being distributed. Any content is downloaded at runtime from the original Creator Companion.

LinuxCreatorCompanion is not endorsed by VRChat and does not reflect the views or opinions of VRChat or anyone officially involved in producing or managing VRChat properties. VRChat and all associated properties are trademarks or registered trademarks of VRChat Inc. VRChat © VRChat Inc.