VRChat: Best config.json for High-Entity Social Performance

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

  1. Open File Explorer and paste: %AppData%\..\LocalLow\VRChat\vrchat\
  2. If config.json does not exist, right-click and create a new text file with that exact name.

Optimized “Social Stability” Configuration Block

ParameterRecommended ValueTechnical Purpose
cache_size100Expands the cache to 100GB to prevent constant re-downloading of avatars.
cache_expiry_delay60Extends asset life to 60 days, ensuring local data stays “hot.”
dynamic_bone_max_affected_transform_count32Limits legacy bone calculations to save CPU cycles.
camera_res_height1080Prevents 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
}

HowTo: Engineering the Ultimate Social Setup

Follow these GameEngineer.net technical steps to maintain 40+ FPS in crowded worlds:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Small Window Mode: When playing in VR, your desktop window still consumes GPU resources. Add -screen-width 640 -screen-height 480 to 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.

Leave a Comment