Customer created a custom DataTable with a TSet Property and saw the behavior of allowing duplicate elements within the TSet, which is not allowed. See TSet Documentation for more information.
This is a general problem with sets/maps of Structs, the FPropertyValueImpl::ImportText function does not correctly handle the case of modifying something inside a struct inside a map, the Set code needs to traverse up the property chain further
Repro Ratio: 3/3
Tested in //UE4/Release-4.27 @ CL#18319896 and the issue did occur there, it is not a regression.
This same issue occurs
SIMPLER REPRO
ORIGINAL REPRO
#include "GameplayTagContainer.h" #include "Engine/DataTable.h"
USTRUCT(BlueprintType) struct FTestStruct_Inner { GENERATED_BODY() UPROPERTY(EditAnywhere) FGameplayTag myTag; bool operator==(const FTestStruct_Inner& ftsi){}; bool operator!=(const FTestStruct_Inner& ftsi) {}; friend uint32 GetTypeHash(const FTestStruct_Inner& hash) { return 0; }; }; USTRUCT(BlueprintType) struct FTestSTruct_Row : public FTableRowBase { GENERATED_BODY() UPROPERTY(EditAnywhere) TSet<FTestStruct_Inner> mySet; };
Blueprint Steps
Expected Result: With the TSet property the DataTable should not allow duplicate entries.
Actual Results: Duplicate entries are allowed and no indication within the Editor Console that this is an issue. However, when looking over logs you will see the following error:
Error: UDataTable::GetAllRows : Incorrect type specified for DataTable '/Game/PickUps.PickUps' (UGameplayTagsManager::PopulateTreeFromDataTable)
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set a material as a post-processing material?
Why does the REMOVE method of map container remove elements have memory leaks?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
How to delete some elements correctly when deleting an array loop?
How does TArray loop correctly remove elements in blueprints?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-148872 in the post.
2 |
Component | UE - Editor - Workflow Systems |
---|---|
Affects Versions | 5.0, 5.1 |
Created | Apr 12, 2022 |
---|---|
Updated | Jan 19, 2024 |