Skip to content

Content validation

This page records the validation model behind MCP content_check.

Current rule

Designers and artists do not run convention_check unless they changed C++. For Content-only changelists, run:

content_check -> request_review -> human editor/PIE review -> submit

content_check is local and deterministic. It checks what Perforce can know without opening binary asset internals:

  • approved Content roots: Content/Rephrased/, root-level Content/Developers/<Discipline>/<Name>/, Content/Imports/, and World Partition external package roots
  • Rephrased asset prefixes such as SM_, SK_, M_, MI_, MF_, BP_, WBP_, NS_, S_, DEC_, DA_, Lvl_, LV_
  • import-pack edits under Content/Imports/
  • asset/map deletes and moves that need referencer and redirector verification
  • generated/local output accidentally opened in Perforce
  • World Partition map changes that are missing matching __ExternalActors__ files

It does not inspect Blueprint graphs, material graphs, mesh topology, texture quality, audio mix, or map playability. Those still need Unreal editor review and PIE.

Source rationale

Epic's Data Validation system is the right long-term framework for deeper content validation. It supports project-specific validation rules for assets, including naming conventions, budgets, and dependency checks, and can run from the editor or command line through UnrealEditor-Cmd.exe <PROJECT>.uproject -run=DataValidation.

For now, MCP content_check is the lightweight pre-review version that works from Perforce paths before we invest in C++/Blueprint/Python editor validators.

World Partition collaboration depends on One File Per Actor / external actors. Epic documents OFPA as saving actor instance data to external files so editing an actor does not require saving the main level file, reducing overlap between users. World Partition stores a world in grid cells, and Data Layers organize actors in editor/runtime groups. Therefore, Rephrased content review checks for __ExternalActors__ shape when maps are changed, but the final truth still comes from loading the map in Unreal.

Asset moves should happen in Unreal's Content Browser or editor tools because Unreal uses redirectors to keep references alive after assets move; redirectors then need fix-up/resave. Explorer/P4V file moves bypass that reference-aware path.

Role routing

  • Engineer: C++ and systems work; run convention_check for C++ and content_check only when Content changed.
  • Designer: map, World Partition, Data Layer, puzzle device placement, Blueprint/content-only work; run content_check.
  • Artist: art, material, texture, audio, VFX, and import/promotion work; run content_check. Use Content/Rephrased/Art/ for reusable art, Content/Rephrased/Audio/Archive-Prepro/ only for legacy/pre-production audio reference, and Content/Developers/Art/<Name> or Content/Developers/Audio/<Name> for scratch.
  • QA/usability: onboard as designer for now.
  • Audio: onboard as artist unless the task is mostly level/design QA.

References

Change history

  • 2026-09-07 - Gabriel Li - Clarified root-level Content/Developers/ and current audio/archive paths after art reorganization CL 114583.

  • 2026-09-07 - Gabriel Li - Added the content validation model for designer/artist MCP onboarding and pre-review checks.