TMaps with Enums as Keys should allow new entries by incrementing key instead of checking for defaul

With so few elements performance difference is negligible, probably not even measurable. ints/enums hash very quickly. Since you’re not adding or removing elements to the Map at runtime, your not making any allocations either. Array is probably faster for lookups since the memory is most likely contiguous, but not so much so that it’s worth wasting memory for and sacrificing use-ability.

This is mostly a design question IMO rather than a performance concern, but from a Use-ability standpoint using an array would be poor. Imagine as a C++ programmer you have (like OP) a bunch of physical surfaces. You want an actor to specify a bunch of impact effects for each surface type. You probably want to fall back to the default if an artist or designer doesn’t specify an effect for something. They edit these in the Blueprint defaults panel.

With an array, the artist/designer needs to know what element # corresponds to what enum. (Could be solved with details panel customization, but that’s a lot of effort for very little gain). They would have to duplicate items if they don’t have a certain impact effect for a given surface, and it opens up a lot of room for user error. You also need to consider what happens if later in the project, someone decides to add another enum / physical surface, even worse if they add it in the middle.

Anyway… just this dudes opinion…

EDIT: Better support for enums as Array indices in BP would still be useful.