SkillAgentSearch skills...

VRCMods

A collection of various VRChat mods aimed at improving user experience or fixing issues

Install / Use

/learn @knah/VRCMods
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

This repository is no longer maintained

As you may know, VRChat implemented a client-side anti-cheat in a "security update". This prevents the use of MelonLoader, and with it, these mods.
Fighting against a commercial anti-cheat is not something I want to spend my time on, goes against the spirit of wholesome modding, and risks bans for people who would choose to use a "bypass". This means that this repository will not see any further development. It will soon be archived.
If you're looking for a social VR platform that still supports modding and listens to the community, you can check out ChilloutVR (discord server; modding group discord) or NeosVR
You can still upvote linked Canny posts for ex-mod features - links for them remain below.

So long, and thanks for all the fish!

Original README follows

This repository contains my mods for VRChat. Join the VRChat Modding Group discord for support and more mods!
Looking for more (universal) mods? Check out my universal mods repository!

~~Don't want to install mods manually? Check out the VRCMelonAssistant, an automatic mod installer!~~

~~Alternatively, read the manual installation section~~

Preface

Modifying the VRChat client is not allowed by VRChat Terms of Service and can lead to your account being banned.
Based on evidence until this point, VRChat Team will happily hand out bans to people using mods with evil features, such as ripping, crashing, and others things you don't want to be on the receiving end of. Mods published here aim to avoid negative attention from VRChat Team and hopefully keep their users in a non-banned state as long as possible.
However, with that said, these mods are provided without any warranty and as-is. If you use them and do get banned, don't complain to me that you were not warned. Also, report your ban to VRChat Modding Group discord (see above) - every data point matters in determining how safe mods are for general public use.

As an extra point, if you encounter an issue with the game (especially after an update), make sure that issue is not caused by mods before reporting it to VRChat Team.
You can add --no-mods launch option (in Steam) to temporarily disable MelonLoader without uninstalling it completely.

Some mods will have Canny tickets linked. It's your duty to go and upvote them to show to VRChat Team what you want from their game. If you decide to comment on Canny, be respectful and avoid mentioning modding - the team still doesn't like it, obviously.
And yes, it will probably be ignored/forever hanging in "under review" like the majority of Canny posts. At least we'll have a nice big upvote number on our ignored posts.

AdvancedSafety

Features:

  • Set hard limits on avatar features, such as polygon count, audio sources, and some other things
    • Reduce crashes
    • Improve performance
    • Remove annoying spawn sounds or global sounds
    • Remove some fullscreen effects (this one is unreliable)
    • Avatars over the limit are not replaced by a gray robot. Instead, elements over limits are removed, with the rest of the avatar kept intact.
  • Hide all avatars of a specific author (requires UI Expansion Kit, button is in user details menu)
  • Hide a specific avatar, no matter who uses it (requires UI Expansion Kit, button in in user quick menu)
  • Hide portals from blocked users or non-friends
    • That blocked user will no longer be able to portal drop you
  • Check downloaded avatars for corruption and prevent crashes from them

This mod will introduce small lag spikes when avatars are loaded. These should be tolerable compared to VRChat's own lag spikes.
All numeric limits are configurable.

  • Don't set animators limit to 0 - you will break all humanoid avatars horribly if you do

Configurable for friends and vanilla "show avatar" button.

Bundle verifier notes

Corrupted bundle protection uses a separate Unity process to crash instead of the main one. This comes with several implications:

  • The extra process uses additional system resources, up to a limit
    • Parallel avatar downloads can create multiple processes with corresponding memory usage
    • Avatar data is held in memory while it's being checked, increasing memory consumption even more during avatar download
  • Newly downloaded avatars take longer to load - this is usually a few seconds extra per avatar
    • Avatars loaded from cache are not checked and load as fast as before.
    • Most corrupted avatars never get cached (VRC crashes before writing them into cache), but in some rare situations you might end up with a cached corrupted avatar. In this case you may need to clear your cache, once.
    • The download progress completes twice for checked avatars - once for the download, second time for loading it in Unity itself
  • Some avatars might be rejected because they require too many resources to load. Default limits are 15 CPU-seconds (download time is not included in those) and 2GB RAM. Limits can be changed in settings.
    • After changing limits to be higher, click the "Reset corrupted bundle cache" button to allow re-checking already-rejected avatars.
    • If you have a weaker PC, you may need to increase time limit to be higher.
    • If people around you use horribly unoptimized avatars, you may need to increase the RAM limit.
    • The point above also applies to component limit.
  • Bundle checking is only enabled in public instances by default, but if your friends are somehow not nice, you can enable the mod in all instance types.
    • It ignores "show avatar" as it works on a more-global level
  • All of this should be done by VRChat on their servers, once for every uploaded avatar. AWS Lambda pricing would be under a cent per upload. Alas.

Extra credits

Avatar safety is a complex and ever-evolving field, and this mod would not be as great as it is without contributions from @Requi and Ben (of ReMod fame).

Canny tickets:

CameraMinus

Allows resizing the camera, zooming it in/out and hiding camera lens.
This is a lazy rewrite of original VRCCameraPlus by Slaynash.
Requires UI Expansion Kit - new buttons are added to Camera expando (collapsed by default, click the small blue square near camera to expand) or to Camera QuickMenu expansion (can be chosen in mod settings).

Canny tickets:

EmojiPageButtons

This mod is deprecated with the new Quick Menu (UI 1.5). Last revision containing its code can be found here

FavCat

An all-in-one local favorites mod. Unlimited favorite lists with unlimited favorites in them and a searchable local database of content and players.
Requires UI Expansion Kit 0.2.0 or newer

Features:

  • Unlimited lists (categories) for favorites, each of unlimited size
  • Lag-free even with large lists
  • Freely changeable list height
  • ~~Avatar,~~ world, and player favorites supported
  • Modifiable list order and multiple list sorting options
  • Fully searchable database of everything you have ever seen
  • Changeable database location (it's recommended to store the database in a directory backed up to cloud storage, such as Dropbox or OneDrive, see below for setup)
  • Local image cache for even better performance
  • ~~Categorize your own private avatars~~
  • ~~Import avatar favorites from other local favorite mods (read below)~~
  • Exchange search database with friends (read below)
  • Hide default lists that you never use
  • Many more small things

Known limitations

  • Lists with over a thousand elements can take a bit of time on game startup/list creation

Canny tickets

Changing database location

Steps to change database location:

  1. Run VRChat with the mod at least once
  2. Make sure that VRChat is closed
  3. Navigate to VRChat install directory (i.e. by clicking "Browse Local Files" in Steam)
  4. Navigate to UserData folder and open MelonPreferenes.cfg with Notepad or other text editor
  5. Find the line with [FavCat]
  6. Find the line with DatabasePath under it
  7. Change the value to absolute path to new storage folder. The new line should look like this: DatabasePath = "C:/Users/username/OneDrive" (with your own path, naturally; make sure to
View on GitHub
GitHub Stars256
CategoryDevelopment
Updated9d ago
Forks135

Languages

C#

Security Score

100/100

Audited on Mar 27, 2026

No findings