Cannot Access Assets From Submodules In Asset.Digest file

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Assets

Summary

There doesn’t seem to be a way to access assets like textures or materials from submodules created in the Asset.Digest file. While I’m aware that moving assets to the root folder will make them accessible, this breaks any form of organization for the project and seems like an obvious oversight.

Steps to Reproduce

  1. Create some assets like textures or materials and place them into subfolders. The digest file automatically updates to show something like this:
# Copyright Epic Games, Inc. All Rights Reserved.
#################################################
# Generated Digest of Verse API
# DO NOT modify this manually!
# Generated from build: ++Fortnite+Release-30.30-CL-34891016
#################################################


using {/UnrealEngine.com/Temporary/UI}
using {/Verse.org/Assets}
TestFolder := module:
    Materials := module:
        M_TestMaterial<scoped {BB2}>:material = external {}

    Textures := module:
        T_TestTexture<scoped {BB2}>:texture = external {}
  1. Try to access these assets in verse:
TestTexture:texture = TestFolder.Textures.T_TestTexture
  1. Get error: Invalid access of internal module

Expected Result

Be able to access these assets without issue.

Observed Result

By default modules are <internal> making them inaccessible and the Asset.Digest is missing <public> specifiers to allow us access to submodules. This should be an easy fix by just ensuring that modules in the digest file have the <public> specifier by default although I’m not sure if there are negative side effects for doing this.

Platform(s)

Windows

Additional Notes

There is a note made on the “Exposing Assets in UEFN to Verse” page under troubleshooting which seemingly shows a solution to this problem but I have no idea what they’ve done to make this work.

They show that adding the code below to a verse file will somehow fix this problem, but this would just cause an ambiguous error as there would now be two modules specified with the same name. I’m not sure if I’m just misunderstanding but this seems impossible to do?

TestFolder:= module:
    Materials<public>:= module{}

Link: Exposing Assets in UEFN to Verse | Unreal Editor for Fortnite Documentation | Epic Developer Community

Any update on this?

Yeah I fixed it, turns out none of the documentation takes into account that users may have different project folder structures… I have all my code stored in a folder called Verse which is considered it’s own module. So it would always fail to override the modules in Asset.Digest as it was not pointing to the same place. Moving the file to the root of the project fixed this issue for me and everything worked as intended.

2 Likes

Awesome, making Assets.verse in root folder with stuff form tutorial worked for me too!
Thank you!

1 Like