Well, you could do that. But it can be a bit longer to write, but its also as I requested Class 'ValueContainer' to just organize the Value instances in general. It seems logical for all Value instances to have a related class.
Wait do you mean like have all Values should inherit an abstract class? Similar to how all Gui objects are “GuiBase” and all Parts are “BasePart” ? Because I would totally support this.
I do not support this for the following reason. Odds are when you’re going to use this, you’ll need it to be a specific value type, and not just any value, and you could just do IsA(“StringValue”).
obj:IsA("ValueContainer") or obj.ClassName == "StringValue" like with any other object.
If the intent is to make these a single class, we would have to deprecate existing value objects to prevent old games from breaking, and new scripts could just read the ValueType property/etc of the new, singular class.
Yeah, sure, but they aren’t all the same and don’t serve the same purpose. I get what you’re saying, “they’re all values” but they are different and shouldn’t be clumped together like other instances that are the same
They are all the same and all save the same purpose (store a value). They all have a Value property and a modified Changed event that fires when only Value changes (not name/etc). Their only difference is the Value property’s type. They’re more similar than something such as the subtypes of Constraint.