Skip to main content

Package Manager

The VRChat Package Manager is currently the main feature of the Creator Companion. It helps you keep your VRChat SDKs and packages updated, and speeds up the creation and management of VRChat projects.

Prerequisites

When you first launch the Creator Companion, it will check that you have all the required programs, see Creator Companion Overview: Requirements.

Features

The VPM can help you do the following:

  • Create New VRChat Projects
  • Migrate older VRChat Projects
  • Manage Packages in Existing Projects

Create New VRChat Projects

  • Click "Projects & Packages" in the menu to open your Project List, which will be empty when you first start using the VPM.
  • Click "New" to open the Template Chooser.
  • Choose "World" or "Avatar" to create a new VRChat project which is all set up to create either an Udon-Powered world or an AV3-powered avatar. If you've created or installed your own Templates, you can choose one of those here instead.
  • Once you've chosen your starting template, you are prompted to enter a name for your project and choose the parent folder in which it will be created. The full path of the project will be shown at the top of the screen, as well as the name of the template you have selected. Edit the Project name by typing in the top box, and press the ellipsis button (...) next to the Location field to set the parent folder for the project.
  • Click "Create" once you are happy with your project name and location.
  • At this point, your project will be created and Unity will be launched. Wait for the initial import to finish - the VCC will be brought back to the foreground when it's complete. It may take a few minutes as Unity imports all the specified packages, processes the assets, and runs a few special commands the VPM has passed along to it.
  • If this process works, the app will transition to the "Manage Project Packages" screen with your new project name, and a list of the VRC Packages available / installed.

What actually happens when you click on Create?

  1. A directory is created at targetDir, which is the directory you specified in the "Location" field plus your project's name.
  2. Your selected template is cloned to this directory.
  3. The ProjectSettings file is updated with the name of your project as the productName.
  4. If one of the above steps fails and the targetDir does not appear to be a valid Unity project then the targetDir and its contents are deleted, and an error is shown.
  5. Otherwise, the VPM adds it to the list of known VRChat projects (stored in the Settings file as a string[] called "userProjects", and transitions to the "Manage Project Packages" screen

Manage Packages in Existing Projects

The VPM makes it easy to update packages in existing projects.

  • Click "Projects & Packages" in the menu to open your Project List, which will be empty when you first start using the VPM.
  • Click "Add" to bring up a Folder Chooser. You can select a single Unity Project Folder to add that to your project list, or select a folder which contains many Unity Projects to easily add them all.
  • After adding your project to the list, click the button containing its path to open its details.
  • If the project has not yet been migrated to VPM, you'll need to do that first.
  • Each available package will appear with a green background if it's in the project, or a blue background if it's not. For any package already in the project, you can check the versions in the dropdown in the middle and select a new one if it's available and then click "Update" to change it to the new version. The VPM will update the package, switch to Unity to import the files, then switch back to the Creator Companion.

Offical Package Listing

Missing Features: Conflicting Packages

You can currently install Worlds and Avatars in the same project - we will block this in the future, they still don't play together well.

Migrate Older VRChat Projects

If you have existing SDK3 World or Avatar projects, their VRChat SDKs can be automatically migrated to this new VPM-compatible format.

  • Click "Projects & Packages" in the menu to open your Project List, which will be empty when you first start using the VPM.
  • Click "Add" to bring up a Folder Chooser. You can select a single Unity Project Folder to add that to your project list, or select a folder which contains many Unity Projects to easily add them all.
  • After adding your project to the list, click the button containing its path to open its details.
  • If this project is a unitypackage-style SDK3 Worlds or Avatars project, a button will appear with the label "Migrate to UPM"

Migration Screen

  • If the project is not recognized as a VRChat project, or it contains an unsupported SDK (SDK2), the button will not appear. We do not offer an automated process for this case, sorry.

Unsupported Project

  • If your project type is supported, click "Migrate to UPM" and kick back. This process can take a few minutes even for a small project, and much longer for a large one. The good news is that once the migration is complete, your project is totally ready to go.

What actually happens when you click on Migrate to UPM?

  1. A directory is created at targetDir with the name {ProjectName}-Migrated, with "-#" appended as needed to guarantee a unique folder name (like myproject-Migrated-1, myproject-Migrated-2, etc)
  2. All of the files in the originalProjectDir are copied to targetDir except for Library, Logs, Assets/VRCSDK, Assets/Udon, Assets/VRChat Examples, Packages/com.vrchat.vrcsdk3 and ProjectSettings/ProjectVersion.txt.
  3. EditorSettings.asset is copied from the included "Base" template into the new project's ProjectSettings folder, to ensure the project uses AssetDatabase v2 and some other important settings.
  4. If the new project does not have a manifest at Packages/manifest.json, the one included in the "Base" template is copied into the new project's Packages folder.
  5. The manifest has the VRChat Base package added to it, as well as either the World or Avatar packages, depending on the type of project being migrated.
  6. If the above steps are successful, the output of the process is written to targetDir as migration-log.txt. If there is an issue, then the output of the Error log is written to the standard Logging path as {projectName}-migration-log-error.txt, and the output of the general log is written to the standard Logging path as {projectName}-migration-log.txt."