Verse Persistence failing over Scene Graph component

Summary

Verse Persistence compatibility check on publishing is failing because of an ambiguous identifier in the already published version. The verse compiler did not catch an issue and let me publish, and upon updating there is now a problem that I seemingly have no control over.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Publishing

Steps to Reproduce

The published scene graph component has lines

using { /Verse.org}
using { /UnrealEngine.com }

DoorWorldTransform := Entity.GetGlobalTransform()
var DirectionToPlayer:vector3 = (Temporary.SpatialMath.FromTransform(FortChar.GetTransform()).Translation - DoorWorldTransform.Translation)

which did not trigger any Verse errors and let me publish but now I cannot update, presumably because of the ambiguous identifier its telling me on Temporary.

I attempted to fix it by changing to code to

using { /UnrealEngine.com }

DoorWorldTransform := Entity.GetGlobalTransform()
var DirectionToPlayer:vector3 = ((/UnrealEngine.com:)Temporary.SpatialMath.FromTransform(FortChar.GetTransform()).Translation - DoorWorldTransform.Translation)

in order to fix the ambiguous identifier and I got the same publishing error. I also tried completely removing the door_component from Verse all together and the same error is still triggering, assuming because the published version is the problem. This component also does not touch persistence at all.

Expected Result

Being able to publish

Observed Result

Verse Persistable compatibility check is failing on publish

Platform(s)

PC

Island Code

1090-6850-9185

Upload an image

@BrokenOutlander

Verse - Modifying Data Between Published Versions of Your Island

Turning off Scene Graph because tis EXPERIMENTAL

1 Like

This is unrelated to my issue, thanks though.

The problem is that you have two Temporary modules, one in the /UnrealEngine.com, and another on the /Verse.org. To fix that, you need to qualify the temporary module being used, or import them differently to avoid these conflicts.

Your problem is the same as this one: Compile Error: /Temporary Submodule Conflict in ScenegraphUtils.verse Between /UnrealEngine.com and /Verse.org - #2 by Sprintermax

Also, ignore the “verse persistable data is not backward compatible”. In this case, that is a generic error message that does not properly describe the real problem (the conflicting modules).
Your problem has nothing related to persistable but is related to the actual code compiling itself…

Your DoorWorldTransform is using LUF SpatialMath, but your DirectionToPlayer is doing a wacky mix of LUF and old XYZ spatial math. This needs to be handled in a proper way, such as this example:

using { /Verse.org/ }
using { /UnrealEngine.com/ }

DoorWorldTransform : (/Verse.org/SpatialMath:)transform = Entity.GetGlobalTransform()
var DirectionToPlayer : (/Verse.org/SpatialMath:)vector3 = ((/UnrealEngine.com/Temporary/SpatialMath:)FromVector3(FortChar.GetTransform().Translation) - DoorWorldTransform.Translation)

(note that even the implicit types are now mentioned and properly qualified on this example)

This is ensuring that the types stored on the variables are the correct expected ones, without conflicting due to ambiguity. (for example (/UnrealEngine.com/Temporary/SpatialMath:)vector3 with (/Verse.org/SpatialMath:)vector3 and /Verse.org/Temporary with /UnrealEngine.com/Temporary).

There is many ways to do that, with different import syntaxes and so on, you just need to use the one you are more familiar with.

1 Like

@Sprintermax Thank you for the length reply and attempting to help. I understand what you’re saying here. However, I think the published version is the problem that I cannot control.

The verse compiler never triggered an ambiguity error when I initially put this door_component in (obviously, or I wouldn’t have been able to publish). But now that I am trying to update, this ambiguity error is triggering with a file path that leads me to believe the published version is the problem. And note this error only ever triggers in the final publishing process, during the Verse check.

I have tried:

  • Fixing the ambiguity error in the door_component verse file and trying to update.
  • Completely removing the door_component verse file.
  • Trying to publish a previous version of the map before the door_component ever got added.

However, no matter what I try I get the same exact ambiguous error with the file pathing of “…/sys/published/…” My map is unable to be updated and I’m at a loss for what to do.

2 Likes

Oh, then it is a lot more complicated
Sorry for not being able to help you :frowning: