Fighting Game · Guides & deep dives

V2 Asset Pipeline Source-Control And Cache Policy

Perforce is the primary large-studio source-control system for V2/ue/....

4sections2 minread

On this page

V2/ue/Build/AssetPipeline/v2-asset-pipeline-source-control.json is the section 57 source of truth. It ties the Perforce primary workspace, Git LFS mirror, asset-type checkout rules, cooked-content caches, shared DDC, and weekly asset audit report into one checked contract.

Source Control#

Perforce is the primary large-studio source-control system for V2/ue/.... The stream root is //Oshun/V2/main, with the import path //Oshun/V2/main/V2/ue/.... Git remains the OSS-style mirror, and Git LFS keeps binary assets tracked through .gitattributes and V2/ue/.gitattributes.

The Perforce typemap and P4IGNORE operating details live in V2/docs/perforce-migration.md. The Git mirror keeps Unreal package files in LFS so OSS-style branches can build without a Perforce client.

Checkout Policy#

*.umap files are exclusive checkout assets. World packages, streaming levels, and map build data are too risky to merge and stay binary+l in Perforce and lockable in Git LFS.

*.uasset data assets are mergeable only when the V2 text asset format policy is enabled and the asset lives under approved data paths such as balance, movesets, input, profile settings, and settings UI. These packages use the V2.AssetSourceControl.TextAssetFormat=Enabled policy and are reviewed as text.

Blueprint packages stay binary and exclusive. Blueprint graphs, animation blueprints, widget blueprints, generated classes, and editor-authored graph data remain binary+l because the graph and generated object data are not safe for text merges.

Source media such as FBX, WAV, EXR, KTX2, and USD files are writable binary assets. They are stored in LFS or Perforce but can be replaced through their source tools without package-level merge.

Build Farm Caches#

The build farm uses per-platform cooked-content caches rooted at $(UE_SHARED_DDC)/V2/CookedContent. Win64, PS5, XSX, Switch2, and LinuxServer each have a shipping cache key. Nightly builds run delta cooks against those caches; the weekly hard refresh deletes and rebuilds each platform cache before the next nightly starts.

Shared DDC remains rooted at $(UE_SHARED_DDC)/V2/DDC, while UBA uses $(UE_SHARED_DDC)/V2/UBA. CI and local editor sessions must set UE_SHARED_DDC plus the platform-specific UE-SharedDataCachePath or UE_SharedDataCachePath override.

Weekly Asset Audit#

The weekly asset audit publishes $(ArchiveRoot)/AssetAudit/weekly-asset-audit.json. The report must include orphan assets, oversized assets, missing LODs, missing skin weights, and redundant material variants. Critical findings fail the build-farm gate and must be fixed or explicitly waived by the asset pipeline owner.