Rippling Update Manager


Rippling Update Manager


Consistency of a place for updates is key and vital to Rippling’s growth. Please look below for all update categories+number, and the place in total updates. Catergory #Number (Total)


Total Updates


Customizable Update #1 (v2)

First update is here, making customizing eaiser, with MetaData for each element, new states for more customization on when elements appear, custom functions each element for more customizability, and the option to remove an element from both the game and the metadata table.

If you want to utilise states:

-- Get the _R/Enums variable, which you can get from Rippling.Enum()
-- ReleaseState by default, HoldState is optional.
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 = {
		["Properties"] = {
			Name = "Bob",
			Size = UDim2.fromOffset(400, 50),
			StudsOffset = Vector3.new(0, 5, 0),
			Parent = workspace
		},
	}
}, _R.RipplingObjectState.Hold)

-- You can then release it into the game using a BindableEvent
wait(10)
Part.Release:Fire()

You can get the MetaData to remove items:

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 = {
		["Properties"] = {
			Name = "Bob",
			Size = UDim2.fromOffset(400, 50),
			StudsOffset = Vector3.new(0, 5, 0),
			Parent = workspace
		},
	}
}, _R.RipplingObjectState.Release)

local TextLabel : TextLabel = New("TextLabel", {
	Text = "Hello, I'm bob",
	Size = UDim2.fromOffset(200, 50),
	AnchorPoint = Vector2.new(0.5, 0.5),
	Position = UDim2.fromScale(0.5, 0.5),
	Parent = Part:WaitForChild("Bob")
}, nil, _R.RipplingObjectState.Release)

local PartMeta = Rippling.GetElementMetaData(Part)
PartMeta.Remove()

You can also access the table CustomFunctions in MetaData for custom functions. You can add them for per element by using the function in the resource

AddCustomFunctionPerElement
Add arguments for each function and you should be able to use:

-- Get the _R/Enums variable, which you can get from Rippling.Enum()
-- ReleaseState by default, HoldState is optional.
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 = {
		["Properties"] = {
			Name = "Bob",
			Size = UDim2.fromOffset(400, 50),
			StudsOffset = Vector3.new(0, 5, 0),
			Parent = workspace
		},
	}
}, _R.RipplingObjectState.Hold)

-- You can then release it into the game using a BindableEvent
wait(10)
Part.Release:Fire()
You can get the MetaData to remove items:

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 = {
		["Properties"] = {
			Name = "Bob",
			Size = UDim2.fromOffset(400, 50),
			StudsOffset = Vector3.new(0, 5, 0),
			Parent = workspace
		},
	}
}, _R.RipplingObjectState.Release)

local TextLabel : TextLabel = New("TextLabel", {
	Text = "Hello, I'm bob",
	Size = UDim2.fromOffset(200, 50),
	AnchorPoint = Vector2.new(0.5, 0.5),
	Position = UDim2.fromScale(0.5, 0.5),
	Parent = Part:WaitForChild("Bob")
}, nil, _R.RipplingObjectState.Release)

local PartMeta = Rippling.GetElementMetaData(Part)
PartMeta.CustomFunctions[1](PartMeta.Element) -- Example :)

Requested Update #1 (v3)

A small update, but very much needed! You can now place children inside of children, and you no longer need the Properties index for children;

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 = { -- Now just put in properties, no need for ["Properties"]
		Name = "Bob",
		Size = UDim2.fromOffset(400, 50),
		StudsOffset = Vector3.new(0, 5, 0),
		Parent = workspace,
		Children = { -- Identify children inside of the children of an element
			TextLabel = { -- Just work children of children same way with normal children elements!
				Name = "My cool text!",
				Text = "I'm a very cool text!! :)",
				Size = UDim2.fromOffset(200, 50),
				AnchorPoint = Vector2.new(0.5, 0.5),
				Position = UDim2.fromScale(0.5, 0.5)
                -- Capable of holding even more children!!
			}
		}
	},
}, _R.RipplingObjectState.Release)

Although this update has been small, it improves development (For some people, again) or irritation (For some people).
(Sort of) suggested by:

As for children in children,
(Sort of) suggested by: