So, UE5.1 has deprecated the old-style Data Layer Labels in favor of Data Layer Assets. It’s telling me to run “DataLayerToAssetCommandlet” to migrate the deprecated Data Layers, but when I run this command, I get an Array Out of Bounds error. Is the command I’m using wrong?
This is the command I ran:
.\UnrealEditor.exe I:\Valythiel\Valythiel.uproject -run=DataLayerToAssetCommandlet -DestinationFolder=I:\Valythiel\Content\Collections\DataLayers
This is the Error I get:
[2022.11.19-18.14.30:415][ 0]LogLevelSequenceEditor: LevelSequenceEditor subsystem initialized.
[2022.11.19-18.14.30:438][ 0]LogDataLayerToAssetCommandlet: Display: Data Layer Conversion started…
[2022.11.19-18.14.30:438][ 0]SourceControl: Source control is disabled
[2022.11.19-18.14.30:438][ 0]LogOutputDevice: Warning:
Script Stack (0 frames) :
[2022.11.19-18.14.30:463][ 0]LogWindows: Error: appError called: Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 763]
Array index out of bounds: 0 from an array of size 0
The destination folder “Game” refer to the “content” in your projet.
I had one error due to an actor “partially loaded” that refer to something like GPULightmass created on UE5.0EA… weird!
I have been in the directory “ExternalActors” and renamed this actor.uasset with an “.old” extension (actor.uasset.old).
Script go well this time!!
I have renamed back my actor to actor.uasset and voilà!
Edit: If you delete the partially loaded assets, it doesn’t prevent your project to launch and doesn’t seems to be used because they seems to be related to old engine versions => To be confirmed!
If you have multiple “world partition” levels in your projects, I think it will be a good idea to NOT have 2 Datalayers with the same name before migrate.
Hey Encephalon, thanks for posting and also Metathesus, cheers for your answer on this but can you clarify a little more on how to fix this issue. I have tried many command lines with no results and command prompts just says not recognised. Can you do a step by step solution. Also am i correct in this is to be type in CMD or within the unreal editor?
You have to type the command in CMD, not in editor.
You have to specify the folder in cmd
for example :
cd “C:\UE_5.1\Engine\Binaries\Win64”
then the command :
UnrealEditor.exe “PROJECTPATH\YOURPROJECT.uproject” -run=DataLayerToAssetCommandlet YOURLEVELNAMETOCONVERT -DestinationFolder=Game/DataLayers -IgnoreActorLoadingErrors
For anyone coming at this problem with a umap that’s in a gameplay plugin feature, what worked for me was using the Primary asset’ name (you get it when you hover your mouse over your umap in the contente browser):
I was following your advice and I managed to convert the Data Layers, but I have some other serious issues. Please, take a look at the post about my problem.
I’d be grateful for any feedback
“C:/Program Files/Epic Games/UE_5.4/Engine/Binaries/Win64/UnrealEditor.exe”
This was my path for the UnrealEditor.exe btw.
Also, be sure to use / if your path uses them! Not the \