# V2 Asset Pipeline Source-Control And Cache Policy

`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.
