UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Package.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Async/Future.h"
6#include "Containers/Array.h"
8#include "CoreGlobals.h"
9#include "CoreMinimal.h"
10#include "Delegates/Delegate.h"
11#include "HAL/PlatformMath.h"
12#include "IO/IoHash.h"
13#include "IO/PackageId.h"
15#include "Misc/DateTime.h"
16#include "Misc/Guid.h"
19#include "Misc/PackagePath.h"
20#include "Misc/SecureHash.h"
23#include "Templates/PimplPtr.h"
24#include "Templates/UniquePtr.h"
26#include "UObject/NameTypes.h"
27#include "UObject/Object.h"
31
32#if WITH_METADATA
33#include "UObject/MetaData.h"
34#endif
35
36#if WITH_EDITORONLY_DATA
37#include "IO/IoHash.h"
38#endif
39
40#if WITH_EDITOR
42#endif
43
44#include "Package.generated.h"
45
46class Error;
47class FArchive;
48class FLinkerLoad;
49// This is a dummy type which is not implemented anywhere. It's only
50// used to flag a deprecated Conform argument to package save functions.
51class FLinkerNull;
52class FLinkerSave;
55class FOutputDevice;
57class FString;
58class ITargetPlatform;
59class UFunction;
61struct FAssetData;
62struct FMD5Hash;
63struct FPackageSaveInfo;
64struct FSavePackageArgs;
65
66#if WITH_EDITOR
67namespace UE::Cook { class FCookDependency; }
68#endif
69
74{
76 Success,
78 Error,
83 ReferencedOnlyByEditorOnlyData UE_DEPRECATED(5.6, "The cooker now uses SkipOnlyEditorOnly to detect ReferencedOnlyByEditorOnlyData instead of detecting it during SavePackage"),
88 DifferentContent UE_DEPRECATED(5.0, "Diffing is now done using FDiffPackageWriter."),
98 Timeout,
99};
100
102{
103 return
104 Result == ESavePackageResult::Success ||
107}
108
110{
111
124
125}
130{
133
136
137 UE_DEPRECATED(5.1, "CookedHash is now available through PackageWriter->CommitPackage instead. For waiting on completion in the non-cook case, use UPackage::WaitForAsyncFileWrites.")
139
142
143 UE_DEPRECATED(5.6, "Returning the LinkerSave for comparison is no longer used. Contact Epic if you need this functionality.")
145
147
151
152#if WITH_EDITOR
153 UE_DEPRECATED(5.6, "Use BuildResultDependencies instead..")
156
158 TArray<UObject*> Imports;
169 UE_INTERNAL TArray<UE::SavePackageUtilities::FPreloadDependency> PreloadDependencies;
170#endif
171
178 UE_DEPRECATED(5.6, "Returning the LinkerSave for comparison is no longer used. Contact Epic if you need this functionality.")
184
185 bool operator==(const FSavePackageResultStruct& Other) const
186 {
187 return Result == Other.Result;
188 }
189
191 {
192 return Result != Other.Result;
193 }
194
196 bool IsSuccessful() const
197 {
198 return ::IsSuccessful(Result);
199 }
200};
201
204{
205 Private,
206 Public,
208};
209
213PRAGMA_DISABLE_DEPRECATION_WARNINGS // Required for auto-generated functions referencing PackageFlags
214UCLASS(MinimalAPI, Config=Engine)
216{
218
219
220 UPackage(FVTableHelper& Helper)
221 : Super(Helper)
222 {
223 };
224
226
227public:
228
233
234 ~UPackage() = default;
235
236#if UE_WITH_CONSTINIT_UOBJECT
237 explicit consteval UPackage(UE::CodeGen::ConstInit::FPackageParams InParams)
239 , bDirty(false)
242#endif
243 , bHasBeenFullyLoaded(false)
244 , bCanBeImported(false)
246 , PersistentGuid(FGuid(InParams.BodiesHash, InParams.DeclarationsHash, 0, 0))
247 , ChunkIDs(ConstEval)
248#endif
249 , PackageFlagsPrivate(InParams.Flags)
250 , PackageId()
251 , LoadedPath()
254#endif
256 , PIEInstanceID(INDEX_NONE)
257#endif
258 {
259
260 }
261#endif
262
275
276#if WITH_METADATA
280 DECLARE_MULTICAST_DELEGATE_FourParams(FOnMetaDataTransferRequestedDelegate, const FMetaData& OldMetaData, FMetaData& NewMetaData, const UPackage* OldPackage, UPackage* NewPackage);
281#endif
282
283 UE_DEPRECATED(5.0, "Use PreSavePackageWithContextEvent instead.")
286 COREUOBJECT_API static FPreSavePackageWithContext PreSavePackageWithContextEvent;
287 UE_DEPRECATED(5.0, "Use PackageSavedWithContextEvent instead.")
303
304#if WITH_METADATA
306#endif
307private:
309 uint8 bDirty:1;
310
311#if WITH_EDITORONLY_DATA
314#endif
315
316public:
319
327
328#if WITH_EDITORONLY_DATA
332 bool bIsCookedForEditor{ false };
333
334private:
336 std::atomic<bool> bHasBeenEndLoaded{ false };
337
338public:
342 bool GetHasBeenEndLoaded() const
343 {
344 return bHasBeenEndLoaded.load(std::memory_order_acquire) != 0;
345 }
346 void SetHasBeenEndLoaded(bool bValue)
347 {
348 bHasBeenEndLoaded.store(bValue, std::memory_order_release);
349 }
350#endif
351
352private:
353#if WITH_EDITORONLY_DATA
355 FGuid PersistentGuid;
356
358 TArray<int32> ChunkIDs;
359
360 FIoHash SavedHash;
361#endif // WITH_EDITORONLY_DATA
362
364 std::atomic<uint32> PackageFlagsPrivate;
365
367 FPackageId PackageId;
368
370 FPackagePath LoadedPath;
371
372 // @note this should probably be entirely deprecated and removed but certain stat dump function are still using it,
373 // just compile it out in shipping for now
374#if !UE_BUILD_SHIPPING
379 float LoadTime = 0.0f;
380#endif
381
382 struct FAdditionalInfo
383 {
385 FPackageFileVersion LinkerPackageVersion = GPackageFileUEVersion;
386
388 int32 LinkerLicenseeVersion = GPackageFileLicenseeUEVersion;
389
391 FCustomVersionContainer LinkerCustomVersion;
392
394 FLinkerLoad* LinkerLoad = nullptr;
395
397 uint64 FileSize = 0;
398
399 // World browser information
400 TUniquePtr< FWorldTileInfo > WorldTileInfo;
401 };
402
404 TUniquePtr<FAdditionalInfo> AdditionalInfo;
405
406#if WITH_METADATA
407 // MetaData for the editor
408 FMetaData MetaData;
409
410 // Deprecated UMetaData member when loading older packages
411 UE_DEPRECATED(5.6, "UMetaData was replaced by FMetaData, this member is only used for migrating t he existing data, do not use.")
413#endif // WITH_METADATA
414
415#if WITH_EDITORONLY_DATA
417 TUniquePtr< FThumbnailMap > ThumbnailMap;
418
420 int32 PIEInstanceID;
421#endif
422
423#if WITH_RELOAD
426#endif
427
428public:
429
430 // For now, assume all packages have stable net names
431 virtual bool IsNameStableForNetworking() const override { return true; }
432 // We override NeedsLoadForClient to avoid calling the expensive generic version, which only makes sure that the
433 // UPackage static class isn't excluded
434 virtual bool NeedsLoadForClient() const override { return true; }
435 virtual bool NeedsLoadForServer() const override { return true; }
436 COREUOBJECT_API virtual bool IsPostLoadThreadSafe() const override;
437 COREUOBJECT_API virtual bool Rename(const TCHAR* NewName = nullptr, UObject* NewOuter = nullptr, ERenameFlags Flags = REN_None) override;
438
439#if WITH_EDITORONLY_DATA
440 UE_DEPRECATED(5.5, "No longer used; skiponlyeditoronly is used instead and tracks editoronly references via savepackage results.")
441 void SetLoadedByEditorPropertiesOnly(bool bIsEditorOnly, bool bRecursive = false) {}
443 UE_DEPRECATED(5.5, "No longer used; skiponlyeditoronly is used instead and tracks editoronly references via savepackage results.")
444 bool IsLoadedByEditorPropertiesOnly() const { return false; }
445
448 {
450 }
453#endif
454
460 COREUOBJECT_API virtual void PostInitProperties() override;
461
462 COREUOBJECT_API virtual void FinishDestroy() override;
463
465 COREUOBJECT_API virtual void Serialize( FArchive& Ar ) override;
466
468 virtual bool IsAsset() const override { return false; }
469
470#if WITH_EDITOR
479 COREUOBJECT_API static void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
480#endif
481
482 // UPackage interface.
483
484private:
485 friend class FLinkerLoad;
486 friend class FUnsafeLinkerLoad;
487 friend class FSaveContext;
488 friend struct FAsyncPackage2;
489
490 void SetLinker(FLinkerLoad* InLinker)
491 {
492 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
493 if (AdditionalInfo.IsValid())
494 {
495 AdditionalInfo->LinkerLoad = InLinker;
496 }
497 else if (InLinker != nullptr)
498 {
499 AdditionalInfo = MakeUnique<FAdditionalInfo>();
500 AdditionalInfo->LinkerLoad = InLinker;
501 }
502 }
503
504 void SetLinkerPackageVersion(FPackageFileVersion InVersion)
505 {
506 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
507 if (AdditionalInfo.IsValid())
508 {
509 AdditionalInfo->LinkerPackageVersion = MoveTemp(InVersion);
510 }
512 {
513 AdditionalInfo = MakeUnique<FAdditionalInfo>();
514 AdditionalInfo->LinkerPackageVersion = MoveTemp(InVersion);
515 }
516 }
517
518 void SetLinkerLicenseeVersion(int32 InVersion)
519 {
520 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
521 if (AdditionalInfo.IsValid())
522 {
523 AdditionalInfo->LinkerLicenseeVersion = InVersion;
524 }
526 {
527 AdditionalInfo = MakeUnique<FAdditionalInfo>();
528 AdditionalInfo->LinkerLicenseeVersion = InVersion;
529 }
530 }
531
532 void SetLinkerCustomVersions(FCustomVersionContainer InVersions)
533 {
534 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
535 if (AdditionalInfo.IsValid())
536 {
537 AdditionalInfo->LinkerCustomVersion = MoveTemp(InVersions);
538 }
539 else if (!InVersions.GetAllVersions().IsEmpty())
540 {
541 AdditionalInfo = MakeUnique<FAdditionalInfo>();
542 AdditionalInfo->LinkerCustomVersion = MoveTemp(InVersions);
543 }
544 }
545
546 void SetFileSize(int64 InFileSize)
547 {
548 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
549 if (AdditionalInfo.IsValid())
550 {
551 AdditionalInfo->FileSize = InFileSize;
552 }
553 else if (InFileSize != 0)
554 {
555 AdditionalInfo = MakeUnique<FAdditionalInfo>();
556 AdditionalInfo->FileSize = MoveTemp(InFileSize);
557 }
558 }
559
560public:
561
566 {
567#if WITH_EDITORONLY_DATA
568 return PIEInstanceID;
569#else
570 return INDEX_NONE;
571#endif
572 }
573
579 {
580#if WITH_EDITORONLY_DATA
581 PIEInstanceID = InPIEInstanceID;
582#endif
583 }
584
586 {
587 return AdditionalInfo.IsValid() ? AdditionalInfo->LinkerLoad : nullptr;
588 }
589
591 {
592 return AdditionalInfo.IsValid() ? AdditionalInfo->LinkerPackageVersion : GPackageFileUEVersion;
593 }
594
596 {
597 return AdditionalInfo.IsValid() ? AdditionalInfo->LinkerLicenseeVersion : GPackageFileLicenseeUEVersion;
598 }
599
601 {
603 return AdditionalInfo.IsValid() ? AdditionalInfo->LinkerCustomVersion : EmptyVersions;
604 }
605
606private:
607 void EmptyLinkerCustomVersion()
608 {
609 if (AdditionalInfo.IsValid())
610 {
611 AdditionalInfo->LinkerCustomVersion.Empty();
612 }
613 }
614
615public:
619 void SetLoadTime( float InLoadTime )
620 {
621#if !UE_BUILD_SHIPPING
622 LoadTime = InLoadTime;
623#endif
624 }
625
631 float GetLoadTime() const
632 {
633#if !UE_BUILD_SHIPPING
634 return LoadTime;
635#else
636 return 0.0f;
637#endif
638 }
639
644 {
645 bDirty = false;
646 }
647
651 COREUOBJECT_API void SetDirtyFlag( bool bIsDirty );
652
658 bool IsDirty() const
659 {
660 return bDirty;
661 }
662
663#if WITH_EDITOR
667 void MarkAsNewlyCreated()
668 {
670 SetPackageFlags(PKG_NewlyCreated);
671 SetFileSize(0);
672 }
673
677 void MarkAsUnloaded()
678 {
679 bHasBeenFullyLoaded = false;
680 ClearFlags(RF_WasLoaded);
681 }
682#endif
683
688 {
689 bHasBeenFullyLoaded = true;
690 }
691
697 COREUOBJECT_API bool IsFullyLoaded() const;
698
702 COREUOBJECT_API void FullyLoad();
703
708 COREUOBJECT_API const FPackagePath& GetLoadedPath() const;
709
713 COREUOBJECT_API void SetLoadedPath(const FPackagePath& PackagePath);
714
719 {
720 bCanBeImported = bInCanBeImported;
721 }
722
728 bool CanBeImported() const
729 {
730 return bCanBeImported;
731 }
732
737 {
738 SetPackageFlags(PKG_ContainsMap);
739 }
740
746 bool ContainsMap() const
747 {
748 return HasAnyPackageFlags(PKG_ContainsMap);
749 }
750
755 {
756 if(Value)
757 {
758 SetPackageFlags(PKG_RequiresLocalizationGather);
759 }
760 else
761 {
762 ClearPackageFlags(PKG_RequiresLocalizationGather);
763 }
764 }
765
772 {
773 return HasAnyPackageFlags(PKG_RequiresLocalizationGather);
774 }
775
783 {
784 if (Ar.IsSaving() && Ar.IsCooking())
785 {
786 SetPackageFlags(PKG_LoadUncooked);
787 }
788 }
789
790
797 {
798 uint32 OldFlags = GetPackageFlags();
799
800 // Fast path without atomics if already set
801 if (NewFlags == OldFlags)
802 {
803 return;
804 }
805
806 if (AutoRTFM::IsClosed())
807 {
809 {
810 OldFlags = PackageFlagsPrivate.exchange(NewFlags, std::memory_order_relaxed);
811 };
812
813 // If we abort we undo setting the flags we just set.
814 AutoRTFM::OnAbort([this, OldFlags]
815 {
816 PackageFlagsPrivate.store(OldFlags, std::memory_order_relaxed);
817 });
818 }
819 else
820 {
821 PackageFlagsPrivate.store(NewFlags, std::memory_order_relaxed);
822 }
823 }
824
831 {
832 uint32 OldFlags = GetPackageFlags();
833 uint32 NewFlags = OldFlags | FlagsToSet;
834
835 // Fast path without atomics if already set
836 if (NewFlags == OldFlags)
837 {
838 return;
839 }
840
841 if (AutoRTFM::IsClosed())
842 {
844 {
845 OldFlags = PackageFlagsPrivate.fetch_or(FlagsToSet, std::memory_order_relaxed);
846 };
847
848 // If we abort we undo setting the flags we just set.
849 AutoRTFM::OnAbort([this, OldFlags, FlagsToSet]
850 {
851 uint32 MaskFlags = OldFlags;
852
853 // Now just extract out the old flags that mattered (the ones we were setting).
855 // And unmask the flags we didn't mention.
857
858 PackageFlagsPrivate.fetch_and(MaskFlags, std::memory_order_relaxed);
859 });
860 }
861 else
862 {
863 PackageFlagsPrivate.fetch_or(FlagsToSet, std::memory_order_relaxed);
864 }
865 }
866
873 {
874 uint32 OldFlags = GetPackageFlags();
875 uint32 NewFlags = OldFlags & ~FlagsToClear;
876
877 // Fast path without atomics if already cleared
878 if (NewFlags == OldFlags)
879 {
880 return;
881 }
882
883 if (AutoRTFM::IsClosed())
884 {
886 {
887 OldFlags = PackageFlagsPrivate.fetch_and(~FlagsToClear, std::memory_order_relaxed);
888 };
889
890 // If we abort we undo clearing the flags we just unset.
891 AutoRTFM::OnAbort([this, OldFlags, FlagsToClear]
892 {
893 int32 MaskFlags = OldFlags;
894
895 // Now just extract out the old flags that mattered (the ones we were setting).
897
898 PackageFlagsPrivate.fetch_or(MaskFlags, std::memory_order_relaxed);
899 });
900 }
901 else
902 {
903 PackageFlagsPrivate.fetch_and(~FlagsToClear, std::memory_order_relaxed);
904 }
905 }
906
916 {
917 return (GetPackageFlags() & FlagsToCheck) != 0;
918 }
919
927 {
928 return ((GetPackageFlags() & FlagsToCheck) == FlagsToCheck);
929 }
930
936 inline uint32 GetPackageFlags() const
937 {
938 uint32 Result = 0;
939
941 {
942 Result = PackageFlagsPrivate.load(std::memory_order_relaxed);
943 };
944
945 return Result;
946 }
947
952 {
953 return GetAssetAccessSpecifier() == EAssetAccessSpecifier::Public;
954 }
955
962 {
963 SetAssetAccessSpecifier(bValue ? EAssetAccessSpecifier::Public : EAssetAccessSpecifier::Private);
964 }
965
968 {
969 if (HasAnyPackageFlags(PKG_NotExternallyReferenceable))
970 {
972 }
973 else if (HasAnyPackageFlags(PKG_AccessSpecifierEpicInternal))
974 {
976 }
977
979 }
980
988 {
989 if (GetAssetAccessSpecifier() == InAccessSpecifier)
990 {
991 return false;
992 }
993
994#if WITH_EDITOR
995 Modify();
996#endif
997
999
1001 {
1002 SetPackageFlags(PKG_NotExternallyReferenceable);
1003 }
1005 {
1006 SetPackageFlags(PKG_AccessSpecifierEpicInternal);
1007 }
1008
1009 return true;
1010 }
1011
1012#if WITH_EDITORONLY_DATA
1014 bool HasThumbnailMap() const
1015 {
1016 return ThumbnailMap.IsValid();
1017 }
1018
1020 const FThumbnailMap& GetThumbnailMap() const
1021 {
1023 return *ThumbnailMap;
1024 }
1025
1028 {
1030 return *ThumbnailMap;
1031 }
1032
1035 {
1036 ThumbnailMap = MoveTemp(InThumbnailMap);
1037 }
1038
1041 {
1042 return PersistentGuid;
1043 }
1046 {
1047 PersistentGuid = NewPersistentGuid;
1048 }
1049
1053#endif
1054
1055#if WITH_RELOAD
1057 {
1058 return Delegates;
1059 }
1060
1062 {
1064 }
1065#endif
1066
1069 {
1070 return AdditionalInfo.IsValid() ? AdditionalInfo->WorldTileInfo.Get() : nullptr;
1071 }
1072
1075 {
1076 LLM_SCOPE_BYNAME(TEXT("Package/AdditionalInfo"));
1077 if (AdditionalInfo.IsValid())
1078 {
1079 AdditionalInfo->WorldTileInfo = MoveTemp(InWorldTileInfo);
1080 }
1081 else if (InWorldTileInfo.IsValid())
1082 {
1083 AdditionalInfo = MakeUnique<FAdditionalInfo>();
1084 AdditionalInfo->WorldTileInfo = MoveTemp(InWorldTileInfo);
1085 }
1086 }
1087
1090 {
1091 return AdditionalInfo.IsValid() ? AdditionalInfo->FileSize : 0;
1092 }
1093
1096 {
1097#if WITH_EDITORONLY_DATA
1098 return ChunkIDs;
1099#else
1100 static TArray<int32> Dummy;
1101 return Dummy;
1102#endif
1103 }
1104
1107 {
1108#if WITH_EDITORONLY_DATA
1109 ChunkIDs = InChunkIDs;
1110#endif
1111 }
1112
1115 {
1116 return PackageId;
1117 }
1118
1124
1130
1136
1141 COREUOBJECT_API TArray<UPackage*> GetExternalPackages() const;
1142
1144 // MetaData
1145
1146#if WITH_METADATA
1154 COREUOBJECT_API FMetaData& GetMetaData();
1155#endif
1156
1169 const FSavePackageArgs& SaveArgs);
1170
1177
1190 const FSavePackageArgs& SaveArgs);
1191
1193 COREUOBJECT_API static void WaitForAsyncFileWrites();
1194
1196 COREUOBJECT_API static bool HasAsyncFileWrites();
1197
1205 COREUOBJECT_API static bool IsEmptyPackage(UPackage* Package, const UObject* LastReferencer = NULL);
1206
1207private:
1208 static FSavePackageResultStruct Save2(UPackage* InPackage, UObject* InAsset, const TCHAR* InFilename, const FSavePackageArgs& SaveArgs);
1209};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
virtual bool IsPostLoadThreadSafe() const override
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
#define WITH_METADATA
Definition CoreMiscDefines.h:32
@ ConstEval
Definition CoreMiscDefines.h:161
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_FourParams(DelegateName, Param1Type, Param2Type, Param3Type, Param4Type)
Definition DelegateCombinations.h:76
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
#define LLM_SCOPE_BYNAME(...)
Definition LowLevelMemTracker.h:1098
const bool
Definition NetworkReplayStreaming.h:178
uint32 ERenameFlags
Definition ObjectMacros.h:2302
#define REN_None
Definition ObjectMacros.h:2305
@ PKG_RequiresLocalizationGather
Set if the package contains any data to be gathered by localization.
Definition ObjectMacros.h:148
@ PKG_LoadUncooked
This package must be loaded uncooked from IoStore/ZenStore (set only when cooking,...
Definition ObjectMacros.h:149
@ PKG_ContainsMap
Set if the package contains a ULevel/ UWorld object.
Definition ObjectMacros.h:147
@ PKG_AccessSpecifierEpicInternal
Objects in this package can only be referenced in a different plugin or mount point by Epic.
Definition ObjectMacros.h:142
@ PKG_NotExternallyReferenceable
Objects in this package cannot be referenced in a different plugin or mount point (i....
Definition ObjectMacros.h:141
@ PKG_NewlyCreated
Newly created package, not saved yet. In editor only.
Definition ObjectMacros.h:131
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
@ RF_WasLoaded
Flagged on UObjects that were loaded.
Definition ObjectMacros.h:584
#define UCLASS(...)
Definition ObjectMacros.h:776
const FPackageFileVersion GPackageFileUEVersion(VER_LATEST_ENGINE_UE4, EUnrealEngineObjectUE5Version::AUTOMATIC_VERSION)
const int32 GPackageFileLicenseeUEVersion
Definition ObjectVersion.cpp:22
EAssetAccessSpecifier
Definition Package.h:204
bool IsSuccessful(ESavePackageResult Result)
Definition Package.h:101
ESavePackageResult
Definition Package.h:74
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
UE_FORCEINLINE_HINT bool IsCooking() const
Definition Archive.h:641
UE_FORCEINLINE_HINT bool IsSaving() const
Definition Archive.h:248
Definition CustomVersion.h:111
Definition LinkerLoad.h:124
Definition LinkerSave.h:48
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition ObjectSaveContext.h:459
Definition ObjectSaveContext.h:244
Definition UnrealType.h:3087
Definition OutputDevice.h:133
Definition PackageId.h:19
static CORE_API FPackageId FromName(const FName &Name)
Definition PackageId.cpp:26
Definition PackagePath.h:89
COREUOBJECT_API FName GetPackageFName() const
Definition PackagePath.cpp:1151
Definition UObjectGlobals.h:2492
Definition SaveContext.h:588
Definition SavePackage.h:226
Definition ObjectMacros.h:180
Definition WorldCompositionUtility.h:98
Definition ArrayView.h:139
Definition Array.h:670
Definition Future.h:393
Definition UnrealString.h.inl:34
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition MetaData.h:34
Definition Class.h:2476
Definition Object.h:95
Definition Package.h:216
uint8 bHasBeenFullyLoaded
Definition Package.h:318
UE_FORCEINLINE_HINT void SetPackageId(FPackageId InPackageId)
Definition Package.h:1120
bool ContainsMap() const
Definition Package.h:746
void SetPackageFlags(uint32 FlagsToSet)
Definition Package.h:830
float GetLoadTime() const
Definition Package.h:631
bool SetAssetAccessSpecifier(const EAssetAccessSpecifier InAccessSpecifier)
Definition Package.h:987
void ThisContainsMap()
Definition Package.h:736
~UPackage()=default
int32 GetPIEInstanceID() const
Definition Package.h:565
void SetPackageFlagsTo(uint32 NewFlags)
Definition Package.h:796
FWorldTileInfo * GetWorldTileInfo() const
Definition Package.h:1068
UE_FORCEINLINE_HINT bool HasAnyPackageFlags(uint32 FlagsToCheck) const
Definition Package.h:915
static COREUOBJECT_API bool SavePackage(UPackage *InOuter, UObject *InAsset, const TCHAR *Filename, const FSavePackageArgs &SaveArgs)
UE_FORCEINLINE_HINT bool HasAllPackagesFlags(uint32 FlagsToCheck) const
Definition Package.h:926
bool CanBeImported() const
Definition Package.h:728
virtual bool NeedsLoadForClient() const override
Definition Package.h:434
virtual bool NeedsLoadForServer() const override
Definition Package.h:435
static COREUOBJECT_API ESavePackageResult SaveConcurrent(TArrayView< FPackageSaveInfo > InPackages, const FSavePackageArgs &SaveArgs, TArray< FSavePackageResultStruct > &OutResults)
void SetWorldTileInfo(TUniquePtr< FWorldTileInfo > InWorldTileInfo)
Definition Package.h:1074
UE_FORCEINLINE_HINT FPackageId GetPackageIdToLoad() const
Definition Package.h:1126
uint8 bCanBeImported
Definition Package.h:326
DECLARE_MULTICAST_DELEGATE_TwoParams(FPreSavePackageWithContext, class UPackage *, FObjectPreSaveContext)
void MarkAsFullyLoaded()
Definition Package.h:687
void ClearDirtyFlag()
Definition Package.h:643
void SetCanBeImportedFlag(bool bInCanBeImported)
Definition Package.h:718
UPackage(const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
Definition Package.h:229
void ThisRequiresLocalizationGather(bool Value)
Definition Package.h:754
UE_FORCEINLINE_HINT void SetIsExternallyReferenceable(bool bValue)
Definition Package.h:961
UE_FORCEINLINE_HINT FPackageId GetPackageId() const
Definition Package.h:1114
DECLARE_MULTICAST_DELEGATE_OneParam(FPreSavePackage, class UPackage *)
static COREUOBJECT_API FSavePackageResultStruct Save(UPackage *InOuter, UObject *InAsset, const TCHAR *Filename, const FSavePackageArgs &SaveArgs)
void SetPIEInstanceID(int32 InPIEInstanceID)
Definition Package.h:578
virtual bool IsNameStableForNetworking() const override
Definition Package.h:431
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPackageSaved, const FString &, UObject *)
const FCustomVersionContainer & GetLinkerCustomVersions() const
Definition Package.h:600
UE_FORCEINLINE_HINT int64 GetFileSize() const
Definition Package.h:1089
EAssetAccessSpecifier GetAssetAccessSpecifier() const
Definition Package.h:967
void ThisShouldLoadUncooked(const FArchive &Ar)
Definition Package.h:782
const FPackageFileVersion & GetLinkerPackageVersion() const
Definition Package.h:590
UE_FORCEINLINE_HINT void SetChunkIDs(const TArray< int32 > &InChunkIDs)
Definition Package.h:1106
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPackageMarkedDirty, class UPackage *, bool)
int32 GetLinkerLicenseeVersion() const
Definition Package.h:595
virtual bool IsAsset() const override
Definition Package.h:468
FLinkerLoad * GetLinker() const
Definition Package.h:585
UE_FORCEINLINE_HINT bool IsExternallyReferenceable() const
Definition Package.h:951
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnPackageSavedWithContext, const FString &, UPackage *, FObjectPostSaveContext)
void ClearPackageFlags(uint32 FlagsToClear)
Definition Package.h:872
bool RequiresLocalizationGather() const
Definition Package.h:771
uint32 GetPackageFlags() const
Definition Package.h:936
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPackageDirtyStateChanged, class UPackage *)
const TArray< int32 > & GetChunkIDs() const
Definition Package.h:1095
void SetLoadTime(float InLoadTime)
Definition Package.h:619
bool IsDirty() const
Definition Package.h:658
FDelegates Delegates
Definition NavigationSystemBase.cpp:234
Definition Linker.cpp:38
Definition CookOnTheFly.h:19
Definition PackageHarvester.cpp:207
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition AssetData.h:162
Definition AsyncLoading2.cpp:3560
Definition Guid.h:109
Definition IoHash.h:33
Definition SecureHash.h:133
Definition ObjectVersion.h:762
Definition SavePackage.h:52
Definition SavePackage.h:63
Definition Package.h:130
TArray< FName > SoftPackageReferences
Definition Package.h:149
TFuture< FMD5Hash > CookedHash
Definition Package.h:138
uint32 SerializedPackageFlags
Definition Package.h:141
int64 TotalFileSize
Definition Package.h:135
ESavePackageResult Result
Definition Package.h:132
bool IsSuccessful() const
Definition Package.h:196
TArray< FAssetData > SavedAssets
Definition Package.h:146
TArray< FName > UntrackedSoftPackageReferences
Definition Package.h:150
TArray< FName > ImportPackages
Definition Package.h:148
bool operator!=(const FSavePackageResultStruct &Other) const
Definition Package.h:190
COREUOBJECT_API FSavePackageResultStruct()
Definition Package.cpp:95
TPimplPtr< FLinkerSave > LinkerSave
Definition Package.h:144
Definition PimplPtr.h:50
bool bTargetIsSerialize
Definition Package.h:122
UObject * TargetObject
Definition Package.h:120
bool bSourceIsSerialize
Definition Package.h:121
UObject * SourceObject
Definition Package.h:119