Builder - A instance building system

Builder - A instance building system

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)

Documentation

https://realethanplayzdev.github.io/Builder/About/

Source:

Example usage:

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.

8 Likes

Looks alright, though I’m hoping for an API. Either way, looks nice.

Right now I am in the process of creating the documentation, it might take a few days however since theres a lot of explanation to be written:

Also I updated the module and added a lot of new things, will make a post on it later.

1 Like

Gotcha! Gonna use it soon! :sunglasses:

why is my body less than 30 alphabets :frowning:

Okay, got some time to work on it and got some errors:
image

Code:

local Builder = require(script.ModuleScript)

local Description = Builder.Descriptor("RemoteEvent", {
	["Name"] = "CustomRemoteEvent",
	["Parent"] = game:GetService("ReplicatedStorage"),
	
	Builder.Attribute("Hello")
})

Description:Build()

Ah, I’ve figured out the issue, just sanity checks done wrong. Also I’ve finished the docs, will reply once GitHub pushes the new website changes.

Alright! Also, would you be able to just clean up the mess in the code dividing it into several files ;—;

If possible, wally?!

Documentation now up!

https://realethanplayzdev.github.io/Builder/About/

Addressing additional issues

@AridTheDev so I have fixed the bug, you can get the source from the gist again. And you have used the Attribute object wrong

local Builder = require(script.ModuleScript)

local Description = Builder.Descriptor("RemoteEvent", {
	["Name"] = "CustomRemoteEvent",
	["Parent"] = game:GetService("ReplicatedStorage"),
	[Builder.Attribute("Hello")] = nil
})

Description:Build()

Sure I can try but I’ve never used Wally so I wouldn’t make promises

1 Like

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.

I think…

1 Like

GitHub repository now available: (and yes, the source has been splitted)

I’ll now work on adding it to Wally as requested by @AridTheDev.

1 Like

@AridTheDev should be now on Wally:
image

1 Like

Any examples???
Like images/videos?

For now, you can check Description - RadiatedExodus Public Modules Documentation

. . . .
This does not help.
()()()

There is no need for an image or video as all this module does is create an instance.

Seriously? I have to make a video? Okay, heres one I made in the middle of the night:

Someone beat me to it, My module had the exact same name, wow.

But this is actually better than mine, the only difference is that mine is more like roact, but gg

But you have an creative way to put attributes and events, and literally put Refs to garbage from a quick look.

I have no feedback. this is awesome.

Whaft do you mean? Sorry if this is a Roact term since I’ve never used Roact :sweat_smile:

refs is something u use to access the generated instance. this module put it to garbage

1 Like