Using 4.2.
I get an exception when adding a “Compare BB Entries” decorator to a node in a behavior tree and then selecting it.
When indexing into the Names property of the EBlackBoardEntryComparison, it is using an index of 3 but there are only 3 entries causing the following to fail:
check(Names.IsValidIndex(NameIndex));
on Ln 350 of Enum.cpp.
Here’s the callstack:
UE4Editor-Core-Win64-Debug.dll!FDebug::AssertFailed(const char * Expr, const char * File, int Line, const wchar_t * Format, ...) Line 160 C++
> UE4Editor-CoreUObject-Win64-Debug.dll!UEnum::HasMetaData(const wchar_t * Key, int NameIndex) Line 351 C++
UE4Editor-CoreUObject-Win64-Debug.dll!UEnum::GetDisplayNameText(int NameIndex) Line 285 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FPropertyValueImpl::GetPropertyValueString(FString & OutString, FPropertyNode * InPropertyNode, const bool bAllowAlternateDisplayValue) Line 73 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FPropertyValueImpl::GetValueAsDisplayString(FString & OutString) Line 577 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FPropertyHandleBase::GetValueAsDisplayString(FString & OutValue) Line 1493 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FPropertyEditor::GetValueAsDisplayString() Line 121 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SPropertyEditorCombo::GetDisplayValueAsString() Line 110 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TBaseSPMethodDelegateInstance_RetVal_NoParams_Const<SPropertyEditorCombo,FString,0>::Execute() Line 228 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TBaseDelegate_RetVal_NoParams<FString>::Execute() Line 1058 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TAttribute<FString>::Get() Line 147 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SPropertyComboBox::Construct(const SPropertyComboBox::FArguments & InArgs) Line 17 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!RequiredArgs::T0RequiredArgs::CallConstruct<SPropertyComboBox,SPropertyComboBox::FArguments>(const TSharedRef<SPropertyComboBox,0> & OnWidget, const SPropertyComboBox::FArguments & WithNamedArgs) Line 1002 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TDecl<SPropertyComboBox,RequiredArgs::T0RequiredArgs>::operator<<=(const SPropertyComboBox::FArguments & InArgs) Line 1239 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SPropertyEditorCombo::Construct(const SPropertyEditorCombo::FArguments & InArgs, const TSharedRef<FPropertyEditor,0> & InPropertyEditor) Line 83 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!RequiredArgs::T1RequiredArgs<TSharedRef<FPropertyEditor,0> >::CallConstruct<SPropertyEditorCombo,SPropertyEditorCombo::FArguments>(const TSharedRef<SPropertyEditorCombo,0> & OnWidget, const SPropertyEditorCombo::FArguments & WithNamedArgs) Line 1018 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TDecl<SPropertyEditorCombo,RequiredArgs::T1RequiredArgs<TSharedRef<FPropertyEditor,0> > >::operator<<=(const SPropertyEditorCombo::FArguments & InArgs) Line 1239 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SPropertyValueWidget::ConstructPropertyEditorWidget(TSharedPtr<FPropertyEditor,0> & PropertyEditor, TSharedPtr<IPropertyUtilities,0> InPropertyUtilities) Line 200 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SPropertyValueWidget::Construct(const SPropertyValueWidget::FArguments & InArgs, TSharedPtr<FPropertyEditor,0> PropertyEditor, TSharedPtr<IPropertyUtilities,0> InPropertyUtilities) Line 77 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!RequiredArgs::T2RequiredArgs<TSharedPtr<FPropertyEditor,0>,TSharedRef<IPropertyUtilities,0> >::CallConstruct<SPropertyValueWidget,SPropertyValueWidget::FArguments>(const TSharedRef<SPropertyValueWidget,0> & OnWidget, const SPropertyValueWidget::FArguments & WithNamedArgs) Line 1038 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TDecl<SPropertyValueWidget,RequiredArgs::T2RequiredArgs<TSharedPtr<FPropertyEditor,0>,TSharedRef<IPropertyUtilities,0> > >::operator<<=(const SPropertyValueWidget::FArguments & InArgs) Line 1239 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FDetailPropertyRow::MakeValueWidget(FDetailWidgetRow & Row, const TSharedPtr<FDetailWidgetRow,0> InCustomRow, bool bAddWidgetDecoration) Line 413 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FDetailPropertyRow::GetWidgetRow() Line 179 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FDetailLayoutCustomization::GetWidgetRow() Line 68 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SDetailSingleItemRow::Construct(const SDetailSingleItemRow::FArguments & InArgs, FDetailLayoutCustomization * InCustomization, bool bHasMultipleColumns, TSharedRef<IDetailTreeNode,0> InOwnerTreeNode, const TSharedRef<STableViewBase,0> & InOwnerTableView) Line 79 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!RequiredArgs::T4RequiredArgs<FDetailLayoutCustomization * __ptr64,bool,TSharedRef<FDetailItemNode,0>,TSharedRef<STableViewBase,0> >::CallConstruct<SDetailSingleItemRow,SDetailSingleItemRow::FArguments>(const TSharedRef<SDetailSingleItemRow,0> & OnWidget, const SDetailSingleItemRow::FArguments & WithNamedArgs) Line 1082 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TDecl<SDetailSingleItemRow,RequiredArgs::T4RequiredArgs<FDetailLayoutCustomization * __ptr64,bool,TSharedRef<FDetailItemNode,0>,TSharedRef<STableViewBase,0> > >::operator<<=(const SDetailSingleItemRow::FArguments & InArgs) Line 1239 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!FDetailItemNode::GenerateNodeWidget(const TSharedRef<STableViewBase,0> & OwnerTable, const FDetailColumnSizeData & ColumnSizeData, const TSharedRef<IPropertyUtilities,0> & PropertyUtilities) Line 151 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SDetailsView::OnGenerateRowForDetailTree(TSharedRef<IDetailTreeNode,0> InTreeNode, const TSharedRef<STableViewBase,0> & OwnerTable) Line 223 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TBaseSPMethodDelegateInstance_RetVal_TwoParams<SDetailsView,TSharedRef<ITableRow,0>,TSharedRef<IDetailTreeNode,0>,TSharedRef<STableViewBase,0> const & __ptr64,0>::Execute(TSharedRef<IDetailTreeNode,0> InParam1, const TSharedRef<STableViewBase,0> & InParam2) Line 228 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!TBaseDelegate_RetVal_TwoParams<TSharedRef<ITableRow,0>,TSharedRef<IDetailTreeNode,0>,TSharedRef<STableViewBase,0> const & __ptr64>::Execute(TSharedRef<IDetailTreeNode,0> InParam1, const TSharedRef<STableViewBase,0> & InParam2) Line 1058 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!STreeView<TSharedRef<IDetailTreeNode,0> >::GenerateNewWidget(TSharedRef<IDetailTreeNode,0> InItem) Line 487 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SListView<TSharedRef<IDetailTreeNode,0> >::GenerateWidgetForItem(const TSharedRef<IDetailTreeNode,0> & CurItem, int ItemIndex, int StartIndex) Line 853 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!SListView<TSharedRef<IDetailTreeNode,0> >::ReGenerateItems(const FGeometry & MyGeometry) Line 771 C++
UE4Editor-Slate-Win64-Debug.dll!STableViewBase::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 180 C++
UE4Editor-PropertyEditor-Win64-Debug.dll!STreeView<TSharedRef<IDetailTreeNode,0> >::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 397 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 241 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 249 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::TickWindowAndChildren(TSharedRef<SWindow,0> WindowToTick) Line 607 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::TickWindowAndChildren(TSharedRef<SWindow,0> WindowToTick) Line 615 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::Tick() Line 935 C++
UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 2108 C++
UE4Editor-Win64-Debug.exe!EngineTick() Line 53 C++
UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 135 C++
UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 196 C++