Title is a bit of a mouthful, so in less concise terms and a picture paints a thousand words:
If you have a struct with an array as a member, then create an array of those structs, attempting to use ‘Add’ on the struct array will fail every time. It works once (index = 0), but subsequently never works again. I tested this by logging the actor being added to the array, then logging the contents of the array before and after the add operation - as you can see, nothing is being added to the array:
LogBlueprintUserMessages: [BP_GripSensor_C_103] BP_GripSensor103 overlapped Cube26
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BEFORE ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] AFTER ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
LogBlueprintUserMessages: [BP_GripSensor_C_104] BP_GripSensor104 overlapped Cube26
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BEFORE ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] AFTER ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
LogBlueprintUserMessages: [BP_GripSensor_C_105] BP_GripSensor105 overlapped Cube26
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BEFORE ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] AFTER ADD:
LogBlueprintUserMessages: [BP_EchoGripHands_C_13] BP_GripSensor110
Edit: I have tried duplicating the array into a temporary one, then assigning it back to the struct, this also does not work. Whilst the temporary array does receive a new entry, when setting the struct member array, it once again only has the first index and loses the new one.