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.