VINDICTA
Instances · Function
Bunni.fun
ChocoSploit
Cryptic
Potassium
Seliware
SirHurt
Solara
Velocity
Volcano
Volt
Wave
Xeno

gethiddenproperty

Reads a hidden (non-scriptable) property from an Instance.

function gethiddenproperty(instance: Instance, property: string): (any, boolean)

Synopsis

How it works

Roblox marks certain InstanceInstanceThe base class for all Roblox objects (Parts, Models, Scripts, GUIs, etc.). Instances form a tree hierarchy (the DataModel). In Luau, they appear as userdata with shared metatables. properties as notscriptable in its reflection metadata, preventing Luau code from reading them. The executor bypasses this by directly calling the property's C++ getter function through the reflection systemReflection systemRoblox's internal type metadata system. Every class (Part, Humanoid, etc.) has a ClassDescriptor with property descriptors, method descriptors, and event descriptors. The executor's getproperties/gethiddenproperties read this metadata., ignoring the scriptability flag. Returns both the value and a boolean indicating whether the property was hidden.

Reflection system

Every Roblox class has a PropertyDescriptor for each property, containing:
  • name — the property name string
  • type — the value type
  • get/set — C++ getter/setter function pointers
  • flags — includes isScriptable
The executor ignores the isScriptable flag and calls the getter directly.

Usage

Read a hidden property
local value, isHidden = gethiddenproperty(workspace.Terrain, "MaterialColors")
print(value, isHidden)

Parameters

instance Instance
The target Instance.
property string
The property name to read.

Returns

any The value of the property.
boolean true if the property is hidden (non-scriptable).