Before you say anything!
There are a LOT of people trying to debunk that @commitblue was wrong saying Fusion is bad. KEEP IT TO DM’s, and not get offtopic. Thank you.
This was just a project I made for fun and decided to release to other people. If you use different instancing tools, and find no use for this- just don’t continue, because in my opinion it makes it easier, but it may be different for different people working on different projects. As far as I know, there aren’t any competetors Nevermind, turns out there’s quite a few modules like this (e.g Fusion or Roact), but this isn’t a project to go against them, more to just give people a resource.
Index
Any listed items in bold are important topics.
1. Before you say anything
2. Why use rippling
3. Advantages and disadvantedges
4. (slight) Documentation
5. Download
6. Updates
Why use rippling?
This may be the first question you ask, and also a good one. Rippling is an instancing tool which shortens the outcome of code when creating new objects which helps you clean up your code and overall improves the speed of development time, with the same quality outcome.
If these are thing you want in development, rippling may be for you.
Advantages and disadvantages
Advantages
- Speed
- Colaboration is made easier
- Easy to use and port to projects
Disadvantages
- Handling children seems harder
- Singular function handling all.
(slight) Documentation
To create an object, use
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local Part = New("Part")
Now, you need to attatch properties to it. Add a table as a parameter to the part.
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local Part = New("Part", { -- Table created here.
}) -- Table ends here
So, let’s give it a name!
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local Part = New("Part", {
Name = "My new part!"
})
See! That easy! Now, let’s parent it to our workspace, and give it a try!
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local Part = New("Part", {
Name = "My new part!",
Parent = workspace
})
If you now run or playtest your game, you’ll notice in the explorer tab there’s a part. But you can’t see it! That’s because we haven’t given it a position, so the part is in the baseplate!!
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local Part = New("Part", {
Name = "My new part!",
Parent = workspace,
Positon = Vector3.new(0, 8, 0)
})
And that’s our making instances! Now let’s work on making Children. In the function, add a new table and add an instance name as an index:
local Part : BasePart = New("Part", {
Position = Vector3.new(0, 8, 0),
Color = Color3.fromRGB(60, 255, 184),
CanCollide = false,
Anchored = true,
Parent = workspace
}, {
BillboardGui = {}
})
Then, add the properties to the table.
local Part : BasePart = New("Part", {
Position = Vector3.new(0, 8, 0),
Color = Color3.fromRGB(60, 255, 184),
CanCollide = false,
Anchored = true,
Parent = workspace
}, {
BillboardGui = {
Name = "Bob" -- We don't require any parent property. Adding it will cause it to be overwritten.
}
})
Now, playtesting you can see a BillboardGui named Bob
But… what if hear me out, we add a child TO THE CHILD?!?!?!
Add a children index to the properties of the element and then you can add an instance the same way as children elements are handled!!
local Part : BasePart = New("Part", {
Position = Vector3.new(0, 8, 0),
Color = Color3.fromRGB(60, 255, 184),
CanCollide = false,
Anchored = true,
Parent = workspace
}, {
BillboardGui = {
Name = "Bob" -- We don't require any parent property. Adding it will cause it to be overwritten.
Children = {
TextLabel = {
Name = "Scarlet"
}
}
}
})
Now then, this sadly won’t show these instances, because there are no defaults, but that’s for another update . For now you have to manually input sizes for them, but a working one with size input is:
local Rippling = require(game.ReplicatedStorage:WaitForChild("Rippling"))
local New = Rippling.New
local _R = Rippling.Enum()
local Part : BasePart = New("Part", {
Position = Vector3.new(0, 8, 0),
Color = Color3.fromRGB(60, 255, 184),
CanCollide = false,
Anchored = true,
Parent = workspace
}, {
BillboardGui = {
Name = "Bob",
Size = UDim2.fromOffset(400, 50),
StudsOffset = Vector3.new(0, 5, 0),
Parent = workspace,
Children = {
TextLabel = {
Name = "Aurora",
Text = "hi",
Size = UDim2.fromOffset(200, 50),
AnchorPoint = Vector2.new(0.5, 0.5),
Position = UDim2.fromScale(0.5, 0.5)
}
},
},
}, _R.RipplingObjectState.Release)
Download
Whether you instantly scrolled down here, decided to go post a comment and are reading this or you’re actually wanting to get it, here is the download for Rippling. Have a good day, and (if you’re getting it) enjoy!.