Asset Reflection: Assets.digest.verse continually regenerated overwriting <public> modifiers

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Assets

Summary

Adding modifier changes to submodules in Assets.digest.verse, in order to access assets in other Verse files, are overwritten with every recompile of Verse. This causes any Verse classes referencing those submodules to throw access errors.

Steps to Reproduce

  1. Add an image or other asset to a new UEFN project so that it imports.
  2. Compile Verse.
  3. Open Assets.digest.verse and add to the submodule that contains the image or other asset you wish to access externally, save.
  4. Create a Verse device and add a using statement that points to the submodule, and save. Ex: using { MyProject.Submodule }
  5. In UEFN, compile Verse.

Expected Result

The other Verse class should successfully reference MyProject.Submodule noted in Assets.digest.verse.

Observed Result

UEFN regenerates Assets.digest.verse which removes any script changes, including the modifiers, which then causes compiler errors to be throw from Verse classes trying to access contained submodules.

Platform(s)

All.

Island Code

2757-3044-9537

As a workaround, I was able to move an asset (texture) to the top folder of my project folder and re-compile. The top folder / module is public by default in Assets.digest.verse so my asset can be referenced in other Verse files. Of course, this makes for a very unstructured and large top-level project with many assets.

What worked for me is making the module public in the same file that imports it (not Assets.digest.verse).

For example, for ModuleA.ModuleB.ModuleC, the following worked in the device file:

using { ModuleA.ModuleB.ModuleC }

ModuleA := module:
    ModuleB<public> := module:
        ModuleC<public> := module {}

# ... device code using this module
1 Like

I’ll give that a try! I would have thought that would create a naming collision (duplication) error and not work as a forward-reference to the Assets.digest.verse file. Good find!

1 Like

Assets.digest.verse is not visible. Did they changed it?