I hit a crash when using Instanced UObjects inside of SparseClassData. More specifically the UObject contains a FRuntimeFloat and stack traces points to there.
I think the issue is widespread.
One work around is to use a UStruct array instead of UObject* array. However a struct array is not as flexible as an Instanced UObject array because it does not support polymorphism. Also EditInline has been deprecated and forces inline UObject to be instanced…
class UAIDirectorTokenPriority : public UObject
{
GENERATED_BODY()
public:
...
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyGame")
FRuntimeFloatCurve Curve = FRuntimeFloatCurve();
};
USTRUCT(BlueprintType)
struct FAIDirectorClassData
{
GENERATED_BODY()
public:
...
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Instanced, Category = "Class Data", meta = (TitleProperty = DisplayName, ShowOnlyInnerProperties, DisplayPriority = 0))
TArray<UAIDirectorTokenPriority*> Priorities;
...
};
UCLASS(BlueprintType, SparseClassDataTypes = AIDirectorClassData)
class UAIDirector : public UObject
{
GENERATED_BODY()
public:
UAIDirector();
...
}
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000
UnrealEditor_UnrealEd!SCurveEditor::ZoomToFitVertical() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\SCurveEditor.cpp:2699]
UnrealEditor_UnrealEd!SCurveEditor::SetCurveOwner() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\SCurveEditor.cpp:1305]
UnrealEditor_DetailCustomizations!FCurveStructCustomization::CustomizeHeader() [D:\build\++UE5\Sync\Engine\Source\Editor\DetailCustomizations\Private\CurveStructCustomization.cpp:154]
UnrealEditor_PropertyEditor!FDetailPropertyRow::OnItemNodeInitialized() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:298]
UnrealEditor_PropertyEditor!FDetailItemNode::InitPropertyEditor() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailItemNode.cpp:154]
UnrealEditor_PropertyEditor!FDetailItemNode::Initialize() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailItemNode.cpp:46]
UnrealEditor_PropertyEditor!FDetailPropertyRow::GenerateChildrenForPropertyNode() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:423]
UnrealEditor_PropertyEditor!FDetailPropertyRow::GenerateChildrenForPropertyNode() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:404]
UnrealEditor_PropertyEditor!FDetailPropertyRow::OnGenerateChildren() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:355]
UnrealEditor_PropertyEditor!FDetailItemNode::GenerateChildren() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailItemNode.cpp:427]
UnrealEditor_PropertyEditor!FDetailPropertyRow::GenerateChildrenForPropertyNode() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:423]
UnrealEditor_PropertyEditor!FDetailPropertyRow::OnGenerateChildren() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailPropertyRow.cpp:355]
UnrealEditor_PropertyEditor!FDetailItemNode::GenerateChildren() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailItemNode.cpp:427]
UnrealEditor_PropertyEditor!FDetailCategoryImpl::GenerateNodesFromCustomizations() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailCategoryBuilderImpl.cpp:1003]
UnrealEditor_PropertyEditor!FDetailCategoryImpl::GenerateChildrenForSingleLayout() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailCategoryBuilderImpl.cpp:1025]
UnrealEditor_PropertyEditor!FDetailCategoryImpl::GenerateChildrenForLayouts() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailCategoryBuilderImpl.cpp:1041]
UnrealEditor_PropertyEditor!FDetailCategoryImpl::GenerateLayout() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailCategoryBuilderImpl.cpp:1212]
UnrealEditor_PropertyEditor!FDetailLayoutBuilderImpl::BuildCategories() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailLayoutBuilderImpl.cpp:318]
UnrealEditor_PropertyEditor!FDetailLayoutBuilderImpl::GenerateDetailLayout() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\DetailLayoutBuilderImpl.cpp:446]
UnrealEditor_PropertyEditor!SDetailsViewBase::UpdateSinglePropertyMap() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\SDetailsViewBase.cpp:665]
UnrealEditor_PropertyEditor!SDetailsViewBase::UpdatePropertyMaps() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\SDetailsViewBase.cpp:605]
UnrealEditor_PropertyEditor!SDetailsViewBase::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\PropertyEditor\Private\SDetailsViewBase.cpp:1188]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1458]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_Slate!SBorder::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Layout\SBorder.cpp:129]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_Slate!SSplitter::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Layout\SSplitter.cpp:253]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_Slate!SBorder::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Layout\SBorder.cpp:129]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_Slate!SSplitter::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Layout\SSplitter.cpp:253]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SPanel::PaintArrangedChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:31]
UnrealEditor_SlateCore!SPanel::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SPanel.cpp:12]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SOverlay::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SOverlay.cpp:207]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SCompoundWidget::OnPaint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SCompoundWidget.cpp:46]
UnrealEditor_SlateCore!SWidget::Paint() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWidget.cpp:1573]
UnrealEditor_SlateCore!SWindow::PaintSlowPath() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWindow.cpp:2075]
UnrealEditor_SlateCore!FSlateInvalidationRoot::PaintInvalidationRoot() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\FastUpdate\SlateInvalidationRoot.cpp:405]
UnrealEditor_SlateCore!SWindow::PaintWindow() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWindow.cpp:2109]
UnrealEditor_Slate!FSlateApplication::DrawWindowAndChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1154]
UnrealEditor_Slate!FSlateApplication::DrawWindowAndChildren() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1206]
UnrealEditor_Slate!FSlateApplication::PrivateDrawWindows() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1390]
UnrealEditor_Slate!FSlateApplication::DrawWindows() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1098]
UnrealEditor_Slate!FSlateApplication::TickAndDrawWidgets() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1684]
UnrealEditor_Slate!FSlateApplication::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1540]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5951]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:118]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:258]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:298]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll