World Partition Migration from 5.0 to 5.1

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

[2022.11.19-18.14.30:463][ 0]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: === Critical error: ===
[2022.11.19-18.14.31:322][ 0]LogWindows: Error:
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 763]
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: Array index out of bounds: 0 from an array of size 0
[2022.11.19-18.14.31:322][ 0]LogWindows: Error:
[2022.11.19-18.14.31:322][ 0]LogWindows: Error:
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: [Callstack] 0x00007fff79fd4796 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: [Callstack] 0x00007fff79fd7617 UnrealEditor-UnrealEd.dll!UnknownFunction []
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: [Callstack] 0x00007ff74b82b0ce UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:322][ 0]LogWindows: Error: [Callstack] 0x00007ff74b822688 UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff74b82296a UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff74b825680 UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff74b8371b4 UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff74b83a516 UnrealEditor.exe!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff8587174b4 KERNEL32.DLL!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error: [Callstack] 0x00007ff8589626a1 ntdll.dll!UnknownFunction []
[2022.11.19-18.14.31:323][ 0]LogWindows: Error:
[2022.11.19-18.14.31:343][ 0]LogExit: Executing StaticShutdownAfterError
[2022.11.19-18.14.31:344][ 0]LogWindows: FPlatformMisc::RequestExit(1)
[2022.11.19-18.14.31:344][ 0]LogWindows: FPlatformMisc::RequestExitWithStatus(1, 3)
[2022.11.19-18.14.31:344][ 0]LogCore: Engine exit requested (reason: Win RequestExit)

3 Likes

Hi May I ask you where do you run Commandlet? I have the similar problem

Command line, from the Unreal Bin folder.
Happens with Powershell and Command.exe

1 Like

You have to specify the level!

.\UnrealEditor.exe “PROJECTPATH\YOURPROJECT.uproject” -run=DataLayerToAssetCommandlet YOURLEVELNAMETOCONVERT -DestinationFolder=Game/DataLayers -IgnoreActorLoadingErrors

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!

2 Likes

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.

I try to run command but receive this. Anyone else have the same problems?

What command have you exactly typed?

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?

Cheers

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

1 Like

cheers for the reply, i will give this a go!!

Hi, I typed smth like following

open UnrealEditor.app --args /Users/username/Documents/Unreal Projects 1/CrashTest 5.1/CrashTest.uproject” -run=DataLayerToAssetCommandlet L_World_01 -DestinationFolder=/Users/username/Documents/Unreal Projects 1/CrashTest 5.1/Content/DataLayers

1 Like

Try changing folder name
From “Projects 1/CrashTest 5.1/CrashTest.uproject”
To “Projects 1/CrashTest 5_1/CrashTest.uproject”"

I had problems when using “.” In folder or project names

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):

InsertPathToUnrealEditorHere\UnrealEditor.exe "D:/UnrealProjects/GameName/GameName.uproject" -run=DataLayerToAssetCommandlet "/PluginWithMaps/Maps/L_VerticalSlice.umap" -DestinationFolder=/Game/DataLayers/

Though I did get a warning about using deprecated object instead of the object path or package name, but it works for now!

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 :wink:

If anyone lands here trying to run this for 5.2 official release, here is a working format. Replace c:/PROJECT_LOCATION with your actua paths:

UnrealEditor.exe "C:/PROJECT_LOCATION/CitySampleV52/CitySampleV52.uproject" -run=DataLayerToAssetCommandlet "C:/PROJECT_LOCATION/CitySampleV52/Content/Map/Big_City_LVL.umap" -DestinationFolder=/Game/DataLayers -IgnoreActorLoadingErrors
5 Likes

“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 \