
KeylessUniversal

-- // variables
local library = {}
local pages = {}
local sections = {}
local multisections = {}
local mssections = {}
local toggles = {}
local buttons = {}
local sliders = {}
local dropdowns = {}
local multiboxs = {}
local buttonboxs = {}
local textboxs = {}
local keybinds = {}
local colorpickers = {}
local configloaders = {}
local watermarks = {}
local loaders = {}
--
local utility = {}
--
local check_exploit = (syn and "Synapse") or (KRNL_LOADED and "Krnl") or (isourclosure and "ScriptWare") or nil
local plrs = game:GetService("Players")
local cre = game:GetService("CoreGui")
local rs = game:GetService("RunService")
local ts = game:GetService("TweenService")
local uis = game:GetService("UserInputService")
local hs = game:GetService("HttpService")
local ws = game:GetService("Workspace")
local plr = plrs.LocalPlayer
local cam = ws.CurrentCamera
-- // indexes
library.__index = library
pages.__index = pages
sections.__index = sections
multisections.__index = multisections
mssections.__index = mssections
toggles.__index = toggles
buttons.__index = buttons
sliders.__index = sliders
dropdowns.__index = dropdowns
multiboxs.__index = multiboxs
buttonboxs.__index = buttonboxs
textboxs.__index = textboxs
keybinds.__index = keybinds
colorpickers.__index = colorpickers
configloaders.__index = configloaders
watermarks.__index = watermarks
loaders.__index = loaders
-- // functions
utility.new = function(instance,properties)
-- // instance
local ins = Instance.new(instance)
-- // properties setting
for property,value in pairs(properties) do
ins[property] = value
end
-- // return
return ins
end
--
utility.dragify = function(ins,touse)
local dragging
local dragInput
local dragStart
local startPos
--
local function update(input)
local delta = input.Position - dragStart
touse:TweenPosition(UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.1,true)
end
--
ins.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = touse.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
--
ins.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
--
uis.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
end
--
utility.round = function(n,d)
return tonumber(string.format("%."..(d or 0).."f",n))
end
--
utility.zigzag = function(X)
return math.acos(math.cos(X*math.pi))/math.pi
end
--
utility.capatalize = function(s)
local l = ""
for v in s:gmatch('%u') do
l = l..v
end
return l
end
--
utility.splitenum = function(enum)
local s = tostring(enum):split(".")
return s[#s]
end
--
utility.from_hex = function(h)
local r,g,b = string.match(h,"^#?(%w%w)(%w%w)(%w%w)$")
return Color3.fromRGB(tonumber(r,16), tonumber(g,16), tonumber(b,16))
end
--
utility.to_hex = function(c)
return string.format("#%02X%02X%02X",c.R *255,c.G *255,c.B *255)
end
--
utility.removespaces = function(s)
return s:gsub(" ","")
end
-- // main
function library:new(props)
-- // properties
local textsize = props.textsize or props.TextSize or props.textSize or props.Textsize or 12
local font = props.font or props.Font or "RobotoMono"
local name = props.name or props.Name or props.UiName or props.Uiname or props.uiName or props.username or props.Username or props.UserName or props.userName or "new ui"
local color = props.color or props.Color or props.mainColor or props.maincolor or props.MainColor or props.Maincolor or props.Accent or props.accent or Color3.fromRGB(225, 58, 81)
-- // variables
local window = {}
-- // main
local screen = utility.new(
"ScreenGui",
{
Name = tostring(math.random(0,999999))..tostring(math.random(0,999999)),
DisplayOrder = 9999,
ResetOnSpawn = false,
ZIndexBehavior = "Global",
Parent = cre
}
)
--
if (check_exploit == "Synapse" and syn.request) then
syn.protect_gui(screen)
end
-- 1
local outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = color,
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(0,500,0,606),
Position = UDim2.new(0.5,0,0.5,0),
Parent = screen
}
)
-- 2
local outline2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(1,-4,1,-4),
Position = UDim2.new(0.5,0,0.5,0),
Parent = outline
}
)
-- 3
local indent = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0.5,0),
Parent = outline2
}
)
-- 4
local main = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,1),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,-10,1,-25),
Position = UDim2.new(0.5,0,1,-5),
Parent = outline2
}
)
--
local title = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0.5,0,0,0),
Parent = outline2
}
)
-- 5
local outline3 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0.5,0),
Parent = main
}
)
--
local titletext = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextXAlignment = "Left",
TextSize = textsize,
TextStrokeTransparency = 0,
Parent = title
}
)
-- 6
local holder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundTransparency = 1,
Size = UDim2.new(1,-6,1,-6),
Position = UDim2.new(0.5,0,0.5,0),
Parent = main
}
)
-- 7
local holder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundTransparency = 1,
Size = UDim2.new(1,-6,1,-6),
Position = UDim2.new(0.5,0,0.5,0),
Parent = main
}
)
-- 8
local tabs = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,1),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,-20),
Position = UDim2.new(0.5,0,1,0),
Parent = holder
}
)
--
local tabsbuttons = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,21),
Position = UDim2.new(0.5,0,0,0),
ZIndex = 2,
Parent = holder
}
)
-- 9
local outline4 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = tabs
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Horizontal",
Padding = UDim.new(0,2),
Parent = tabsbuttons
}
)
--
utility.dragify(title,outline)
-- // window tbl
window = {
["screen"] = screen,
["holder"] = holder,
["labels"] = {},
["tabs"] = outline4,
["tabsbuttons"] = tabsbuttons,
["outline"] = outline,
["pages"] = {},
["pointers"] = {},
["dropdowns"] = {},
["multiboxes"] = {},
["buttonboxs"] = {},
["colorpickers"] = {},
["x"] = true,
["y"] = true,
["key"] = Enum.KeyCode.RightShift,
["textsize"] = textsize,
["font"] = font,
["theme"] = {
["accent"] = color
},
["themeitems"] = {
["accent"] = {
["BackgroundColor3"] = {},
["BorderColor3"] = {},
["TextColor3"] = {}
}
}
}
--
table.insert(window.themeitems["accent"]["BackgroundColor3"],outline)
--
local toggled = true
local cooldown = false
local saved = UDim2.new(0,0,0,0)
--
uis.InputBegan:Connect(function(Input)
if Input.UserInputType == Enum.UserInputType.Keyboard then
if Input.KeyCode == window.key then
if cooldown == false then
if toggled then
cooldown = true
toggled = not toggled
saved = outline.Position
local xx,yy = 0,0
local xxx,yyy = 0,0
--
if (outline.AbsolutePosition.X+(outline.AbsoluteSize.X/2)) < (cam.ViewportSize.X/2) then
xx = -3
else
xx = 3
end
--
if window.y then
if (outline.AbsolutePosition.Y+(outline.AbsoluteSize.Y/2)) < (cam.ViewportSize.Y/2) then
yy = -3
else
yy = 3
end
else
yy = saved.Y.Scale
yyy = saved.Y.Offset
end
--
if window.x == false and window.y == false then
screen.Enabled = false
else
ts:Create(outline, TweenInfo.new(0.5,Enum.EasingStyle.Quad,Enum.EasingDirection.In), {Position = UDim2.new(xx,xxx,yy,yyy)}):Play()
end
wait(0.5)
cooldown = false
else
cooldown = true
toggled = not toggled
if window.x == false and window.y == false then
screen.Enabled = true
else
ts:Create(outline, TweenInfo.new(0.5,Enum.EasingStyle.Quad,Enum.EasingDirection.Out), {Position = saved}):Play()
end
wait(0.5)
cooldown = false
end
end
end
end
end)
--
window.labels[#window.labels+1] = titletext
-- // metatable indexing + return
setmetatable(window, library)
return window
end
--
function library:watermark()
local watermark = {}
--
local outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = self.theme.accent,
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(0,300,0,26),
Position = UDim2.new(1,-10,0,10),
ZIndex = 9900,
Visible = false,
Parent = self.screen
}
)
--
table.insert(self.themeitems["accent"]["BackgroundColor3"],outline)
--
local outline2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(1,-4,1,-4),
Position = UDim2.new(0.5,0,0.5,0),
ZIndex = 9901,
Parent = outline
}
)
--
local indent = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0.5,0),
ZIndex = 9902,
Parent = outline2
}
)
--
local title = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.font,
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextXAlignment = "Left",
TextSize = self.textsize,
TextStrokeTransparency = 0,
ZIndex = 9903,
Parent = indent
}
)
--
local con
con = title:GetPropertyChangedSignal("TextBounds"):Connect(function()
outline.Size = UDim2.new(0,title.TextBounds.X+20,0,26)
end)
--
watermark = {
["outline"] = outline,
["outline2"] = outline2,
["indent"] = indent,
["title"] = title,
["connection"] = con
}
--
self.labels[#self.labels+1] = title
--
setmetatable(watermark,watermarks)
return watermark
end
--
function watermarks:update(content)
local content = content or {}
local watermark = self
--
local text = ""
--
for i,v in pairs(content) do
text = text..i..": "..v.." "
end
--
text = text:sub(0, -3)
--
watermark.title.Text = text
end
--
function watermarks:updateside(side)
side = utility.removespaces(tostring(side):lower())
--
local sides = {
topright = {
AnchorPoint = Vector2.new(1,0),
Position = UDim2.new(1,-10,0,10)
},
topleft = {
AnchorPoint = Vector2.new(0,0),
Position = UDim2.new(0,10,0,10)
},
bottomright = {
AnchorPoint = Vector2.new(1,1),
Position = UDim2.new(1,-10,1,-10)
},
bottomleft = {
AnchorPoint = Vector2.new(0,1),
Position = UDim2.new(0,10,1,-10)
}
}
--
if sides[side] then
self.outline.AnchorPoint = sides[side].AnchorPoint
self.outline.Position = sides[side].Position
end
end
--
function library:loader(props)
local name = props.name or props.Name or props.LoaderName or props.Loadername or props.loaderName or props.loadername or "Loader"
local scriptname = props.scriptname or props.Scriptname or props.ScriptName or props.scriptName or "Universal"
local closed = props.close or props.Close or props.closecallback or props.Closecallback or props.CloseCallback or props.closeCallback or function()end
local logedin = props.login or props.Login or props.logincallback or props.Logincallback or props.LoginCallback or props.loginCallback or function()end
local loader = {}
--
local screen = utility.new(
"ScreenGui",
{
Name = tostring(math.random(0,999999))..tostring(math.random(0,999999)),
DisplayOrder = 9999,
ResetOnSpawn = false,
ZIndexBehavior = "Global",
Parent = cre
}
)
if (check_exploit == "Synapse" and syn.request) then
syn.protect_gui(screen)
end
--
local outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(168, 52, 235),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(0,300,0,90),
Position = UDim2.new(0.5,0,0.5,0),
ZIndex = 9900,
Visible = false,
Parent = screen
}
)
--
local outline2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(0, 0, 0),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderSizePixel = 1,
Size = UDim2.new(1,-4,1,-4),
Position = UDim2.new(0.5,0,0.5,0),
ZIndex = 9901,
Parent = outline
}
)
--
local indent = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0.5,0),
ZIndex = 9902,
Parent = outline2
}
)
--
local title = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,0,20),
Position = UDim2.new(0.5,0,0,0),
Font = "RobotoMono",
Text = name,
TextColor3 = Color3.fromRGB(168, 52, 235),
TextXAlignment = "Center",
TextSize = 12,
TextStrokeTransparency = 0,
ZIndex = 9903,
Parent = indent
}
)
--
local scripttitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,0,20),
Position = UDim2.new(0.5,0,0,20),
Font = "RobotoMono",
Text = "Script: "..scriptname,
TextColor3 = Color3.fromRGB(255, 255, 255),
TextXAlignment = "Center",
TextSize = 12,
TextStrokeTransparency = 0,
ZIndex = 9903,
Parent = indent
}
)
--
local makebutton = function(name,parent)
local button_holder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
ZIndex = 9904,
Parent = parent
}
)
--
local button_outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 9905,
Parent = button_holder
}
)
--
local button_outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 9906,
Parent = button_outline
}
)
--
local button_color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,0),
Position = UDim2.new(0,0,0,0),
ZIndex = 9907,
Parent = button_outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = button_color
}
)
--
local button_button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = 12,
TextStrokeTransparency = 0,
Font = "RobotoMono",
ZIndex = 9908,
Parent = button_holder
}
)
--
return {button_holder,button_outline,button_button}
end
--
local close = makebutton("close",indent)
local login = makebutton("login",indent)
--
close[1].AnchorPoint = Vector2.new(0.5,0)
close[1].Size = UDim2.new(0.5,0,0,20)
close[1].Position = UDim2.new(0.5,0,0,40)
--
login[1].AnchorPoint = Vector2.new(0.5,0)
login[1].Size = UDim2.new(0.5,0,0,20)
login[1].Position = UDim2.new(0.5,0,0,62)
--
close[3].MouseButton1Down:Connect(function()
close[2].BorderColor3 = Color3.fromRGB(168, 52, 235)
outline:TweenPosition(UDim2.new(-1.5,0,0.5,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.75,true)
closed()
wait(0.05)
close[2].BorderColor3 = Color3.fromRGB(12,12,12)
wait(0.7)
screen:Remove()
end)
--
login[3].MouseButton1Down:Connect(function()
login[2].BorderColor3 = Color3.fromRGB(168, 52, 235)
outline:TweenPosition(UDim2.new(1.5,0,0.5,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.75,true)
logedin()
wait(0.05)
login[2].BorderColor3 = Color3.fromRGB(12,12,12)
wait(0.7)
screen:Remove()
end)
--
loader = {
["outline"] = outline,
["outline2"] = outline2,
["indent"] = indent,
["title"] = title
}
--
setmetatable(loader,loaders)
return loader
end
--
function loaders:toggle()
self.outline.Visible = true
end
--
function watermarks:toggle(bool)
local watermark = self
--
watermark.outline.Visible = bool
end
--
function library:saveconfig()
local cfg = {}
--
for i,v in pairs(self.pointers) do
cfg[i] = {}
for c,d in pairs(v) do
cfg[i][c] = {}
for x,z in pairs(d) do
if typeof(z.current) == "Color3" then
cfg[i][c][x] = {z.current.R,z.current.G,z.current.B}
else
cfg[i][c][x] = z.current
end
end
end
end
--
return hs:JSONEncode(cfg)
end
--
function library:loadconfig(cfg)
local cfg = hs:JSONDecode(readfile(cfg))
for i,v in pairs(cfg) do
for c,d in pairs(v) do
for x,z in pairs(d) do
if z ~= nil then
if self.pointers[i] ~= nil and self.pointers[i][c] ~= nil and self.pointers[i][c][x] ~= nil then
self.pointers[i][c][x]:set(z)
end
end
end
end
end
end
--
function library:settheme(theme,color)
local window = self
--
if window.theme[theme] then
window.theme[theme] = color
end
--
if window.themeitems[theme] then
for i,v in pairs(window.themeitems[theme]) do
for z,x in pairs(v) do
x[i] = color
end
end
end
end
--
function library:setkey(key)
if typeof(key) == "EnumItem" then
local window = self
window.key = key
end
end
--
function library:settoggle(side,bool)
if side == "x" then
self.x = bool
else
self.y = bool
end
end
--
function library:setfont(font)
if font ~= nil then
local window = self
for i,v in pairs(window.labels) do
if v ~= nil then
v.Font = font
end
end
end
end
--
function library:settextsize(size)
if size ~= nil then
local window = self
for i,v in pairs(window.labels) do
if v ~= nil then
v.TextSize = size
end
end
end
end
--
function library:page(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
-- // variables
local page = {}
-- // main
local tabbutton = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,75,1,0),
Parent = self.tabsbuttons
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = tabbutton
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = tabbutton
}
)
--
local r_line = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 0,
Size = UDim2.new(0,1,0,1),
Position = UDim2.new(1,0,1,1),
ZIndex = 2,
Parent = outline
}
)
--
local l_line = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 0,
Size = UDim2.new(0,1,0,1),
Position = UDim2.new(0,0,1,1),
ZIndex = 2,
Parent = outline
}
)
--
local line = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,2),
Position = UDim2.new(0,0,1,0),
ZIndex = 2,
Parent = outline
}
)
--
local label = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,0),
Font = self.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.textsize,
TextStrokeTransparency = 0,
Parent = outline
}
)
--
local pageholder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundTransparency = 1,
Size = UDim2.new(1,-20,1,-20),
Position = UDim2.new(0.5,0,0.5,0),
Visible = false,
Parent = self.tabs
}
)
--
local left = utility.new(
"ScrollingFrame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(0.5,-5,1,0),
Position = UDim2.new(0,0,0,0),
AutomaticCanvasSize = "Y",
CanvasSize = UDim2.new(0,0,0,0),
ScrollBarImageTransparency = 1,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 0,
ClipsDescendants = false,
VerticalScrollBarInset = "None",
VerticalScrollBarPosition = "Right",
Parent = pageholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Padding = UDim.new(0,10),
Parent = left
}
)
--
local right = utility.new(
"ScrollingFrame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(0.5,-5,1,0),
Position = UDim2.new(1,0,0,0),
AutomaticCanvasSize = "Y",
CanvasSize = UDim2.new(0,0,0,0),
ScrollBarImageTransparency = 1,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 0,
ClipsDescendants = false,
VerticalScrollBarInset = "None",
VerticalScrollBarPosition = "Right",
Parent = pageholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Padding = UDim.new(0,10),
Parent = right
}
)
-- // page tbl
page = {
["library"] = self,
["outline"] = outline,
["r_line"] = r_line,
["l_line"] = l_line,
["line"] = line,
["page"] = pageholder,
["left"] = left,
["right"] = right,
["open"] = false,
["pointers"] = {}
}
--
table.insert(self.pages,page)
--
button.MouseButton1Down:Connect(function()
if page.open == false then
for i,v in pairs(self.pages) do
if v ~= page then
if v.open then
v.page.Visible = false
v.open = false
v.outline.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
v.line.Size = UDim2.new(1,0,0,2)
v.line.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
end
end
end
--
self:closewindows()
--
page.page.Visible = true
page.open = true
page.outline.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
page.line.Size = UDim2.new(1,0,0,3)
page.line.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
self.pointers[tostring(pointer)] = page.pointers
end
--
self.labels[#self.labels+1] = label
-- // metatable indexing + return
setmetatable(page, pages)
return page
end
--
function pages:openpage()
local page = self
--
if page.open == false then
for i,v in pairs(page.library.pages) do
if v ~= page then
if v.open then
v.page.Visible = false
v.open = false
v.outline.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
v.line.Size = UDim2.new(1,0,0,2)
v.line.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
end
end
end
--
page.page.Visible = true
page.open = true
page.outline.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
page.line.Size = UDim2.new(1,0,0,3)
page.line.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
end
end
--
function pages:section(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local side = props.side or props.Side or props.sectionside or props.Sectionside or props.SectionSide or props.sectionSide or "left"
local size = props.size or props.Size or props.yaxis or props.yAxis or props.YAxis or props.Yaxis or 200
side = side:lower()
-- // variables
local section = {}
-- // main
local sectionholder = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,size),
Parent = self[side]
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = sectionholder
}
)
--
local color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = self.library.theme.accent,
BorderSizePixel = 0,
Size = UDim2.new(1,-2,0,1),
Position = UDim2.new(0.5,0,0,0),
Parent = outline
}
)
--
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],color)
--
local content = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,-12,1,-25),
Position = UDim2.new(0.5,0,1,-5),
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,-5,0,20),
Position = UDim2.new(0,5,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = outline
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Padding = UDim.new(0,5),
Parent = content
}
)
-- // section tbl
section = {
["library"] = self.library,
["sectionholder"] = sectionholder,
["color"] = color,
["content"] = content,
["pointers"] = {}
}
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = section.pointers
end
end
--
self.library.labels[#self.library.labels+1] = title
-- // metatable indexing + return
setmetatable(section, sections)
return section
end
--
function pages:multisection(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local side = props.side or props.Side or props.sectionside or props.Sectionside or props.SectionSide or props.sectionSide or "left"
local size = props.size or props.Size or props.yaxis or props.yAxis or props.YAxis or props.Yaxis or 200
side = side:lower()
-- // variables
local multisection = {}
-- // main
local sectionholder = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,size),
Parent = self[side]
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = sectionholder
}
)
--
local color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = self.library.theme.accent,
BorderSizePixel = 0,
Size = UDim2.new(1,-2,0,1),
Position = UDim2.new(0.5,0,0,0),
Parent = outline
}
)
--
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],color)
--
local tabsholder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,-15),
Position = UDim2.new(0,0,1,0),
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,-5,0,20),
Position = UDim2.new(0,5,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = outline
}
)
--
local buttons = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,-6,0,20),
Position = UDim2.new(0.5,0,0,5),
Parent = tabsholder
}
)
--
local tabs = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,1),
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,-6,1,-27),
Position = UDim2.new(0.5,0,1,-3),
Parent = tabsholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Horizontal",
Padding = UDim.new(0,2),
Parent = buttons
}
)
--
local tabs_outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = tabs
}
)
-- // section tbl
multisection = {
["library"] = self.library,
["sectionholder"] = sectionholder,
["color"] = color,
["tabsholder"] = tabsholder,
["mssections"] = {},
["buttons"] = buttons,
["tabs"] = tabs,
["tabs_outline"] = tabs_outline,
["pointers"] = {}
}
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = multisection.pointers
end
end
--
self.library.labels[#self.library.labels+1] = title
-- // metatable indexing + return
setmetatable(multisection,multisections)
return multisection
end
--
function multisections:section(props)
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
-- // variables
local mssection = {}
-- // main
local tabbutton = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,60,0,20),
Parent = self.buttons
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = tabbutton
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = tabbutton
}
)
--
local r_line = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 0,
Size = UDim2.new(0,1,0,1),
Position = UDim2.new(1,0,1,1),
ZIndex = 2,
Parent = outline
}
)
--
local l_line = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderSizePixel = 0,
Size = UDim2.new(0,1,0,1),
Position = UDim2.new(0,0,1,1),
ZIndex = 2,
Parent = outline
}
)
--
local line = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(20, 20, 20),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,2),
Position = UDim2.new(0,0,1,0),
ZIndex = 2,
Parent = outline
}
)
--
local label = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Parent = outline
}
)
--
local content = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,1),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,-6,1,-27),
Position = UDim2.new(0.5,0,1,-3),
Parent = self.tabs_outline
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Padding = UDim.new(0,5),
Parent = content
}
)
-- // mssection tbl
mssection = {
["library"] = self.library,
["outline"] = outline,
["r_line"] = r_line,
["l_line"] = l_line,
["line"] = line,
["content"] = content,
["open"] = false,
["pointers"] = {}
}
--
table.insert(self.mssections,mssection)
--
button.MouseButton1Down:Connect(function()
if mssection.open == false then
for i,v in pairs(self.mssections) do
if v ~= mssection then
if v.open then
v.page.Visible = false
v.open = false
v.outline.BackgroundColor3 = Color3.fromRGB(31, 31 ,31)
v.line.Size = UDim2.new(1,0,0,2)
v.line.BackgroundColor3 = Color3.fromRGB(31, 31 ,31)
end
end
end
--
mssection.library:closewindows()
--
mssection.content.Visible = true
mssection.open = true
mssection.outline.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
mssection.line.Size = UDim2.new(1,0,0,3)
mssection.line.BackgroundColor3 = Color3.fromRGB(24, 24, 24)
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = mssection.pointers
end
end
--
self.library.labels[#self.library.labels+1] = label
-- // metatable indexing + return
setmetatable(mssection,mssections)
return mssection
end
--
function sections:toggle(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or props.toggle or props.Toggle or props.toggled or props.Toggled or false
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
-- // variables
local toggle = {}
-- // main
local toggleholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,15,0,15),
Parent = toggleholder
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = toggleholder
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,-20,1,0),
Position = UDim2.new(0,20,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = toggleholder
}
)
--
local col = Color3.fromRGB(20, 20, 20)
if def then
col = self.library.theme.accent
end
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = col,
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
if def then
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],color)
end
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
-- // toggle tbl
toggle = {
["library"] = self.library,
["toggleholder"] = toggleholder,
["title"] = title,
["color"] = color,
["callback"] = callback,
["current"] = def
}
--
button.MouseButton1Down:Connect(function()
if toggle.current then
toggle.callback(false)
toggle.color.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
local find = table.find(self.library.themeitems["accent"]["BackgroundColor3"],toggle.color)
if find then
table.remove(self.library.themeitems["accent"]["BackgroundColor3"],find)
end
toggle.current = false
else
toggle.callback(true)
toggle.color.BackgroundColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],toggle.color)
toggle.current = true
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = toggle
end
end
--
self.library.labels[#self.library.labels+1] = title
-- // metatable indexing + return
setmetatable(toggle, toggles)
return toggle
end
--
function toggles:set(bool)
if bool ~= nil then
local toggle = self
toggle.callback(bool)
toggle.current = bool
if bool then
toggle.color.BackgroundColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],toggle.color)
else
toggle.color.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
local find = table.find(self.library.themeitems["accent"]["BackgroundColor3"],toggle.color)
if find then
table.remove(self.library.themeitems["accent"]["BackgroundColor3"],find)
end
end
end
end
--
function sections:button(props)
-- // properties
local name = props.name or props.Name or "new button"
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
-- // variables
local button = {}
-- // main
local buttonholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,20),
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = buttonholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Parent = outline2
}
)
--
local gradient = utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local buttonpress = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
Parent = buttonholder
}
)
--
buttonpress.MouseButton1Down:Connect(function()
callback()
outline.BorderColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["BorderColor3"],outline)
wait(0.05)
outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
end)
-- // button tbl
button = {
["library"] = self.library
}
--
self.library.labels[#self.library.labels+1] = buttonpress
-- // metatable indexing + return
setmetatable(button, buttons)
return button
end
--
function sections:slider(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or 0
local max = props.max or props.Max or props.maximum or props.Maximum or 100
local min = props.min or props.Min or props.minimum or props.Minimum or 0
local rounding = props.rounding or props.Rounding or props.round or props.Round or props.decimals or props.Decimals or false
local ticking = props.tick or props.Tick or props.ticking or props.Ticking or false
local measurement = props.measurement or props.Measurement or props.digit or props.Digit or props.calc or props.Calc or ""
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
def = math.clamp(def,min,max)
-- // variables
local slider = {}
-- // main
local sliderholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,25),
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,12),
Position = UDim2.new(0,0,0,15),
Parent = sliderholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
--
local value = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,2),
Position = UDim2.new(0,0,0.5,0),
Font = self.library.font,
Text = def..measurement.."/"..max..measurement,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
ZIndex = 3,
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local slide = utility.new(
"Frame",
{
BackgroundColor3 = self.library.theme.accent,
BorderSizePixel = 0,
Size = UDim2.new((1 / color.AbsoluteSize.X) * (color.AbsoluteSize.X / (max - min) * (def - min)),0,1,0),
ZIndex = 2,
Parent = outline
}
)
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],slide)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = slide
}
)
--
local sliderbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = sliderholder
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = sliderholder
}
)
-- // slider tbl
slider = {
["library"] = self.library,
["outline"] = outline,
["sliderbutton"] = sliderbutton,
["title"] = title,
["value"] = value,
["slide"] = slide,
["color"] = color,
["max"] = max,
["min"] = min,
["current"] = def,
["measurement"] = measurement,
["tick"] = ticking,
["rounding"] = rounding,
["callback"] = callback
}
--
local function slide()
local size = math.clamp(plr:GetMouse().X - slider.color.AbsolutePosition.X ,0 ,slider.color.AbsoluteSize.X)
local result = (slider.max - slider.min) / slider.color.AbsoluteSize.X * size + slider.min
if slider.rounding then
local newres = math.floor(result)
value.Text = newres..slider.measurement.."/"..slider.max..slider.measurement
slider.current = newres
slider.callback(newres)
if slider.tick then
slider.slide:TweenSize(UDim2.new((1 / slider.color.AbsoluteSize.X) * (slider.color.AbsoluteSize.X / (slider.max - slider.min) * (newres - slider.min)) ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
else
slider.slide:TweenSize(UDim2.new((1 / slider.color.AbsoluteSize.X) * size ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
end
else
local newres = utility.round(result ,2)
value.Text = newres..slider.measurement.."/"..slider.max..slider.measurement
slider.current = newres
slider.callback(newres)
if slider.tick then
slider.slide:TweenSize(UDim2.new((1 / slider.color.AbsoluteSize.X) * (slider.color.AbsoluteSize.X / (slider.max - slider.min) * (newres - slider.min)) ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
else
slider.slide:TweenSize(UDim2.new((1 / slider.color.AbsoluteSize.X) * size ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
end
end
end
--
sliderbutton.MouseButton1Down:Connect(function()
slider.holding = true
slide()
table.insert(self.library.themeitems["accent"]["BorderColor3"],outline)
outline.BorderColor3 = self.library.theme.accent
end)
--
uis.InputChanged:Connect(function()
if slider.holding then
slide()
end
end)
--
uis.InputEnded:Connect(function(Input)
if Input.UserInputType.Name == 'MouseButton1' and slider.holding then
slider.holding = false
outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = slider
end
end
--
self.library.labels[#self.library.labels+1] = title
self.library.labels[#self.library.labels+1] = value
-- // metatable indexing + return
setmetatable(slider, sliders)
return slider
end
--
function sliders:set(value)
local size = math.clamp((self.color.AbsoluteSize.X / (self.max - self.min) * (value - self.min)) ,0 ,self.color.AbsoluteSize.X)
local result = value
if self.rounding then
local newres = math.floor(result)
self.value.Text = newres..self.measurement.."/"..self.max..self.measurement
self.current = newres
self.callback(newres)
if self.tick then
self.slide:TweenSize(UDim2.new((1 / self.color.AbsoluteSize.X) * (self.color.AbsoluteSize.X / (self.max - self.min) * (newres - self.min)) ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
else
self.slide:TweenSize(UDim2.new((1 / self.color.AbsoluteSize.X) * size ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
end
else
local newres = utility.round(result ,2)
self.value.Text = newres..self.measurement.."/"..self.max..self.measurement
self.current = newres
self.callback(newres)
if self.tick then
self.slide:TweenSize(UDim2.new((1 / self.color.AbsoluteSize.X) * (self.color.AbsoluteSize.X / (self.max - self.min) * (newres - self.min)) ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
else
self.slide:TweenSize(UDim2.new((1 / self.color.AbsoluteSize.X) * size ,0 ,1 ,0) ,Enum.EasingDirection.Out ,Enum.EasingStyle.Quad ,0.15 ,true)
end
end
end
--
function library:closewindows(ignore)
local window = self
--
for i,v in pairs(window.dropdowns) do
if v ~= ignore then
if v.open then
v.optionsholder.Visible = false
v.indicator.Text = "-"
v.open = false
end
end
end
--
for i,v in pairs(window.multiboxes) do
if v ~= ignore then
if v.open then
v.optionsholder.Visible = false
v.indicator.Text = "-"
v.open = false
end
end
end
--
for i,v in pairs(window.buttonboxs) do
if v ~= ignore then
if v.open then
v.optionsholder.Visible = false
v.indicator.Text = "-"
v.open = false
end
end
end
--
for i,v in pairs(window.colorpickers) do
if v ~= ignore then
if v.open then
v.cpholder.Visible = false
v.open = false
end
end
end
end
--
function sections:dropdown(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or ""
local max = props.max or props.Max or props.maximum or props.Maximum or 4
local options = props.options or props.Options or props.Settings or props.settings or {}
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
-- // variables
local dropdown = {}
-- // main
local dropdownholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,35),
ZIndex = 2,
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,15),
Parent = dropdownholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local value = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-20,1,0),
Position = UDim2.new(0,5,0,0),
Font = self.library.font,
Text = def,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ClipsDescendants = true,
Parent = outline
}
)
--
local indicator = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = "+",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Right",
ClipsDescendants = true,
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = dropdownholder
}
)
--
local dropdownbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = dropdownholder
}
)
--
local optionsholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,34),
Visible = false,
Parent = dropdownholder
}
)
--
local size = #options
--
size = math.clamp(size,1,max)
--
local optionsoutline = utility.new(
"ScrollingFrame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,size,2),
Position = UDim2.new(0,0,0,0),
ClipsDescendants = true,
CanvasSize = UDim2.new(0,0,0,18*#options),
ScrollBarImageTransparency = 0.25,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 5,
VerticalScrollBarInset = "ScrollBar",
VerticalScrollBarPosition = "Right",
ZIndex = 5,
Parent = optionsholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Parent = optionsoutline
}
)
-- // dropdown tbl
dropdown = {
["library"] = self.library,
["optionsholder"] = optionsholder,
["indicator"] = indicator,
["options"] = options,
["title"] = title,
["value"] = value,
["open"] = false,
["titles"] = {},
["current"] = def,
["callback"] = callback
}
--
table.insert(dropdown.library.dropdowns,dropdown)
--
for i,v in pairs(options) do
local ddoptionbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,18),
Text = "",
ZIndex = 6,
Parent = optionsoutline
}
)
--
local ddoptiontitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = v,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ClipsDescendants = true,
ZIndex = 6,
Parent = ddoptionbutton
}
)
--
self.library.labels[#self.library.labels+1] = ddoptiontitle
--
table.insert(dropdown.titles,ddoptiontitle)
--
if v == dropdown.current then ddoptiontitle.TextColor3 = self.library.theme.accent end
--
ddoptionbutton.MouseButton1Down:Connect(function()
optionsholder.Visible = false
dropdown.open = false
indicator.Text = "+"
for z,x in pairs(dropdown.titles) do
if x.TextColor3 == self.library.theme.accent then
x.TextColor3 = Color3.fromRGB(255,255,255)
end
end
dropdown.current = v
dropdown.value.Text = v
ddoptiontitle.TextColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["TextColor3"],ddoptiontitle)
dropdown.callback(v)
end)
end
--
dropdownbutton.MouseButton1Down:Connect(function()
dropdown.library:closewindows(dropdown)
for i,v in pairs(dropdown.titles) do
if v.Text == dropdown.current then
v.TextColor3 = dropdown.library.theme.accent
else
v.TextColor3 = Color3.fromRGB(255,255,255)
end
end
optionsholder.Visible = not dropdown.open
dropdown.open = not dropdown.open
if dropdown.open then
indicator.Text = "-"
else
indicator.Text = "+"
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = dropdown
end
end
--
self.library.labels[#self.library.labels+1] = title
self.library.labels[#self.library.labels+1] = value
-- // metatable indexing + return
setmetatable(dropdown, dropdowns)
return dropdown
end
--
function sections:buttonbox(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or ""
local max = props.max or props.Max or props.maximum or props.Maximum or 4
local options = props.options or props.Options or props.Settings or props.settings or {}
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
-- // variables
local buttonbox = {}
-- // main
local buttonboxholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,35),
ZIndex = 2,
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,15),
Parent = buttonboxholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local indicator = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = "+",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Right",
ClipsDescendants = true,
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = buttonboxholder
}
)
--
local buttonboxbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = buttonboxholder
}
)
--
local optionsholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,34),
Visible = false,
Parent = buttonboxholder
}
)
--
local size = #options
--
size = math.clamp(size,1,max)
--
local optionsoutline = utility.new(
"ScrollingFrame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,size,2),
Position = UDim2.new(0,0,0,0),
ClipsDescendants = true,
CanvasSize = UDim2.new(0,0,0,18*#options),
ScrollBarImageTransparency = 0.25,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 5,
VerticalScrollBarInset = "ScrollBar",
VerticalScrollBarPosition = "Right",
ZIndex = 5,
Parent = optionsholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Parent = optionsoutline
}
)
-- // buttonbox tbl
buttonbox = {
["library"] = self.library,
["optionsholder"] = optionsholder,
["indicator"] = indicator,
["options"] = options,
["title"] = title,
["open"] = false,
["titles"] = {},
["current"] = def,
["callback"] = callback
}
--
table.insert(buttonbox.library.buttonboxs,buttonbox)
--
for i,v in pairs(options) do
local bboptionbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,18),
Text = "",
ZIndex = 6,
Parent = optionsoutline
}
)
--
local bboptiontitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = v,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ClipsDescendants = true,
ZIndex = 6,
Parent = bboptionbutton
}
)
--
self.library.labels[#self.library.labels+1] = bboptiontitle
--
table.insert(buttonbox.titles,bboptiontitle)
--
bboptionbutton.MouseButton1Down:Connect(function()
optionsholder.Visible = false
buttonbox.open = false
indicator.Text = "+"
buttonbox.current = v
buttonbox.callback(v)
end)
end
--
buttonboxbutton.MouseButton1Down:Connect(function()
buttonbox.library:closewindows(buttonbox)
optionsholder.Visible = not buttonbox.open
buttonbox.open = not buttonbox.open
if buttonbox.open then
indicator.Text = "-"
else
indicator.Text = "+"
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = buttonbox
end
end
--
self.library.labels[#self.library.labels+1] = title
-- // metatable indexing + return
setmetatable(buttonbox, buttonboxs)
return buttonbox
end
--
function dropdowns:set(value)
if value ~= nil then
local dropdown = self
if table.find(dropdown.options,value) then
self.current = tostring(value)
self.value.Text = tostring(value)
self.callback(tostring(value))
for z,x in pairs(dropdown.titles) do
if x.Text == value then
x.TextColor3 = dropdown.library.theme.accent
else
x.TextColor3 = Color3.fromRGB(255,255,255)
end
end
end
end
end
--
function sections:multibox(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or {}
local max = props.max or props.Max or props.maximum or props.Maximum or 4
local options = props.options or props.Options or props.Settings or props.settings or {}
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
local defstr = ""
if #def > 1 then
for i,v in pairs(def) do
if i == #def then
defstr = defstr..v
else
defstr = defstr..v..", "
end
end
else
for i,v in pairs(def) do
defstr = defstr..v
end
end
-- // variables
local multibox = {}
-- // main
local multiboxholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,35),
ZIndex = 2,
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,15),
Parent = multiboxholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local value = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-20,1,0),
Position = UDim2.new(0,5,0,0),
Font = self.library.font,
Text = defstr,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ClipsDescendants = true,
Parent = outline
}
)
--
local indicator = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = "+",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Right",
ClipsDescendants = true,
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = multiboxholder
}
)
--
local dropdownbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = multiboxholder
}
)
--
local optionsholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,34),
Visible = false,
Parent = multiboxholder
}
)
--
local size = #options
--
size = math.clamp(size,1,max)
--
local optionsoutline = utility.new(
"ScrollingFrame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,size,2),
Position = UDim2.new(0,0,0,0),
ClipsDescendants = true,
CanvasSize = UDim2.new(0,0,0,18*#options),
ScrollBarImageTransparency = 0.25,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 5,
VerticalScrollBarInset = "ScrollBar",
VerticalScrollBarPosition = "Right",
ZIndex = 5,
Parent = optionsholder
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Parent = optionsoutline
}
)
-- // dropdown tbl
multibox = {
["library"] = self.library,
["indicator"] = indicator,
["optionsholder"] = optionsholder,
["options"] = options,
["value"] = value,
["open"] = false,
["titles"] = {},
["current"] = def,
["callback"] = callback
}
--
table.insert(multibox.library.multiboxes,multibox)
--
for i,v in pairs(options) do
local ddoptionbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,18),
Text = "",
ZIndex = 6,
Parent = optionsoutline
}
)
--
local ddoptiontitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = v,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ClipsDescendants = true,
ZIndex = 6,
Parent = ddoptionbutton
}
)
--
self.library.labels[#self.library.labels+1] = ddoptiontitle
--
table.insert(multibox.titles,ddoptiontitle)
--
for c,b in pairs(def) do if v == b then ddoptiontitle.TextColor3 = self.library.theme.accent end end
--
ddoptionbutton.MouseButton1Down:Connect(function()
local find = table.find(multibox.current,v)
if find == nil then
table.insert(multibox.current,v)
local str = ""
if #multibox.current > 1 then
for i,v in pairs(multibox.current) do
if i == #multibox.current then
str = str..v
else
str = str..v..", "
end
end
else
for i,v in pairs(multibox.current) do
str = str..v
end
end
value.Text = str
ddoptiontitle.TextColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["TextColor3"],ddoptiontitle)
multibox.callback(multibox.current)
else
table.remove(multibox.current,find)
local str = ""
if #multibox.current > 1 then
for i,v in pairs(multibox.current) do
if i == #multibox.current then
str = str..v
else
str = str..v..", "
end
end
else
for i,v in pairs(multibox.current) do
str = str..v
end
end
value.Text = str
ddoptiontitle.TextColor3 = Color3.fromRGB(255,255,255)
multibox.callback(multibox.current)
end
end)
end
--
dropdownbutton.MouseButton1Down:Connect(function()
multibox.library:closewindows(multibox)
for i,v in pairs(multibox.titles) do
if v.TextColor3 ~= Color3.fromRGB(255,255,255) then
v.TextColor3 = self.library.theme.accent
end
end
optionsholder.Visible = not multibox.open
multibox.open = not multibox.open
if multibox.open then
indicator.Text = "-"
else
indicator.Text = "+"
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = multibox
end
end
--
self.library.labels[#self.library.labels+1] = value
self.library.labels[#self.library.labels+1] = title
-- // metatable indexing + return
setmetatable(multibox, multiboxs)
return multibox
end
--
function buttonboxs:set(value)
if value ~= nil then
local dropdown = self
if table.find(dropdown.options,value) then
self.current = tostring(value)
self.callback(tostring(value))
end
end
end
--
function multiboxs:set(tbl)
if tbl then
local multibox = self
if typeof(tbl) == "table" then
multibox.current = {}
for i,v in pairs(tbl) do
if table.find(multibox.options,v) then
table.insert(multibox.current,v)
end
end
--
for i,v in pairs(multibox.titles) do
if v.TextColor3 == multibox.library.theme.accent then
v.TextColor3 = Color3.fromRGB(255,255,255)
end
if table.find(tbl,v.Text) then
v.TextColor3 = multibox.library.theme.accent
end
end
--
local str = ""
if #multibox.current > 1 then
for i,v in pairs(multibox.current) do
if i == #multibox.current then
str = str..v
else
str = str..v..", "
end
end
else
for i,v in pairs(multibox.current) do
str = str..v
end
end
--
multibox.value.Text = str
end
end
end
--
function sections:textbox(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or ""
local placeholder = props.placeholder or props.Placeholder or props.placeHolder or props.PlaceHolder or props.placeholdertext or props.PlaceHolderText or props.PlaceHoldertext or props.placeHolderText or props.placeHoldertext or props.Placeholdertext or props.PlaceholderText or props.placeholderText or ""
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
-- // variables
local textbox = {}
-- // main
local textboxholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,35),
ZIndex = 2,
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,20),
Position = UDim2.new(0,0,0,15),
Parent = textboxholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Parent = outline2
}
)
--
local gradient = utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
Parent = textboxholder
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = textboxholder
}
)
--
local tbox = utility.new(
"TextBox",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,0,20),
Position = UDim2.new(0.5,0,0,15),
PlaceholderText = placeholder,
Text = def,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextTruncate = "AtEnd",
Font = self.library.font,
Parent = textboxholder
}
)
-- // textbox tbl
textbox = {
["library"] = self.library,
["tbox"] = tbox,
["current"] = def,
["callback"] = callback
}
--
button.MouseButton1Down:Connect(function()
tbox:CaptureFocus()
end)
--
tbox.Focused:Connect(function()
outline.BorderColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["BorderColor3"],outline)
end)
--
tbox.FocusLost:Connect(function(enterPressed)
textbox.current = tbox.Text
callback(tbox.Text)
outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = textbox
end
end
--
self.library.labels[#self.library.labels+1] = title
self.library.labels[#self.library.labels+1] = tbox
-- // metatable indexing + return
setmetatable(textbox, textboxs)
return textbox
end
--
function textboxs:set(value)
self.tbox.Text = value
self.current = value
self.callback(value)
end
--
function sections:keybind(props)
-- // properties
local name = props.name or props.Name or props.page or props.Page or props.pagename or props.Pagename or props.PageName or props.pageName or "new ui"
local def = props.def or props.Def or props.default or props.Default or nil
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
local allowed = props.allowed or props.Allowed or 1
--
local default = ".."
local typeis = nil
--
if typeof(def) == "EnumItem" then
if def == Enum.UserInputType.MouseButton1 then
if allowed == 1 then
default = "MB1"
typeis = "UserInputType"
end
elseif def == Enum.UserInputType.MouseButton2 then
if allowed == 1 then
default = "MB2"
typeis = "UserInputType"
end
elseif def == Enum.UserInputType.MouseButton3 then
if allowed == 1 then
default = "MB3"
typeis = "UserInputType"
end
else
local capd = utility.capatalize(def.Name)
if #capd > 1 then
default = capd
else
default = def.Name
end
typeis = "KeyCode"
end
end
-- // variables
local keybind = {}
-- // main
local keybindholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,17),
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,40,1,0),
Position = UDim2.new(1,0,0,0),
Parent = keybindholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline
}
)
--
local value = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = default,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Center",
Parent = outline
}
)
--
outline.Size = UDim2.new(0,value.TextBounds.X+20,1,0)
--
local color = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
Parent = keybindholder
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = keybindholder
}
)
-- // keybind tbl
keybind = {
["library"] = self.library,
["down"] = false,
["outline"] = outline,
["value"] = value,
["allowed"] = allowed,
["current"] = {typeis,utility.splitenum(def)},
["pressed"] = false,
["callback"] = callback
}
--
button.MouseButton1Down:Connect(function()
if keybind.down == false then
outline.BorderColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["BorderColor3"],outline)
wait()
keybind.down = true
end
end)
--
button.MouseButton2Down:Connect(function()
keybind.down = false
keybind.current = {nil,nil}
outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
value.Text = ".."
outline.Size = UDim2.new(0,value.TextBounds.X+20,1,0)
end)
--
local function turn(typeis,current)
outline.Size = UDim2.new(0,value.TextBounds.X+20,1,0)
keybind.down = false
keybind.current = {typeis,utility.splitenum(current)}
outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
end
--
uis.InputBegan:Connect(function(Input)
if keybind.down then
if Input.UserInputType == Enum.UserInputType.Keyboard then
local capd = utility.capatalize(Input.KeyCode.Name)
if #capd > 1 then
value.Text = capd
else
value.Text = Input.KeyCode.Name
end
turn("KeyCode",Input.KeyCode)
callback(Input.KeyCode)
end
if allowed == 1 then
if Input.UserInputType == Enum.UserInputType.MouseButton1 then
value.Text = "MB1"
turn("UserInputType",Input)
callback(Input)
elseif Input.UserInputType == Enum.UserInputType.MouseButton2 then
value.Text = "MB2"
turn("UserInputType",Input)
callback(Input)
elseif Input.UserInputType == Enum.UserInputType.MouseButton3 then
value.Text = "MB3"
turn("UserInputType",Input)
callback(Input)
end
end
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = keybind
end
end
--
self.library.labels[#self.library.labels+1] = title
self.library.labels[#self.library.labels+1] = value
-- // metatable indexing + return
setmetatable(keybind, keybinds)
return keybind
end
--
function keybinds:set(key)
if key then
if typeof(key) == "EnumItem" or typeof(key) == "table" then
if typeof(key) == "table" then
if key[1] and key[2] then
key = Enum[key[1]][key[2]]
else
return
end
end
local keybind = self
local typeis = ""
--
local default = ".."
--
if key == Enum.UserInputType.MouseButton1 then
if keybind.allowed == 1 then
default = "MB1"
typeis = "UserInputType"
end
elseif key == Enum.UserInputType.MouseButton2 then
if keybind.allowed == 1 then
default = "MB2"
typeis = "UserInputType"
end
elseif key == Enum.UserInputType.MouseButton3 then
if keybind.allowed == 1 then
default = "MB3"
typeis = "UserInputType"
end
else
local capd = utility.capatalize(key.Name)
if #capd > 1 then
default = capd
else
default = key.Name
end
typeis = "KeyCode"
end
--
keybind.value.Text = default
keybind.current = {typeis,utility.splitenum(key)}
keybind.callback(keybind.current)
keybind.outline.Size = UDim2.new(0,keybind.value.TextBounds.X+20,1,0)
--
if keybind.down then
keybind.down = false
keybind.outline.BorderColor3 = Color3.fromRGB(12, 12, 12)
local find = table.find(self.library.themeitems["accent"]["BorderColor3"],keybind.outline)
if find then
table.remove(self.library.themeitems["accent"]["BorderColor3"],find)
end
end
end
end
end
--
function sections:colorpicker(props)
-- // properties
local name = props.name or props.Name or "new colorpicker"
local cpname = props.cpname or props.Cpname or props.CPname or props.CPName or props.cPname or props.cpName or props.colorpickername or nil
local def = props.def or props.Def or props.default or props.Default or Color3.fromRGB(255,255,255)
local callback = props.callback or props.callBack or props.CallBack or props.Callback or function()end
--
local h,s,v = def:ToHSV()
-- // variables
local colorpicker = {}
-- // main
local colorpickerholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
ZIndex = 2,
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,30,1,0),
Position = UDim2.new(1,0,0,0),
Parent = colorpickerholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
--
local cpcolor = utility.new(
"Frame",
{
BackgroundColor3 = def,
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Parent = outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = cpcolor
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = colorpickerholder
}
)
--
local button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
Parent = colorpickerholder
}
)
--
local cpholder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,0,230),
Position = UDim2.new(0,0,1,5),
Visible = false,
ZIndex = 5,
Parent = colorpickerholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = cpholder
}
)
--
local color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = self.library.theme.accent,
BorderSizePixel = 0,
Size = UDim2.new(1,-2,0,1),
Position = UDim2.new(0.5,0,0,0),
ZIndex = 5,
Parent = outline2
}
)
--
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],color)
--
local cptitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,0,20),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = cpname or name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
ZIndex = 5,
Parent = outline2
}
)
--
local cpholder2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0.875,0,0,150),
Position = UDim2.new(0,5,0,20),
ZIndex = 5,
Parent = outline2
}
)
--
local outline3 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromHSV(h,1,1),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = cpholder2
}
)
--
local cpimage = utility.new(
"ImageButton",
{
AutoButtonColor = false,
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Image = "rbxassetid://7074305282",
Parent = outline3
}
)
--
local cpcursor = utility.new(
"ImageLabel",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(0,6,0,6),
Position = UDim2.new(s,0,1-v,0),
ZIndex = 5,
Image = "rbxassetid://7074391319",
Parent = cpimage
}
)
--
local huepicker = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(1,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0.05,0,0,150),
Position = UDim2.new(1,-5,0,20),
ZIndex = 5,
Parent = outline2
}
)
--
local outline4 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = huepicker
}
)
--
local huebutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = huepicker
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(255, 0, 4)), ColorSequenceKeypoint.new(0.10, Color3.fromRGB(255, 153, 0)), ColorSequenceKeypoint.new(0.20, Color3.fromRGB(209, 255, 0)), ColorSequenceKeypoint.new(0.30, Color3.fromRGB(55, 255, 0)), ColorSequenceKeypoint.new(0.40, Color3.fromRGB(0, 255, 102)), ColorSequenceKeypoint.new(0.50, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.60, Color3.fromRGB(0, 102, 255)), ColorSequenceKeypoint.new(0.70, Color3.fromRGB(51, 0, 255)), ColorSequenceKeypoint.new(0.80, Color3.fromRGB(204, 0, 255)), ColorSequenceKeypoint.new(0.90, Color3.fromRGB(255, 0, 153)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 0, 4))},
Rotation = 90,
Parent = outline4
}
)
--
local huecursor = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0.5),
BackgroundColor3 = Color3.fromRGB(255, 255, 255),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(0,12,0,6),
Position = UDim2.new(0.5,0,h,0),
ZIndex = 5,
Parent = outline4
}
)
--
local huecursor_inline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromHSV(h,1,1),
BorderColor3 = Color3.fromRGB(255, 255, 255),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
ZIndex = 5,
Parent = huecursor
}
)
--
local function textbox(parent,size,position)
local textbox_holder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
Position = position,
Size = size,
ZIndex = 5,
Parent = parent
}
)
--
local outline5 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = textbox_holder
}
)
--
local outline6 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = outline5
}
)
--
local color2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,0),
Position = UDim2.new(0,0,0,0),
ZIndex = 5,
Parent = outline6
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color2
}
)
--
local tbox = utility.new(
"TextBox",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0,0),
PlaceholderColor3 = Color3.fromRGB(255,255,255),
PlaceholderText = "",
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = textbox_holder
}
)
--
local tbox_button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = textbox_holder
}
)
--
tbox_button.MouseButton1Down:Connect(function()
tbox:CaptureFocus()
end)
--
return {textbox_holder,tbox,outline5}
end
--
local red = textbox(outline2,UDim2.new(0,62,0,20),UDim2.new(0,5,0,175))
local green = textbox(outline2,UDim2.new(0,62,0,20),UDim2.new(0,5,0,175))
green[1].AnchorPoint = Vector2.new(0.5,0)
green[1].Position = UDim2.new(0.5,0,0,175)
local blue = textbox(outline2,UDim2.new(0,62,0,20),UDim2.new(0,5,0,175))
blue[1].AnchorPoint = Vector2.new(1,0)
blue[1].Position = UDim2.new(1,-5,0,175)
local hex = textbox(outline2,UDim2.new(1,-10,0,20),UDim2.new(0,5,0,200))
hex[2].Size = UDim2.new(1,-12,1,0)
hex[2].TextXAlignment = "Left"
-- // colorpicker tbl
colorpicker = {
["library"] = self.library,
["cpholder"] = cpholder,
["cpcolor"] = cpcolor,
["huecursor"] = huecursor,
["outline3"] = outline3,
["huecursor_inline"] = huecursor_inline,
["cpcursor"] = cpcursor,
["current"] = def,
["open"] = false,
["cp"] = false,
["hue"] = false,
["hsv"] = {h,s,v},
["red"] = red[2],
["green"] = green[2],
["blue"] = blue[2],
["hex"] = hex[2],
["callback"] = callback
}
--
table.insert(self.library.colorpickers,colorpicker)
--
local function updateboxes()
colorpicker.red.PlaceholderText = "R: "..tostring(math.floor(colorpicker.current.R*255))
colorpicker.green.PlaceholderText = "G: "..tostring(math.floor(colorpicker.current.G*255))
colorpicker.blue.PlaceholderText = "B: "..tostring(math.floor(colorpicker.current.B*255))
colorpicker.hex.PlaceholderText = "Hex: "..utility.to_hex(colorpicker.current)
end
--
updateboxes()
--
local function movehue()
local posy = math.clamp(plr:GetMouse().Y-outline3.AbsolutePosition.Y,0,outline3.AbsoluteSize.Y)
local resy = (1/outline3.AbsoluteSize.Y)*posy
outline3.BackgroundColor3 = Color3.fromHSV(resy,1,1)
huecursor_inline.BackgroundColor3 = Color3.fromHSV(resy,1,1)
colorpicker.hsv[1] = resy
colorpicker.current = Color3.fromHSV(colorpicker.hsv[1],colorpicker.hsv[2],colorpicker.hsv[3])
cpcolor.BackgroundColor3 = colorpicker.current
updateboxes()
colorpicker.callback(colorpicker.current)
huecursor:TweenPosition(UDim2.new(0.5,0,resy,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.15,true)
end
--
local function movecp()
local posx,posy = math.clamp(plr:GetMouse().X-outline3.AbsolutePosition.X,0,outline3.AbsoluteSize.X),math.clamp(plr:GetMouse().Y-outline3.AbsolutePosition.Y,0,outline3.AbsoluteSize.Y)
local resx,resy = (1/outline3.AbsoluteSize.X)*posx,(1/outline3.AbsoluteSize.Y)*posy
colorpicker.hsv[2] = resx
colorpicker.hsv[3] = 1-resy
colorpicker.current = Color3.fromHSV(colorpicker.hsv[1],colorpicker.hsv[2],colorpicker.hsv[3])
cpcolor.BackgroundColor3 = colorpicker.current
updateboxes()
colorpicker.callback(colorpicker.current)
cpcursor:TweenPosition(UDim2.new(resx,0,resy,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.15,true)
end
--
button.MouseButton1Down:Connect(function()
self.library:closewindows(colorpicker)
cpholder.Visible = not colorpicker.open
colorpicker.open = not colorpicker.open
end)
--
huebutton.MouseButton1Down:Connect(function()
colorpicker.hue = true
movehue()
end)
--
cpimage.MouseButton1Down:Connect(function()
colorpicker.cp = true
movecp()
end)
--
uis.InputChanged:Connect(function()
if colorpicker.cp then
movecp()
end
if colorpicker.hue then
movehue()
end
end)
--
uis.InputEnded:Connect(function(Input)
if Input.UserInputType.Name == 'MouseButton1' then
if colorpicker.cp then
colorpicker.cp = false
end
if colorpicker.hue then
colorpicker.hue = false
end
end
end)
--
red[2].Focused:Connect(function()
red[3].BorderColor3 = self.library.theme.accent
end)
--
red[2].FocusLost:Connect(function()
local saved = red[2].Text
local num = tonumber(saved)
if num then
saved = tostring(math.clamp(tonumber(saved),0,255))
red[2].Text = ""
if saved then
if #saved >= 1 and #saved <= 3 then
red[2].PlaceholderText = "R: "..tostring(saved)
end
colorpicker:set(Color3.fromRGB(tonumber(saved),colorpicker.current.G*255,colorpicker.current.B*255))
red[3].BorderColor3 = Color3.fromRGB(12,12,12)
else
red[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
else
red[2].Text = ""
red[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
end)
--
green[2].Focused:Connect(function()
green[3].BorderColor3 = self.library.theme.accent
end)
--
green[2].FocusLost:Connect(function()
local saved = green[2].Text
local num = tonumber(saved)
if num then
saved = tostring(math.clamp(tonumber(saved),0,255))
green[2].Text = ""
if saved then
if #saved >= 1 and #saved <= 3 then
green[2].PlaceholderText = "G: "..tostring(saved)
end
colorpicker:set(Color3.fromRGB(colorpicker.current.R*255,tonumber(saved),colorpicker.current.B*255))
green[3].BorderColor3 = Color3.fromRGB(12,12,12)
else
green[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
else
green[2].Text = ""
green[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
end)
--
blue[2].Focused:Connect(function()
blue[3].BorderColor3 = self.library.theme.accent
end)
--
blue[2].FocusLost:Connect(function()
local saved = blue[2].Text
local num = tonumber(saved)
if num then
saved = tostring(math.clamp(tonumber(saved),0,255))
blue[2].Text = ""
if saved then
if #saved >= 1 and #saved <= 3 then
blue[2].PlaceholderText = "B: "..tostring(saved)
end
colorpicker:set(Color3.fromRGB(colorpicker.current.R*255,colorpicker.current.G*255,tonumber(saved)))
blue[3].BorderColor3 = Color3.fromRGB(12,12,12)
else
blue[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
else
blue[2].Text = ""
blue[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
end)
--
hex[2].Focused:Connect(function()
hex[3].BorderColor3 = self.library.theme.accent
end)
--
hex[2].FocusLost:Connect(function()
local saved = hex[2].Text
if #saved >= 6 and #saved <= 7 then
local e,s = pcall(function()
utility.from_hex(saved)
end)
if e == true then
local hexcolor = utility.from_hex(saved)
if hexcolor then
colorpicker:set(hexcolor)
hex[2].Text = ""
hex[3].BorderColor3 = Color3.fromRGB(12,12,12)
else
hex[2].Text = ""
hex[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
else
hex[2].Text = ""
hex[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
else
hex[2].Text = ""
hex[3].BorderColor3 = Color3.fromRGB(12,12,12)
end
end)
--
local pointer = props.pointer or props.Pointer or props.pointername or props.Pointername or props.PointerName or props.pointerName or nil
--
if pointer then
if self.pointers then
self.pointers[tostring(pointer)] = colorpicker
end
end
--
self.library.labels[#self.library.labels+1] = title
self.library.labels[#self.library.labels+1] = hex[2]
self.library.labels[#self.library.labels+1] = red[2]
self.library.labels[#self.library.labels+1] = green[2]
self.library.labels[#self.library.labels+1] = blue[2]
self.library.labels[#self.library.labels+1] = cptitle
-- // metatable indexing + return
setmetatable(colorpicker, colorpickers)
return colorpicker
end
--
function colorpickers:set(color)
if color then
if typeof(color) == "table" then
color = Color3.fromRGB(color[1]*255,color[2]*255,color[3]*255)
end
local colorpicker = self
local h,s,v = color:ToHSV()
--
local function updateboxes()
colorpicker.red.PlaceholderText = "R: "..tostring(math.floor(colorpicker.current.R*255))
colorpicker.green.PlaceholderText = "G: "..tostring(math.floor(colorpicker.current.G*255))
colorpicker.blue.PlaceholderText = "B: "..tostring(math.floor(colorpicker.current.B*255))
colorpicker.hex.PlaceholderText = "Hex: "..utility.to_hex(colorpicker.current)
end
--
local function movehue()
colorpicker.outline3.BackgroundColor3 = Color3.fromHSV(h,1,1)
colorpicker.huecursor_inline.BackgroundColor3 = Color3.fromHSV(h,1,1)
colorpicker.hsv[1] = h
colorpicker.current = Color3.fromHSV(colorpicker.hsv[1],colorpicker.hsv[2],colorpicker.hsv[3])
colorpicker.cpcolor.BackgroundColor3 = colorpicker.current
colorpicker.huecursor:TweenPosition(UDim2.new(0.5,0,h,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.15,true)
end
--
local function movecp()
colorpicker.hsv[2] = s
colorpicker.hsv[3] = v
colorpicker.current = Color3.fromHSV(colorpicker.hsv[1],colorpicker.hsv[2],colorpicker.hsv[3])
colorpicker.cpcolor.BackgroundColor3 = colorpicker.current
colorpicker.cpcursor:TweenPosition(UDim2.new(s,0,1-v,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quad,0.15,true)
end
--
movehue()
movecp()
updateboxes()
colorpicker.callback(colorpicker.current)
end
end
--
function sections:configloader(props)
-- // properties
local folder = props.folder or props.Folder
-- // variables
local configloader = {}
-- // main
local clholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,222),
Parent = self.content
}
)
--
local outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = clholder
}
)
--
local outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Parent = outline
}
)
--
local title = utility.new(
"TextLabel",
{
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,15),
Position = UDim2.new(0,0,0,3),
Font = self.library.font,
Text = "configs",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Center",
Parent = outline
}
)
--
self.library.labels[#self.library.labels+1] = title
--
local color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = self.library.theme.accent,
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,-6,0,1),
Position = UDim2.new(0.5,0,0,19),
Parent = outline
}
)
--
table.insert(self.library.themeitems["accent"]["BackgroundColor3"],color)
--
local buttonsholder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,64),
Position = UDim2.new(0,0,0,150),
Parent = outline
}
)
--
local configsholder = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,-10,0,120),
Position = UDim2.new(0.5,0,0,25),
Parent = outline
}
)
--
local outline3 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Parent = configsholder
}
)
--
local outline4 = utility.new(
"ScrollingFrame",
{
BackgroundColor3 = Color3.fromRGB(56, 56, 56),
BackgroundTransparency = 1,
BorderSizePixel = 0,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
ClipsDescendants = true,
AutomaticCanvasSize = "Y",
CanvasSize = UDim2.new(0,0,0,0),
ScrollBarImageTransparency = 0.25,
ScrollBarImageColor3 = Color3.fromRGB(0,0,0),
ScrollBarThickness = 5,
VerticalScrollBarInset = "ScrollBar",
VerticalScrollBarPosition = "Right",
Parent = outline3
}
)
--
utility.new(
"UIListLayout",
{
FillDirection = "Vertical",
Padding = UDim.new(0,0),
Parent = outline4
}
)
--
local createdbuttons = {}
local selected
--
local makebutton = function(name,toggled)
local createdbutton = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,0,18),
Position = UDim2.new(0,0,0,0),
Text = "",
Parent = outline4
}
)
--
local grey = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundColor3 = Color3.fromRGB(125, 125, 125),
BackgroundTransparency = 0.9,
BorderSizePixel = 0,
Size = UDim2.new(1,-4,1,0),
Position = UDim2.new(0.5,0,0,0),
Visible = false,
Parent = createdbutton
}
)
--
local createdtitle = utility.new(
"TextLabel",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,-10,1,0),
Position = UDim2.new(0.5,0,0,0),
Font = self.library.font,
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
TextXAlignment = "Left",
Parent = createdbutton
}
)
--
self.library.labels[#self.library.labels+1] = createdtitle
--
local createdb = {
["button"] = createdbutton,
["grey"] = grey,
["title"] = createdtitle,
["name"] = name
}
--
table.insert(createdbuttons,createdb)
--
if toggled then
createdb.grey.Visible = true
createdb.title.TextColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["TextColor3"],createdb.title)
selected = createdb
end
--
createdbutton.MouseButton1Down:Connect(function()
for i,v in pairs(createdbuttons) do
if v ~= createdb then
v.grey.Visible = false
v.title.TextColor3 = Color3.fromRGB(255,255,255)
local find = table.find(self.library.themeitems["accent"]["TextColor3"],v.title)
if find then
table.remove(self.library.themeitems["accent"]["TextColor3"],find)
end
end
end
--
createdb.grey.Visible = true
createdb.title.TextColor3 = self.library.theme.accent
table.insert(self.library.themeitems["accent"]["TextColor3"],createdb.title)
selected = createdb
end)
end
--
local newbutton = function(parent,name)
local button_holder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
ZIndex = 5,
Parent = parent
}
)
--
local button_outline = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = button_holder
}
)
--
local button_outline2 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = button_outline
}
)
--
local button_color = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,0),
Position = UDim2.new(0,0,0,0),
ZIndex = 5,
Parent = button_outline2
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = button_color
}
)
--
local button_button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = name,
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = button_holder
}
)
--
self.library.labels[#self.library.labels+1] = button_button
--
return {button_holder,button_outline,button_button}
end
--
local function textbox(parent)
local textbox_holder = utility.new(
"Frame",
{
BackgroundTransparency = 1,
BorderSizePixel = 0,
ZIndex = 5,
Parent = parent
}
)
--
local outline5 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(12, 12, 12),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = textbox_holder
}
)
--
local outline6 = utility.new(
"Frame",
{
BackgroundColor3 = Color3.fromRGB(24, 24, 24),
BorderColor3 = Color3.fromRGB(56, 56, 56),
BorderMode = "Inset",
BorderSizePixel = 1,
Position = UDim2.new(0,0,0,0),
Size = UDim2.new(1,0,1,0),
ZIndex = 5,
Parent = outline5
}
)
--
local color2 = utility.new(
"Frame",
{
AnchorPoint = Vector2.new(0,0),
BackgroundColor3 = Color3.fromRGB(30, 30, 30),
BorderSizePixel = 0,
Size = UDim2.new(1,0,0,0),
Position = UDim2.new(0,0,0,0),
ZIndex = 5,
Parent = outline6
}
)
--
utility.new(
"UIGradient",
{
Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(199, 191, 204)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(255, 255, 255))},
Rotation = 90,
Parent = color2
}
)
--
local tbox = utility.new(
"TextBox",
{
AnchorPoint = Vector2.new(0.5,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0.5,0,0,0),
PlaceholderColor3 = Color3.fromRGB(178, 178, 178),
PlaceholderText = "",
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = textbox_holder
}
)
--
local tbox_button = utility.new(
"TextButton",
{
AnchorPoint = Vector2.new(0,0),
BackgroundTransparency = 1,
Size = UDim2.new(1,0,1,0),
Position = UDim2.new(0,0,0,0),
Text = "",
TextColor3 = Color3.fromRGB(255,255,255),
TextSize = self.library.textsize,
TextStrokeTransparency = 0,
Font = self.library.font,
ZIndex = 5,
Parent = textbox_holder
}
)
--
tbox_button.MouseButton1Down:Connect(function()
tbox:CaptureFocus()
end)
--
return {textbox_holder,tbox,outline5}
end
--
local refresh = function()
for i,v in pairs(createdbuttons) do
v.button:Remove()
v.grey:Remove()
v.title:Remove()
end
createdbuttons = {}
for i,v in pairs(listfiles(folder)) do
if v:sub(-4) == ".cfg" then
if i == 1 then
makebutton(v:sub(#tostring(folder)+2, -5),true)
else
makebutton(v:sub(#tostring(folder)+2, -5),false)
end
end
end
end
--
refresh()
--
local name = textbox(buttonsholder)
local load = newbutton(buttonsholder,"Load")
local delete = newbutton(buttonsholder,"Delete")
local save = newbutton(buttonsholder,"Save")
local create = newbutton(buttonsholder,"Create")
--
name[1].Size = UDim2.new(1,-10,0,20)
load[1].Size = UDim2.new(0.5,-6,0,20)
delete[1].Size = UDim2.new(0.5,-6,0,20)
save[1].Size = UDim2.new(0.5,-6,0,20)
create[1].Size = UDim2.new(0.5,-6,0,20)
--
name[1].Position = UDim2.new(0.5,0,0,0)
name[1].AnchorPoint = Vector2.new(0.5,0)
--
load[1].Position = UDim2.new(0,5,0,22)
load[1].AnchorPoint = Vector2.new(0,0)
--
delete[1].Position = UDim2.new(1,-5,0,22)
delete[1].AnchorPoint = Vector2.new(1,0)
--
save[1].Position = UDim2.new(0,5,0,44)
save[1].AnchorPoint = Vector2.new(0,0)
--
create[1].Position = UDim2.new(1,-5,0,44)
create[1].AnchorPoint = Vector2.new(1,0)
--
name[2].PlaceholderText = "Name"
--
local currentname = nil
--
name[2].Focused:Connect(function()
name[3].BorderColor3 = self.library.theme.accent
end)
--
name[2].FocusLost:Connect(function()
local saved = name[2].Text
if #saved >= 3 and #saved <= 15 then
currentname = saved
else
name[2].Text = ""
currentname = nil
end
name[3].BorderColor3 = Color3.fromRGB(12,12,12)
end)
--
load[3].MouseButton1Down:Connect(function()
self.library:loadconfig(folder..selected.name..".cfg")
load[2].BorderColor3 = self.library.theme.accent
wait(0.05)
load[2].BorderColor3 = Color3.fromRGB(12,12,12)
end)
--
delete[3].MouseButton1Down:Connect(function()
delfile(folder..selected.name..".cfg")
delete[2].BorderColor3 = self.library.theme.accent
wait(0.05)
delete[2].BorderColor3 = Color3.fromRGB(12,12,12)
wait()
refresh()
end)
--
save[3].MouseButton1Down:Connect(function()
writefile(folder..selected.name..".cfg", self.library:saveconfig())
save[2].BorderColor3 = self.library.theme.accent
wait(0.05)
save[2].BorderColor3 = Color3.fromRGB(12,12,12)
wait()
refresh()
end)
--
create[3].MouseButton1Down:Connect(function()
writefile(folder..currentname..".cfg", self.library:saveconfig())
create[2].BorderColor3 = self.library.theme.accent
wait(0.05)
create[2].BorderColor3 = Color3.fromRGB(12,12,12)
wait()
refresh()
end)
-- // button tbl
configloader = {
["library"] = self.library
}
-- // metatable indexing + return
setmetatable(configloader, configloaders)
return configloader
end
return library



isnt working for me rn