Buttons are not cloned correctly

local script:

local ReplicatedStorage = game.ReplicatedStorage
local Players = game.Players

local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")

local Objects = ReplicatedStorage.Objects.GUI.Settings

local Modules = ReplicatedStorage.Modules.Client
local Config = require(Modules.Configs.SettingsConfig)

local SettingsGui = PlayerGui.Settings.MainFrame
local Container = SettingsGui.Container
local Close = SettingsGui.Close

for _, Template in pairs(Objects:GetChildren()) do
	for _, data in pairs(Config) do
		local CloneTemplate = Template:Clone()
		CloneTemplate.Parent = Container
		if CloneTemplate.Name == "Selector" then
			CloneTemplate.Name = data.Type
			CloneTemplate.Title.Text = data.Name
		elseif CloneTemplate.Name == "Slider" then
			CloneTemplate.Name = data.Type
			CloneTemplate.Title.Text = data.Name
		elseif CloneTemplate.Name == "Toggle" then
			CloneTemplate.Name = data.Type
			CloneTemplate.Title.Text = data.Name
		end
	end
end

Close.MouseButton1Click:Connect(function()
	SettingsGui.Visible = false
end)

Config:

return {
	["Music"] = {
		Name = "Music",
		Type = "Slider",
		Volume = 50,
	},
	["SFX"] = {
		Name = "SFX",
		Type = "Slider",
		Volume = 50,
	},
	["ShowOtherPets"] = {
		Name = "ShowOtherPets",
		Type = "Toggle",
		Enabled = true,
	},
	["Trading"] = {
		Name = "Trading",
		Type = "Selector",
		Option = "All", -- {All, Friends, No One}
	},
	["Notifications"] = {
		Name = "Notifications",
		Type = "Toggle",
		Enabled = true,
	},
	["ShowBoosts"] = {
		Name = "ShowBoosts",
		Type = "Toggle",
		Enabled = true,
	},
}




need to have different types of buttons

1 Like
local ReplicatedStorage = game.ReplicatedStorage
local Players = game.Players

local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")

local Objects = ReplicatedStorage.Objects.GUI.Settings

local Modules = ReplicatedStorage.Modules.Client
local Config = require(Modules.Configs.SettingsConfig)

local SettingsGui = PlayerGui.Settings.MainFrame
local Container = SettingsGui.Container
local Close = SettingsGui.Close

for _, data in pairs(Config) do 
	local Template = Objects:FindFirstChild(data["Type"])
	if (Template == nil) then return warn("Type not found.") end 
	
	local New = Template:Clone()
	New.Name = data["Type"]
	New.Title.Text = data["Name"]
	New.Parent = Container
end

Close.MouseButton1Click:Connect(function()
	SettingsGui.Visible = false
end)
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.