The config.json file allows you to override the game’s internal memory handling. By moving your cache to a dedicated high-speed drive and capping dynamic bone interactions, you can reduce the “hitching” that occurs when new players enter the instance.
File Path
- Open File Explorer and paste:
%AppData%\..\LocalLow\VRChat\vrchat\ - If
config.jsondoes not exist, right-click and create a new text file with that exact name.
| Parameter | Recommended Value | Technical Purpose |
cache_size | 100 | Expands the cache to 100GB to prevent constant re-downloading of avatars. |
cache_expiry_delay | 60 | Extends asset life to 60 days, ensuring local data stays “hot.” |
dynamic_bone_max_affected_transform_count | 32 | Limits legacy bone calculations to save CPU cycles. |
camera_res_height | 1080 | Prevents VRAM spikes when the camera UI is active. |
{
"cache_directory": "D:/VRChatCache/",
"cache_size": 100,
"cache_expiry_delay": 60,
"disableRichPresence": false,
"camera_res_width": 1920,
"camera_res_height": 1080,
"screenshot_res_width": 1920,
"screenshot_res_height": 1080,
"dynamic_bone_max_affected_transform_count": 32,
"dynamic_bone_max_collider_check_count": 8
}
Follow these GameEngineer.net technical steps to maintain 40+ FPS in crowded worlds:
- SSD Cache Migration: Ensure the
"cache_directory"in your config points to your fastest NVMe SSD. VRChat is extremely I/O dependent; loading 80 avatars from a slow SATA drive will freeze your game for seconds at a time. - The “Avatar Culling” Rule: In the in-game Performance Options, set Hide Beyond Distance to 20m and Max Shown Avatars to 15-20. This significantly reduces the Draw Call ($D_{call}$) count, which is the primary cause of CPU bottlenecking in VRChat.
- VRAM Pressure Management: In 2026, many avatars exceed $1\text{GB}$ of uncompressed texture memory. Set your Maximum Uncompressed Size (under Avatar Performance) to 300MB. This forces “Very Poor” avatars into their fallbacks, saving your GPU from swapping to system RAM.
- PhysBones vs. SMT: If you use an AMD Ryzen 3D V-Cache CPU (like the 7800X3D/9800X3D), VRChat’s performance scales massively with the extra $L3$ cache. However, for non-X3D CPUs, turning SMT OFF in your BIOS can often improve VRChat’s frame consistency as it reduces the overhead on the game’s main execution thread.
- Small Window Mode: When playing in VR, your desktop window still consumes GPU resources. Add
-screen-width 640 -screen-height 480to your Steam Launch Options to minimize the desktop mirror’s impact on your VRAM.
Technical Explanation: VRAM Thrashing and Draw Calls
The performance collapse in VRChat is usually caused by VRAM Thrashing. When you enter a world with 50 unoptimized avatars, the total texture memory required can exceed $20\text{–}30\text{GB}$.
If your GPU only has $12\text{GB}$ or $16\text{GB}$ of VRAM, the driver must constantly swap data over the PCIe bus. This creates Veri-Sync Stutter, where the GPU waits for the CPU to provide the next texture set. By using the config.json to manage cache and the in-game culling to limit visible entities, you keep the Working Set within the local VRAM boundaries, ensuring the GPU can process the render queue without waiting on the system bus.