That’s a cool use for metatables
I’m just curious, which benifit has this method over calling function (thas is defined via a metatable as well).
It’s nearly the same effort to do this:
UIElement:setText("newText")
Compared to this:
UIElement.text = "newText"
In both cases a function is called (with your method its done in the background) and the amount of symbols needed for both commands is nearly the same. Additionally, the use of a function is much clearer, as I can see where the change is happening (in the setText function), instead ob reading through the more cryptic meta functions.