Thanks for getting back to us! I understand the difficulty, it’s definitely something I thought could be an issue–having so many types.
However, with all due respect, I don’t see it as a massive task, especially when using a string attribute type to detect if it’s an Enum:
 
I just ran a small test (though in an empty baseplate, so not much going on) and detected attribute changes game-wide for new descendants (with two instances having attribute changes. Again, not a lot going on at all), with no performance issues. I’m not knowledgeable enough to know whether this would impact performance in Studio or not when handling a lot more instances having attribute changes in a relatively short period. But something like this doesn’t seem very hard to implement?
Whacky code
function waitForEnum(self)	self.AttributeChanged:Connect(function(attributeName)	if typeof(self:GetAttribute(attributeName)) == "string" and string.find(self:GetAttribute(attributeName),"Enum.") then -- Make sure attribute type is a string & the inputted text is predicted to be an Enum	local newEnumTable = string.split(self:GetAttribute(attributeName),".") -- eg. "Enum, Keycode, ButtonA"	if not newEnumTable[2] then return error("Invalid EnumType") end -- No enum type inputted	if (newEnumTable[2] == "" or newEnumTable[2] == " ") then return end -- Kill function if "Enum." is the only string inputted	if not Enum[newEnumTable[2]] then return error("Invalid EnumType") end -- Return error if no enum type exists for the given input (roblox will handle the error before reaching mine)	if not newEnumTable[3] or not Enum[newEnumTable[2]][newEnumTable[3]] then return error("Invalid EnumType value") end -- Return (my) error if an invalid value is inputted for Enum's third position in the above table	if Enum[newEnumTable[2]] and Enum[newEnumTable[2]][newEnumTable[3]] then -- Confirm enum exists	self:SetAttribute(attributeName, Enum[newEnumTable[2]][newEnumTable[3]]) -- Set enum	end	end	end) end game.DescendantAdded:Connect(waitForEnum) -- Do for all new descendants *(I used the above code in both a local and server script. I assume this would work on plugin level to be implemented into Studio.
Edit 2: It does, plugin created and can be found here
Using the above code eliminates the whole original idea of a dropdown of all enum types, and the difficulty with it, no?
Edit: I know there would be potential conflicts with using a string type for the attribute enum detection. I myself have used string attributes to store and retrieve enums by name. But I can imagine an Enum attribute type work similarly to the video. Detection from an initial string input is the idea.