This document covers TODOS.phase-72.72.14.1.6: loading .mayamod assets so
mods can add textures, meshes, audio, levels, and related engine assets through
the V2 modding runtime.
Runtime Surface#
- module:
V2Modding - policy:
FV2ModAssetLoadingPolicy - request:
FV2ModAssetLoadRequest - mount record:
FV2ModAssetMount - plan/result:
FV2ModAssetLoadPlan - helper functions:
BuildDefaultModAssetLoadingPolicy,BuildModAssetLoadRequest,EvaluateModAssetLoadRequest,BuildModAssetLoadPlan, andExecuteModAssetLoadPlan - automation:
V2/ue/Source/V2Tests/Private/Modding/ModLoadingSystem.spec.cpp - contract:
V2/ue/Content/V2/Modding/ModAssetLoading_V2_Contract.json
Asset Kinds#
The loader accepts manifest assets of kind Texture, Mesh, Level,
Material, Audio, Animation, DataTable, Localization, PreviewImage,
and ScriptData. Runtime requests preserve the manifest asset id, relative
package path, load phase, tags, integrity hash, byte size, and /V2/Mods/ mount
point.
BuildModAssetLoadPlan turns manifest entries into FV2ModAssetMount records
with deterministic registry paths and soft object paths.
ExecuteModAssetLoadPlan marks accepted mounts as mounted and registered with
the engine asset system so later runtime work can hand the mount records to
concrete package or asset registry adapters.
Policy#
The default policy requires sandbox approval, keeps mounts under /V2/Mods/,
caps individual assets at 256 MiB, and registers accepted assets with the engine
asset system. Level assets are restricted to MatchLoad or OnDemand phases so
mods cannot inject levels during startup or menu boot.
Verification#
python3 V2/ue/Tools/check-v2-mod-asset-loading.py
python3 V2/ue/Tools/check-v2-mod-file-format.py
python3 V2/ue/Tools/check-v2-mod-scripting-integration.py
python3 V2/ue/Tools/check-v2-mod-api-surface.py
python3 V2/ue/Tools/check-v2-mod-sandboxing.py
python3 V2/ue/Tools/check-v2-mod-loading-system.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-mod-asset-loading.py V2/ue/Tools/check-v2-mod-file-format.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Modding/ModAssetLoading_V2_Contract.json