Fighting Game · Guides & deep dives

Mod Asset Loading

The loader accepts manifest assets of kind Texture, Mesh, Level,

4sections1 minread

On this page

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, and ExecuteModAssetLoadPlan
  • 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#

bash
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