This is a instance building system I created in 1 and a half hour for my own use, but I also decided to share it here incase anyone wants to use it. It has the building system (called “Descriptor”), “resolvables” to help with things like connecting to a event or calling a method while building a instance/class using a descriptor, a very basic state object, and custom class support.
For the descriptor builder to find custom classes, pass the customclasseslocation with a folder or whatever containing ModuleScript(s) of custom classes with a new function as a constructor, the rest of the setup depends on how you do it. If the argument isn’t passed, it will try to check if a folder called “CustomClasses” exists and parented under the Builder modulescript and use it instead (this also means you can use the customclasseslocation argument as a override)
local Builder = require(game.ServerStorage.Builder)
local Description = Builder.Descriptor("Part", {
Name = "Part";
Position = Vector3.new(0, 8, 0);
[Builder.Attribute("Hello")] = true;
[Builder.AttributeChangedSignal("Hello")] = print;
[Builder.Event("ChildAdded")] = warn;
Builder.Descriptor("SurfaceGui", {
Builder.Descriptor("TextLabel", { Text = "I am part.", Size = UDim2.new(1, 0, 1, 0) })
})
})
Description:Build().Parent = workspace
Note before posting any replies
And before you start saying about “Roact is better your module is utter trash”, no, I do NOT want to compete with Roact or Fusion, I don’t care about them, I don’t care what you use, I only released something I made, that’s it. If you start saying things like “Roact/Fusion is better” here, I won’t do anything about it and will probably report you for spamming. Please, keep your replies constructive.
Not saying it’s mandatory, also not saying you have to make promises either. Obviously, if you want you don’t have to, but I mean, I feel like some people would like that.