gethiddenproperty
Reads a Roblox property with reflection metadata, including non-scriptable properties. The first argument must be Instance object and the second argument must be a string property name. The instance reference must be valid. If the property descriptor is missing from Roblox property metadata, the function returns only nil. If the descriptor exists but does not resolve to a property entry, it raises “Not a property”. For Bool, Int, Float, Double, String, SystemAddress, SharedString, and Vector3 reflection types, the function calls the getter and returns the value plus a boolean equal to !IsScriptable(). SystemAddress returns RemoteId.PeerId as an integer. SharedString returns Content as a string. Vector3 reads from the instance primitive Size offset and raises “can’t get value” if the touch data is missing. Other property types are read with normal Lua field access after temporarily setting the property scriptable flag to true; BinaryString is temporarily treated as String for that read. The original scriptable flag and BinaryString type are restored before returning.