{"id":19599898,"url":"https://github.com/justsleightly/vpm-package-template","last_synced_at":"2026-05-15T10:35:12.762Z","repository":{"id":196782180,"uuid":"636075413","full_name":"JustSleightly/VPM-Package-Template","owner":"JustSleightly","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-04T08:19:22.000Z","size":165,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-09T08:12:13.057Z","etag":null,"topics":["unity","vrchat","vrchat-avatars","vrchat-tool"],"latest_commit_sha":null,"homepage":"https://notes.sleightly.dev/community-repos/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustSleightly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-05-04T04:35:42.000Z","updated_at":"2024-02-03T16:56:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"491385ea-9faa-4529-8abb-c702147b34e0","html_url":"https://github.com/JustSleightly/VPM-Package-Template","commit_stats":null,"previous_names":["justsleightly/vpm-package-template"],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FVPM-Package-Template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FVPM-Package-Template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FVPM-Package-Template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustSleightly%2FVPM-Package-Template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustSleightly","download_url":"https://codeload.github.com/JustSleightly/VPM-Package-Template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240877949,"owners_count":19872119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["unity","vrchat","vrchat-avatars","vrchat-tool"],"created_at":"2024-11-11T09:12:52.542Z","updated_at":"2026-05-15T10:35:12.757Z","avatar_url":"https://github.com/JustSleightly.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# VPM Package Template [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/JSLogo.png\" width=\"30\" height=\"30\"\u003e](https://vrc.sleightly.dev/ \"JustSleightly\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/Discord.png\" width=\"30\" height=\"30\"\u003e](https://discord.sleightly.dev/ \"Discord\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/GitHub.png\" width=\"30\" height=\"30\"\u003e](https://github.sleightly.dev/ \"Github\") [\u003cimg src=\"https://github.com/JustSleightly/Resources/raw/main/Icons/Store.png\" width=\"30\" height=\"30\"\u003e](https://store.sleightly.dev/ \"Store\")\n\n[![GitHub stars](https://img.shields.io/github/stars/JustSleightly/VPM-Package-Template)](https://github.com/JustSleightly/VPM-Package-Template/stargazers) [![GitHub Tags](https://img.shields.io/github/tag/JustSleightly/VPM-Package-Template)](https://github.com/JustSleightly/VPM-Package-Template/tags) [![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/JustSleightly/VPM-Package-Template?include_prereleases)](https://github.com/JustSleightly/VPM-Package-Template/releases) [![GitHub issues](https://img.shields.io/github/issues/JustSleightly/VPM-Package-Template)](https://github.com/JustSleightly/VPM-Package-Template/issues) [![GitHub last commit](https://img.shields.io/github/last-commit/JustSleightly/VPM-Package-Template)](https://github.com/JustSleightly/VPM-Package-Template/commits/main) [![Discord](https://img.shields.io/discord/780192344800362506)](https://discord.sleightly.dev/)\n\nA stripped down version of the official VRChat [VPM Package Template](https://github.com/vrchat-community/template-package) that excludes all of the extra website/project bloat.\n\nThis is modified from [Dreadrith's template](https://github.com/Dreadrith/Listed-VPM-Template) to support a slightly different workflow, with inspiration from [bd_](https://github.com/bdunderscore/modular-avatar) and [Razgriz](https://github.com/rrazgriz/RATS), and help from [Fox_score](https://github.com/foxscore).\n\n## Features\n\n- Can clone multiple VPM package templates into one Unity project\n- Automatically builds a GitHub release with a `.unitypackage`, `.zip`, and `package.json` upon pushing a commit to the `package.json` only if there is no existing release tag for the pushed version number when `package.json` is updated\n- Automatically tag GitHub releases as `pre-release` when version is hyphenated\n- Can automatically add an icon to the `.unitypackage` that is displayed when imported\n- Can automatically trigger an update/action to an external repository like a [VPM Package Listing](https://github.com/JustSleightly/VPM-Package-Listing-Template)\n\n## Instructions\n\n1. Create a new repository using this button: [\u003cimg src=\"https://user-images.githubusercontent.com/737888/185467681-e5fdb099-d99f-454b-8d9e-0760e5a6e588.png\" height=\"25\"\u003e](https://github.com/JustSleightly/VPM-Package-Template/generate/ \"Use this template\")\n2. Clone your new repository onto your PC within an **existing Unity project** under `Packages/` with any directory name\n    - This will generate a fresh set of GUIDs for each file within this package template and prevent conflicts with other packages\n3. Modify the cloned files for your new package\n    - Replace or remove `.github/thumbnail.png` with your own `.unitypackage` import thumbnail\n    - Edit `.github/workflows/release.yml`\n        - Line 10 (Remove `.github/thumbnail.png` if you don't want an import thumbnail)\n        - Line 11 (Read [Trigger Repo Update](https://github.com/JustSleightly/VPM-Package-Template#trigger-repo-update) section below)\n    - Edit `.github/workflows/trigger-repo-update.yml`\n        - Read [Trigger Repo Update](https://github.com/JustSleightly/VPM-Package-Template#trigger-repo-update) section below\n    - Rename and Edit `Documentation~/dev.sleightly.template.md` if used\n    - Rename and Edit `Editor/dev.sleightly.template.Editor.asmdef` if used\n        - \"name\"\n        - \"references\"\n    - Rename and Edit `Runtime/dev.sleightly.template.asmdef` if used\n        - \"name\"\n    - Edit `CHANGELOG.md` ([Recommended Format](https://keepachangelog.com/en/))\n    - Edit `LICENSE.md` ([Need help?](https://choosealicense.com/))\n    - Edit `package.json`\n        - Use [VRChat's](https://vcc.docs.vrchat.com/vpm/packages#vpm-manifest-additions) and [Unity's](https://docs.unity3d.com/2019.4/Documentation/Manual/upm-manifestPkg.html) documentation for reference\n4. Add any necessary scripts, resources, [samples](https://docs.unity3d.com/2019.4/Documentation/Manual/cus-samples.html), and other files\n5. Remove `Documentation~`, `Editor`, `Runtime`, `CHANGELOG.md`, and `LICENSE.md` if unused\n\n## Trigger Repo Update\n\nIf you have a [VPM Package Listing](https://github.com/JustSleightly/VPM-Package-Listing-Template) (or another repository) you'd like to trigger a workflow for, after building/publishing/modifying a release in this package repository, conduct the following steps as well. Otherwise, skip these steps.\n\n1. Edit `.github/workflows/trigger-repo-update.yml`\n    - Line 12 (Set to `true` to enable triggering a repo update when a release is manually published/modified)\n    - Line 13 (Owner of target repository to trigger)\n    - Line 14 (Name of target repository to trigger)\n    - Line 15 (Branch of target repository to trigger)\n    - Line 16 (File name of target workflow to trigger)\n    - Line 17 (Replace `VPM_TOKEN` with name of [Personal Access Token](https://github.com/JustSleightly/VPM-Package-Template#setting-a-personal-access-token) secret added to this repository)\n2. Edit `.github/workflows/release.yml`\n    - Line 11 (Set to `true` in order for the automatic build to trigger `.github/workflows/trigger-repo-update.yml`)\n\n### Setting a Personal Access Token\n\nTo trigger a remote repository you must create a Personal Access Token (PAT) with the repo scope and store it as a secret.\n\n1. [Create a new fine-grained personal access token (beta)](https://github.com/settings/personal-access-tokens/new)\n    - Token name (Can be anything, and is different than the name used in `trigger-repo-update.yml`)\n    - Expiration (Can be anything up to a year)\n    - Repository Access - Only Select Repositories\n        - Select your VPM Listing/Target repository, not your package repository\n    - Permissions - Repository Permissions\n        - Actions - Read and Write\n        - Metadata - Read-only (Set by default when granted Actions permissions - Mandatory)\n    - Press `Generate Token`\n        - **Copy and Save** the token on the following screen as it will not be displayed again\n        - This can be used for any package repository that you may want to trigger your listing repository in the future\n2. [Add your PAT as a secret to your package repository](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository)\n    - Navigate to your package repository (not your listing/target repository) and press the **Settings** tab\n    - Navigate to `Secrets and Variables \u003e Actions` under the **Security** tab in the sidebar\n    - Press `New repository secret`\n    - Add a `Name` for the secret\n        - This is the name used in `trigger-repo-update.yml` which the template has named `VPM_TOKEN` by default\n        - Consider naming it based on your listing/target repository in case you have multiple listings in the future\n    - Copy the token from step 1 into the `Secret` field\n    - Press `Add Secret`\n\n## Notes\n\nFolders that end in `~` such as `Documentation~` or `Samples~` are hidden from the Unity Project view within the editor.\n\nTherefore, when the package is exported as a `.unitypackage` whether manually or via automated GitHub workflow, such folders are omitted. The folders are still present in the `.zip` export and when imported through the [VRChat Creator Companion](https://vcc.docs.vrchat.com/vpm/packages/#community-packages)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsleightly%2Fvpm-package-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustsleightly%2Fvpm-package-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustsleightly%2Fvpm-package-template/lists"}