How to get ALL properties of an Instance

Want bloatware-free always uptodate list to get all properties?:fire:

Then this tutorial is for you!:ice_cube::ice_cube:(i ran out of ideas for emojy)

So how are we gonna get them? :thinking:
Well we can use a always updating github repository for that!:stopwatch:

Ok cool but how do i extract properties out of it?:money_mouth_face:
That a good question! Create a module script (although you could execute it directly):scroll:
And paste code here

Bro ts types took so long for me to write :skull::skull::skull:

I wrote this post on mobile btw :wilted_flower::iphone::fire:

I were writing a plugin relates to classes​:money_mouth_face::money_mouth_face:

Cuz i haven’t found anybody use this method and use it properly there so i made a post :pensive:

And now you can do:

local module = require("./HelpMePlz")
local part = Instance.new("Part")
print(module[part.ClassName]) ---> returns all properties.

You could also get properties that is read only etc but you can already do that yourself because i provided you types and i will provide you info here also:

Also you probably want to change recursive function into a loop cuz yk recursive is meh.

.Superclass [[
Basically your instance has ALL properties of its Superclass and Superclass’s superclass and so on
]]

.Tags [[
Such as //depeacated //read only and so on
You may see them appear in documentation too


]]

MemoryCategory [[Just a category of Instance]]

.Members [[
Properties of your superclass

  • . Serialization studio related voodoo that basically depends on can Instance be saved or nah
  • .Tags same as the ones i mentioned above
  • .Capabilities relative new Sandbox feature roblox has added i would say a lil expiriemental :money_mouth_face::fire:
  • .Name of our peoperty/function/event
  • .ValueType type of property (nil if its not a property)
  • .Security basically perms of instance is it a resd only/write only or None (if its none then no restrictikns)
  • .ReturnType type that event/function (not sure) returns
  • .Parameters function parameters (nil if its not a function)
  • .MemberType determines if its a Property/Event/Function
  • .ThreadSafety not really sure what is it but i assume its parallel Luau thing
    ]]

.Name its a name of Instance bruh :pensive::money_mouth_face:

I can’t not sneaking a joke everywhere im sorry if it makes post feel unprofessional to you.I just feel that adding jokes makes learning better and having more soul to it yk.

9 Likes

This 403 error is so annoying bro :skull::pray::pray:

A little voodoo but:
You can also technically get default properties:
Do Instance.new and grab all of its properties and then cache them

local raw_Classes:AllRobloxClasses = Data.Classes
local Enums:AllRobloxEnums = Data.Enums
local Classes:FormattedClasses = {}

for i,v in raw_Classes do
	if v.MemoryCategory~="Instances" then continue end
	if v.Tags~=nil and (table.find(v.Tags,"NotCreatable")~=nil or table.find(v.Tags,"NotScriptable")~=nil) then continue end
	local tab:FormattedClass = {}
	local Superclass:string? = v.Name
	while Superclass~=nil do
		local search:number? = nil
		for i,v in raw_Classes do
			if v.Name==Superclass then search=i break end
		end
		if search==nil then break end
		for ii,vv in raw_Classes[search].Members do
			if vv.MemberType~="Property" then continue end
			if vv.Security~="None" and (vv.Security.Write~="None" or vv.Security.Read~="None") then continue end
			if vv.ValueType==nil then continue end
			if vv.Tags~=nil and (table.find(vv.Tags,"ReadOnly")~=nil or table.find(vv.Tags,"NotScriptable")~=nil) then continue end
			tab[vv.Name]=(vv.ValueType.Category=="Class" and "Instance") or (vv.ValueType.Category=="Enum" and `Enum.{vv.ValueType.Name}`) or (TranslateProperties[vv.ValueType.Name] or vv.ValueType.Name)
		end
		Superclass=raw_Classes[search].Superclass
	end
	Classes[v.Name]=tab
end

Without recursive btw

if you dont have some instances like Part then consider removing line of code:

if v.MemoryCategory~="Instances" then continue end

I made the code work with a new type solver, but the problem is that DevForum is not letting me update the post.
It says error 403
I suppose link to a client tracker is somehow being deemed inappropriate?

2 Likes

Not enabled + i made post prior to that

Good for people to know it exists and should be used when it’s enabled instead of this (I thought it was enabled already actually)

1 Like

i decided to upload code on a github becouse devforum otherwise would reject my changed to the post

  • fixed Security type a little and replaced recursive into a loop so itshould be faster
  • should work with new type solver now hopefully