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
- 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 {}
- Try to access these assets in verse:
TestTexture:texture = TestFolder.Textures.T_TestTexture
- 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{}