CreatePackage fails - short name instead of long?


I’ve been trying to use the level summary system from UT4 so that we no longer have to create a separate file to store map name, description etc.

The only problem I am having is getting the LoadLevelSummary function to work and I’m not sure why.

Log messages:

LogUObjectGlobals:Warning: Attempted to create a package with a short package name: /Game/Maps/TargetTest/TargetTest_Map.umap Outer: Package /Game/Maps/TargetTest/TargetTest_Map
LogLinker: Can't resolve asset name

The code is all but unchanged from UT4:

	if (MapFullName.Len() > 0 || FPackageName::SearchForPackageOnDisk(MapName + FPackageName::GetMapPackageExtension(), &MapFullName))
		static FName NAME_LevelSummary(TEXT("LevelSummary"));

		UPackage* Pkg = CreatePackage(NULL, *MapFullName);
		Summary = FindObject<UGBLevelSummary>(Pkg, *NAME_LevelSummary.ToString());
		if (Summary == NULL)

MapName & MapFullName are both correct, though I have no idea if they are considered short or long anymore.

Experiments using full path - i.e. d:\GroundBranch\Contents\Maps\TargetTest\TargetTest_Map.umap - resulted in the path not being valid, as it didn’t start with the correct prefix, such as /Game.

Have tried this in both 4.7.6 & 4.8preview4, full source build, packaged & unpackaged.
No luck.

Any suggestions would be welcome.


Affer running MapFullName through FPackageName::IsValidLongPackageName(), the failure reason give was that the string contains a period (.).
So the culprit is the added .umap extension.

Unless I’ve missed something, this would suggest that this shouldn’t work in UT4 either.

Tad confusing, but using MapName instead of MapFullName (which includes extension) works fine.