0% found this document useful (0 votes)
71 views34 pages

Roblox Color Theme Library Script

The best Library

Uploaded by

kthe22097
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views34 pages

Roblox Color Theme Library Script

The best Library

Uploaded by

kthe22097
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

local MarketplaceService = game:GetService("MarketplaceService")

local UserInputService = game:GetService("UserInputService")


local TweenService = game:GetService("TweenService")
local HttpService = game:GetService("HttpService")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local Player = [Link]
local PlayerMouse = Player:GetMouse()

local redzlib = {
Themes = {
Darker = {
["Color Hub 1"] = [Link]({
[Link](0.00, [Link](25, 25, 25)),
[Link](0.50, [Link](32.5, 32.5, 32.5)),
[Link](1.00, [Link](25, 25, 25))
}),
["Color Hub 2"] = [Link](30, 30, 30),
["Color Stroke"] = [Link](40, 40, 40),
["Color Theme"] = [Link](88, 101, 242),
["Color Text"] = [Link](243, 243, 243),
["Color Dark Text"] = [Link](180, 180, 180)
},
Dark = {
["Color Hub 1"] = [Link]({
[Link](0.00, [Link](40, 40, 40)),
[Link](0.50, [Link](47.5, 47.5, 47.5)),
[Link](1.00, [Link](40, 40, 40))
}),
["Color Hub 2"] = [Link](45, 45, 45),
["Color Stroke"] = [Link](65, 65, 65),
["Color Theme"] = [Link](65, 150, 255),
["Color Text"] = [Link](245, 245, 245),
["Color Dark Text"] = [Link](190, 190, 190)
},
Purple = {
["Color Hub 1"] = [Link]({
[Link](0.00, [Link](27.5, 25, 30)),
[Link](0.50, [Link](32.5, 32.5, 32.5)),
[Link](1.00, [Link](27.5, 25, 30))
}),
["Color Hub 2"] = [Link](30, 30, 30),
["Color Stroke"] = [Link](40, 40, 40),
["Color Theme"] = [Link](150, 0, 255),
["Color Text"] = [Link](240, 240, 240),
["Color Dark Text"] = [Link](180, 180, 180)
},
Green = {
["Color Hub 1"] = [Link]({
[Link](0.00, [Link](19, 97, 61)),
[Link](0.50, [Link](19, 97, 61)),
[Link](1.00, [Link](19, 97, 61))
}),
["Color Hub 2"] = [Link](20, 93, 60),
["Color Stroke"] = [Link](26, 119, 77),
["Color Theme"] = [Link](50, 229, 148),
["Color Text"] = [Link](243, 243, 243),
["Color Dark Text"] = [Link](180, 180, 180)
}

},
Info = {
Version = "1.1.0"
},
Save = {
UISize = {434,247},
TabSize = 160,
Theme = "Green"
},
Settings = {},
Connection = {},
Instances = {},
Elements = {},
Options = {},
Flags = {},
Tabs = {},
Icons =
loadstring(game:HttpGet("[Link]
hub-libary/refs/heads/main/[Link]"))()
}

local ViewportSize = [Link]


local UIScale = ViewportSize.Y / 450

local Settings = [Link]


local Flags = [Link]

local SetProps, SetChildren, InsertTheme, Create do


InsertTheme = function(Instance, Type)
[Link]([Link], {
Instance = Instance,
Type = Type
})
return Instance
end

SetChildren = function(Instance, Children)


if Children then
[Link](Children, function(_,Child)
[Link] = Instance
end)
end
return Instance
end

SetProps = function(Instance, Props)


if Props then
[Link](Props, function(prop, value)
Instance[prop] = value
end)
end
return Instance
end

Create = function(...)
local args = {...}
if type(args) ~= "table" then return end
local new = [Link](args[1])
local Children = {}

if type(args[2]) == "table" then


SetProps(new, args[2])
SetChildren(new, args[3])
Children = args[3] or {}
elseif typeof(args[2]) == "Instance" then
[Link] = args[2]
SetProps(new, args[3])
SetChildren(new, args[4])
Children = args[4] or {}
end
return new
end

local function Save(file)


if readfile and isfile and isfile(file) then
local decode = HttpService:JSONDecode(readfile(file))

if type(decode) == "table" then


if rawget(decode, "UISize") then [Link]["UISize"] = decode["UISize"]
end
if rawget(decode, "TabSize") then [Link]["TabSize"] =
decode["TabSize"] end
if rawget(decode, "Theme") and VerifyTheme(decode["Theme"]) then
[Link]["Theme"] = decode["Theme"] end
end
end
end

pcall(Save, "rael hub with redz [Link]")


end

local Funcs = {} do
function Funcs:InsertCallback(tab, func)
if type(func) == "function" then
[Link](tab, func)
end
return func
end

function Funcs:FireCallback(tab, ...)


for _,v in ipairs(tab) do
if type(v) == "function" then
[Link](v, ...)
end
end
end

function Funcs:ToggleVisible(Obj, Bool)


[Link] = Bool ~= nil and Bool or [Link]
end

function Funcs:ToggleParent(Obj, Parent)


if Bool ~= nil then
[Link] = Bool
else
[Link] = not [Link] and Parent
end
end

function Funcs:GetConnectionFunctions(ConnectedFuncs, func)


local Connected = { Function = func, Connected = true }

function Connected:Disconnect()
if [Link] then
[Link](ConnectedFuncs, [Link](ConnectedFuncs, [Link]))
[Link] = false
end
end

function Connected:Fire(...)
if [Link] then
[Link]([Link], ...)
end
end

return Connected
end

function Funcs:GetCallback(Configs, index)


local func = Configs[index] or [Link] or function()end

if type(func) == "table" then


return ({function(Value) func[1][func[2]] = Value end})
end
return {func}
end
end

local Connections, Connection = {}, [Link] do


local function NewConnectionList(List)
if type(List) ~= "table" then return end

for _,CoName in ipairs(List) do


local ConnectedFuncs, Connect = {}, {}
Connection[CoName] = Connect
Connections[CoName] = ConnectedFuncs
[Link] = CoName

function Connect:Connect(func)
if type(func) == "function" then
[Link](ConnectedFuncs, func)
return Funcs:GetConnectionFunctions(ConnectedFuncs, func)
end
end

function Connect:Once(func)
if type(func) == "function" then
local Connected;

local _NFunc;_NFunc = function(...)


[Link](func, ...)
Connected:Disconnect()
end

Connected = Funcs:GetConnectionFunctions(ConnectedFuncs, _NFunc)


return Connected
end
end
end
end

function Connection:FireConnection(CoName, ...)


local Connection = type(CoName) == "string" and Connections[CoName] or
Connections[[Link]]
for _,Func in pairs(Connection) do
[Link](Func, ...)
end
end

NewConnectionList({"FlagsChanged", "ThemeChanged", "FileSaved", "ThemeChanging",


"OptionAdded"})
end

local GetFlag, SetFlag, CheckFlag do


CheckFlag = function(Name)
return type(Name) == "string" and Flags[Name] ~= nil
end

GetFlag = function(Name)
return type(Name) == "string" and Flags[Name]
end

SetFlag = function(Flag, Value)


if Flag and (Value ~= Flags[Flag] or type(Value) == "table") then
Flags[Flag] = Value
Connection:FireConnection("FlagsChanged", Flag, Value)
end
end

local db
[Link]:Connect(function(Flag, Value)
local ScriptFile = [Link]
if not db and ScriptFile and writefile then
db=true;[Link](0.1);db=false

local Success, Encoded = pcall(function()


-- local _Flags = {}
-- for _,Flag in pairs(Flags) do _Flags[_] = [Link] end
return HttpService:JSONEncode(Flags)
end)

if Success then
local Success = pcall(writefile, ScriptFile, Encoded)
if Success then
Connection:FireConnection("FileSaved", "Script-Flags", ScriptFile,
Encoded)
end
end
end
end)
end

local ScreenGui = Create("ScreenGui", CoreGui, {


Name = "rael hub with redz library",
}, {
Create("UIScale", {
Scale = UIScale,
Name = "Scale"
})
})

local ScreenFind = CoreGui:FindFirstChild([Link])


if ScreenFind and ScreenFind ~= ScreenGui then
ScreenFind:Destroy()
end

local function GetStr(val)


if type(val) == "function" then
return val()
end
return val
end

local function ConnectSave(Instance, func)


[Link]:Connect(function(Input)
if [Link] == [Link].MouseButton1 or
[Link] == [Link] then
while UserInputService:IsMouseButtonPressed([Link].MouseButton1)
do [Link]()
end
end
func()
end)
end

local function CreateTween(Configs)


local Instance = Configs[1] or [Link]
local Prop = Configs[2] or [Link]
local NewVal = Configs[3] or [Link]
local Time = Configs[4] or [Link] or 0.5
local TweenWait = Configs[5] or [Link] or false
local TweenInfo = [Link](Time, [Link])

local Tween = TweenService:Create(Instance, TweenInfo, {[Prop] = NewVal})


Tween:Play()
if TweenWait then
[Link]:Wait()
end
return Tween
end

local function MakeDrag(Instance)


[Link](function()
SetProps(Instance, {
Active = true,
AutoButtonColor = false
})

local DragStart, StartPos, InputOn

local function Update(Input)


local delta = [Link] - DragStart
local Position = [Link]([Link], [Link] +
delta.X / UIScale, [Link], [Link] + delta.Y / UIScale)
-- [Link] = Position
CreateTween({Instance, "Position", Position, 0.35})
end

Instance.MouseButton1Down:Connect(function()
InputOn = true
end)

[Link]:Connect(function(Input)
if [Link] == [Link].MouseButton1 or
[Link] == [Link] then
StartPos = [Link]
DragStart = [Link]

while
UserInputService:IsMouseButtonPressed([Link].MouseButton1) do
[Link]:Wait()
if InputOn then
Update(Input)
end
end
InputOn = false
end
end)
end)
return Instance
end

local function VerifyTheme(Theme)


for name,_ in pairs([Link]) do
if name == Theme then
return true
end
end
end

local function SaveJson(FileName, save)


if writefile then
local json = HttpService:JSONEncode(save)
writefile(FileName, json)
end
end

local Theme = [Link][[Link]]

local function AddEle(Name, Func)


[Link][Name] = Func
end

local function Make(Ele, Instance, props, ...)


local Element = [Link][Ele](Instance, props, ...)
return Element
end

AddEle("Corner", function(parent, CornerRadius)


local New = SetProps(Create("UICorner", parent, {
CornerRadius = CornerRadius or [Link](0, 7)
}), props)
return New
end)

AddEle("Stroke", function(parent, props, ...)


local args = {...}
local New = InsertTheme(SetProps(Create("UIStroke", parent, {
Color = args[1] or Theme["Color Stroke"],
Thickness = args[2] or 1,
ApplyStrokeMode = "Border"
}), props), "Stroke")
return New
end)

AddEle("Button", function(parent, props, ...)


local args = {...}
local New = InsertTheme(SetProps(Create("TextButton", parent, {
Text = "",
Size = [Link](1, 1),
BackgroundColor3 = Theme["Color Hub 2"],
AutoButtonColor = false
}), props), "Frame")

[Link]:Connect(function()
[Link] = 0.4
end)
[Link]:Connect(function()
[Link] = 0
end)
if args[1] then
[Link]:Connect(args[1])
end
return New
end)

AddEle("Gradient", function(parent, props, ...)


local args = {...}
local New = InsertTheme(SetProps(Create("UIGradient", parent, {
Color = Theme["Color Hub 1"]
}), props), "Gradient")
return New
end)

local function ButtonFrame(Instance, Title, Description, HolderSize)


local TitleL = InsertTheme(Create("TextLabel", {
Font = [Link],
TextColor3 = Theme["Color Text"],
Size = [Link](1, -20),
AutomaticSize = "Y",
Position = [Link](0, 0, 0.5),
AnchorPoint = [Link](0, 0.5),
BackgroundTransparency = 1,
TextTruncate = "AtEnd",
TextSize = 10,
TextXAlignment = "Left",
Text = "",
RichText = true
}), "Text")

local DescL = InsertTheme(Create("TextLabel", {


Font = [Link],
TextColor3 = Theme["Color Dark Text"],
Size = [Link](1, -20),
AutomaticSize = "Y",
Position = [Link](0, 12, 0, 15),
BackgroundTransparency = 1,
TextWrapped = true,
TextSize = 8,
TextXAlignment = "Left",
Text = "",
RichText = true
}), "DarkText")

local Frame = Make("Button", Instance, {


Size = [Link](1, 0, 0, 25),
AutomaticSize = "Y",
Name = "Option"
})Make("Corner", Frame, [Link](0, 6))

LabelHolder = Create("Frame", Frame, {


AutomaticSize = "Y",
BackgroundTransparency = 1,
Size = HolderSize,
Position = [Link](0, 10, 0),
AnchorPoint = [Link](0, 0)
}, {
Create("UIListLayout", {
SortOrder = "LayoutOrder",
VerticalAlignment = "Center",
Padding = [Link](0, 2)
}),
Create("UIPadding", {
PaddingBottom = [Link](0, 5),
PaddingTop = [Link](0, 5)
}),
TitleL,
DescL,
})

local Label = {}
function Label:SetTitle(NewTitle)
if type(NewTitle) == "string" and NewTitle:gsub(" ", ""):len() > 0 then
[Link] = NewTitle
end
end
function Label:SetDesc(NewDesc)
if type(NewDesc) == "string" and NewDesc:gsub(" ", ""):len() > 0 then
[Link] = true
[Link] = NewDesc
[Link] = [Link](0, 10, 0)
[Link] = [Link](0, 0)
else
[Link] = false
[Link] = ""
[Link] = [Link](0, 10, 0.5)
[Link] = [Link](0, 0.5)
end
end
Label:SetTitle(Title)
Label:SetDesc(Description)
return Frame, Label
end

local function GetColor(Instance)


if Instance:IsA("Frame") then
return "BackgroundColor3"
elseif Instance:IsA("ImageLabel") then
return "ImageColor3"
elseif Instance:IsA("TextLabel") then
return "TextColor3"
elseif Instance:IsA("ScrollingFrame") then
return "ScrollBarImageColor3"
elseif Instance:IsA("UIStroke") then
return "Color"
end
return ""
end

-- /////////// --
function redzlib:GetIcon(IconName)
if IconName:find("rbxassetid://") or IconName:len() < 1 then return IconName end
IconName = IconName:lower():gsub("lucide", ""):gsub("-", "")

for Name, Icon in pairs([Link]) do


Name = Name:gsub("lucide", ""):gsub("-", "")
if Name == IconName then
return Icon
end
end
for Name, Icon in pairs([Link]) do
Name = Name:gsub("lucide", ""):gsub("-", "")
if Name:find(IconName) then
return Icon
end
end
return IconName
end

function redzlib:SetTheme(NewTheme)
if not VerifyTheme(NewTheme) then return end

[Link] = NewTheme
SaveJson("rael hub with redz [Link]", [Link])
Theme = [Link][NewTheme]

Comnection:FireConnection("ThemeChanged", NewTheme)
[Link]([Link], function(_,Val)
if [Link] == "Gradient" then
[Link] = Theme["Color Hub 1"]
elseif [Link] == "Frame" then
[Link].BackgroundColor3 = Theme["Color Hub 2"]
elseif [Link] == "Stroke" then
[Link][GetColor([Link])] = Theme["Color Stroke"]
elseif [Link] == "Theme" then
[Link][GetColor([Link])] = Theme["Color Theme"]
elseif [Link] == "Text" then
[Link][GetColor([Link])] = Theme["Color Text"]
elseif [Link] == "DarkText" then
[Link][GetColor([Link])] = Theme["Color Dark Text"]
elseif [Link] == "ScrollBar" then
[Link][GetColor([Link])] = Theme["Color Theme"]
end
end)
end

function redzlib:SetScale(NewScale)
NewScale = ViewportSize.Y / [Link](NewScale, 300, 2000)
UIScale, [Link] = NewScale, NewScale
end

function redzlib:MakeWindow(Configs)
local WTitle = Configs[1] or [Link] or [Link] or "rael hub with redz
library"
local WMiniText = Configs[2] or [Link] or "by : redz9999"

[Link] = Configs[3] or [Link] or false

local function LoadFile()


local File = [Link]
if type(File) ~= "string" then return end
if not readfile or not isfile then return end
local s, r = pcall(isfile, File)

if s and r then
local s, _Flags = pcall(readfile, File)

if s and type(_Flags) == "string" then


local s,r = pcall(function() return HttpService:JSONDecode(_Flags) end)
Flags = s and r or {}
end
end
end

local UISizeX, UISizeY = unpack([Link])


local MainFrame = InsertTheme(Create("ImageButton", ScreenGui, {
Size = [Link](UISizeX, UISizeY),
Position = [Link](0.5, -UISizeX/2, 0.5, -UISizeY/2),
BackgroundTransparency = 0.03,
Name = "Hub"
}), "Main")
Make("Gradient", MainFrame, {
Rotation = 45
})MakeDrag(MainFrame)

local MainCorner = Make("Corner", MainFrame)

local Components = Create("Folder", MainFrame, {


Name = "Components"
})

local DropdownHolder = Create("Folder", ScreenGui, {


Name = "Dropdown"
})

local TopBar = Create("Frame", Components, {


Size = [Link](1, 0, 0, 28),
BackgroundTransparency = 1,
Name = "Top Bar"
})

local Title = InsertTheme(Create("TextLabel", TopBar, {


Position = [Link](0, 15, 0.5),
AnchorPoint = [Link](0, 0.5),
AutomaticSize = "XY",
Text = WTitle,
TextXAlignment = "Left",
TextSize = 12,
TextColor3 = Theme["Color Text"],
BackgroundTransparency = 1,
Font = [Link],
Name = "Title"
}, {
InsertTheme(Create("TextLabel", {
Size = [Link](0, 1),
AutomaticSize = "X",
AnchorPoint = [Link](0, 1),
Position = [Link](1, 5, 0.9),
Text = WMiniText,
TextColor3 = Theme["Color Dark Text"],
BackgroundTransparency = 1,
TextXAlignment = "Left",
TextYAlignment = "Bottom",
TextSize = 8,
Font = [Link],
Name = "SubTitle"
}), "DarkText")
}), "Text")

local MainScroll = InsertTheme(Create("ScrollingFrame", Components, {


Size = [Link](0, [Link], 1, -[Link]),
ScrollBarImageColor3 = Theme["Color Theme"],
Position = [Link](0, 0, 1, 0),
AnchorPoint = [Link](0, 1),
ScrollBarThickness = 1.5,
BackgroundTransparency = 1,
ScrollBarImageTransparency = 0.2,
CanvasSize = [Link](),
AutomaticCanvasSize = "Y",
ScrollingDirection = "Y",
BorderSizePixel = 0,
Name = "Tab Scroll"
}, {
Create("UIPadding", {
PaddingLeft = [Link](0, 10),
PaddingRight = [Link](0, 10),
PaddingTop = [Link](0, 10),
PaddingBottom = [Link](0, 10)
}), Create("UIListLayout", {
Padding = [Link](0, 5)
})
}), "ScrollBar")

local Containers = Create("Frame", Components, {


Size = [Link](1, -[Link], 1, -[Link]),
AnchorPoint = [Link](1, 1),
Position = [Link](1, 0, 1, 0),
BackgroundTransparency = 1,
ClipsDescendants = true,
Name = "Containers"
})

local ControlSize1, ControlSize2 = MakeDrag(Create("ImageButton", MainFrame, {


Size = [Link](0, 35, 0, 35),
Position = [Link],
Active = true,
AnchorPoint = [Link](0.8, 0.8),
BackgroundTransparency = 1,
Name = "Control Hub Size"
})), MakeDrag(Create("ImageButton", MainFrame, {
Size = [Link](0, 20, 1, -30),
Position = [Link](0, [Link], 1, 0),
AnchorPoint = [Link](0.5, 1),
Active = true,
BackgroundTransparency = 1,
Name = "Control Tab Size"
}))

local function ControlSize()


local Pos1, Pos2 = [Link], [Link]
[Link] = [Link]([Link]([Link], 430, 1000),
[Link]([Link], 200, 500))
[Link] = [Link](0, [Link]([Link], 135, 250), 1, 0)

[Link] = [Link](0, [Link], 1, -


[Link])
[Link] = [Link](1, -[Link], 1, -
[Link])
[Link] = [Link]
end

ControlSize1:GetPropertyChangedSignal("Position"):Connect(ControlSize)
ControlSize2:GetPropertyChangedSignal("Position"):Connect(ControlSize)

ConnectSave(ControlSize1, function()
if not Minimized then
[Link] = {[Link], [Link]}
SaveJson("rael hub with redz [Link]", [Link])
end
end)

ConnectSave(ControlSize2, function()
[Link] = [Link]
SaveJson("rael hub with redz [Link]", [Link])
end)

local ButtonsFolder = Create("Folder", TopBar, {


Name = "Buttons"
})

local CloseButton = Create("ImageButton", {


Size = [Link](0, 14, 0, 14),
Position = [Link](1, -10, 0.5),
AnchorPoint = [Link](1, 0.5),
BackgroundTransparency = 1,
Image = "rbxassetid://10747384394",
AutoButtonColor = false,
Name = "Close"
})

local MinimizeButton = SetProps(CloseButton:Clone(), {


Position = [Link](1, -35, 0.5),
Image = "rbxassetid://10734896206",
Name = "Minimize"
})

SetChildren(ButtonsFolder, {
CloseButton,
MinimizeButton
})

local Minimized, SaveSize, WaitClick


local Window, FirstTab = {}, false
function Window:CloseBtn()
local Dialog = Window:Dialog({
Title = "Close",
Text = "Are you sure you want to close this script??",
Options = {
{"Confirm", function()
ScreenGui:Destroy()
end},
{"Cancel"}
}
})
end
function Window:MinimizeBtn()
if WaitClick then return end
WaitClick = true

if Minimized then
[Link] = "rbxassetid://10734896206"
CreateTween({MainFrame, "Size", SaveSize, 0.25, true})
[Link] = true
[Link] = true
Minimized = false
else
[Link] = "rbxassetid://10734924532"
SaveSize = [Link]
[Link] = false
[Link] = false
CreateTween({MainFrame, "Size", [Link]([Link],
28), 0.25, true})
Minimized = true
end

WaitClick = false
end
function Window:Minimize()
[Link] = not [Link]
end
function Window:AddMinimizeButton(Configs)
local Button = MakeDrag(Create("ImageButton", ScreenGui, {
Size = [Link](50, 50),
Position = [Link](0.15, 0.15),
BackgroundTransparency = 1,
BackgroundColor3 = Theme["Color Hub 2"],
AutoButtonColor = false
}))

local Stroke, Corner


if [Link] then
Corner = Make("Corner", Button)
SetProps(Corner, [Link])
end
if [Link] then
Stroke = Make("Stroke", Button)
SetProps(Stroke, [Link])
end

SetProps(Button, [Link])
[Link]:Connect([Link])

return {
Stroke = Stroke,
Corner = Corner,
Button = Button
}
end
function Window:Set(Val1, Val2)
if type(Val1) == "string" and type(Val2) == "string" then
[Link] = Val1
[Link] = Val2
elseif type(Val1) == "string" then
[Link] = Val1
end
end
function Window:Dialog(Configs)
if MainFrame:FindFirstChild("Dialog") then return end
if Minimized then
Window:MinimizeBtn()
end

local DTitle = Configs[1] or [Link] or "Dialog"


local DText = Configs[2] or [Link] or "This is a Dialog"
local DOptions = Configs[3] or [Link] or {}

local Frame = Create("Frame", {


Active = true,
Size = [Link](250 * 1.08, 150 * 1.08),
Position = [Link](0.5, 0.5),
AnchorPoint = [Link](0.5, 0.5)
}, {
InsertTheme(Create("TextLabel", {
Font = [Link],
Size = [Link](1, 0, 0, 20),
Text = DTitle,
TextXAlignment = "Left",
TextColor3 = Theme["Color Text"],
TextSize = 15,
Position = [Link](15, 5),
BackgroundTransparency = 1
}), "Text"),
InsertTheme(Create("TextLabel", {
Font = [Link],
Size = [Link](1, -25),
AutomaticSize = "Y",
Text = DText,
TextXAlignment = "Left",
TextColor3 = Theme["Color Dark Text"],
TextSize = 12,
Position = [Link](15, 25),
BackgroundTransparency = 1,
TextWrapped = true
}), "DarkText")
})Make("Gradient", Frame, {Rotation = 270})Make("Corner", Frame)

local ButtonsHolder = Create("Frame", Frame, {


Size = [Link](1, 0.35),
Position = [Link](0, 1),
AnchorPoint = [Link](0, 1),
BackgroundColor3 = Theme["Color Hub 2"],
BackgroundTransparency = 1
}, {
Create("UIListLayout", {
Padding = [Link](0, 10),
VerticalAlignment = "Center",
FillDirection = "Horizontal",
HorizontalAlignment = "Center"
})
})

local Screen = InsertTheme(Create("Frame", MainFrame, {


BackgroundTransparency = 0.6,
Active = true,
BackgroundColor3 = Theme["Color Hub 2"],
Size = [Link](1, 0, 1, 0),
BackgroundColor3 = Theme["Color Stroke"],
Name = "Dialog"
}), "Stroke")

MainCorner:Clone().Parent = Screen
[Link] = Screen
CreateTween({Frame, "Size", [Link](250, 150), 0.2})
CreateTween({Frame, "Transparency", 0, 0.15})
CreateTween({Screen, "Transparency", 0.3, 0.15})

local ButtonCount, Dialog = 1, {}


function Dialog:Button(Configs)
local Name = Configs[1] or [Link] or [Link] or ""
local Callback = Configs[2] or [Link] or function()end

ButtonCount = ButtonCount + 1
local Button = Make("Button", ButtonsHolder)
Make("Corner", Button)
SetProps(Button, {
Text = Name,
Font = [Link],
TextColor3 = Theme["Color Text"],
TextSize = 12
})

for _,Button in pairs(ButtonsHolder:GetChildren()) do


if Button:IsA("TextButton") then
[Link] = [Link](1 / ButtonCount, -(((ButtonCount - 1) * 20) /
ButtonCount), 0, 32) -- Fluent Library :)
end
end
[Link]:Connect([Link])
[Link]:Connect(Callback)
end
function Dialog:Close()
CreateTween({Frame, "Size", [Link](250 * 1.08, 150 * 1.08), 0.2})
CreateTween({Screen, "Transparency", 1, 0.15})
CreateTween({Frame, "Transparency", 1, 0.15, true})
Screen:Destroy()
end
[Link](DOptions, function(_,Button)
Dialog:Button(Button)
end)
return Dialog
end
function Window:SelectTab(TabSelect)
if type(TabSelect) == "number" then
[Link][TabSelect].func:Enable()
else
for _,Tab in pairs([Link]) do
if [Link] == [Link] then
[Link]:Enable()
end
end
end
end

local ContainerList = {}
function Window:MakeTab(paste, Configs)
if type(paste) == "table" then Configs = paste end
local TName = Configs[1] or [Link] or "Tab!"
local TIcon = Configs[2] or [Link] or ""

TIcon = redzlib:GetIcon(TIcon)
if not TIcon:find("rbxassetid://") or TIcon:gsub("rbxassetid://", ""):len() < 6
then
TIcon = false
end

local TabSelect = Make("Button", MainScroll, {


Size = [Link](1, 0, 0, 24)
})Make("Corner", TabSelect)

local LabelTitle = InsertTheme(Create("TextLabel", TabSelect, {


Size = [Link](1, TIcon and -25 or -15, 1),
Position = [Link](TIcon and 25 or 15),
BackgroundTransparency = 1,
Font = [Link],
Text = TName,
TextColor3 = Theme["Color Text"],
TextSize = 10,
TextXAlignment = [Link],
TextTransparency = (FirstTab and 0.3) or 0,
TextTruncate = "AtEnd"
}), "Text")
local LabelIcon = InsertTheme(Create("ImageLabel", TabSelect, {
Position = [Link](0, 8, 0.5),
Size = [Link](0, 13, 0, 13),
AnchorPoint = [Link](0, 0.5),
Image = TIcon or "",
BackgroundTransparency = 1,
ImageTransparency = (FirstTab and 0.3) or 0
}), "Text")

local Selected = InsertTheme(Create("Frame", TabSelect, {


Size = FirstTab and [Link](0, 4, 0, 4) or [Link](0, 4, 0, 13),
Position = [Link](0, 1, 0.5),
AnchorPoint = [Link](0, 0.5),
BackgroundColor3 = Theme["Color Theme"],
BackgroundTransparency = FirstTab and 1 or 0
}), "Theme")Make("Corner", Selected, [Link](0.5, 0))

local Container = InsertTheme(Create("ScrollingFrame", {


Size = [Link](1, 0, 1, 0),
Position = [Link](0, 0, 1),
AnchorPoint = [Link](0, 1),
ScrollBarThickness = 1.5,
BackgroundTransparency = 1,
ScrollBarImageTransparency = 0.2,
ScrollBarImageColor3 = Theme["Color Theme"],
AutomaticCanvasSize = "Y",
ScrollingDirection = "Y",
BorderSizePixel = 0,
CanvasSize = [Link](),
Name = ("Container %i [ %s ]"):format(#ContainerList + 1, TName)
}, {
Create("UIPadding", {
PaddingLeft = [Link](0, 10),
PaddingRight = [Link](0, 10),
PaddingTop = [Link](0, 10),
PaddingBottom = [Link](0, 10)
}), Create("UIListLayout", {
Padding = [Link](0, 5)
})
}), "ScrollBar")

[Link](ContainerList, Container)

if not FirstTab then [Link] = Containers end

local function Tabs()


if [Link] then return end
for _,Frame in pairs(ContainerList) do
if Frame:IsA("ScrollingFrame") and Frame ~= Container then
[Link] = nil
end
end
[Link] = Containers
[Link] = [Link](1, 0, 1, 150)
[Link]([Link], function(_,Tab)
if [Link] ~= Container then
[Link]:Disable()
end
end)
CreateTween({Container, "Size", [Link](1, 0, 1, 0), 0.3})
CreateTween({LabelTitle, "TextTransparency", 0, 0.35})
CreateTween({LabelIcon, "ImageTransparency", 0, 0.35})
CreateTween({Selected, "Size", [Link](0, 4, 0, 13), 0.35})
CreateTween({Selected, "BackgroundTransparency", 0, 0.35})
end
[Link]:Connect(Tabs)

FirstTab = true
local Tab = {}
[Link]([Link], {TabInfo = {Name = TName, Icon = TIcon}, func = Tab,
Cont = Container})
[Link] = Container

function Tab:Disable()
[Link] = nil
CreateTween({LabelTitle, "TextTransparency", 0.3, 0.35})
CreateTween({LabelIcon, "ImageTransparency", 0.3, 0.35})
CreateTween({Selected, "Size", [Link](0, 4, 0, 4), 0.35})
CreateTween({Selected, "BackgroundTransparency", 1, 0.35})
end
function Tab:Enable()
Tabs()
end
function Tab:Visible(Bool)
Funcs:ToggleVisible(TabSelect, Bool)
Funcs:ToggleParent(Container, Bool, Containers)
end
function Tab:Destroy() TabSelect:Destroy() Container:Destroy() end

function Tab:AddSection(Configs)
local SectionName = type(Configs) == "string" and Configs or Configs[1] or
[Link] or [Link] or [Link]

local SectionFrame = Create("Frame", Container, {


Size = [Link](1, 0, 0, 20),
BackgroundTransparency = 1,
Name = "Option"
})

local SectionLabel = InsertTheme(Create("TextLabel", SectionFrame, {


Font = [Link],
Text = SectionName,
TextColor3 = Theme["Color Text"],
Size = [Link](1, -25, 1, 0),
Position = [Link](0, 5),
BackgroundTransparency = 1,
TextTruncate = "AtEnd",
TextSize = 14,
TextXAlignment = "Left"
}), "Text")

local Section = {}
[Link]([Link], {type = "Section", Name = SectionName, func =
Section})
function Section:Visible(Bool)
if Bool == nil then [Link] = not [Link] return
end
[Link] = Bool
end
function Section:Destroy()
SectionFrame:Destroy()
end
function Section:Set(New)
if New then
[Link] = GetStr(New)
end
end
return Section
end
function Tab:AddParagraph(Configs)
local PName = Configs[1] or [Link] or "Paragraph"
local PDesc = Configs[2] or [Link] or ""

local Frame, LabelFunc = ButtonFrame(Container, PName, PDesc, [Link](1, -


20))

local Paragraph = {}
function Paragraph:Visible(...) Funcs:ToggleVisible(Frame, ...) end
function Paragraph:Destroy() Frame:Destroy() end
function Paragraph:SetTitle(Val)
LabelFunc:SetTitle(GetStr(Val))
end
function Paragraph:SetDesc(Val)
LabelFunc:SetDesc(GetStr(Val))
end
function Paragraph:Set(Val1, Val2)
if Val1 and Val2 then
LabelFunc:SetTitle(GetStr(Val1))
LabelFunc:SetDesc(GetStr(Val2))
elseif Val1 then
LabelFunc:SetDesc(GetStr(Val1))
end
end
return Paragraph
end
function Tab:AddButton(Configs)
local BName = Configs[1] or [Link] or [Link] or "Button!"
local BDescription = [Link] or [Link] or ""
local Callback = Funcs:GetCallback(Configs, 2)

local FButton, LabelFunc = ButtonFrame(Container, BName, BDescription,


[Link](1, -20))

local ButtonIcon = Create("ImageLabel", FButton, {


Size = [Link](0, 14, 0, 14),
Position = [Link](1, -10, 0.5),
AnchorPoint = [Link](1, 0.5),
BackgroundTransparency = 1,
Image = "rbxassetid://10709791437"
})

[Link]:Connect(function()
Funcs:FireCallback(Callback)
end)

local Button = {}
function Button:Visible(...) Funcs:ToggleVisible(FButton, ...) end
function Button:Destroy() FButton:Destroy() end
function Button:Callback(...) Funcs:InsertCallback(Callback, ...) end
function Button:Set(Val1, Val2)
if type(Val1) == "string" and type(Val2) == "string" then
LabelFunc:SetTitle(Val1)
LabelFunc:SetDesc(Val2)
elseif type(Val1) == "string" then
LabelFunc:SetTitle(Val1)
elseif type(Val1) == "function" then
Callback = Val1
end
end
return Button
end
function Tab:AddToggle(Configs)
local TName = Configs[1] or [Link] or [Link] or "Toggle"
local TDesc = [Link] or [Link] or ""
local Callback = Funcs:GetCallback(Configs, 3)
local Flag = Configs[4] or [Link] or false
local Default = Configs[2] or [Link] or false
if CheckFlag(Flag) then Default = GetFlag(Flag) end

local Button, LabelFunc = ButtonFrame(Container, TName, TDesc, [Link](1, -


38))

local ToggleHolder = InsertTheme(Create("Frame", Button, {


Size = [Link](0, 35, 0, 18),
Position = [Link](1, -10, 0.5),
AnchorPoint = [Link](1, 0.5),
BackgroundColor3 = Theme["Color Stroke"]
}), "Stroke")Make("Corner", ToggleHolder, [Link](0.5, 0))

local Slider = Create("Frame", ToggleHolder, {


BackgroundTransparency = 1,
Size = [Link](0.8, 0, 0.8, 0),
Position = [Link](0.5, 0, 0.5, 0),
AnchorPoint = [Link](0.5, 0.5)
})

local Toggle = InsertTheme(Create("Frame", Slider, {


Size = [Link](0, 12, 0, 12),
Position = [Link](0, 0, 0.5),
AnchorPoint = [Link](0, 0.5),
BackgroundColor3 = Theme["Color Theme"]
}), "Theme")Make("Corner", Toggle, [Link](0.5, 0))

local WaitClick
local function SetToggle(Val)
if WaitClick then return end

WaitClick, Default = true, Val


SetFlag(Flag, Default)
Funcs:FireCallback(Callback, Default)
if Default then
CreateTween({Toggle, "Position", [Link](1, 0, 0.5), 0.25})
CreateTween({Toggle, "BackgroundTransparency", 0, 0.25})
CreateTween({Toggle, "AnchorPoint", [Link](1, 0.5), 0.25, Wait or
false})
else
CreateTween({Toggle, "Position", [Link](0, 0, 0.5), 0.25})
CreateTween({Toggle, "BackgroundTransparency", 0.8, 0.25})
CreateTween({Toggle, "AnchorPoint", [Link](0, 0.5), 0.25, Wait or
false})
end
WaitClick = false
end;[Link](SetToggle, Default)

[Link]:Connect(function()
SetToggle(not Default)
end)

local Toggle = {}
function Toggle:Visible(...) Funcs:ToggleVisible(Button, ...) end
function Toggle:Destroy() Button:Destroy() end
function Toggle:Callback(...) Funcs:InsertCallback(Callback, ...)() end
function Toggle:Set(Val1, Val2)
if type(Val1) == "string" and type(Val2) == "string" then
LabelFunc:SetTitle(Val1)
LabelFunc:SetDesc(Val2)
elseif type(Val1) == "string" then
LabelFunc:SetTitle(Val1, false, true)
elseif type(Val1) == "boolean" then
if WaitClick and Val2 then
repeat [Link]() until not WaitClick
end
[Link](SetToggle, Val1)
elseif type(Val1) == "function" then
Callback = Val1
end
end
return Toggle
end
function Tab:AddDropdown(Configs)
local DName = Configs[1] or [Link] or [Link] or "Dropdown"
local DDesc = [Link] or [Link] or ""
local DOptions = Configs[2] or [Link] or {}
local OpDefault = Configs[3] or [Link] or {}
local Flag = Configs[5] or [Link] or false
local DMultiSelect = [Link] or false
local Callback = Funcs:GetCallback(Configs, 4)

local Button, LabelFunc = ButtonFrame(Container, DName, DDesc, [Link](1, -


180))

local SelectedFrame = InsertTheme(Create("Frame", Button, {


Size = [Link](0, 150, 0, 18),
Position = [Link](1, -10, 0.5),
AnchorPoint = [Link](1, 0.5),
BackgroundColor3 = Theme["Color Stroke"]
}), "Stroke")Make("Corner", SelectedFrame, [Link](0, 4))

local ActiveLabel = InsertTheme(Create("TextLabel", SelectedFrame, {


Size = [Link](0.85, 0, 0.85, 0),
AnchorPoint = [Link](0.5, 0.5),
Position = [Link](0.5, 0, 0.5, 0),
BackgroundTransparency = 1,
Font = [Link],
TextScaled = true,
TextColor3 = Theme["Color Text"],
Text = "..."
}), "Text")

local Arrow = Create("ImageLabel", SelectedFrame, {


Size = [Link](0, 15, 0, 15),
Position = [Link](0, -5, 0.5),
AnchorPoint = [Link](1, 0.5),
Image = "rbxassetid://10709791523",
BackgroundTransparency = 1
})

local NoClickFrame = Create("TextButton", DropdownHolder, {


Name = "AntiClick",
Size = [Link](1, 0, 1, 0),
BackgroundTransparency = 1,
Visible = false,
Text = ""
})

local DropFrame = Create("Frame", NoClickFrame, {


Size = [Link]([Link].X, 0, 0),
BackgroundTransparency = 0.1,
BackgroundColor3 = [Link](255, 255, 255),
AnchorPoint = [Link](0, 1),
Name = "DropdownFrame",
ClipsDescendants = true,
Active = true
})Make("Corner", DropFrame)Make("Stroke", DropFrame)Make("Gradient",
DropFrame, {Rotation = 60})

local ScrollFrame = InsertTheme(Create("ScrollingFrame", DropFrame, {


ScrollBarImageColor3 = Theme["Color Theme"],
Size = [Link](1, 0, 1, 0),
ScrollBarThickness = 1.5,
BackgroundTransparency = 1,
BorderSizePixel = 0,
CanvasSize = [Link](),
ScrollingDirection = "Y",
AutomaticCanvasSize = "Y",
Active = true
}, {
Create("UIPadding", {
PaddingLeft = [Link](0, 8),
PaddingRight = [Link](0, 8),
PaddingTop = [Link](0, 5),
PaddingBottom = [Link](0, 5)
}), Create("UIListLayout", {
Padding = [Link](0, 4)
})
}), "ScrollBar")

local ScrollSize, WaitClick = 5


local function Disable()
WaitClick = true
CreateTween({Arrow, "Rotation", 0, 0.2})
CreateTween({DropFrame, "Size", [Link](0, 152, 0, 0), 0.2, true})
CreateTween({Arrow, "ImageColor3", [Link](255, 255, 255), 0.2})
[Link] = "rbxassetid://10709791523"
[Link] = false
WaitClick = false
end

local function GetFrameSize()


return [Link](152, ScrollSize)
end

local function CalculateSize()


local Count = 0
for _,Frame in pairs(ScrollFrame:GetChildren()) do
if Frame:IsA("Frame") or [Link] == "Option" then
Count = Count + 1
end
end
ScrollSize = ([Link](Count, 0, 10) * 25) + 10
if [Link] then
[Link] = true
CreateTween({DropFrame, "Size", GetFrameSize(), 0.2, true})
end
end

local function Minimize()


if WaitClick then return end
WaitClick = true
if [Link] then
[Link] = "rbxassetid://10709791523"
CreateTween({Arrow, "ImageColor3", [Link](255, 255, 255), 0.2})
CreateTween({DropFrame, "Size", [Link](0, 152, 0, 0), 0.2, true})
[Link] = false
else
[Link] = true
[Link] = "rbxassetid://10709790948"
CreateTween({Arrow, "ImageColor3", Theme["Color Theme"], 0.2})
CreateTween({DropFrame, "Size", GetFrameSize(), 0.2, true})
end
WaitClick = false
end

local function CalculatePos()


local FramePos = [Link]
local ScreenSize = [Link]
local ClampX = [Link]((FramePos.X / UIScale), 0, ScreenSize.X / UIScale
- [Link])
local ClampY = [Link]((FramePos.Y / UIScale) , 0, ScreenSize.Y /
UIScale)

local NewPos = [Link](ClampX, ClampY)


local AnchorPoint = FramePos.Y > ScreenSize.Y / 1.4 and 1 or ScrollSize >
80 and 0.5 or 0
[Link] = [Link](0, AnchorPoint)
CreateTween({DropFrame, "Position", NewPos, 0.1})
end

local AddNewOptions, GetOptions, AddOption, RemoveOption, Selected do


local Default = type(OpDefault) ~= "table" and {OpDefault} or OpDefault
local MultiSelect = DMultiSelect
local Options = {}
Selected = MultiSelect and {} or CheckFlag(Flag) and GetFlag(Flag) or
Default[1]

if MultiSelect then
for index, Value in pairs(CheckFlag(Flag) and GetFlag(Flag) or Default)
do
if type(index) == "string" and (DOptions[index] or [Link](DOptions,
index)) then
Selected[index] = Value
elseif DOptions[Value] then
Selected[Value] = true
end
end
end

local function CallbackSelected()


SetFlag(Flag, MultiSelect and Selected or tostring(Selected))
Funcs:FireCallback(Callback, Selected)
end

local function UpdateLabel()


if MultiSelect then
local list = {}
for index, Value in pairs(Selected) do
if Value then
[Link](list, index)
end
end
[Link] = #list > 0 and [Link](list, ", ") or "..."
else
[Link] = tostring(Selected or "...")
end
end

local function UpdateSelected()


if MultiSelect then
for _,v in pairs(Options) do
local nodes, Stats = [Link], [Link]
CreateTween({nodes[2], "BackgroundTransparency", Stats and 0 or 0.8,
0.35})
CreateTween({nodes[2], "Size", Stats and [Link](4, 12) or
[Link](4, 4), 0.35})
CreateTween({nodes[3], "TextTransparency", Stats and 0 or 0.4, 0.35})
end
else
for _,v in pairs(Options) do
local Slt = [Link] == Selected
local nodes = [Link]
CreateTween({nodes[2], "BackgroundTransparency", Slt and 0 or 1,
0.35})
CreateTween({nodes[2], "Size", Slt and [Link](4, 14) or
[Link](4, 4), 0.35})
CreateTween({nodes[3], "TextTransparency", Slt and 0 or 0.4, 0.35})
end
end
UpdateLabel()
end

local function Select(Option)


if MultiSelect then
[Link] = not [Link]
[Link] = tick()

Selected[[Link]] = [Link]
CallbackSelected()
else
[Link] = tick()

Selected = [Link]
CallbackSelected()
end
UpdateSelected()
end

AddOption = function(index, Value)


local Name = tostring(type(index) == "string" and index or Value)

if Options[Name] then return end


Options[Name] = {
index = index,
Value = Value,
Name = Name,
Stats = false,
LastCB = 0
}

if MultiSelect then
local Stats = Selected[Name]
Selected[Name] = Stats or false
Options[Name].Stats = Stats
end

local Button = Make("Button", ScrollFrame, {


Name = "Option",
Size = [Link](1, 0, 0, 21),
Position = [Link](0, 0, 0.5),
AnchorPoint = [Link](0, 0.5)
})Make("Corner", Button, [Link](0, 4))

local IsSelected = InsertTheme(Create("Frame", Button, {


Position = [Link](0, 1, 0.5),
Size = [Link](0, 4, 0, 4),
BackgroundColor3 = Theme["Color Theme"],
BackgroundTransparency = 1,
AnchorPoint = [Link](0, 0.5)
}), "Theme")Make("Corner", IsSelected, [Link](0.5, 0))

local OptioneName = InsertTheme(Create("TextLabel", Button, {


Size = [Link](1, 0, 1),
Position = [Link](0, 10),
Text = Name,
TextColor3 = Theme["Color Text"],
Font = [Link],
TextXAlignment = "Left",
BackgroundTransparency = 1,
TextTransparency = 0.4
}), "Text")
[Link]:Connect(function()
Select(Options[Name])
end)

Options[Name].nodes = {Button, IsSelected, OptioneName}


end

RemoveOption = function(index, Value)


local Name = tostring(type(index) == "string" and index or Value)
if Options[Name] then
if MultiSelect then Selected[Name] = nil else Selected = nil end
Options[Name].nodes[1]:Destroy()
[Link](Options[Name])
Options[Name] = nil
end
end

GetOptions = function()
return Options
end

AddNewOptions = function(List, Clear)


if Clear then
[Link](Options, RemoveOption)
end
[Link](List, AddOption)
CallbackSelected()
UpdateSelected()
end

[Link](DOptions, AddOption)
CallbackSelected()
UpdateSelected()
end

[Link]:Connect(Minimize)
NoClickFrame.MouseButton1Down:Connect(Disable)
NoClickFrame.MouseButton1Click:Connect(Disable)
MainFrame:GetPropertyChangedSignal("Visible"):Connect(Disable)

SelectedFrame:GetPropertyChangedSignal("AbsolutePosition"):Connect(CalculatePos)

[Link]:Connect(CalculateSize)
[Link]:Connect(CalculateSize)
[Link]:Connect(CalculateSize)
CalculatePos()
CalculateSize()

local Dropdown = {}
function Dropdown:Visible(...) Funcs:ToggleVisible(Button, ...) end
function Dropdown:Destroy() Button:Destroy() end
function Dropdown:Callback(...) Funcs:InsertCallback(Callback, ...)(Selected)
end

function Dropdown:Add(...)
local NewOptions = {...}
if type(NewOptions[1]) == "table" then
[Link](Option, function(_,Name)
AddOption(Name)
end)
else
[Link](NewOptions, function(_,Name)
AddOption(Name)
end)
end
end
function Dropdown:Remove(Option)
for index, Value in pairs(GetOptions()) do
if type(Option) == "number" and index == Option or [Link] == "Option"
then
RemoveOption(index, [Link])
end
end
end
function Dropdown:Select(Option)
if type(Option) == "string" then
for _,Val in pairs(Options) do
if [Link] == Option then
[Link]()
end
end
elseif type(Option) == "number" then
for ind,Val in pairs(Options) do
if ind == Option then
[Link]()
end
end
end
end
function Dropdown:Set(Val1, Clear)
if type(Val1) == "table" then
AddNewOptions(Val1, not Clear)
elseif type(Val1) == "function" then
Callback = Val1
end
end
return Dropdown
end
function Tab:AddSlider(Configs)
local SName = Configs[1] or [Link] or [Link] or "Slider!"
local SDesc = [Link] or [Link] or ""
local Min = Configs[2] or [Link] or [Link] or 10
local Max = Configs[3] or [Link] or [Link] or 100
local Increase = Configs[4] or [Link] or 1
local Callback = Funcs:GetCallback(Configs, 6)
local Flag = Configs[7] or [Link] or false
local Default = Configs[5] or [Link] or 25
if CheckFlag(Flag) then Default = GetFlag(Flag) end
Min, Max = Min / Increase, Max / Increase

local Button, LabelFunc = ButtonFrame(Container, SName, SDesc, [Link](1, -


180))

local SliderHolder = Create("TextButton", Button, {


Size = [Link](0.45, 0, 1),
Position = [Link](1),
AnchorPoint = [Link](1, 0),
AutoButtonColor = false,
Text = "",
BackgroundTransparency = 1
})

local SliderBar = InsertTheme(Create("Frame", SliderHolder, {


BackgroundColor3 = Theme["Color Stroke"],
Size = [Link](1, -20, 0, 6),
Position = [Link](0.5, 0, 0.5),
AnchorPoint = [Link](0.5, 0.5)
}), "Stroke")Make("Corner", SliderBar)

local Indicator = InsertTheme(Create("Frame", SliderBar, {


BackgroundColor3 = Theme["Color Theme"],
Size = [Link](0.3, 1),
BorderSizePixel = 0
}), "Theme")Make("Corner", Indicator)

local SliderIcon = Create("Frame", SliderBar, {


Size = [Link](0, 6, 0, 12),
BackgroundColor3 = [Link](220, 220, 220),
Position = [Link](0.3, 0.5),
AnchorPoint = [Link](0.5, 0.5),
BackgroundTransparency = 0.2
})Make("Corner", SliderIcon)

local LabelVal = InsertTheme(Create("TextLabel", SliderHolder, {


Size = [Link](0, 14, 0, 14),
AnchorPoint = [Link](1, 0.5),
Position = [Link](0, 0, 0.5),
BackgroundTransparency = 1,
TextColor3 = Theme["Color Text"],
Font = [Link],
TextSize = 12
}), "Text")

local UIScale = Create("UIScale", LabelVal)

local BaseMousePos = Create("Frame", SliderBar, {


Position = [Link](0, 0, 0.5, 0),
Visible = false
})

local function UpdateLabel(NewValue)


local Number = tonumber(NewValue * Increase)
Number = [Link](Number * 100) / 100

Default, [Link] = Number, tostring(Number)


Funcs:FireCallback(Callback, Default)
end

local function ControlPos()


local MousePos = Player:GetMouse()
local APos = MousePos.X - [Link].X
local ConfigureDpiPos = APos / [Link].X

[Link] = [Link]([Link](ConfigureDpiPos, 0, 1), 0, 0.5,


0)
end
local function UpdateValues()
[Link] = [Link]([Link], 0, 1, 0)
local SliderPos = [Link]
local NewValue = [Link](((SliderPos * Max) / Max) * (Max - Min) + Min)
UpdateLabel(NewValue)
end

SliderHolder.MouseButton1Down:Connect(function()
CreateTween({SliderIcon, "Transparency", 0, 0.3})
[Link] = false
while
UserInputService:IsMouseButtonPressed([Link].MouseButton1) do
[Link]()
ControlPos()
end
CreateTween({SliderIcon, "Transparency", 0.2, 0.3})
[Link] = true
SetFlag(Flag, Default)
end)

LabelVal:GetPropertyChangedSignal("Text"):Connect(function()
[Link] = 0.3
CreateTween({UIScale, "Scale", 1.2, 0.1})
CreateTween({LabelVal, "Rotation", [Link](-1, 1) * 5, 0.15, true})
CreateTween({UIScale, "Scale", 1, 0.2})
CreateTween({LabelVal, "Rotation", 0, 0.1})
end)

function SetSlider(NewValue)
if type(NewValue) ~= "number" then return end

local Min, Max = Min * Increase, Max * Increase

local SliderPos = (NewValue - Min) / (Max - Min)

SetFlag(Flag, NewValue)
CreateTween({ SliderIcon, "Position", [Link]([Link](SliderPos,
0, 1), 0.5), 0.3, true })
end;SetSlider(Default)

SliderIcon:GetPropertyChangedSignal("Position"):Connect(UpdateValues)UpdateValues()

local Slider = {}
function Slider:Set(NewVal1, NewVal2)
if NewVal1 and NewVal2 then
LabelFunc:SetTitle(NewVal1)
LabelFunc:SetDesc(NewVal2)
elseif type(NewVal1) == "string" then
LabelFunc:SetTitle(NewVal1)
elseif type(NewVal1) == "function" then
Callback = NewVal1
elseif type(NewVal1) == "number" then
SetSlider(NewVal1)
end
end
function Slider:Callback(...) Funcs:InsertCallback(Callback, ...)
(tonumber(Default)) end
function Slider:Visible(...) Funcs:ToggleVisible(Button, ...) end
function Slider:Destroy() Button:Destroy() end
return Slider
end
function Tab:AddTextBox(Configs)
local TName = Configs[1] or [Link] or [Link] or "Text Box"
local TDesc = [Link] or [Link] or ""
local TDefault = Configs[2] or [Link] or ""
local TPlaceholderText = Configs[5] or [Link] or "Input"
local TClearText = Configs[3] or [Link] or false
local Callback = Funcs:GetCallback(Configs, 4)

if type(TDefault) ~= "string" or TDefault:gsub(" ", ""):len() < 1 then


TDefault = false
end

local Button, LabelFunc = ButtonFrame(Container, TName, TDesc, [Link](1, -


38))

local SelectedFrame = InsertTheme(Create("Frame", Button, {


Size = [Link](0, 150, 0, 18),
Position = [Link](1, -10, 0.5),
AnchorPoint = [Link](1, 0.5),
BackgroundColor3 = Theme["Color Stroke"]
}), "Stroke")Make("Corner", SelectedFrame, [Link](0, 4))

local TextBoxInput = InsertTheme(Create("TextBox", SelectedFrame, {


Size = [Link](0.85, 0, 0.85, 0),
AnchorPoint = [Link](0.5, 0.5),
Position = [Link](0.5, 0, 0.5, 0),
BackgroundTransparency = 1,
Font = [Link],
TextScaled = true,
TextColor3 = Theme["Color Text"],
ClearTextOnFocus = TClearText,
PlaceholderText = TPlaceholderText,
Text = ""
}), "Text")

local Pencil = Create("ImageLabel", SelectedFrame, {


Size = [Link](0, 12, 0, 12),
Position = [Link](0, -5, 0.5),
AnchorPoint = [Link](1, 0.5),
Image = "rbxassetid://15637081879",
BackgroundTransparency = 1
})

local TextBox = {}
local function Input()
local Text = [Link]
if Text:gsub(" ", ""):len() > 0 then
if type([Link]) == "function" then
Text = [Link](Text) or Text
end
Funcs:FireCallback(Callback, Text)
[Link] = Text
end
end
[Link]:Connect(Input)Input()

[Link]:Connect(function()
CreateTween({Pencil, "ImageColor3", [Link](255, 255, 255), 0.2})
end)
[Link]:Connect(function()
CreateTween({Pencil, "ImageColor3", Theme["Color Theme"], 0.2})
end)

[Link] = false
function TextBox:Visible(...) Funcs:ToggleVisible(Button, ...) end
function TextBox:Destroy() Button:Destroy() end
return TextBox
end
function Tab:AddDiscordInvite(Configs)
local Title = Configs[1] or [Link] or [Link] or "Discord"
local Desc = [Link] or [Link] or ""
local Logo = Configs[2] or [Link] or ""
local Invite = Configs[3] or [Link] or ""

local InviteHolder = Create("Frame", Container, {


Size = [Link](1, 0, 0, 80),
Name = "Option",
BackgroundTransparency = 1
})

local InviteLabel = Create("TextLabel", InviteHolder, {


Size = [Link](1, 0, 0, 15),
Position = [Link](0, 5),
TextColor3 = [Link](40, 150, 255),
Font = [Link],
TextXAlignment = "Left",
BackgroundTransparency = 1,
TextSize = 10,
Text = Invite
})

local FrameHolder = InsertTheme(Create("Frame", InviteHolder, {


Size = [Link](1, 0, 0, 65),
AnchorPoint = [Link](0, 1),
Position = [Link](0, 0, 1),
BackgroundColor3 = Theme["Color Hub 2"]
}), "Frame")Make("Corner", FrameHolder)

local ImageLabel = Create("ImageLabel", FrameHolder, {


Size = [Link](0, 30, 0, 30),
Position = [Link](0, 7, 0, 7),
Image = Logo,
BackgroundTransparency = 1
})Make("Corner", ImageLabel, [Link](0, 4))Make("Stroke", ImageLabel)

local LTitle = InsertTheme(Create("TextLabel", FrameHolder, {


Size = [Link](1, -52, 0, 15),
Position = [Link](0, 44, 0, 7),
Font = [Link],
TextColor3 = Theme["Color Text"],
TextXAlignment = "Left",
BackgroundTransparency = 1,
TextSize = 10,
Text = Title
}), "Text")

local LDesc = InsertTheme(Create("TextLabel", FrameHolder, {


Size = [Link](1, -52, 0, 0),
Position = [Link](0, 44, 0, 22),
TextWrapped = "Y",
AutomaticSize = "Y",
Font = [Link],
TextColor3 = Theme["Color Dark Text"],
TextXAlignment = "Left",
BackgroundTransparency = 1,
TextSize = 8,
Text = Desc
}), "DarkText")

local JoinButton = Create("TextButton", FrameHolder, {


Size = [Link](1, -14, 0, 16),
AnchorPoint = [Link](0.5, 1),
Position = [Link](0.5, 0, 1, -7),
Text = "Join",
Font = [Link],
TextSize = 12,
TextColor3 = [Link](220, 220, 220),
BackgroundColor3 = [Link](50, 150, 50)
})Make("Corner", JoinButton, [Link](0, 5))

local ClickDelay
[Link]:Connect(function()
setclipboard(Invite)
if ClickDelay then return end

ClickDelay = true
SetProps(JoinButton, {
Text = "Copied to Clipboard",
BackgroundColor3 = [Link](100, 100, 100),
TextColor3 = [Link](150, 150, 150)
})[Link](5)
SetProps(JoinButton, {
Text = "Join",
BackgroundColor3 = [Link](50, 150, 50),
TextColor3 = [Link](220, 220, 220)
})ClickDelay = false
end)

local DiscordInvite = {}
function DiscordInvite:Destroy() InviteHolder:Destroy() end
function DiscordInvite:Visible(...) Funcs:ToggleVisible(InviteHolder, ...)
end
return DiscordInvite
end
return Tab
end

[Link]:Connect([Link])
[Link]:Connect([Link])
return Window
end
return redzlib

You might also like