CHUDCS2

Game assets and VPK paths

Locate CS2 archives and recover missing player models or map geometry.

View as Markdown

Player models and map geometry come from the installed game archives. Keep the application's copied assets/ directory beside the binary for fonts, icons, grenade data and radar files.

Automatic discovery

The default vpk_path value is auto. On Linux, discovery checks Steam roots under ~/.steam/steam, ~/.steam/root, ~/.local/share/Steam and the Flatpak Steam directories. When launched with sudo, it also checks these locations under /home/$SUDO_USER.

Discovery reads steamapps/libraryfolders.vdf to find additional libraries. Each candidate ends with steamapps/common/Counter-Strike Global Offensive/game/csgo/pak01_dir.vpk.

Set a custom archive

  1. In Steam, browse the installed files for Counter-Strike 2.
  2. Locate game/csgo/pak01_dir.vpk. Keep its companion archive files in place.
  3. In Debug, find Directories and set VPK Path to the absolute path of pak01_dir.vpk.
  4. Save the active profile in Config and restart CHUDCS2 to apply the path to the model loader.

Use the archive file itself, even though the current tooltip describes a directory. For example, a library at /mnt/games/SteamLibrary uses this profile field:

{
  "vpk_path": "/mnt/games/SteamLibrary/steamapps/common/Counter-Strike Global Offensive/game/csgo/pak01_dir.vpk"
}

This is a fragment to merge into a profile. See Configuration for file locations and validation. Set the value back to auto to restore automatic discovery.

Missing models or geometry

Check the terminal for AgentParser messages. A failed custom archive does not fall back to automatic discovery. Correct the path or restore auto, save and restart.

Verify that the process can read the index archive and its companion files. If automatic discovery fails under sudo or with a custom library location, set the absolute archive path explicitly.

Maps Path is a separate setting. Pointing it at a map directory does not replace VPK Path for player model loading.

Was this page helpful?

Edit this page on GitHub

Last updated on

On this page