local MacLib = {
Options = {},
Folder = "Maclib",
GetService = function(service)
return cloneref and cloneref(game:GetService(service)) or game:GetService(service)
end
}
--// Services
local TweenService = MacLib.GetService("TweenService")
local RunService = MacLib.GetService("RunService")
local HttpService = MacLib.GetService("HttpService")
local ContentProvider = MacLib.GetService("ContentProvider")
local UserInputService = MacLib.GetService("UserInputService")
local Lighting = MacLib.GetService("Lighting")
local Players = MacLib.GetService("Players")
--// Variables
local isStudio = RunService:IsStudio()
local LocalPlayer = Players.LocalPlayer
local windowState
local acrylicBlur
local hasGlobalSetting
local tabs = {}
local currentTabInstance = nil
local tabIndex = 0
local unloaded = false
local assets = {
interFont = "rbxassetid://12187365364",
userInfoBlurred = "rbxassetid://18824089198",
toggleBackground = "rbxassetid://18772190202",
togglerHead = "rbxassetid://18772309008",
buttonImage = "rbxassetid://10709791437",
searchIcon = "rbxassetid://86737463322606",
colorWheel = "rbxassetid://2849458409",
colorTarget = "rbxassetid://73265255323268",
grid = "rbxassetid://121484455191370",
globe = "rbxassetid://108952102602834",
transform = "rbxassetid://90336395745819",
dropdown = "rbxassetid://18865373378",
sliderbar = "rbxassetid://18772615246",
sliderhead = "rbxassetid://18772834246",
}
--// Functions
local function GetGui()
local newGui = Instance.new("ScreenGui")
newGui.ScreenInsets = Enum.ScreenInsets.None
newGui.ResetOnSpawn = false
newGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
newGui.DisplayOrder = 2147483647
local parent = RunService:IsStudio()
and LocalPlayer:FindFirstChild("PlayerGui")
or (gethui and gethui())
or (cloneref and cloneref(MacLib.GetService("CoreGui")) or MacLib.GetService("CoreGui"))
newGui.Parent = parent
return newGui
end
local function Tween(instance, tweeninfo, propertytable)
return TweenService:Create(instance, tweeninfo, propertytable)
end
--// Library Functions
function MacLib:Window(Settings)
local WindowFunctions = {Settings = Settings}
if Settings.AcrylicBlur ~= nil then
acrylicBlur = Settings.AcrylicBlur
else
acrylicBlur = true
end
local macLib = GetGui()
local notifications = Instance.new("Frame")
notifications.Name = "Notifications"
notifications.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
notifications.BackgroundTransparency = 1
notifications.BorderColor3 = Color3.fromRGB(0, 0, 0)
notifications.BorderSizePixel = 0
notifications.Size = UDim2.fromScale(1, 1)
notifications.Parent = macLib
notifications.ZIndex = 2
local notificationsUIListLayout = Instance.new("UIListLayout")
notificationsUIListLayout.Name = "NotificationsUIListLayout"
notificationsUIListLayout.Padding = UDim.new(0, 10)
notificationsUIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
notificationsUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
notificationsUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom
notificationsUIListLayout.Parent = notifications
local notificationsUIPadding = Instance.new("UIPadding")
notificationsUIPadding.Name = "NotificationsUIPadding"
notificationsUIPadding.PaddingBottom = UDim.new(0, 10)
notificationsUIPadding.PaddingLeft = UDim.new(0, 10)
notificationsUIPadding.PaddingRight = UDim.new(0, 10)
notificationsUIPadding.PaddingTop = UDim.new(0, 10)
notificationsUIPadding.Parent = notifications
local base = Instance.new("Frame")
base.Name = "Base"
base.AnchorPoint = Vector2.new(0.5, 0.5)
base.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
base.BackgroundTransparency = Settings.AcrylicBlur and 0.05 or 0
base.BorderColor3 = Color3.fromRGB(0, 0, 0)
base.BorderSizePixel = 0
base.Position = UDim2.fromScale(0.5, 0.5)
base.Size = Settings.Size or UDim2.fromOffset(868, 650)
local baseUIScale = Instance.new("UIScale")
baseUIScale.Name = "BaseUIScale"
baseUIScale.Parent = base
local baseUICorner = Instance.new("UICorner")
baseUICorner.Name = "BaseUICorner"
baseUICorner.CornerRadius = UDim.new(0, 10)
baseUICorner.Parent = base
local baseUIStroke = Instance.new("UIStroke")
baseUIStroke.Name = "BaseUIStroke"
baseUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
baseUIStroke.Color = Color3.fromRGB(255, 255, 255)
baseUIStroke.Transparency = 0.9
baseUIStroke.Parent = base
local sidebar = Instance.new("Frame")
sidebar.Name = "Sidebar"
sidebar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sidebar.BackgroundTransparency = 1
sidebar.BorderColor3 = Color3.fromRGB(0, 0, 0)
sidebar.BorderSizePixel = 0
sidebar.Position = UDim2.fromScale(-3.52e-08, 4.69e-08)
sidebar.Size = UDim2.fromScale(0.325, 1)
local divider = Instance.new("Frame")
divider.Name = "Divider"
divider.AnchorPoint = Vector2.new(1, 0)
divider.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider.BackgroundTransparency = 0.9
divider.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider.BorderSizePixel = 0
divider.Position = UDim2.fromScale(1, 0)
divider.Size = UDim2.new(0, 1, 1, 0)
divider.Parent = sidebar
local dividerInteract = Instance.new("TextButton")
dividerInteract.Name = "DividerInteract"
dividerInteract.AnchorPoint = Vector2.new(0.5, 0)
dividerInteract.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dividerInteract.BackgroundTransparency = 1
dividerInteract.BorderColor3 = Color3.fromRGB(0, 0, 0)
dividerInteract.BorderSizePixel = 0
dividerInteract.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
dividerInteract.Position = UDim2.fromScale(0.5, 0)
dividerInteract.Size = UDim2.new(1, 6, 1, 0)
dividerInteract.Text = ""
dividerInteract.TextColor3 = Color3.fromRGB(0, 0, 0)
dividerInteract.TextSize = 14
dividerInteract.Parent = divider
local windowControls = Instance.new("Frame")
windowControls.Name = "WindowControls"
windowControls.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
windowControls.BackgroundTransparency = 1
windowControls.BorderColor3 = Color3.fromRGB(0, 0, 0)
windowControls.BorderSizePixel = 0
windowControls.Size = UDim2.new(1, 0, 0, 31)
local controls = Instance.new("Frame")
controls.Name = "Controls"
controls.BackgroundColor3 = Color3.fromRGB(119, 174, 94)
controls.BackgroundTransparency = 1
controls.BorderColor3 = Color3.fromRGB(0, 0, 0)
controls.BorderSizePixel = 0
controls.Size = UDim2.fromScale(1, 1)
local uIListLayout = Instance.new("UIListLayout")
uIListLayout.Name = "UIListLayout"
uIListLayout.Padding = UDim.new(0, 5)
uIListLayout.FillDirection = Enum.FillDirection.Horizontal
uIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout.Parent = controls
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingLeft = UDim.new(0, 11)
uIPadding.Parent = controls
local windowControlSettings = {
sizes = { enabled = UDim2.fromOffset(8, 8), disabled = UDim2.fromOffset(7, 7) },
transparencies = { enabled = 0, disabled = 1 },
strokeTransparency = 0.9,
}
local stroke = Instance.new("UIStroke")
stroke.Name = "BaseUIStroke"
stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
stroke.Color = Color3.fromRGB(255, 255, 255)
stroke.Transparency = windowControlSettings.strokeTransparency
local exit = Instance.new("TextButton")
exit.Name = "Exit"
exit.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
exit.Text = ""
exit.TextColor3 = Color3.fromRGB(0, 0, 0)
exit.TextSize = 14
exit.AutoButtonColor = false
exit.BackgroundColor3 = Color3.fromRGB(250, 93, 86)
exit.BorderColor3 = Color3.fromRGB(0, 0, 0)
exit.BorderSizePixel = 0
local uICorner = Instance.new("UICorner")
uICorner.Name = "UICorner"
uICorner.CornerRadius = UDim.new(1, 0)
uICorner.Parent = exit
exit.Parent = controls
local minimize = Instance.new("TextButton")
minimize.Name = "Minimize"
minimize.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
minimize.Text = ""
minimize.TextColor3 = Color3.fromRGB(0, 0, 0)
minimize.TextSize = 14
minimize.AutoButtonColor = false
minimize.BackgroundColor3 = Color3.fromRGB(252, 190, 57)
minimize.BorderColor3 = Color3.fromRGB(0, 0, 0)
minimize.BorderSizePixel = 0
minimize.LayoutOrder = 1
local uICorner1 = Instance.new("UICorner")
uICorner1.Name = "UICorner"
uICorner1.CornerRadius = UDim.new(1, 0)
uICorner1.Parent = minimize
minimize.Parent = controls
local maximize = Instance.new("TextButton")
maximize.Name = "Maximize"
maximize.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
maximize.Text = ""
maximize.TextColor3 = Color3.fromRGB(0, 0, 0)
maximize.TextSize = 14
maximize.AutoButtonColor = false
maximize.BackgroundColor3 = Color3.fromRGB(119, 174, 94)
maximize.BorderColor3 = Color3.fromRGB(0, 0, 0)
maximize.BorderSizePixel = 0
maximize.LayoutOrder = 1
local uICorner2 = Instance.new("UICorner")
uICorner2.Name = "UICorner"
uICorner2.CornerRadius = UDim.new(1, 0)
uICorner2.Parent = maximize
maximize.Parent = controls
local function applyState(button, enabled)
local size = enabled and windowControlSettings.sizes.enabled or windowControlSettings.sizes.disabled
local transparency = enabled and windowControlSettings.transparencies.enabled or windowControlSettings.transparencies.disabled
button.Size = size
button.BackgroundTransparency = transparency
button.Active = enabled
button.Interactable = enabled
for _, child in ipairs(button:GetChildren()) do
if child:IsA("UIStroke") then
child.Transparency = transparency
end
end
if not enabled then
stroke:Clone().Parent = button
end
end
applyState(maximize, false)
local controlsList = {exit, minimize}
for _, button in pairs(controlsList) do
local buttonName = button.Name
local isEnabled = true
if Settings.DisabledWindowControls and table.find(Settings.DisabledWindowControls, buttonName) then
isEnabled = false
end
applyState(button, isEnabled)
end
controls.Parent = windowControls
local divider1 = Instance.new("Frame")
divider1.Name = "Divider"
divider1.AnchorPoint = Vector2.new(0, 1)
divider1.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider1.BackgroundTransparency = 0.9
divider1.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider1.BorderSizePixel = 0
divider1.Position = UDim2.fromScale(0, 1)
divider1.Size = UDim2.new(1, 0, 0, 1)
divider1.Parent = windowControls
windowControls.Parent = sidebar
local information = Instance.new("Frame")
information.Name = "Information"
information.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
information.BackgroundTransparency = 1
information.BorderColor3 = Color3.fromRGB(0, 0, 0)
information.BorderSizePixel = 0
information.Position = UDim2.fromOffset(0, 31)
information.Size = UDim2.new(1, 0, 0, 60)
local divider2 = Instance.new("Frame")
divider2.Name = "Divider"
divider2.AnchorPoint = Vector2.new(0, 1)
divider2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider2.BackgroundTransparency = 0.9
divider2.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider2.BorderSizePixel = 0
divider2.Position = UDim2.fromScale(0, 1)
divider2.Size = UDim2.new(1, 0, 0, 1)
divider2.Parent = information
local informationHolder = Instance.new("Frame")
informationHolder.Name = "InformationHolder"
informationHolder.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
informationHolder.BackgroundTransparency = 1
informationHolder.BorderColor3 = Color3.fromRGB(0, 0, 0)
informationHolder.BorderSizePixel = 0
informationHolder.Size = UDim2.fromScale(1, 1)
local informationHolderUIPadding = Instance.new("UIPadding")
informationHolderUIPadding.Name = "InformationHolderUIPadding"
informationHolderUIPadding.PaddingBottom = UDim.new(0, 10)
informationHolderUIPadding.PaddingLeft = UDim.new(0, 23)
informationHolderUIPadding.PaddingRight = UDim.new(0, 22)
informationHolderUIPadding.PaddingTop = UDim.new(0, 10)
informationHolderUIPadding.Parent = informationHolder
local globalSettingsButton = Instance.new("ImageButton")
globalSettingsButton.Name = "GlobalSettingsButton"
globalSettingsButton.Image = assets.globe
globalSettingsButton.ImageTransparency = 0.5
globalSettingsButton.AnchorPoint = Vector2.new(1, 0.5)
globalSettingsButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
globalSettingsButton.BackgroundTransparency = 1
globalSettingsButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
globalSettingsButton.BorderSizePixel = 0
globalSettingsButton.Position = UDim2.fromScale(1, 0.5)
globalSettingsButton.Size = UDim2.fromOffset(16,16)
globalSettingsButton.Parent = informationHolder
local function ChangeGlobalSettingsButtonState(State)
if State == "Default" then
Tween(globalSettingsButton, TweenInfo.new(0.2, Enum.EasingStyle.Sine), {
ImageTransparency = 0.5
}):Play()
elseif State == "Hover" then
Tween(globalSettingsButton, TweenInfo.new(0.2, Enum.EasingStyle.Sine), {
ImageTransparency = 0.3
}):Play()
end
end
globalSettingsButton.MouseEnter:Connect(function()
ChangeGlobalSettingsButtonState("Hover")
end)
globalSettingsButton.MouseLeave:Connect(function()
ChangeGlobalSettingsButtonState("Default")
end)
local titleFrame = Instance.new("Frame")
titleFrame.Name = "TitleFrame"
titleFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
titleFrame.BackgroundTransparency = 1
titleFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
titleFrame.BorderSizePixel = 0
titleFrame.Size = UDim2.fromScale(1, 1)
local title = Instance.new("TextLabel")
title.Name = "Title"
title.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.SemiBold,
Enum.FontStyle.Normal
)
title.Text = Settings.Title
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.RichText = true
title.TextSize = 18
title.TextTransparency = 0.1
title.TextTruncate = Enum.TextTruncate.SplitWord
title.TextXAlignment = Enum.TextXAlignment.Left
title.TextYAlignment = Enum.TextYAlignment.Top
title.AutomaticSize = Enum.AutomaticSize.Y
title.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
title.BackgroundTransparency = 1
title.BorderColor3 = Color3.fromRGB(0, 0, 0)
title.BorderSizePixel = 0
title.Size = UDim2.new(1, -20, 0, 0)
title.Parent = titleFrame
local subtitle = Instance.new("TextLabel")
subtitle.Name = "Subtitle"
subtitle.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
subtitle.RichText = true
subtitle.Text = Settings.Subtitle
subtitle.RichText = true
subtitle.TextColor3 = Color3.fromRGB(255, 255, 255)
subtitle.TextSize = 12
subtitle.TextTransparency = 0.7
subtitle.TextTruncate = Enum.TextTruncate.SplitWord
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.TextYAlignment = Enum.TextYAlignment.Top
subtitle.AutomaticSize = Enum.AutomaticSize.Y
subtitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
subtitle.BackgroundTransparency = 1
subtitle.BorderColor3 = Color3.fromRGB(0, 0, 0)
subtitle.BorderSizePixel = 0
subtitle.LayoutOrder = 1
subtitle.Size = UDim2.new(1, -20, 0, 0)
subtitle.Parent = titleFrame
local titleFrameUIListLayout = Instance.new("UIListLayout")
titleFrameUIListLayout.Name = "TitleFrameUIListLayout"
titleFrameUIListLayout.Padding = UDim.new(0, 3)
titleFrameUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
titleFrameUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
titleFrameUIListLayout.Parent = titleFrame
titleFrame.Parent = informationHolder
informationHolder.Parent = information
information.Parent = sidebar
local sidebarGroup = Instance.new("Frame")
sidebarGroup.Name = "SidebarGroup"
sidebarGroup.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sidebarGroup.BackgroundTransparency = 1
sidebarGroup.BorderColor3 = Color3.fromRGB(0, 0, 0)
sidebarGroup.BorderSizePixel = 0
sidebarGroup.Position = UDim2.fromOffset(0, 91)
sidebarGroup.Size = UDim2.new(1, 0, 1, -91)
local userInfo = Instance.new("Frame")
userInfo.Name = "UserInfo"
userInfo.AnchorPoint = Vector2.new(0, 1)
userInfo.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
userInfo.BackgroundTransparency = 1
userInfo.BorderColor3 = Color3.fromRGB(0, 0, 0)
userInfo.BorderSizePixel = 0
userInfo.Position = UDim2.fromScale(0, 1)
userInfo.Size = UDim2.new(1, 0, 0, 107)
local informationGroup = Instance.new("Frame")
informationGroup.Name = "InformationGroup"
informationGroup.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
informationGroup.BackgroundTransparency = 1
informationGroup.BorderColor3 = Color3.fromRGB(0, 0, 0)
informationGroup.BorderSizePixel = 0
informationGroup.Size = UDim2.fromScale(1, 1)
local informationGroupUIPadding = Instance.new("UIPadding")
informationGroupUIPadding.Name = "InformationGroupUIPadding"
informationGroupUIPadding.PaddingBottom = UDim.new(0, 17)
informationGroupUIPadding.PaddingLeft = UDim.new(0, 25)
informationGroupUIPadding.Parent = informationGroup
local informationGroupUIListLayout = Instance.new("UIListLayout")
informationGroupUIListLayout.Name = "InformationGroupUIListLayout"
informationGroupUIListLayout.FillDirection = Enum.FillDirection.Horizontal
informationGroupUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
informationGroupUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
informationGroupUIListLayout.Parent = informationGroup
local userId = LocalPlayer.UserId
local thumbType = Enum.ThumbnailType.AvatarBust
local thumbSize = Enum.ThumbnailSize.Size48x48
local headshotImage, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
local headshot = Instance.new("ImageLabel")
headshot.Name = "Headshot"
headshot.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
headshot.BackgroundTransparency = 1
headshot.BorderColor3 = Color3.fromRGB(0, 0, 0)
headshot.BorderSizePixel = 0
headshot.Size = UDim2.fromOffset(32, 32)
headshot.Image = (isReady and headshotImage) or "rbxassetid://0"
local uICorner3 = Instance.new("UICorner")
uICorner3.Name = "UICorner"
uICorner3.CornerRadius = UDim.new(1, 0)
uICorner3.Parent = headshot
local baseUIStroke2 = Instance.new("UIStroke")
baseUIStroke2.Name = "BaseUIStroke"
baseUIStroke2.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
baseUIStroke2.Color = Color3.fromRGB(255, 255, 255)
baseUIStroke2.Transparency = 0.9
baseUIStroke2.Parent = headshot
headshot.Parent = informationGroup
local userAndDisplayFrame = Instance.new("Frame")
userAndDisplayFrame.Name = "UserAndDisplayFrame"
userAndDisplayFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
userAndDisplayFrame.BackgroundTransparency = 1
userAndDisplayFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
userAndDisplayFrame.BorderSizePixel = 0
userAndDisplayFrame.LayoutOrder = 1
userAndDisplayFrame.Size = UDim2.new(1, -42, 0, 32)
local displayName = Instance.new("TextLabel")
displayName.Name = "DisplayName"
displayName.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.SemiBold,
Enum.FontStyle.Normal
)
displayName.Text = LocalPlayer.DisplayName
displayName.TextColor3 = Color3.fromRGB(255, 255, 255)
displayName.TextSize = 13
displayName.TextTransparency = 0.1
displayName.TextTruncate = Enum.TextTruncate.SplitWord
displayName.TextXAlignment = Enum.TextXAlignment.Left
displayName.TextYAlignment = Enum.TextYAlignment.Top
displayName.AutomaticSize = Enum.AutomaticSize.XY
displayName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
displayName.BackgroundTransparency = 1
displayName.BorderColor3 = Color3.fromRGB(0, 0, 0)
displayName.BorderSizePixel = 0
displayName.Parent = userAndDisplayFrame
displayName.Size = UDim2.fromScale(1,0)
local userAndDisplayFrameUIPadding = Instance.new("UIPadding")
userAndDisplayFrameUIPadding.Name = "UserAndDisplayFrameUIPadding"
userAndDisplayFrameUIPadding.PaddingLeft = UDim.new(0, 8)
userAndDisplayFrameUIPadding.PaddingTop = UDim.new(0, 3)
userAndDisplayFrameUIPadding.Parent = userAndDisplayFrame
local userAndDisplayFrameUIListLayout = Instance.new("UIListLayout")
userAndDisplayFrameUIListLayout.Name = "UserAndDisplayFrameUIListLayout"
userAndDisplayFrameUIListLayout.Padding = UDim.new(0, 1)
userAndDisplayFrameUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
userAndDisplayFrameUIListLayout.Parent = userAndDisplayFrame
local username = Instance.new("TextLabel")
username.Name = "Username"
username.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.SemiBold,
Enum.FontStyle.Normal
)
username.Text = "@" .. LocalPlayer.Name
username.TextColor3 = Color3.fromRGB(255, 255, 255)
username.TextSize = 12
username.TextTransparency = 0.7
username.TextTruncate = Enum.TextTruncate.SplitWord
username.TextXAlignment = Enum.TextXAlignment.Left
username.TextYAlignment = Enum.TextYAlignment.Top
username.AutomaticSize = Enum.AutomaticSize.XY
username.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
username.BackgroundTransparency = 1
username.BorderColor3 = Color3.fromRGB(0, 0, 0)
username.BorderSizePixel = 0
username.LayoutOrder = 1
username.Parent = userAndDisplayFrame
username.Size = UDim2.fromScale(1,0)
userAndDisplayFrame.Parent = informationGroup
informationGroup.Parent = userInfo
local userInfoUIPadding = Instance.new("UIPadding")
userInfoUIPadding.Name = "UserInfoUIPadding"
userInfoUIPadding.PaddingLeft = UDim.new(0, 10)
userInfoUIPadding.PaddingRight = UDim.new(0, 10)
userInfoUIPadding.Parent = userInfo
userInfo.Parent = sidebarGroup
local sidebarGroupUIPadding = Instance.new("UIPadding")
sidebarGroupUIPadding.Name = "SidebarGroupUIPadding"
sidebarGroupUIPadding.PaddingLeft = UDim.new(0, 10)
sidebarGroupUIPadding.PaddingRight = UDim.new(0, 10)
sidebarGroupUIPadding.PaddingTop = UDim.new(0, 31)
sidebarGroupUIPadding.Parent = sidebarGroup
local tabSwitchers = Instance.new("Frame")
tabSwitchers.Name = "TabSwitchers"
tabSwitchers.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabSwitchers.BackgroundTransparency = 1
tabSwitchers.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabSwitchers.BorderSizePixel = 0
tabSwitchers.Size = UDim2.new(1, 0, 1, -107)
local tabSwitchersScrollingFrame = Instance.new("ScrollingFrame")
tabSwitchersScrollingFrame.Name = "TabSwitchersScrollingFrame"
tabSwitchersScrollingFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
tabSwitchersScrollingFrame.BottomImage = ""
tabSwitchersScrollingFrame.CanvasSize = UDim2.new()
tabSwitchersScrollingFrame.ScrollBarImageTransparency = 0.8
tabSwitchersScrollingFrame.ScrollBarThickness = 1
tabSwitchersScrollingFrame.TopImage = ""
tabSwitchersScrollingFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabSwitchersScrollingFrame.BackgroundTransparency = 1
tabSwitchersScrollingFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabSwitchersScrollingFrame.BorderSizePixel = 0
tabSwitchersScrollingFrame.Size = UDim2.fromScale(1, 1)
local tabSwitchersScrollingFrameUIListLayout = Instance.new("UIListLayout")
tabSwitchersScrollingFrameUIListLayout.Name = "TabSwitchersScrollingFrameUIListLayout"
tabSwitchersScrollingFrameUIListLayout.Padding = UDim.new(0, 17)
tabSwitchersScrollingFrameUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
tabSwitchersScrollingFrameUIListLayout.Parent = tabSwitchersScrollingFrame
local tabSwitchersScrollingFrameUIPadding = Instance.new("UIPadding")
tabSwitchersScrollingFrameUIPadding.Name = "TabSwitchersScrollingFrameUIPadding"
tabSwitchersScrollingFrameUIPadding.PaddingTop = UDim.new(0, 2)
tabSwitchersScrollingFrameUIPadding.Parent = tabSwitchersScrollingFrame
tabSwitchersScrollingFrame.Parent = tabSwitchers
tabSwitchers.Parent = sidebarGroup
sidebarGroup.Parent = sidebar
sidebar.Parent = base
local content = Instance.new("Frame")
content.Name = "Content"
content.AnchorPoint = Vector2.new(1, 0)
content.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
content.BackgroundTransparency = 1
content.BorderColor3 = Color3.fromRGB(0, 0, 0)
content.BorderSizePixel = 0
content.Position = UDim2.fromScale(1, 4.69e-08)
content.Size = UDim2.new(0, (base.AbsoluteSize.X - sidebar.AbsoluteSize.X), 1, 0)
local resizingContent = false
local defaultSidebarWidth = sidebar.AbsoluteSize.X
local initialMouseX, initialSidebarWidth
local snapRange = 20
local minSidebarWidth = 107
local maxSidebarWidth = base.AbsoluteSize.X - minSidebarWidth
local TweenSettings = {
DefaultTransparency = 0.9,
HoverTransparency = 0.85,
EasingStyle = Enum.EasingStyle.Sine
}
local function ChangeState(State)
Tween(divider, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
BackgroundTransparency = State == "Idle" and TweenSettings.DefaultTransparency or TweenSettings.HoverTransparency
}):Play()
end
dividerInteract.MouseEnter:Connect(function()
ChangeState("Hover")
end)
dividerInteract.MouseLeave:Connect(function()
ChangeState("Idle")
end)
dividerInteract.MouseButton1Down:Connect(function()
resizingContent = true
initialMouseX = UserInputService:GetMouseLocation().X
initialSidebarWidth = sidebar.AbsoluteSize.X
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
resizingContent = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if resizingContent and input.UserInputType == Enum.UserInputType.MouseMovement then
local deltaX = UserInputService:GetMouseLocation().X - initialMouseX
local newSidebarWidth = initialSidebarWidth + deltaX
if math.abs(newSidebarWidth - defaultSidebarWidth) < snapRange then
newSidebarWidth = defaultSidebarWidth
else
newSidebarWidth = math.clamp(newSidebarWidth, minSidebarWidth, maxSidebarWidth)
end
sidebar.Size = UDim2.new(0, newSidebarWidth, 1, 0)
content.Size = UDim2.new(0, base.AbsoluteSize.X - newSidebarWidth, 1, 0)
end
end)
local topbar = Instance.new("Frame")
topbar.Name = "Topbar"
topbar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
topbar.BackgroundTransparency = 1
topbar.BorderColor3 = Color3.fromRGB(0, 0, 0)
topbar.BorderSizePixel = 0
topbar.Size = UDim2.new(1, 0, 0, 63)
local divider4 = Instance.new("Frame")
divider4.Name = "Divider"
divider4.AnchorPoint = Vector2.new(0, 1)
divider4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider4.BackgroundTransparency = 0.9
divider4.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider4.BorderSizePixel = 0
divider4.Position = UDim2.fromScale(0, 1)
divider4.Size = UDim2.new(1, 0, 0, 1)
divider4.Parent = topbar
local elements = Instance.new("Frame")
elements.Name = "Elements"
elements.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
elements.BackgroundTransparency = 1
elements.BorderColor3 = Color3.fromRGB(0, 0, 0)
elements.BorderSizePixel = 0
elements.Size = UDim2.fromScale(1, 1)
local uIPadding2 = Instance.new("UIPadding")
uIPadding2.Name = "UIPadding"
uIPadding2.PaddingLeft = UDim.new(0, 20)
uIPadding2.PaddingRight = UDim.new(0, 20)
uIPadding2.Parent = elements
local moveIcon = Instance.new("ImageButton")
moveIcon.Name = "MoveIcon"
moveIcon.Image = assets.transform
moveIcon.ImageTransparency = 0.7
moveIcon.AnchorPoint = Vector2.new(1, 0.5)
moveIcon.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
moveIcon.BackgroundTransparency = 1
moveIcon.BorderColor3 = Color3.fromRGB(0, 0, 0)
moveIcon.BorderSizePixel = 0
moveIcon.Position = UDim2.fromScale(1, 0.5)
moveIcon.Size = UDim2.fromOffset(15, 15)
moveIcon.Parent = elements
moveIcon.Visible = not Settings.DragStyle or Settings.DragStyle == 1
local interact = Instance.new("TextButton")
interact.Name = "Interact"
interact.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
interact.Text = ""
interact.TextColor3 = Color3.fromRGB(0, 0, 0)
interact.TextSize = 14
interact.AnchorPoint = Vector2.new(0.5, 0.5)
interact.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
interact.BackgroundTransparency = 1
interact.BorderColor3 = Color3.fromRGB(0, 0, 0)
interact.BorderSizePixel = 0
interact.Position = UDim2.fromScale(0.5, 0.5)
interact.Size = UDim2.fromOffset(40, 40)
interact.Parent = moveIcon
local function ChangemoveIconState(State)
if State == "Default" then
Tween(moveIcon, TweenInfo.new(0.2, Enum.EasingStyle.Sine), {
ImageTransparency = 0.7
}):Play()
elseif State == "Hover" then
Tween(moveIcon, TweenInfo.new(0.2, Enum.EasingStyle.Sine), {
ImageTransparency = 0.4
}):Play()
end
end
interact.MouseEnter:Connect(function()
ChangemoveIconState("Hover")
end)
interact.MouseLeave:Connect(function()
ChangemoveIconState("Default")
end)
local dragging_ = false
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
base.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
local function onDragStart(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging_ = true
dragStart = input.Position
startPos = base.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging_ = false
end
end)
end
end
local function onDragUpdate(input)
if dragging_ and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
dragInput = input
end
end
if not Settings.DragStyle or Settings.DragStyle == 1 then
interact.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
onDragStart(input)
end
end)
interact.InputChanged:Connect(onDragUpdate)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging_ then
update(input)
end
end)
interact.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging_ = false
end
end)
elseif Settings.DragStyle == 2 then
base.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
onDragStart(input)
end
end)
base.InputChanged:Connect(onDragUpdate)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging_ then
update(input)
end
end)
base.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging_ = false
end
end)
end
local currentTab = Instance.new("TextLabel")
currentTab.Name = "CurrentTab"
currentTab.FontFace = Font.new(assets.interFont)
currentTab.RichText = true
currentTab.Text = ""
currentTab.RichText = true
currentTab.TextColor3 = Color3.fromRGB(255, 255, 255)
currentTab.TextSize = 15
currentTab.TextTransparency = 0.5
currentTab.TextTruncate = Enum.TextTruncate.SplitWord
currentTab.TextXAlignment = Enum.TextXAlignment.Left
currentTab.TextYAlignment = Enum.TextYAlignment.Top
currentTab.AnchorPoint = Vector2.new(0, 0.5)
currentTab.AutomaticSize = Enum.AutomaticSize.Y
currentTab.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
currentTab.BackgroundTransparency = 1
currentTab.BorderColor3 = Color3.fromRGB(0, 0, 0)
currentTab.BorderSizePixel = 0
currentTab.Position = UDim2.fromScale(0, 0.5)
currentTab.Size = UDim2.fromScale(0.9, 0)
currentTab.Parent = elements
elements.Parent = topbar
topbar.Parent = content
content.Parent = base
local globalSettings = Instance.new("Frame")
globalSettings.Name = "GlobalSettings"
globalSettings.AutomaticSize = Enum.AutomaticSize.XY
globalSettings.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
globalSettings.BorderColor3 = Color3.fromRGB(0, 0, 0)
globalSettings.BorderSizePixel = 0
globalSettings.Position = UDim2.fromScale(0.298, 0.104)
local globalSettingsUIStroke = Instance.new("UIStroke")
globalSettingsUIStroke.Name = "GlobalSettingsUIStroke"
globalSettingsUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
globalSettingsUIStroke.Color = Color3.fromRGB(255, 255, 255)
globalSettingsUIStroke.Transparency = 0.9
globalSettingsUIStroke.Parent = globalSettings
local globalSettingsUICorner = Instance.new("UICorner")
globalSettingsUICorner.Name = "GlobalSettingsUICorner"
globalSettingsUICorner.CornerRadius = UDim.new(0, 10)
globalSettingsUICorner.Parent = globalSettings
local globalSettingsUIPadding = Instance.new("UIPadding")
globalSettingsUIPadding.Name = "GlobalSettingsUIPadding"
globalSettingsUIPadding.PaddingBottom = UDim.new(0, 10)
globalSettingsUIPadding.PaddingTop = UDim.new(0, 10)
globalSettingsUIPadding.Parent = globalSettings
local globalSettingsUIListLayout = Instance.new("UIListLayout")
globalSettingsUIListLayout.Name = "GlobalSettingsUIListLayout"
globalSettingsUIListLayout.Padding = UDim.new(0, 5)
globalSettingsUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
globalSettingsUIListLayout.Parent = globalSettings
local globalSettingsUIScale = Instance.new("UIScale")
globalSettingsUIScale.Name = "GlobalSettingsUIScale"
globalSettingsUIScale.Scale = 1e-07
globalSettingsUIScale.Parent = globalSettings
globalSettings.Parent = base
base.Parent = macLib
function WindowFunctions:UpdateTitle(NewTitle)
title.Text = NewTitle
end
function WindowFunctions:UpdateSubtitle(NewSubtitle)
subtitle.Text = NewSubtitle
end
local hovering
local toggled = globalSettingsUIScale.Scale == 1 and true or false
local function toggle()
if not toggled then
local intween = Tween(globalSettingsUIScale, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {
Scale = 1
})
intween:Play()
intween.Completed:Wait()
toggled = true
elseif toggled then
local outtween = Tween(globalSettingsUIScale, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {
Scale = 0
})
outtween:Play()
outtween.Completed:Wait()
toggled = false
end
end
globalSettingsButton.MouseButton1Click:Connect(function()
if not hasGlobalSetting then return end
toggle()
end)
globalSettings.MouseEnter:Connect(function()
hovering = true
end)
globalSettings.MouseLeave:Connect(function()
hovering = false
end)
UserInputService.InputEnded:Connect(function(inp)
if inp.UserInputType == Enum.UserInputType.MouseButton1 and toggled and not hovering then
toggle()
end
end)
local BlurTarget = base
local HS = HttpService
local camera = workspace.CurrentCamera
local MTREL = "Glass"
local binds = {}
local wedgeguid = HS:GenerateGUID(true)
local DepthOfField
for _,v in pairs(Lighting:GetChildren()) do
if not v:IsA("DepthOfFieldEffect") and v:HasTag(".") then
DepthOfField = Instance.new('DepthOfFieldEffect')
DepthOfField.FarIntensity = 0
DepthOfField.FocusDistance = 51.6
DepthOfField.InFocusRadius = 50
DepthOfField.NearIntensity = 1
DepthOfField.Name = HS:GenerateGUID(true)
DepthOfField:AddTag(".")
elseif v:IsA("DepthOfFieldEffect") and v:HasTag(".") then
DepthOfField = v
end
end
if not DepthOfField then
DepthOfField = Instance.new('DepthOfFieldEffect')
DepthOfField.FarIntensity = 0
DepthOfField.FocusDistance = 51.6
DepthOfField.InFocusRadius = 50
DepthOfField.NearIntensity = 1
DepthOfField.Name = HS:GenerateGUID(true)
DepthOfField:AddTag(".")
end
local frame = Instance.new('Frame')
frame.Parent = BlurTarget
frame.Size = UDim2.new(0.97, 0, 0.97, 0)
frame.Position = UDim2.new(0.5, 0, 0.5, 0)
frame.AnchorPoint = Vector2.new(0.5, 0.5)
frame.BackgroundTransparency = 1
frame.Name = HS:GenerateGUID(true)
do
local function IsNotNaN(x)
return x == x
end
local continue = IsNotNaN(camera:ScreenPointToRay(0,0).Origin.x)
while not continue do
RunService.RenderStepped:Wait()
continue = IsNotNaN(camera:ScreenPointToRay(0,0).Origin.x)
end
end
local DrawQuad; do
local acos, max, pi, sqrt = math.acos, math.max, math.pi, math.sqrt
local sz = 0.2
local function DrawTriangle(v1, v2, v3, p0, p1)
local s1 = (v1 - v2).magnitude
local s2 = (v2 - v3).magnitude
local s3 = (v3 - v1).magnitude
local smax = max(s1, s2, s3)
local A, B, C
if s1 == smax then
A, B, C = v1, v2, v3
elseif s2 == smax then
A, B, C = v2, v3, v1
elseif s3 == smax then
A, B, C = v3, v1, v2
end
local para = ( (B-A).x*(C-A).x + (B-A).y*(C-A).y + (B-A).z*(C-A).z ) / (A-B).magnitude
local perp = sqrt((C-A).magnitude^2 - para*para)
local dif_para = (A - B).magnitude - para
local st = CFrame.new(B, A)
local za = CFrame.Angles(pi/2,0,0)
local cf0 = st
local Top_Look = (cf0 * za).lookVector
local Mid_Point = A + CFrame.new(A, B).lookVector * para
local Needed_Look = CFrame.new(Mid_Point, C).lookVector
local dot = Top_Look.x*Needed_Look.x + Top_Look.y*Needed_Look.y + Top_Look.z*Needed_Look.z
local ac = CFrame.Angles(0, 0, acos(dot))
cf0 = cf0 * ac
if ((cf0 * za).lookVector - Needed_Look).magnitude > 0.01 then
cf0 = cf0 * CFrame.Angles(0, 0, -2*acos(dot))
end
cf0 = cf0 * CFrame.new(0, perp/2, -(dif_para + para/2))
local cf1 = st * ac * CFrame.Angles(0, pi, 0)
if ((cf1 * za).lookVector - Needed_Look).magnitude > 0.01 then
cf1 = cf1 * CFrame.Angles(0, 0, 2*acos(dot))
end
cf1 = cf1 * CFrame.new(0, perp/2, dif_para/2)
if not p0 then
p0 = Instance.new('Part')
p0.FormFactor = 'Custom'
p0.TopSurface = 0
p0.BottomSurface = 0
p0.Anchored = true
p0.CanCollide = false
p0.CastShadow = false
p0.Material = MTREL
p0.Size = Vector3.new(sz, sz, sz)
p0.Name = HS:GenerateGUID(true)
local mesh = Instance.new('SpecialMesh', p0)
mesh.MeshType = 2
mesh.Name = wedgeguid
end
p0[wedgeguid].Scale = Vector3.new(0, perp/sz, para/sz)
p0.CFrame = cf0
if not p1 then
p1 = p0:clone()
end
p1[wedgeguid].Scale = Vector3.new(0, perp/sz, dif_para/sz)
p1.CFrame = cf1
return p0, p1
end
function DrawQuad(v1, v2, v3, v4, parts)
parts[1], parts[2] = DrawTriangle(v1, v2, v3, parts[1], parts[2])
parts[3], parts[4] = DrawTriangle(v3, v2, v4, parts[3], parts[4])
end
end
if binds[frame] then
return binds[frame].parts
end
local parts = {}
local parents = {}
do
local function add(child)
if child:IsA'GuiObject' then
parents[#parents + 1] = child
add(child.Parent)
end
end
add(frame)
end
local function IsVisible(instance)
while instance do
if instance:IsA("GuiObject") then
if not instance.Visible then
return false
end
elseif instance:IsA("ScreenGui") then
if not instance.Enabled then
return false
end
break
end
instance = instance.Parent
end
return true
end
local function UpdateOrientation(fetchProps)
if not IsVisible(frame) or not acrylicBlur or unloaded then
for _, pt in pairs(parts) do
pt.Parent = nil
DepthOfField.Enabled = false
DepthOfField.Parent = nil
end
return
end
if not DepthOfField.Parent then
DepthOfField.Parent = Lighting
end
DepthOfField.Enabled = true
local properties = {
Transparency = 0.98;
BrickColor = BrickColor.new('Institutional white');
}
local zIndex = 1 - 0.05*frame.ZIndex
local tl, br = frame.AbsolutePosition, frame.AbsolutePosition + frame.AbsoluteSize
local tr, bl = Vector2.new(br.x, tl.y), Vector2.new(tl.x, br.y)
do
local rot = 0;
for _, v in ipairs(parents) do
rot = rot + v.Rotation
end
if rot ~= 0 and rot%180 ~= 0 then
local mid = tl:lerp(br, 0.5)
local s, c = math.sin(math.rad(rot)), math.cos(math.rad(rot))
local vec = tl
tl = Vector2.new(c*(tl.x - mid.x) - s*(tl.y - mid.y), s*(tl.x - mid.x) + c*(tl.y - mid.y)) + mid
tr = Vector2.new(c*(tr.x - mid.x) - s*(tr.y - mid.y), s*(tr.x - mid.x) + c*(tr.y - mid.y)) + mid
bl = Vector2.new(c*(bl.x - mid.x) - s*(bl.y - mid.y), s*(bl.x - mid.x) + c*(bl.y - mid.y)) + mid
br = Vector2.new(c*(br.x - mid.x) - s*(br.y - mid.y), s*(br.x - mid.x) + c*(br.y - mid.y)) + mid
end
end
DrawQuad(
camera:ScreenPointToRay(tl.x, tl.y, zIndex).Origin,
camera:ScreenPointToRay(tr.x, tr.y, zIndex).Origin,
camera:ScreenPointToRay(bl.x, bl.y, zIndex).Origin,
camera:ScreenPointToRay(br.x, br.y, zIndex).Origin,
parts
)
if fetchProps then
for _, pt in pairs(parts) do
pt.Parent = camera
end
for propName, propValue in pairs(properties) do
for _, pt in pairs(parts) do
pt[propName] = propValue
end
end
end
end
UpdateOrientation(true)
RunService.RenderStepped:Connect(UpdateOrientation)
function WindowFunctions:GlobalSetting(Settings)
hasGlobalSetting = true
local GlobalSettingFunctions = {}
local globalSetting = Instance.new("TextButton")
globalSetting.Name = "GlobalSetting"
globalSetting.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
globalSetting.Text = ""
globalSetting.TextColor3 = Color3.fromRGB(0, 0, 0)
globalSetting.TextSize = 14
globalSetting.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
globalSetting.BackgroundTransparency = 1
globalSetting.BorderColor3 = Color3.fromRGB(0, 0, 0)
globalSetting.BorderSizePixel = 0
globalSetting.Size = UDim2.fromOffset(200, 30)
local globalSettingToggleUIPadding = Instance.new("UIPadding")
globalSettingToggleUIPadding.Name = "GlobalSettingToggleUIPadding"
globalSettingToggleUIPadding.PaddingLeft = UDim.new(0, 15)
globalSettingToggleUIPadding.Parent = globalSetting
local settingName = Instance.new("TextLabel")
settingName.Name = "SettingName"
settingName.FontFace = Font.new(assets.interFont)
settingName.Text = Settings.Name
settingName.RichText = true
settingName.TextColor3 = Color3.fromRGB(255, 255, 255)
settingName.TextSize = 13
settingName.TextTransparency = 0.5
settingName.TextTruncate = Enum.TextTruncate.SplitWord
settingName.TextXAlignment = Enum.TextXAlignment.Left
settingName.TextYAlignment = Enum.TextYAlignment.Top
settingName.AnchorPoint = Vector2.new(0, 0.5)
settingName.AutomaticSize = Enum.AutomaticSize.Y
settingName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
settingName.BackgroundTransparency = 1
settingName.BorderColor3 = Color3.fromRGB(0, 0, 0)
settingName.BorderSizePixel = 0
settingName.Position = UDim2.fromScale(1.3e-07, 0.5)
settingName.Size = UDim2.new(1,-40,0,0)
settingName.Parent = globalSetting
local globalSettingToggleUIListLayout = Instance.new("UIListLayout")
globalSettingToggleUIListLayout.Name = "GlobalSettingToggleUIListLayout"
globalSettingToggleUIListLayout.Padding = UDim.new(0, 10)
globalSettingToggleUIListLayout.FillDirection = Enum.FillDirection.Horizontal
globalSettingToggleUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
globalSettingToggleUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
globalSettingToggleUIListLayout.Parent = globalSetting
local checkmark = Instance.new("TextLabel")
checkmark.Name = "Checkmark"
checkmark.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
checkmark.Text = "✓"
checkmark.TextColor3 = Color3.fromRGB(255, 255, 255)
checkmark.TextSize = 13
checkmark.TextTransparency = 1
checkmark.TextXAlignment = Enum.TextXAlignment.Left
checkmark.TextYAlignment = Enum.TextYAlignment.Top
checkmark.AnchorPoint = Vector2.new(0, 0.5)
checkmark.AutomaticSize = Enum.AutomaticSize.Y
checkmark.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
checkmark.BackgroundTransparency = 1
checkmark.BorderColor3 = Color3.fromRGB(0, 0, 0)
checkmark.BorderSizePixel = 0
checkmark.LayoutOrder = -1
checkmark.Position = UDim2.fromScale(1.3e-07, 0.5)
checkmark.Size = UDim2.fromOffset(-10, 0)
checkmark.Parent = globalSetting
globalSetting.Parent = globalSettings
local tweensettings = {
duration = 0.2,
easingStyle = Enum.EasingStyle.Quint,
transparencyIn = 0.2,
transparencyOut = 0.5,
checkSizeIncrease = 12,
checkSizeDecrease = -globalSettingToggleUIListLayout.Padding.Offset,
waitTime = 1
}
local tweens = {
checkIn = Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeIncrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}),
checkOut = Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeDecrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}),
nameIn = Tween(settingName, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
TextTransparency = tweensettings.transparencyIn
}),
nameOut = Tween(settingName, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
TextTransparency = tweensettings.transparencyOut
})
}
local function Toggle(State)
if not State then
tweens.checkOut:Play()
tweens.nameOut:Play()
checkmark:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
if checkmark.AbsoluteSize.X <= 0 then
checkmark.TextTransparency = 1
end
end)
else
tweens.checkIn:Play()
tweens.nameIn:Play()
checkmark:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
if checkmark.AbsoluteSize.X > 0 then
checkmark.TextTransparency = 0
end
end)
end
end
local toggled = Settings.Default
Toggle(toggled)
globalSetting.MouseButton1Click:Connect(function()
toggled = not toggled
Toggle(toggled)
task.spawn(function()
if Settings.Callback then
Settings.Callback(toggled)
end
end)
end)
function GlobalSettingFunctions:UpdateName(NewName)
settingName.Text = NewName
end
function GlobalSettingFunctions:UpdateState(NewState)
Toggle(NewState)
toggled = NewState
end
return GlobalSettingFunctions
end
function WindowFunctions:TabGroup()
local SectionFunctions = {}
local tabGroup = Instance.new("Frame")
tabGroup.Name = "Section"
tabGroup.AutomaticSize = Enum.AutomaticSize.Y
tabGroup.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabGroup.BackgroundTransparency = 1
tabGroup.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabGroup.BorderSizePixel = 0
tabGroup.Size = UDim2.fromScale(1, 0)
local divider3 = Instance.new("Frame")
divider3.Name = "Divider"
divider3.AnchorPoint = Vector2.new(0.5, 1)
divider3.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider3.BackgroundTransparency = 0.9
divider3.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider3.BorderSizePixel = 0
divider3.Position = UDim2.fromScale(0.5, 1)
divider3.Size = UDim2.new(1, -21, 0, 1)
divider3.Parent = tabGroup
local sectionTabSwitchers = Instance.new("Frame")
sectionTabSwitchers.Name = "SectionTabSwitchers"
sectionTabSwitchers.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sectionTabSwitchers.BackgroundTransparency = 1
sectionTabSwitchers.BorderColor3 = Color3.fromRGB(0, 0, 0)
sectionTabSwitchers.BorderSizePixel = 0
sectionTabSwitchers.Size = UDim2.fromScale(1, 1)
local uIListLayout1 = Instance.new("UIListLayout")
uIListLayout1.Name = "UIListLayout"
uIListLayout1.Padding = UDim.new(0, 15)
uIListLayout1.HorizontalAlignment = Enum.HorizontalAlignment.Center
uIListLayout1.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout1.Parent = sectionTabSwitchers
local uIPadding1 = Instance.new("UIPadding")
uIPadding1.Name = "UIPadding"
uIPadding1.PaddingBottom = UDim.new(0, 15)
uIPadding1.Parent = sectionTabSwitchers
sectionTabSwitchers.Parent = tabGroup
tabGroup.Parent = tabSwitchersScrollingFrame
function SectionFunctions:Tab(Settings)
local TabFunctions = {Settings = Settings}
local tabSwitcher = Instance.new("TextButton")
tabSwitcher.Name = "TabSwitcher"
tabSwitcher.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
tabSwitcher.Text = ""
tabSwitcher.TextColor3 = Color3.fromRGB(0, 0, 0)
tabSwitcher.TextSize = 14
tabSwitcher.AutoButtonColor = false
tabSwitcher.AnchorPoint = Vector2.new(0.5, 0)
tabSwitcher.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabSwitcher.BackgroundTransparency = 1
tabSwitcher.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabSwitcher.BorderSizePixel = 0
tabSwitcher.Position = UDim2.fromScale(0.5, 0)
tabSwitcher.Size = UDim2.new(1, -21, 0, 40)
tabIndex += 1
tabSwitcher.LayoutOrder = tabIndex
local tabSwitcherUICorner = Instance.new("UICorner")
tabSwitcherUICorner.Name = "TabSwitcherUICorner"
tabSwitcherUICorner.Parent = tabSwitcher
local tabSwitcherUIStroke = Instance.new("UIStroke")
tabSwitcherUIStroke.Name = "TabSwitcherUIStroke"
tabSwitcherUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
tabSwitcherUIStroke.Color = Color3.fromRGB(255, 255, 255)
tabSwitcherUIStroke.Transparency = 1
tabSwitcherUIStroke.Parent = tabSwitcher
local tabSwitcherUIListLayout = Instance.new("UIListLayout")
tabSwitcherUIListLayout.Name = "TabSwitcherUIListLayout"
tabSwitcherUIListLayout.Padding = UDim.new(0, 9)
tabSwitcherUIListLayout.FillDirection = Enum.FillDirection.Horizontal
tabSwitcherUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
tabSwitcherUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
tabSwitcherUIListLayout.Parent = tabSwitcher
local tabImage
if Settings.Image then
tabImage = Instance.new("ImageLabel")
tabImage.Name = "TabImage"
tabImage.Image = Settings.Image
tabImage.ImageTransparency = 0.5
tabImage.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabImage.BackgroundTransparency = 1
tabImage.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabImage.BorderSizePixel = 0
tabImage.Size = UDim2.fromOffset(18, 18)
tabImage.Parent = tabSwitcher
end
local tabSwitcherName = Instance.new("TextLabel")
tabSwitcherName.Name = "TabSwitcherName"
tabSwitcherName.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
tabSwitcherName.Text = Settings.Name
tabSwitcherName.RichText = true
tabSwitcherName.TextColor3 = Color3.fromRGB(255, 255, 255)
tabSwitcherName.TextSize = 16
tabSwitcherName.TextTransparency = 0.5
tabSwitcherName.TextTruncate = Enum.TextTruncate.SplitWord
tabSwitcherName.TextXAlignment = Enum.TextXAlignment.Left
tabSwitcherName.TextYAlignment = Enum.TextYAlignment.Top
tabSwitcherName.AutomaticSize = Enum.AutomaticSize.Y
tabSwitcherName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tabSwitcherName.BackgroundTransparency = 1
tabSwitcherName.BorderColor3 = Color3.fromRGB(0, 0, 0)
tabSwitcherName.BorderSizePixel = 0
tabSwitcherName.Size = UDim2.fromScale(1, 0)
tabSwitcherName.Parent = tabSwitcher
tabSwitcherName.LayoutOrder = 1
local tabSwitcherUIPadding = Instance.new("UIPadding")
tabSwitcherUIPadding.Name = "TabSwitcherUIPadding"
tabSwitcherUIPadding.PaddingLeft = UDim.new(0, 24)
tabSwitcherUIPadding.PaddingRight = UDim.new(0, 35)
tabSwitcherUIPadding.PaddingTop = UDim.new(0, 1)
tabSwitcherUIPadding.Parent = tabSwitcher
tabSwitcher.Parent = sectionTabSwitchers
local elements1 = Instance.new("Frame")
elements1.Name = "Elements"
elements1.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
elements1.BackgroundTransparency = 1
elements1.BorderColor3 = Color3.fromRGB(0, 0, 0)
elements1.BorderSizePixel = 0
elements1.Position = UDim2.fromOffset(0, 63)
elements1.Size = UDim2.new(1, 0, 1, -63)
elements1.ClipsDescendants = true
local elementsUIPadding = Instance.new("UIPadding")
elementsUIPadding.Name = "ElementsUIPadding"
elementsUIPadding.PaddingRight = UDim.new(0, 5)
elementsUIPadding.PaddingTop = UDim.new(0, 10)
elementsUIPadding.PaddingBottom = UDim.new(0, 10)
elementsUIPadding.Parent = elements1
local elementsScrolling = Instance.new("ScrollingFrame")
elementsScrolling.Name = "ElementsScrolling"
elementsScrolling.AutomaticCanvasSize = Enum.AutomaticSize.Y
elementsScrolling.BottomImage = ""
elementsScrolling.CanvasSize = UDim2.new()
elementsScrolling.ScrollBarImageTransparency = 0.5
elementsScrolling.ScrollBarThickness = 1
elementsScrolling.TopImage = ""
elementsScrolling.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
elementsScrolling.BackgroundTransparency = 1
elementsScrolling.BorderColor3 = Color3.fromRGB(0, 0, 0)
elementsScrolling.BorderSizePixel = 0
elementsScrolling.Size = UDim2.fromScale(1, 1)
elementsScrolling.ClipsDescendants = false
local elementsScrollingUIPadding = Instance.new("UIPadding")
elementsScrollingUIPadding.Name = "ElementsScrollingUIPadding"
elementsScrollingUIPadding.PaddingBottom = UDim.new(0, 5)
elementsScrollingUIPadding.PaddingLeft = UDim.new(0, 11)
elementsScrollingUIPadding.PaddingRight = UDim.new(0, 3)
elementsScrollingUIPadding.PaddingTop = UDim.new(0, 5)
elementsScrollingUIPadding.Parent = elementsScrolling
local elementsScrollingUIListLayout = Instance.new("UIListLayout")
elementsScrollingUIListLayout.Name = "ElementsScrollingUIListLayout"
elementsScrollingUIListLayout.Padding = UDim.new(0, 15)
elementsScrollingUIListLayout.FillDirection = Enum.FillDirection.Horizontal
elementsScrollingUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
elementsScrollingUIListLayout.Parent = elementsScrolling
local left = Instance.new("Frame")
left.Name = "Left"
left.AutomaticSize = Enum.AutomaticSize.Y
left.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
left.BackgroundTransparency = 1
left.BorderColor3 = Color3.fromRGB(0, 0, 0)
left.BorderSizePixel = 0
left.Position = UDim2.fromScale(0.512, 0)
left.Size = UDim2.new(0.5, -10, 0, 0)
local leftUIListLayout = Instance.new("UIListLayout")
leftUIListLayout.Name = "LeftUIListLayout"
leftUIListLayout.Padding = UDim.new(0, 15)
leftUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
leftUIListLayout.Parent = left
left.Parent = elementsScrolling
local right = Instance.new("Frame")
right.Name = "Right"
right.AutomaticSize = Enum.AutomaticSize.Y
right.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
right.BackgroundTransparency = 1
right.BorderColor3 = Color3.fromRGB(0, 0, 0)
right.BorderSizePixel = 0
right.LayoutOrder = 1
right.Position = UDim2.fromScale(0.512, 0)
right.Size = UDim2.new(0.5, -10, 0, 0)
local rightUIListLayout = Instance.new("UIListLayout")
rightUIListLayout.Name = "RightUIListLayout"
rightUIListLayout.Padding = UDim.new(0, 15)
rightUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
rightUIListLayout.Parent = right
right.Parent = elementsScrolling
elementsScrolling.Parent = elements1
function TabFunctions:Section(Settings)
local SectionFunctions = {}
local section = Instance.new("Frame")
section.Name = "Section"
section.AutomaticSize = Enum.AutomaticSize.Y
section.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
section.BackgroundTransparency = 0.98
section.BorderColor3 = Color3.fromRGB(0, 0, 0)
section.BorderSizePixel = 0
section.Position = UDim2.fromScale(0, 6.78e-08)
section.Size = UDim2.fromScale(1, 0)
section.ClipsDescendants = true
section.Parent = Settings.Side == "Left" and left or right
local sectionUICorner = Instance.new("UICorner")
sectionUICorner.Name = "SectionUICorner"
sectionUICorner.Parent = section
local sectionUIStroke = Instance.new("UIStroke")
sectionUIStroke.Name = "SectionUIStroke"
sectionUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
sectionUIStroke.Color = Color3.fromRGB(255, 255, 255)
sectionUIStroke.Transparency = 0.95
sectionUIStroke.Parent = section
local sectionUIListLayout = Instance.new("UIListLayout")
sectionUIListLayout.Name = "SectionUIListLayout"
sectionUIListLayout.Padding = UDim.new(0, 10)
sectionUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
sectionUIListLayout.Parent = section
local sectionUIPadding = Instance.new("UIPadding")
sectionUIPadding.Name = "SectionUIPadding"
sectionUIPadding.PaddingBottom = UDim.new(0, 20)
sectionUIPadding.PaddingLeft = UDim.new(0, 20)
sectionUIPadding.PaddingRight = UDim.new(0, 18)
sectionUIPadding.PaddingTop = UDim.new(0, 22)
sectionUIPadding.Parent = section
function SectionFunctions:Button(Settings, Flag)
local ButtonFunctions = {Settings = Settings}
local button = Instance.new("Frame")
button.Name = "Button"
button.AutomaticSize = Enum.AutomaticSize.Y
button.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
button.BackgroundTransparency = 1
button.BorderColor3 = Color3.fromRGB(0, 0, 0)
button.BorderSizePixel = 0
button.Size = UDim2.new(1, 0, 0, 38)
button.Parent = section
local buttonInteract = Instance.new("TextButton")
buttonInteract.Name = "ButtonInteract"
buttonInteract.FontFace = Font.new(assets.interFont)
buttonInteract.RichText = true
buttonInteract.TextColor3 = Color3.fromRGB(255, 255, 255)
buttonInteract.TextSize = 13
buttonInteract.TextTransparency = 0.5
buttonInteract.TextTruncate = Enum.TextTruncate.AtEnd
buttonInteract.TextXAlignment = Enum.TextXAlignment.Left
buttonInteract.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
buttonInteract.BackgroundTransparency = 1
buttonInteract.BorderColor3 = Color3.fromRGB(0, 0, 0)
buttonInteract.BorderSizePixel = 0
buttonInteract.Size = UDim2.fromScale(1, 1)
buttonInteract.Parent = button
buttonInteract.Text = ButtonFunctions.Settings.Name
local buttonImage = Instance.new("ImageLabel")
buttonImage.Name = "ButtonImage"
buttonImage.Image = assets.buttonImage
buttonImage.ImageTransparency = 0.5
buttonImage.AnchorPoint = Vector2.new(1, 0.5)
buttonImage.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
buttonImage.BackgroundTransparency = 1
buttonImage.BorderColor3 = Color3.fromRGB(0, 0, 0)
buttonImage.BorderSizePixel = 0
buttonImage.Position = UDim2.fromScale(1, 0.5)
buttonImage.Size = UDim2.fromOffset(15, 15)
buttonImage.Parent = button
local TweenSettings = {
DefaultTransparency = 0.5,
HoverTransparency = 0.3,
EasingStyle = Enum.EasingStyle.Sine
}
local function ChangeState(State)
if State == "Idle" then
Tween(buttonInteract, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
TextTransparency = TweenSettings.DefaultTransparency
}):Play()
Tween(buttonImage, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
ImageTransparency = TweenSettings.DefaultTransparency
}):Play()
elseif State == "Hover" then
Tween(buttonInteract, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
TextTransparency = TweenSettings.HoverTransparency
}):Play()
Tween(buttonImage, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
ImageTransparency = TweenSettings.HoverTransparency
}):Play()
end
end
local function Callback()
if ButtonFunctions.Settings.Callback then
ButtonFunctions.Settings.Callback()
end
end
buttonInteract.MouseEnter:Connect(function()
ChangeState("Hover")
end)
buttonInteract.MouseLeave:Connect(function()
ChangeState("Idle")
end)
buttonInteract.MouseButton1Click:Connect(Callback)
function ButtonFunctions:UpdateName(Name)
buttonInteract.Text = Name
end
function ButtonFunctions:SetVisibility(State)
button.Visible = State
end
if Flag then
MacLib.Options[Flag] = ButtonFunctions
end
return ButtonFunctions
end
function SectionFunctions:Toggle(Settings, Flag)
local ToggleFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Toggle" }
local toggle = Instance.new("Frame")
toggle.Name = "Toggle"
toggle.AutomaticSize = Enum.AutomaticSize.Y
toggle.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
toggle.BackgroundTransparency = 1
toggle.BorderColor3 = Color3.fromRGB(0, 0, 0)
toggle.BorderSizePixel = 0
toggle.Size = UDim2.new(1, 0, 0, 38)
toggle.Parent = section
local toggleName = Instance.new("TextLabel")
toggleName.Name = "ToggleName"
toggleName.FontFace = Font.new(assets.interFont)
toggleName.Text = ToggleFunctions.Settings.Name
toggleName.RichText = true
toggleName.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleName.TextSize = 13
toggleName.TextTransparency = 0.5
toggleName.TextTruncate = Enum.TextTruncate.AtEnd
toggleName.TextXAlignment = Enum.TextXAlignment.Left
toggleName.TextYAlignment = Enum.TextYAlignment.Top
toggleName.AnchorPoint = Vector2.new(0, 0.5)
toggleName.AutomaticSize = Enum.AutomaticSize.Y
toggleName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
toggleName.BackgroundTransparency = 1
toggleName.BorderColor3 = Color3.fromRGB(0, 0, 0)
toggleName.BorderSizePixel = 0
toggleName.Position = UDim2.fromScale(0, 0.5)
toggleName.Size = UDim2.new(1, -50, 0, 0)
toggleName.Parent = toggle
local toggle1 = Instance.new("ImageButton")
toggle1.Name = "Toggle"
toggle1.Image = assets.toggleBackground
toggle1.ImageColor3 = Color3.fromRGB(87, 86, 86)
toggle1.AutoButtonColor = false
toggle1.AnchorPoint = Vector2.new(1, 0.5)
toggle1.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
toggle1.BackgroundTransparency = 1
toggle1.BorderColor3 = Color3.fromRGB(0, 0, 0)
toggle1.BorderSizePixel = 0
toggle1.Position = UDim2.fromScale(1, 0.5)
toggle1.Size = UDim2.fromOffset(41, 21)
toggle1.ImageTransparency = 0.5
local toggleUIPadding = Instance.new("UIPadding")
toggleUIPadding.Name = "ToggleUIPadding"
toggleUIPadding.PaddingBottom = UDim.new(0, 1)
toggleUIPadding.PaddingLeft = UDim.new(0, -2)
toggleUIPadding.PaddingRight = UDim.new(0, 3)
toggleUIPadding.PaddingTop = UDim.new(0, 1)
toggleUIPadding.Parent = toggle1
local togglerHead = Instance.new("ImageLabel")
togglerHead.Name = "TogglerHead"
togglerHead.Image = assets.togglerHead
togglerHead.ImageColor3 = Color3.fromRGB(255, 255, 255)
togglerHead.AnchorPoint = Vector2.new(1, 0.5)
togglerHead.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
togglerHead.BackgroundTransparency = 1
togglerHead.BorderColor3 = Color3.fromRGB(0, 0, 0)
togglerHead.BorderSizePixel = 0
togglerHead.Position = UDim2.fromScale(0.5, 0.5)
togglerHead.Size = UDim2.fromOffset(15, 15)
togglerHead.ZIndex = 2
togglerHead.Parent = toggle1
togglerHead.ImageTransparency = 0.8
toggle1.Parent = toggle
local toggle1Transparency = {Enabled = 0, Disabled = 0.5}
local togglerHeadTransparency = {Enabled = 0, Disabled = 0.85}
local TweenSettings = {
Info = TweenInfo.new(0.15, Enum.EasingStyle.Quad),
EnabledPosition = UDim2.new(1, 0, 0.5, 0),
DisabledPosition = UDim2.new(0.5, 0, 0.5, 0),
}
local togglebool = ToggleFunctions.Settings.Default
local function NewState(State, callback)
local transparencyValues = State and {toggle1Transparency.Enabled, togglerHeadTransparency.Enabled}
or {toggle1Transparency.Disabled, togglerHeadTransparency.Disabled}
local position = State and TweenSettings.EnabledPosition or TweenSettings.DisabledPosition
Tween(toggle1, TweenSettings.Info, {
ImageTransparency = transparencyValues[1]
}):Play()
Tween(togglerHead, TweenSettings.Info, {
ImageTransparency = transparencyValues[2]
}):Play()
Tween(togglerHead, TweenSettings.Info, {
Position = position
}):Play()
ToggleFunctions.State = State
if callback then
callback(togglebool)
end
end
NewState(togglebool)
local function Toggle()
togglebool = not togglebool
NewState(togglebool, ToggleFunctions.Settings.Callback)
end
toggle1.MouseButton1Click:Connect(Toggle)
function ToggleFunctions:Toggle()
Toggle()
end
function ToggleFunctions:UpdateState(State)
togglebool = State
NewState(togglebool, ToggleFunctions.Settings.Callback)
end
function ToggleFunctions:GetState()
return togglebool
end
function ToggleFunctions:UpdateName(Name)
toggleName.Text = Name
end
function ToggleFunctions:SetVisibility(State)
toggle.Visible = State
end
if Flag then
MacLib.Options[Flag] = ToggleFunctions
end
return ToggleFunctions
end
function SectionFunctions:Slider(Settings, Flag)
local SliderFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Slider" }
local slider = Instance.new("Frame")
slider.Name = "Slider"
slider.AutomaticSize = Enum.AutomaticSize.Y
slider.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
slider.BackgroundTransparency = 1
slider.BorderColor3 = Color3.fromRGB(0, 0, 0)
slider.BorderSizePixel = 0
slider.Size = UDim2.new(1, 0, 0, 38)
slider.Parent = section
local sliderName = Instance.new("TextLabel")
sliderName.Name = "SliderName"
sliderName.FontFace = Font.new(assets.interFont)
sliderName.Text = SliderFunctions.Settings.Name
sliderName.RichText = true
sliderName.TextColor3 = Color3.fromRGB(255, 255, 255)
sliderName.TextSize = 13
sliderName.TextTransparency = 0.5
sliderName.TextTruncate = Enum.TextTruncate.AtEnd
sliderName.TextXAlignment = Enum.TextXAlignment.Left
sliderName.TextYAlignment = Enum.TextYAlignment.Top
sliderName.AnchorPoint = Vector2.new(0, 0.5)
sliderName.AutomaticSize = Enum.AutomaticSize.XY
sliderName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderName.BackgroundTransparency = 1
sliderName.BorderColor3 = Color3.fromRGB(0, 0, 0)
sliderName.BorderSizePixel = 0
sliderName.Position = UDim2.fromScale(1.3e-07, 0.5)
sliderName.Parent = slider
local sliderElements = Instance.new("Frame")
sliderElements.Name = "SliderElements"
sliderElements.AnchorPoint = Vector2.new(1, 0)
sliderElements.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderElements.BackgroundTransparency = 1
sliderElements.BorderColor3 = Color3.fromRGB(0, 0, 0)
sliderElements.BorderSizePixel = 0
sliderElements.Position = UDim2.fromScale(1, 0)
sliderElements.Size = UDim2.fromScale(1, 1)
local sliderValue = Instance.new("TextBox")
sliderValue.Name = "SliderValue"
sliderValue.FontFace = Font.new(assets.interFont)
sliderValue.TextColor3 = Color3.fromRGB(255, 255, 255)
sliderValue.TextSize = 12
sliderValue.TextTransparency = 0.1
--sliderValue.TextTruncate = Enum.TextTruncate.AtEnd
sliderValue.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderValue.BackgroundTransparency = 0.95
sliderValue.BorderColor3 = Color3.fromRGB(0, 0, 0)
sliderValue.BorderSizePixel = 0
sliderValue.LayoutOrder = 1
sliderValue.Position = UDim2.fromScale(-0.0789, 0.171)
sliderValue.Size = UDim2.fromOffset(41, 21)
sliderValue.ClipsDescendants = true
local sliderValueUICorner = Instance.new("UICorner")
sliderValueUICorner.Name = "SliderValueUICorner"
sliderValueUICorner.CornerRadius = UDim.new(0, 4)
sliderValueUICorner.Parent = sliderValue
local sliderValueUIStroke = Instance.new("UIStroke")
sliderValueUIStroke.Name = "SliderValueUIStroke"
sliderValueUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
sliderValueUIStroke.Color = Color3.fromRGB(255, 255, 255)
sliderValueUIStroke.Transparency = 0.9
sliderValueUIStroke.Parent = sliderValue
local sliderValueUIPadding = Instance.new("UIPadding")
sliderValueUIPadding.Name = "SliderValueUIPadding"
sliderValueUIPadding.PaddingLeft = UDim.new(0, 2)
sliderValueUIPadding.PaddingRight = UDim.new(0, 2)
sliderValueUIPadding.Parent = sliderValue
sliderValue.Parent = sliderElements
local sliderElementsUIListLayout = Instance.new("UIListLayout")
sliderElementsUIListLayout.Name = "SliderElementsUIListLayout"
sliderElementsUIListLayout.Padding = UDim.new(0, 20)
sliderElementsUIListLayout.FillDirection = Enum.FillDirection.Horizontal
sliderElementsUIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right
sliderElementsUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
sliderElementsUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
sliderElementsUIListLayout.Parent = sliderElements
local sliderBar = Instance.new("ImageLabel")
sliderBar.Name = "SliderBar"
sliderBar.Image = assets.sliderbar
sliderBar.ImageColor3 = Color3.fromRGB(87, 86, 86)
sliderBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderBar.BackgroundTransparency = 1
sliderBar.BorderColor3 = Color3.fromRGB(0, 0, 0)
sliderBar.BorderSizePixel = 0
sliderBar.Position = UDim2.fromScale(0.219, 0.457)
sliderBar.Size = UDim2.fromOffset(123, 3)
local sliderHead = Instance.new("ImageButton")
sliderHead.Name = "SliderHead"
sliderHead.Image = assets.sliderhead
sliderHead.AnchorPoint = Vector2.new(0.5, 0.5)
sliderHead.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderHead.BackgroundTransparency = 1
sliderHead.BorderColor3 = Color3.fromRGB(0, 0, 0)
sliderHead.BorderSizePixel = 0
sliderHead.Position = UDim2.fromScale(1, 0.5)
sliderHead.Size = UDim2.fromOffset(12, 12)
sliderHead.Parent = sliderBar
sliderBar.Parent = sliderElements
local sliderElementsUIPadding = Instance.new("UIPadding")
sliderElementsUIPadding.Name = "SliderElementsUIPadding"
sliderElementsUIPadding.PaddingTop = UDim.new(0, 3)
sliderElementsUIPadding.Parent = sliderElements
sliderElements.Parent = slider
local dragging = false
local DisplayMethods = {
Hundredths = function(sliderValue) -- Deprecated use Settings.Precision
return string.format("%.2f", sliderValue)
end,
Tenths = function(sliderValue) -- Deprecated use Settings.Precision
return string.format("%.1f", sliderValue)
end,
Round = function(sliderValue, precision)
if precision then
return string.format("%." .. precision .. "f", sliderValue)
else
return tostring(math.round(sliderValue))
end
end,
Degrees = function(sliderValue, precision)
local formattedValue = precision and string.format("%." .. precision .. "f", sliderValue) or tostring(sliderValue)
return formattedValue .. "°"
end,
Percent = function(sliderValue, precision)
local percentage = (sliderValue - SliderFunctions.Settings.Minimum) / (SliderFunctions.Settings.Maximum - SliderFunctions.Settings.Minimum) * 100
return precision and string.format("%." .. precision .. "f", percentage) .. "%" or tostring(math.round(percentage)) .. "%"
end,
Value = function(sliderValue, precision)
return precision and string.format("%." .. precision .. "f", sliderValue) or tostring(sliderValue)
end
}
local ValueDisplayMethod = DisplayMethods[SliderFunctions.Settings.DisplayMethod] or DisplayMethods.Value
local finalValue
local function SetValue(val, ignorecallback)
local posXScale
if typeof(val) == "Instance" then
local input = val
posXScale = math.clamp((input.Position.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1)
else
local value = val
posXScale = (value - SliderFunctions.Settings.Minimum) / (SliderFunctions.Settings.Maximum - Settings.Minimum)
end
local pos = UDim2.new(posXScale, 0, 0.5, 0)
sliderHead.Position = pos
finalValue = posXScale * (SliderFunctions.Settings.Maximum - SliderFunctions.Settings.Minimum) + Settings.Minimum
sliderValue.Text = (Settings.Prefix or "") .. ValueDisplayMethod(finalValue, SliderFunctions.Settings.Precision) .. (Settings.Suffix or "")
if not ignorecallback then
task.spawn(function()
if SliderFunctions.Settings.Callback then
SliderFunctions.Settings.Callback(finalValue)
end
end)
end
SliderFunctions.Value = finalValue
end
SetValue(SliderFunctions.Settings.Default, true)
sliderHead.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
SetValue(input)
end
end)
sliderHead.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
if SliderFunctions.Settings.onInputComplete then
SliderFunctions.Settings.onInputComplete(finalValue)
end
end
end)
sliderValue.FocusLost:Connect(function(enterPressed)
local inputText = sliderValue.Text
local value, isPercent = inputText:match("^(%-?%d+%.?%d*)(%%?)$")
if value then
value = tonumber(value)
isPercent = isPercent == "%"
if isPercent then
value = SliderFunctions.Settings.Minimum + (value / 100) * (SliderFunctions.Settings.Maximum - SliderFunctions.Settings.Minimum)
end
local newValue = math.clamp(value, SliderFunctions.Settings.Minimum, SliderFunctions.Settings.Maximum)
SetValue(newValue)
else
sliderValue.Text = ValueDisplayMethod(sliderValue)
end
if SliderFunctions.Settings.onInputComplete then
SliderFunctions.Settings.onInputComplete(finalValue)
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
SetValue(input)
end
end)
local function updateSliderBarSize()
local padding = sliderElementsUIListLayout.Padding.Offset
local sliderValueWidth = sliderValue.AbsoluteSize.X
local sliderNameWidth = sliderName.AbsoluteSize.X
local totalWidth = sliderElements.AbsoluteSize.X
local newBarWidth = (totalWidth - (padding + sliderValueWidth + sliderNameWidth + 20)) / baseUIScale.Scale
sliderBar.Size = UDim2.new(sliderBar.Size.X.Scale, newBarWidth, sliderBar.Size.Y.Scale, sliderBar.Size.Y.Offset)
end
updateSliderBarSize()
sliderName:GetPropertyChangedSignal("AbsoluteSize"):Connect(updateSliderBarSize)
section:GetPropertyChangedSignal("AbsoluteSize"):Connect(updateSliderBarSize)
function SliderFunctions:UpdateName(Name)
sliderName = Name
end
function SliderFunctions:SetVisibility(State)
slider.Visible = State
end
function SliderFunctions:UpdateValue(Value)
SetValue(tonumber(Value), true)
end
function SliderFunctions:GetValue()
return finalValue
end
if Flag then
MacLib.Options[Flag] = SliderFunctions
end
return SliderFunctions
end
function SectionFunctions:Input(Settings, Flag)
local InputFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Input" }
local input = Instance.new("Frame")
input.Name = "Input"
input.AutomaticSize = Enum.AutomaticSize.Y
input.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
input.BackgroundTransparency = 1
input.BorderColor3 = Color3.fromRGB(0, 0, 0)
input.BorderSizePixel = 0
input.Size = UDim2.new(1, 0, 0, 38)
input.Parent = section
local inputName = Instance.new("TextLabel")
inputName.Name = "InputName"
inputName.FontFace = Font.new(assets.interFont)
inputName.Text = InputFunctions.Settings.Name
inputName.RichText = true
inputName.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName.TextSize = 13
inputName.TextTransparency = 0.5
inputName.TextTruncate = Enum.TextTruncate.AtEnd
inputName.TextXAlignment = Enum.TextXAlignment.Left
inputName.TextYAlignment = Enum.TextYAlignment.Top
inputName.AnchorPoint = Vector2.new(0, 0.5)
inputName.AutomaticSize = Enum.AutomaticSize.XY
inputName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName.BackgroundTransparency = 1
inputName.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName.BorderSizePixel = 0
inputName.Position = UDim2.fromScale(0, 0.5)
inputName.Parent = input
local inputBox = Instance.new("TextBox")
inputBox.Name = "InputBox"
inputBox.FontFace = Font.new(assets.interFont)
inputBox.Text = "Hello world!"
inputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox.TextSize = 12
inputBox.TextTransparency = 0.1
inputBox.AnchorPoint = Vector2.new(1, 0.5)
inputBox.AutomaticSize = Enum.AutomaticSize.X
inputBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox.BackgroundTransparency = 0.95
inputBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox.BorderSizePixel = 0
inputBox.ClipsDescendants = true
inputBox.LayoutOrder = 1
inputBox.Position = UDim2.fromScale(1, 0.5)
inputBox.Size = UDim2.fromOffset(21, 21)
inputBox.TextXAlignment = Enum.TextXAlignment.Right
local inputBoxUICorner = Instance.new("UICorner")
inputBoxUICorner.Name = "InputBoxUICorner"
inputBoxUICorner.CornerRadius = UDim.new(0, 4)
inputBoxUICorner.Parent = inputBox
local inputBoxUIStroke = Instance.new("UIStroke")
inputBoxUIStroke.Name = "InputBoxUIStroke"
inputBoxUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke.Transparency = 0.9
inputBoxUIStroke.Parent = inputBox
local inputBoxUIPadding = Instance.new("UIPadding")
inputBoxUIPadding.Name = "InputBoxUIPadding"
inputBoxUIPadding.PaddingLeft = UDim.new(0, 5)
inputBoxUIPadding.PaddingRight = UDim.new(0, 5)
inputBoxUIPadding.Parent = inputBox
local inputBoxUISizeConstraint = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint.Parent = inputBox
inputBox.Parent = input
local Input = input
local InputBox = inputBox
local InputName = inputName
local Constraint = inputBoxUISizeConstraint
local function applyCharacterLimit(value)
if InputFunctions.Settings.CharacterLimit then
return value:sub(1, InputFunctions.Settings.CharacterLimit)
end
return value
end
local CharacterSubs = {
All = function(value)
return applyCharacterLimit(value)
end,
Numeric = function(value)
local result = value:match("^%-?%d*$") and value or value:gsub("[^%d-]", ""):gsub("(%-)", function(match, pos)
return pos == 1 and match or ""
end)
return applyCharacterLimit(result)
end,
Alphabetic = function(value)
return applyCharacterLimit(value:gsub("[^a-zA-Z ]", ""))
end,
AlphaNumeric = function(value)
return applyCharacterLimit(value:gsub("[^a-zA-Z0-9]", ""))
end,
}
local AcceptedCharacters
if type(InputFunctions.Settings.AcceptedCharacters) == "function" then
AcceptedCharacters = InputFunctions.Settings.AcceptedCharacters
else
AcceptedCharacters = CharacterSubs[InputFunctions.Settings.AcceptedCharacters] or CharacterSubs.All
end
InputBox.AutomaticSize = Enum.AutomaticSize.X
local function checkSize()
local nameWidth = InputName.AbsoluteSize.X
local totalWidth = Input.AbsoluteSize.X
local maxWidth = (totalWidth - nameWidth - 20) / baseUIScale.Scale
Constraint.MaxSize = Vector2.new(maxWidth, 9e9)
end
checkSize()
InputName:GetPropertyChangedSignal("AbsoluteSize"):Connect(checkSize)
InputBox.FocusLost:Connect(function()
local inputText = InputBox.Text
local filteredText = AcceptedCharacters(inputText)
InputBox.Text = filteredText
task.spawn(function()
if InputFunctions.Settings.Callback then
InputFunctions.Settings.Callback(filteredText)
end
end)
end)
InputBox.Text = InputFunctions.Settings.Default or ""
InputBox.PlaceholderText = InputFunctions.Settings.Placeholder or ""
InputBox:GetPropertyChangedSignal("Text"):Connect(function()
InputBox.Text = AcceptedCharacters(InputBox.Text)
if InputFunctions.Settings.onChanged then
InputFunctions.Settings.onChanged(InputBox.Text)
end
InputFunctions.Text = InputBox.Text
end)
function InputFunctions:UpdateName(Name)
inputName.Text = Name
end
function InputFunctions:SetVisibility(State)
input.Visible = State
end
function InputFunctions:GetInput()
return InputBox.Text
end
function InputFunctions:UpdatePlaceholder(Placeholder)
inputBox.PlaceholderText = Placeholder
end
function InputFunctions:UpdateText(Text)
local filteredText = AcceptedCharacters(Text)
InputBox.Text = filteredText
InputFunctions.Text = filteredText
task.spawn(function()
if InputFunctions.Settings.Callback then
InputFunctions.Settings.Callback(filteredText)
end
end)
end
if Flag then
MacLib.Options[Flag] = InputFunctions
end
return InputFunctions
end
function SectionFunctions:Keybind(Settings, Flag)
local KeybindFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Keybind" }
local keybind = Instance.new("Frame")
keybind.Name = "Keybind"
keybind.AutomaticSize = Enum.AutomaticSize.Y
keybind.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
keybind.BackgroundTransparency = 1
keybind.BorderColor3 = Color3.fromRGB(0, 0, 0)
keybind.BorderSizePixel = 0
keybind.Size = UDim2.new(1, 0, 0, 38)
keybind.Parent = section
local keybindName = Instance.new("TextLabel")
keybindName.Name = "KeybindName"
keybindName.FontFace = Font.new(assets.interFont)
keybindName.Text = KeybindFunctions.Settings.Name
keybindName.RichText = true
keybindName.TextColor3 = Color3.fromRGB(255, 255, 255)
keybindName.TextSize = 13
keybindName.TextTransparency = 0.5
keybindName.TextTruncate = Enum.TextTruncate.AtEnd
keybindName.TextXAlignment = Enum.TextXAlignment.Left
keybindName.TextYAlignment = Enum.TextYAlignment.Top
keybindName.AnchorPoint = Vector2.new(0, 0.5)
keybindName.AutomaticSize = Enum.AutomaticSize.XY
keybindName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
keybindName.BackgroundTransparency = 1
keybindName.BorderColor3 = Color3.fromRGB(0, 0, 0)
keybindName.BorderSizePixel = 0
keybindName.Position = UDim2.fromScale(0, 0.5)
keybindName.Parent = keybind
local binderBox = Instance.new("TextBox")
binderBox.Name = "BinderBox"
binderBox.CursorPosition = -1
binderBox.FontFace = Font.new(assets.interFont)
binderBox.PlaceholderText = "..."
binderBox.Text = ""
binderBox.TextColor3 = Color3.fromRGB(255, 255, 255)
binderBox.TextSize = 12
binderBox.TextTransparency = 0.1
binderBox.AnchorPoint = Vector2.new(1, 0.5)
binderBox.AutomaticSize = Enum.AutomaticSize.X
binderBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
binderBox.BackgroundTransparency = 0.95
binderBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
binderBox.BorderSizePixel = 0
binderBox.ClipsDescendants = true
binderBox.LayoutOrder = 1
binderBox.Position = UDim2.fromScale(1, 0.5)
binderBox.Size = UDim2.fromOffset(21, 21)
local binderBoxUICorner = Instance.new("UICorner")
binderBoxUICorner.Name = "BinderBoxUICorner"
binderBoxUICorner.CornerRadius = UDim.new(0, 4)
binderBoxUICorner.Parent = binderBox
local binderBoxUIStroke = Instance.new("UIStroke")
binderBoxUIStroke.Name = "BinderBoxUIStroke"
binderBoxUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
binderBoxUIStroke.Color = Color3.fromRGB(255, 255, 255)
binderBoxUIStroke.Transparency = 0.9
binderBoxUIStroke.Parent = binderBox
local binderBoxUIPadding = Instance.new("UIPadding")
binderBoxUIPadding.Name = "BinderBoxUIPadding"
binderBoxUIPadding.PaddingLeft = UDim.new(0, 5)
binderBoxUIPadding.PaddingRight = UDim.new(0, 5)
binderBoxUIPadding.Parent = binderBox
local binderBoxUISizeConstraint = Instance.new("UISizeConstraint")
binderBoxUISizeConstraint.Name = "BinderBoxUISizeConstraint"
binderBoxUISizeConstraint.Parent = binderBox
binderBox.Parent = keybind
local focused
local isBinding = false
local reset = false
local binded = KeybindFunctions.Settings.Default
local function resetFocusState()
focused = false
isBinding = false
binderBox:ReleaseFocus()
end
if binded then
binderBox.Text = binded.Name
end
binderBox.Focused:Connect(function()
focused = true
end)
binderBox.FocusLost:Connect(function()
focused = false
end)
UserInputService.InputBegan:Connect(function(inp)
if focused and not isBinding then
isBinding = true
local Event
Event = UserInputService.InputBegan:Connect(function(input)
if KeybindFunctions.Settings.Blacklist and (table.find(KeybindFunctions.KeybindFunctions.Settings.Blacklist, input.KeyCode) or table.find(KeybindFunctions.Settings.Blacklist, input.UserInputType)) then
binderBox:ReleaseFocus()
resetFocusState()
Event:Disconnect()
return
end
if input.UserInputType == Enum.UserInputType.Keyboard then
binded = input.KeyCode
binderBox.Text = input.KeyCode.Name
elseif input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.MouseButton2 then
binded = input.UserInputType
binderBox.Text = input.UserInputType.Name
end
if KeybindFunctions.Settings.onBinded then
KeybindFunctions.Settings.onBinded(binded)
end
reset = true
resetFocusState()
Event:Disconnect()
end)
else
if not reset and (inp.KeyCode == binded or inp.UserInputType == binded) then
if KeybindFunctions.Settings.Callback then
KeybindFunctions.Settings.Callback(binded)
end
if KeybindFunctions.Settings.onBindHeld then
KeybindFunctions.Settings.onBindHeld(true, binded)
end
else
reset = false
end
end
end)
UserInputService.InputEnded:Connect(function(inp)
if not focused and not isBinding then
if inp.KeyCode == binded or inp.UserInputType == binded then
if Settings.onBindHeld then
Settings.onBindHeld(false, binded)
end
end
end
end)
function KeybindFunctions:Bind(Key)
binded = Key
binderBox.Text = Key.Name
end
function KeybindFunctions:Unbind()
binded = nil
binderBox.Text = ""
end
function KeybindFunctions:GetBind()
return binded
end
function KeybindFunctions:UpdateName(Name)
keybindName = Name
end
function KeybindFunctions:SetVisibility(State)
keybind.Visible = State
end
if Flag then
MacLib.Options[Flag] = KeybindFunctions
end
return KeybindFunctions
end
function SectionFunctions:Dropdown(Settings, Flag)
local DropdownFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Dropdown" }
local Selected = {}
local OptionObjs = {}
local dropdown = Instance.new("Frame")
dropdown.Name = "Dropdown"
dropdown.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dropdown.BackgroundTransparency = 0.985
dropdown.BorderColor3 = Color3.fromRGB(0, 0, 0)
dropdown.BorderSizePixel = 0
dropdown.Size = UDim2.new(1, 0, 0, 38)
dropdown.Parent = section
dropdown.ClipsDescendants = true
local dropdownUIPadding = Instance.new("UIPadding")
dropdownUIPadding.Name = "DropdownUIPadding"
dropdownUIPadding.PaddingLeft = UDim.new(0, 15)
dropdownUIPadding.PaddingRight = UDim.new(0, 15)
dropdownUIPadding.Parent = dropdown
local interact = Instance.new("TextButton")
interact.Name = "Interact"
interact.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
interact.Text = ""
interact.TextColor3 = Color3.fromRGB(0, 0, 0)
interact.TextSize = 14
interact.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
interact.BackgroundTransparency = 1
interact.BorderColor3 = Color3.fromRGB(0, 0, 0)
interact.BorderSizePixel = 0
interact.Size = UDim2.new(1, 0, 0, 38)
interact.Parent = dropdown
local dropdownName = Instance.new("TextLabel")
dropdownName.Name = "DropdownName"
dropdownName.FontFace = Font.new(assets.interFont)
dropdownName.Text = Settings.Default and (DropdownFunctions.Settings.Name .. " • " .. table.concat(Selected, ", ")) or (DropdownFunctions.Settings.Name .. "...")
dropdownName.RichText = true
dropdownName.TextColor3 = Color3.fromRGB(255, 255, 255)
dropdownName.TextSize = 13
dropdownName.TextTransparency = 0.5
dropdownName.TextTruncate = Enum.TextTruncate.SplitWord
dropdownName.TextXAlignment = Enum.TextXAlignment.Left
dropdownName.AutomaticSize = Enum.AutomaticSize.Y
dropdownName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dropdownName.BackgroundTransparency = 1
dropdownName.BorderColor3 = Color3.fromRGB(0, 0, 0)
dropdownName.BorderSizePixel = 0
dropdownName.Size = UDim2.new(1, -20, 0, 38)
dropdownName.Parent = dropdown
local dropdownUIStroke = Instance.new("UIStroke")
dropdownUIStroke.Name = "DropdownUIStroke"
dropdownUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
dropdownUIStroke.Color = Color3.fromRGB(255, 255, 255)
dropdownUIStroke.Transparency = 0.95
dropdownUIStroke.Parent = dropdown
local dropdownUICorner = Instance.new("UICorner")
dropdownUICorner.Name = "DropdownUICorner"
dropdownUICorner.CornerRadius = UDim.new(0, 6)
dropdownUICorner.Parent = dropdown
local dropdownImage = Instance.new("ImageLabel")
dropdownImage.Name = "DropdownImage"
dropdownImage.Image = assets.dropdown
dropdownImage.ImageTransparency = 0.5
dropdownImage.AnchorPoint = Vector2.new(1, 0)
dropdownImage.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dropdownImage.BackgroundTransparency = 1
dropdownImage.BorderColor3 = Color3.fromRGB(0, 0, 0)
dropdownImage.BorderSizePixel = 0
dropdownImage.Position = UDim2.new(1, 0, 0, 12)
dropdownImage.Size = UDim2.fromOffset(14, 14)
dropdownImage.Parent = dropdown
local dropdownFrame = Instance.new("Frame")
dropdownFrame.Name = "DropdownFrame"
dropdownFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dropdownFrame.BackgroundTransparency = 1
dropdownFrame.BorderColor3 = Color3.fromRGB(0, 0, 0)
dropdownFrame.BorderSizePixel = 0
dropdownFrame.ClipsDescendants = true
dropdownFrame.Size = UDim2.fromScale(1, 1)
dropdownFrame.Visible = false
dropdownFrame.AutomaticSize = Enum.AutomaticSize.Y
local dropdownFrameUIPadding = Instance.new("UIPadding")
dropdownFrameUIPadding.Name = "DropdownFrameUIPadding"
dropdownFrameUIPadding.PaddingTop = UDim.new(0, 38)
dropdownFrameUIPadding.PaddingBottom = UDim.new(0, 10)
dropdownFrameUIPadding.Parent = dropdownFrame
local dropdownFrameUIListLayout = Instance.new("UIListLayout")
dropdownFrameUIListLayout.Name = "DropdownFrameUIListLayout"
dropdownFrameUIListLayout.Padding = UDim.new(0, 5)
dropdownFrameUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
dropdownFrameUIListLayout.Parent = dropdownFrame
local search = Instance.new("Frame")
search.Name = "Search"
search.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
search.BackgroundTransparency = 0.95
search.BorderColor3 = Color3.fromRGB(0, 0, 0)
search.BorderSizePixel = 0
search.LayoutOrder = -1
search.Size = UDim2.new(1, 0, 0, 30)
search.Parent = dropdownFrame
search.Visible = DropdownFunctions.Settings.Search
local sectionUICorner = Instance.new("UICorner")
sectionUICorner.Name = "SectionUICorner"
sectionUICorner.Parent = search
local searchIcon = Instance.new("ImageLabel")
searchIcon.Name = "SearchIcon"
searchIcon.Image = assets.searchIcon
searchIcon.ImageColor3 = Color3.fromRGB(180, 180, 180)
searchIcon.AnchorPoint = Vector2.new(0, 0.5)
searchIcon.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
searchIcon.BackgroundTransparency = 1
searchIcon.BorderColor3 = Color3.fromRGB(0, 0, 0)
searchIcon.BorderSizePixel = 0
searchIcon.Position = UDim2.fromScale(0, 0.5)
searchIcon.Size = UDim2.fromOffset(12, 12)
searchIcon.Parent = search
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingLeft = UDim.new(0, 15)
uIPadding.Parent = search
local searchBox = Instance.new("TextBox")
searchBox.Name = "SearchBox"
searchBox.CursorPosition = -1
searchBox.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
searchBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
searchBox.PlaceholderText = "Search..."
searchBox.Text = ""
searchBox.TextColor3 = Color3.fromRGB(200, 200, 200)
searchBox.TextSize = 14
searchBox.TextXAlignment = Enum.TextXAlignment.Left
searchBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
searchBox.BackgroundTransparency = 1
searchBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
searchBox.BorderSizePixel = 0
searchBox.Size = UDim2.fromScale(1, 1)
local function CalculateDropdownSize()
local totalHeight = 0
local visibleChildrenCount = 0
local padding = dropdownFrameUIPadding.PaddingTop.Offset + dropdownFrameUIPadding.PaddingBottom.Offset
for _, v in pairs(dropdownFrame:GetChildren()) do
if not v:IsA("UIComponent") and v.Visible then
totalHeight += v.AbsoluteSize.Y
visibleChildrenCount += 1
end
end
local spacing = dropdownFrameUIListLayout.Padding.Offset * (visibleChildrenCount - 1)
return totalHeight + spacing + padding
end
local function findOption()
local searchTerm = searchBox.Text:lower()
for _, v in pairs(OptionObjs) do
local optionText = v.NameLabel.Text:lower()
local isVisible = string.find(optionText, searchTerm) ~= nil
if v.Button.Visible ~= isVisible then
v.Button.Visible = isVisible
end
end
dropdown.Size = UDim2.new(1, 0, 0, CalculateDropdownSize())
end
searchBox:GetPropertyChangedSignal("Text"):Connect(findOption)
local uIPadding1 = Instance.new("UIPadding")
uIPadding1.Name = "UIPadding"
uIPadding1.PaddingLeft = UDim.new(0, 23)
uIPadding1.Parent = searchBox
searchBox.Parent = search
local tweensettings = {
duration = 0.2,
easingStyle = Enum.EasingStyle.Quint,
transparencyIn = 0.2,
transparencyOut = 0.5,
checkSizeIncrease = 12,
checkSizeDecrease = -13,
waitTime = 1
}
local function Toggle(optionName, State)
local option = OptionObjs[optionName]
if not option then return end
local checkmark = option.Checkmark
local optionNameLabel = option.NameLabel
if State then
if DropdownFunctions.Settings.Multi then
if not table.find(Selected, optionName) then
table.insert(Selected, optionName)
DropdownFunctions.Value = Selected
end
else
for name, opt in pairs(OptionObjs) do
if name ~= optionName then
Tween(opt.Checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
Size = UDim2.new(opt.Checkmark.Size.X.Scale, tweensettings.checkSizeDecrease, opt.Checkmark.Size.Y.Scale, opt.Checkmark.Size.Y.Offset)
}):Play()
Tween(opt.NameLabel, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
TextTransparency = tweensettings.transparencyOut
}):Play()
opt.Checkmark.TextTransparency = 1
end
end
Selected = {optionName}
DropdownFunctions.Value = Selected[1]
end
Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeIncrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}):Play()
Tween(optionNameLabel, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
TextTransparency = tweensettings.transparencyIn
}):Play()
checkmark.TextTransparency = 0
else
if DropdownFunctions.Settings.Multi then
local idx = table.find(Selected, optionName)
if idx then
table.remove(Selected, idx)
end
else
Selected = {}
end
Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeDecrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}):Play()
Tween(optionNameLabel, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
TextTransparency = tweensettings.transparencyOut
}):Play()
checkmark.TextTransparency = 1
end
if Settings.Required and #Selected == 0 and not State then
return
end
if #Selected > 0 then
dropdownName.Text = DropdownFunctions.Settings.Name .. " • " .. table.concat(Selected, ", ")
else
dropdownName.Text = DropdownFunctions.Settings.Name .. "..."
end
end
local dropped = false
local db = false
local function ToggleDropdown()
if db then return end
db = true
local defaultDropdownSize = 38
local isDropdownOpen = not dropped
local targetSize = isDropdownOpen and UDim2.new(1, 0, 0, CalculateDropdownSize()) or UDim2.new(1, 0, 0, defaultDropdownSize)
local dropTween = Tween(dropdown, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {
Size = targetSize
})
local iconTween = Tween(dropdownImage, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Rotation = isDropdownOpen and -90 or 0
})
dropTween:Play()
iconTween:Play()
if isDropdownOpen then
dropdownFrame.Visible = true
dropTween.Completed:Connect(function()
db = false
end)
else
dropTween.Completed:Connect(function()
dropdownFrame.Visible = false
db = false
end)
end
dropped = isDropdownOpen
end
interact.MouseButton1Click:Connect(ToggleDropdown)
local function addOption(i, v)
local option = Instance.new("TextButton")
option.Name = "Option"
option.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
option.Text = ""
option.TextColor3 = Color3.fromRGB(0, 0, 0)
option.TextSize = 14
option.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
option.BackgroundTransparency = 1
option.BorderColor3 = Color3.fromRGB(0, 0, 0)
option.BorderSizePixel = 0
option.Size = UDim2.new(1, 0, 0, 30)
local optionUIPadding = Instance.new("UIPadding")
optionUIPadding.Name = "OptionUIPadding"
optionUIPadding.PaddingLeft = UDim.new(0, 15)
optionUIPadding.Parent = option
local optionName = Instance.new("TextLabel")
optionName.Name = "OptionName"
optionName.FontFace = Font.new(assets.interFont)
optionName.Text = v
optionName.RichText = true
optionName.TextColor3 = Color3.fromRGB(255, 255, 255)
optionName.TextSize = 13
optionName.TextTransparency = 0.5
optionName.TextTruncate = Enum.TextTruncate.AtEnd
optionName.TextXAlignment = Enum.TextXAlignment.Left
optionName.TextYAlignment = Enum.TextYAlignment.Top
optionName.AnchorPoint = Vector2.new(0, 0.5)
optionName.AutomaticSize = Enum.AutomaticSize.XY
optionName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
optionName.BackgroundTransparency = 1
optionName.BorderColor3 = Color3.fromRGB(0, 0, 0)
optionName.BorderSizePixel = 0
optionName.Position = UDim2.fromScale(1.3e-07, 0.5)
optionName.Parent = option
local optionUIListLayout = Instance.new("UIListLayout")
optionUIListLayout.Name = "OptionUIListLayout"
optionUIListLayout.Padding = UDim.new(0, 10)
optionUIListLayout.FillDirection = Enum.FillDirection.Horizontal
optionUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
optionUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
optionUIListLayout.Parent = option
local checkmark = Instance.new("TextLabel")
checkmark.Name = "Checkmark"
checkmark.FontFace = Font.new(assets.interFont)
checkmark.Text = "✓"
checkmark.TextColor3 = Color3.fromRGB(255, 255, 255)
checkmark.TextSize = 13
checkmark.TextTransparency = 1
checkmark.TextXAlignment = Enum.TextXAlignment.Left
checkmark.TextYAlignment = Enum.TextYAlignment.Top
checkmark.AnchorPoint = Vector2.new(0, 0.5)
checkmark.AutomaticSize = Enum.AutomaticSize.Y
checkmark.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
checkmark.BackgroundTransparency = 1
checkmark.BorderColor3 = Color3.fromRGB(0, 0, 0)
checkmark.BorderSizePixel = 0
checkmark.LayoutOrder = -1
checkmark.Position = UDim2.fromScale(1.3e-07, 0.5)
checkmark.Size = UDim2.fromOffset(-10, 0)
checkmark.Parent = option
option.Parent = dropdownFrame
dropdownFrame.Parent = dropdown
OptionObjs[v] = {
Index = i,
Button = option,
NameLabel = optionName,
Checkmark = checkmark
}
local tweensettings = {
duration = 0.2,
easingStyle = Enum.EasingStyle.Quint,
transparencyIn = 0.2,
transparencyOut = 0.5,
checkSizeIncrease = 12,
checkSizeDecrease = -optionUIListLayout.Padding.Offset,
waitTime = 1
}
local tweens = {
checkIn = Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle), {
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeIncrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}),
checkOut = Tween(checkmark, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
Size = UDim2.new(checkmark.Size.X.Scale, tweensettings.checkSizeDecrease, checkmark.Size.Y.Scale, checkmark.Size.Y.Offset)
}),
nameIn = Tween(optionName, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
TextTransparency = tweensettings.transparencyIn
}),
nameOut = Tween(optionName, TweenInfo.new(tweensettings.duration, tweensettings.easingStyle),{
TextTransparency = tweensettings.transparencyOut
})
}
local isSelected = false
if DropdownFunctions.Settings.Default then
if DropdownFunctions.Settings.Multi then
isSelected = table.find(DropdownFunctions.Settings.Default, v) and true or false
else
isSelected = (DropdownFunctions.Settings.Default == i) and true or false
end
end
Toggle(v, isSelected)
local option = OptionObjs[v].Button
option.MouseButton1Click:Connect(function()
local isSelected = table.find(Selected, v) and true or false
local newSelected = not isSelected
if DropdownFunctions.Settings.Required and not newSelected and #Selected <= 1 then
return
end
Toggle(v, newSelected)
task.spawn(function()
if DropdownFunctions.Settings.Multi then
local Return = {}
for _, opt in ipairs(Selected) do
Return[opt] = true
end
if DropdownFunctions.Settings.Callback then
DropdownFunctions.Settings.Callback(Return)
end
else
if newSelected and DropdownFunctions.Settings.Callback then
DropdownFunctions.Settings.Callback(Selected[1] or nil)
end
end
end)
end)
if dropped then
dropdown.Size = UDim2.new(1, 0, 0, CalculateDropdownSize())
end
end
if DropdownFunctions.Settings.Options then
for i, v in pairs(DropdownFunctions.Settings.Options) do
addOption(i, v)
end
end
function DropdownFunctions:UpdateName(New)
dropdownName.Text = New
end
function DropdownFunctions:SetVisibility(State)
dropdown.Visible = State
end
function DropdownFunctions:UpdateSelection(newSelection)
if not newSelection then return end
for option, _ in pairs(OptionObjs) do
Toggle(option, false)
end
local selectedOptions = {}
if type(newSelection) == "number" then
for option, data in pairs(OptionObjs) do
local isSelected = data.Index == newSelection
Toggle(option, isSelected)
if isSelected then
table.insert(selectedOptions, option)
end
end
elseif type(newSelection) == "string" then
for option, data in pairs(OptionObjs) do
local isSelected = option == newSelection
Toggle(option, isSelected)
if isSelected then
table.insert(selectedOptions, option)
end
end
elseif type(newSelection) == "table" then
for option, _ in pairs(OptionObjs) do
local isSelected = table.find(newSelection, option) ~= nil
Toggle(option, isSelected)
if isSelected then
table.insert(selectedOptions, option)
end
end
end
if DropdownFunctions.Settings.Callback then
if DropdownFunctions.Settings.Multi then
local Return = {}
for _, opt in ipairs(selectedOptions) do
Return[opt] = true
end
DropdownFunctions.Settings.Callback(Return)
else
DropdownFunctions.Settings.Callback(selectedOptions[1] or nil)
end
end
end
function DropdownFunctions:InsertOptions(newOptions)
if not newOptions then return end
DropdownFunctions.Settings.Options = newOptions
for i, v in pairs(newOptions) do
addOption(i, v)
end
end
function DropdownFunctions:ClearOptions()
for _, optionData in pairs(OptionObjs) do
optionData.Button:Destroy()
end
OptionObjs = {}
Selected = {}
if dropped then
dropdown.Size = UDim2.new(1, 0, 0, CalculateDropdownSize())
end
end
function DropdownFunctions:GetOptions()
local optionsStatus = {}
for option, data in pairs(OptionObjs) do
local isSelected = table.find(Selected, option) and true or false
optionsStatus[option] = isSelected
end
return optionsStatus
end
function DropdownFunctions:RemoveOptions(remove)
if not remove then return end
for _, optionName in ipairs(remove) do
local optionData = OptionObjs[optionName]
if optionData then
for i = #Selected, 1, -1 do
if Selected[i] == optionName then
table.remove(Selected, i)
end
end
optionData.Button:Destroy()
OptionObjs[optionName] = nil
end
end
if dropped then
dropdown.Size = UDim2.new(1, 0, 0, CalculateDropdownSize())
end
end
function DropdownFunctions:IsOption(optionName)
if not optionName then return end
return OptionObjs[optionName] ~= nil
end
if Flag then
MacLib.Options[Flag] = DropdownFunctions
end
return DropdownFunctions
end
function SectionFunctions:Colorpicker(Settings, Flag)
local ColorpickerFunctions = { Settings = Settings, IgnoreConfig = false, Class = "Colorpicker" }
local isAlpha = ColorpickerFunctions.Settings.Alpha and true or false
ColorpickerFunctions.Color = ColorpickerFunctions.Settings.Default
ColorpickerFunctions.Alpha = isAlpha and ColorpickerFunctions.Settings.Alpha
local colorpicker = Instance.new("Frame")
colorpicker.Name = "Colorpicker"
colorpicker.AutomaticSize = Enum.AutomaticSize.Y
colorpicker.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
colorpicker.BackgroundTransparency = 1
colorpicker.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorpicker.BorderSizePixel = 0
colorpicker.Size = UDim2.new(1, 0, 0, 38)
colorpicker.Parent = section
local colorpickerName = Instance.new("TextLabel")
colorpickerName.Name = "KeybindName"
colorpickerName.FontFace = Font.new(assets.interFont)
colorpickerName.Text = Settings.Name
colorpickerName.TextColor3 = Color3.fromRGB(255, 255, 255)
colorpickerName.TextSize = 13
colorpickerName.TextTransparency = 0.5
colorpickerName.RichText = true
colorpickerName.TextTruncate = Enum.TextTruncate.AtEnd
colorpickerName.TextXAlignment = Enum.TextXAlignment.Left
colorpickerName.TextYAlignment = Enum.TextYAlignment.Top
colorpickerName.AnchorPoint = Vector2.new(0, 0.5)
colorpickerName.AutomaticSize = Enum.AutomaticSize.XY
colorpickerName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorpickerName.BackgroundTransparency = 1
colorpickerName.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorpickerName.BorderSizePixel = 0
colorpickerName.Position = UDim2.fromScale(0, 0.5)
colorpickerName.Parent = colorpicker
local colorCbg = Instance.new("ImageLabel")
colorCbg.Name = "NewColor"
colorCbg.Image = assets.grid
colorCbg.ScaleType = Enum.ScaleType.Tile
colorCbg.TileSize = UDim2.fromOffset(500, 500)
colorCbg.AnchorPoint = Vector2.new(1, 0.5)
colorCbg.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorCbg.BackgroundTransparency = 1
colorCbg.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorCbg.BorderSizePixel = 0
colorCbg.Position = UDim2.fromScale(1, 0.5)
colorCbg.Size = UDim2.fromOffset(21, 21)
local colorC = Instance.new("Frame")
colorC.Name = "Color"
colorC.AnchorPoint = Vector2.new(0.5, 0.5)
colorC.BackgroundColor3 = ColorpickerFunctions.Color
colorC.BorderSizePixel = 0
colorC.Position = UDim2.fromScale(0.5, 0.5)
colorC.Size = UDim2.fromScale(1, 1)
colorC.BackgroundTransparency = ColorpickerFunctions.Alpha or 0
local uICorner = Instance.new("UICorner")
uICorner.Name = "UICorner"
uICorner.CornerRadius = UDim.new(0, 6)
uICorner.Parent = colorC
local interact = Instance.new("TextButton")
interact.Name = "Interact"
interact.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
interact.Text = ""
interact.TextColor3 = Color3.fromRGB(0, 0, 0)
interact.TextSize = 14
interact.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
interact.BackgroundTransparency = 1
interact.BorderColor3 = Color3.fromRGB(0, 0, 0)
interact.BorderSizePixel = 0
interact.Size = UDim2.fromScale(1, 1)
interact.Parent = colorC
colorC.Parent = colorCbg
local uICorner1 = Instance.new("UICorner")
uICorner1.Name = "UICorner"
uICorner1.CornerRadius = UDim.new(0, 8)
uICorner1.Parent = colorCbg
colorCbg.Parent = colorpicker
local colorPicker = Instance.new("Frame")
colorPicker.Name = "ColorPicker"
colorPicker.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
colorPicker.BackgroundTransparency = 0.5
colorPicker.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorPicker.BorderSizePixel = 0
colorPicker.Size = UDim2.fromScale(1, 1)
colorPicker.Visible = false
local baseUICorner = Instance.new("UICorner")
baseUICorner.Name = "BaseUICorner"
baseUICorner.CornerRadius = UDim.new(0, 10)
baseUICorner.Parent = colorPicker
local prompt = Instance.new("Frame")
prompt.Name = "Prompt"
prompt.AnchorPoint = Vector2.new(0.5, 0.5)
prompt.AutomaticSize = Enum.AutomaticSize.Y
prompt.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
prompt.BorderColor3 = Color3.fromRGB(0, 0, 0)
prompt.BorderSizePixel = 0
prompt.Position = UDim2.fromScale(0.5, 0.5)
prompt.Size = UDim2.fromOffset(420, 0)
local promptUIScale = Instance.new("UIScale")
promptUIScale.Name = "BaseUIScale"
promptUIScale.Parent = prompt
promptUIScale.Scale = 0.95
local globalSettingsUIStroke = Instance.new("UIStroke")
globalSettingsUIStroke.Name = "GlobalSettingsUIStroke"
globalSettingsUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
globalSettingsUIStroke.Color = Color3.fromRGB(255, 255, 255)
globalSettingsUIStroke.Transparency = 0.9
globalSettingsUIStroke.Parent = prompt
local globalSettingsUICorner = Instance.new("UICorner")
globalSettingsUICorner.Name = "GlobalSettingsUICorner"
globalSettingsUICorner.CornerRadius = UDim.new(0, 10)
globalSettingsUICorner.Parent = prompt
local uIListLayout = Instance.new("UIListLayout")
uIListLayout.Name = "UIListLayout"
uIListLayout.Padding = UDim.new(0, 10)
uIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
uIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout.Parent = prompt
local colorOptions = Instance.new("Frame")
colorOptions.Name = "ColorOptions"
colorOptions.AutomaticSize = Enum.AutomaticSize.XY
colorOptions.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorOptions.BackgroundTransparency = 1
colorOptions.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorOptions.BorderSizePixel = 0
colorOptions.LayoutOrder = 1
colorOptions.Size = UDim2.fromScale(1, 0)
local value = Instance.new("TextButton")
value.Name = "Value"
value.FontFace = Font.new("rbxasset://fonts/families/SourceSansPro.json")
value.Text = ""
value.TextColor3 = Color3.fromRGB(0, 0, 0)
value.TextSize = 14
value.AutoButtonColor = false
value.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
value.BorderColor3 = Color3.fromRGB(0, 0, 0)
value.BorderSizePixel = 0
value.LayoutOrder = 1
value.Position = UDim2.fromScale(0.092, 0.886)
value.Size = UDim2.new(1, 0, 0, 15)
local uIGradient = Instance.new("UIGradient")
uIGradient.Name = "UIGradient"
uIGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)),
})
uIGradient.Parent = value
local slide = Instance.new("Frame")
slide.Name = "Slide"
slide.AnchorPoint = Vector2.new(0, 0.5)
slide.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
slide.BorderColor3 = Color3.fromRGB(27, 42, 53)
slide.BorderSizePixel = 0
slide.Position = UDim2.fromScale(0, 0.5)
slide.Size = UDim2.new(0, 13, 1, 8)
local uICorner = Instance.new("UICorner")
uICorner.Name = "UICorner"
uICorner.CornerRadius = UDim.new(1, 0)
uICorner.Parent = slide
local uIStroke = Instance.new("UIStroke")
uIStroke.Name = "UIStroke"
uIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uIStroke.Transparency = 0.5
uIStroke.Parent = slide
slide.Parent = value
local uICorner1 = Instance.new("UICorner")
uICorner1.Name = "UICorner"
uICorner1.CornerRadius = UDim.new(0, 6)
uICorner1.Parent = value
local uIStroke1 = Instance.new("UIStroke")
uIStroke1.Name = "UIStroke"
uIStroke1.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uIStroke1.Color = Color3.fromRGB(255, 255, 255)
uIStroke1.Transparency = 0.9
local uIGradient1 = Instance.new("UIGradient")
uIGradient1.Name = "UIGradient"
uIGradient1.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)),
})
uIGradient1.Rotation = 180
uIGradient1.Parent = uIStroke1
uIStroke1.Parent = value
value.Parent = colorOptions
local uIListLayout1 = Instance.new("UIListLayout")
uIListLayout1.Name = "UIListLayout"
uIListLayout1.Padding = UDim.new(0, 25)
uIListLayout1.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout1.Parent = colorOptions
local wheel = Instance.new("Frame")
wheel.Name = "Wheel"
wheel.AutomaticSize = Enum.AutomaticSize.Y
wheel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
wheel.BackgroundTransparency = 1
wheel.BorderColor3 = Color3.fromRGB(0, 0, 0)
wheel.BorderSizePixel = 0
wheel.Size = UDim2.new(1, 0, 0, 100)
local wheel1 = Instance.new("ImageButton")
wheel1.Name = "Wheel"
wheel1.Image = assets.colorWheel
wheel1.AutoButtonColor = false
wheel1.Active = false
wheel1.BackgroundColor3 = Color3.fromRGB(248, 248, 248)
wheel1.BackgroundTransparency = 1
wheel1.BorderColor3 = Color3.fromRGB(27, 42, 53)
wheel1.Selectable = false
wheel1.Size = UDim2.fromOffset(220, 220)
wheel1.SizeConstraint = Enum.SizeConstraint.RelativeYY
local target = Instance.new("ImageLabel")
target.Name = "Target"
target.Image = assets.colorTarget
target.ImageColor3 = Color3.fromRGB(0, 0, 0)
target.AnchorPoint = Vector2.new(0.5, 0.5)
target.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
target.BackgroundTransparency = 1
target.BorderColor3 = Color3.fromRGB(27, 42, 53)
target.Position = UDim2.fromScale(0.5, 0.5)
target.Size = UDim2.fromOffset(22, 22)
target.SizeConstraint = Enum.SizeConstraint.RelativeYY
target.Parent = wheel1
wheel1.Parent = wheel
local inputs = Instance.new("Frame")
inputs.Name = "Inputs"
inputs.AnchorPoint = Vector2.new(1, 0.5)
inputs.AutomaticSize = Enum.AutomaticSize.XY
inputs.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputs.BackgroundTransparency = 1
inputs.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputs.BorderSizePixel = 0
inputs.LayoutOrder = 1
inputs.Position = UDim2.fromScale(1, 0.5)
local uIListLayout2 = Instance.new("UIListLayout")
uIListLayout2.Name = "UIListLayout"
uIListLayout2.Padding = UDim.new(0, 5)
uIListLayout2.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout2.Parent = inputs
local red = Instance.new("Frame")
red.Name = "Red"
red.AutomaticSize = Enum.AutomaticSize.XY
red.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
red.BackgroundTransparency = 1
red.BorderColor3 = Color3.fromRGB(0, 0, 0)
red.BorderSizePixel = 0
red.LayoutOrder = 1
red.Size = UDim2.fromOffset(0, 38)
local inputName = Instance.new("TextLabel")
inputName.Name = "InputName"
inputName.FontFace = Font.new(assets.interFont)
inputName.Text = "Red"
inputName.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName.TextSize = 13
inputName.TextTransparency = 0.5
inputName.TextTruncate = Enum.TextTruncate.AtEnd
inputName.TextXAlignment = Enum.TextXAlignment.Left
inputName.TextYAlignment = Enum.TextYAlignment.Top
inputName.AnchorPoint = Vector2.new(0, 0.5)
inputName.AutomaticSize = Enum.AutomaticSize.XY
inputName.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName.BackgroundTransparency = 1
inputName.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName.BorderSizePixel = 0
inputName.LayoutOrder = 2
inputName.Position = UDim2.fromScale(0, 0.5)
inputName.Parent = red
local uIListLayout3 = Instance.new("UIListLayout")
uIListLayout3.Name = "UIListLayout"
uIListLayout3.Padding = UDim.new(0, 15)
uIListLayout3.FillDirection = Enum.FillDirection.Horizontal
uIListLayout3.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout3.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout3.Parent = red
local inputBox = Instance.new("TextBox")
inputBox.Name = "InputBox"
inputBox.ClearTextOnFocus = false
inputBox.CursorPosition = -1
inputBox.FontFace = Font.new(assets.interFont)
inputBox.Text = "255"
inputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox.TextSize = 12
inputBox.TextTransparency = 0.1
inputBox.TextXAlignment = Enum.TextXAlignment.Left
inputBox.AnchorPoint = Vector2.new(1, 0.5)
inputBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox.BackgroundTransparency = 0.95
inputBox.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox.BorderSizePixel = 0
inputBox.ClipsDescendants = true
inputBox.LayoutOrder = 1
inputBox.Position = UDim2.fromScale(1, 0.5)
inputBox.Size = UDim2.fromOffset(75, 25)
local inputBoxUICorner = Instance.new("UICorner")
inputBoxUICorner.Name = "InputBoxUICorner"
inputBoxUICorner.CornerRadius = UDim.new(0, 4)
inputBoxUICorner.Parent = inputBox
local inputBoxUIStroke = Instance.new("UIStroke")
inputBoxUIStroke.Name = "InputBoxUIStroke"
inputBoxUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke.Transparency = 0.9
inputBoxUIStroke.Parent = inputBox
local inputBoxUISizeConstraint = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint.Parent = inputBox
local inputBoxUIPadding = Instance.new("UIPadding")
inputBoxUIPadding.Name = "InputBoxUIPadding"
inputBoxUIPadding.PaddingLeft = UDim.new(0, 8)
inputBoxUIPadding.PaddingRight = UDim.new(0, 10)
inputBoxUIPadding.Parent = inputBox
inputBox.Parent = red
red.Parent = inputs
local green = Instance.new("Frame")
green.Name = "Green"
green.AutomaticSize = Enum.AutomaticSize.XY
green.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
green.BackgroundTransparency = 1
green.BorderColor3 = Color3.fromRGB(0, 0, 0)
green.BorderSizePixel = 0
green.LayoutOrder = 2
green.Size = UDim2.fromOffset(0, 38)
local inputName1 = Instance.new("TextLabel")
inputName1.Name = "InputName"
inputName1.FontFace = Font.new(assets.interFont)
inputName1.Text = "Green"
inputName1.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName1.TextSize = 13
inputName1.TextTransparency = 0.5
inputName1.TextTruncate = Enum.TextTruncate.AtEnd
inputName1.TextXAlignment = Enum.TextXAlignment.Left
inputName1.TextYAlignment = Enum.TextYAlignment.Top
inputName1.AnchorPoint = Vector2.new(0, 0.5)
inputName1.AutomaticSize = Enum.AutomaticSize.XY
inputName1.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName1.BackgroundTransparency = 1
inputName1.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName1.BorderSizePixel = 0
inputName1.LayoutOrder = 2
inputName1.Position = UDim2.fromScale(0, 0.5)
inputName1.Parent = green
local uIListLayout4 = Instance.new("UIListLayout")
uIListLayout4.Name = "UIListLayout"
uIListLayout4.Padding = UDim.new(0, 15)
uIListLayout4.FillDirection = Enum.FillDirection.Horizontal
uIListLayout4.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout4.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout4.Parent = green
local inputBox1 = Instance.new("TextBox")
inputBox1.Name = "InputBox"
inputBox1.ClearTextOnFocus = false
inputBox1.FontFace = Font.new(assets.interFont)
inputBox1.Text = "255"
inputBox1.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox1.TextSize = 12
inputBox1.TextTransparency = 0.1
inputBox1.TextXAlignment = Enum.TextXAlignment.Left
inputBox1.AnchorPoint = Vector2.new(1, 0.5)
inputBox1.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox1.BackgroundTransparency = 0.95
inputBox1.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox1.BorderSizePixel = 0
inputBox1.ClipsDescendants = true
inputBox1.LayoutOrder = 1
inputBox1.Position = UDim2.fromScale(1, 0.5)
inputBox1.Size = UDim2.fromOffset(75, 25)
local inputBoxUICorner1 = Instance.new("UICorner")
inputBoxUICorner1.Name = "InputBoxUICorner"
inputBoxUICorner1.CornerRadius = UDim.new(0, 4)
inputBoxUICorner1.Parent = inputBox1
local inputBoxUIStroke1 = Instance.new("UIStroke")
inputBoxUIStroke1.Name = "InputBoxUIStroke"
inputBoxUIStroke1.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke1.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke1.Transparency = 0.9
inputBoxUIStroke1.Parent = inputBox1
local inputBoxUISizeConstraint1 = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint1.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint1.Parent = inputBox1
local inputBoxUIPadding1 = Instance.new("UIPadding")
inputBoxUIPadding1.Name = "InputBoxUIPadding"
inputBoxUIPadding1.PaddingLeft = UDim.new(0, 8)
inputBoxUIPadding1.PaddingRight = UDim.new(0, 10)
inputBoxUIPadding1.Parent = inputBox1
inputBox1.Parent = green
green.Parent = inputs
local blue = Instance.new("Frame")
blue.Name = "Blue"
blue.AutomaticSize = Enum.AutomaticSize.XY
blue.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
blue.BackgroundTransparency = 1
blue.BorderColor3 = Color3.fromRGB(0, 0, 0)
blue.BorderSizePixel = 0
blue.LayoutOrder = 3
blue.Size = UDim2.fromOffset(0, 38)
local inputName2 = Instance.new("TextLabel")
inputName2.Name = "InputName"
inputName2.FontFace = Font.new(assets.interFont)
inputName2.Text = "Blue"
inputName2.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName2.TextSize = 13
inputName2.TextTransparency = 0.5
inputName2.TextTruncate = Enum.TextTruncate.AtEnd
inputName2.TextXAlignment = Enum.TextXAlignment.Left
inputName2.TextYAlignment = Enum.TextYAlignment.Top
inputName2.AnchorPoint = Vector2.new(0, 0.5)
inputName2.AutomaticSize = Enum.AutomaticSize.XY
inputName2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName2.BackgroundTransparency = 1
inputName2.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName2.BorderSizePixel = 0
inputName2.LayoutOrder = 2
inputName2.Position = UDim2.fromScale(0, 0.5)
inputName2.Parent = blue
local uIListLayout5 = Instance.new("UIListLayout")
uIListLayout5.Name = "UIListLayout"
uIListLayout5.Padding = UDim.new(0, 15)
uIListLayout5.FillDirection = Enum.FillDirection.Horizontal
uIListLayout5.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout5.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout5.Parent = blue
local inputBox2 = Instance.new("TextBox")
inputBox2.Name = "InputBox"
inputBox2.ClearTextOnFocus = false
inputBox2.FontFace = Font.new(assets.interFont)
inputBox2.Text = "255"
inputBox2.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox2.TextSize = 12
inputBox2.TextTransparency = 0.1
inputBox2.TextXAlignment = Enum.TextXAlignment.Left
inputBox2.AnchorPoint = Vector2.new(1, 0.5)
inputBox2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox2.BackgroundTransparency = 0.95
inputBox2.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox2.BorderSizePixel = 0
inputBox2.ClipsDescendants = true
inputBox2.LayoutOrder = 1
inputBox2.Position = UDim2.fromScale(1, 0.5)
inputBox2.Size = UDim2.fromOffset(75, 25)
local inputBoxUICorner2 = Instance.new("UICorner")
inputBoxUICorner2.Name = "InputBoxUICorner"
inputBoxUICorner2.CornerRadius = UDim.new(0, 4)
inputBoxUICorner2.Parent = inputBox2
local inputBoxUIStroke2 = Instance.new("UIStroke")
inputBoxUIStroke2.Name = "InputBoxUIStroke"
inputBoxUIStroke2.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke2.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke2.Transparency = 0.9
inputBoxUIStroke2.Parent = inputBox2
local inputBoxUISizeConstraint2 = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint2.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint2.Parent = inputBox2
local inputBoxUIPadding2 = Instance.new("UIPadding")
inputBoxUIPadding2.Name = "InputBoxUIPadding"
inputBoxUIPadding2.PaddingLeft = UDim.new(0, 8)
inputBoxUIPadding2.PaddingRight = UDim.new(0, 10)
inputBoxUIPadding2.Parent = inputBox2
inputBox2.Parent = blue
blue.Parent = inputs
local alpha = Instance.new("Frame")
alpha.Name = "Alpha"
alpha.AutomaticSize = Enum.AutomaticSize.XY
alpha.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
alpha.BackgroundTransparency = 1
alpha.BorderColor3 = Color3.fromRGB(0, 0, 0)
alpha.BorderSizePixel = 0
alpha.LayoutOrder = 4
alpha.Size = UDim2.fromOffset(0, 38)
alpha.Visible = isAlpha
local inputName3 = Instance.new("TextLabel")
inputName3.Name = "InputName"
inputName3.FontFace = Font.new(assets.interFont)
inputName3.Text = "Alpha"
inputName3.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName3.TextSize = 13
inputName3.TextTransparency = 0.5
inputName3.TextTruncate = Enum.TextTruncate.AtEnd
inputName3.TextXAlignment = Enum.TextXAlignment.Left
inputName3.TextYAlignment = Enum.TextYAlignment.Top
inputName3.AnchorPoint = Vector2.new(0, 0.5)
inputName3.AutomaticSize = Enum.AutomaticSize.XY
inputName3.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName3.BackgroundTransparency = 1
inputName3.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName3.BorderSizePixel = 0
inputName3.LayoutOrder = 2
inputName3.Position = UDim2.fromScale(0, 0.5)
inputName3.Parent = alpha
local uIListLayout6 = Instance.new("UIListLayout")
uIListLayout6.Name = "UIListLayout"
uIListLayout6.Padding = UDim.new(0, 15)
uIListLayout6.FillDirection = Enum.FillDirection.Horizontal
uIListLayout6.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout6.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout6.Parent = alpha
local inputBox3 = Instance.new("TextBox")
inputBox3.Name = "InputBox"
inputBox3.ClearTextOnFocus = false
inputBox3.FontFace = Font.new(assets.interFont)
inputBox3.Text = "0"
inputBox3.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox3.TextSize = 12
inputBox3.TextTransparency = 0.1
inputBox3.TextXAlignment = Enum.TextXAlignment.Left
inputBox3.AnchorPoint = Vector2.new(1, 0.5)
inputBox3.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox3.BackgroundTransparency = 0.95
inputBox3.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox3.BorderSizePixel = 0
inputBox3.ClipsDescendants = true
inputBox3.LayoutOrder = 1
inputBox3.Position = UDim2.fromScale(1, 0.5)
inputBox3.Size = UDim2.fromOffset(75, 25)
local inputBoxUICorner3 = Instance.new("UICorner")
inputBoxUICorner3.Name = "InputBoxUICorner"
inputBoxUICorner3.CornerRadius = UDim.new(0, 4)
inputBoxUICorner3.Parent = inputBox3
local inputBoxUIStroke3 = Instance.new("UIStroke")
inputBoxUIStroke3.Name = "InputBoxUIStroke"
inputBoxUIStroke3.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke3.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke3.Transparency = 0.9
inputBoxUIStroke3.Parent = inputBox3
local inputBoxUISizeConstraint3 = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint3.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint3.Parent = inputBox3
local inputBoxUIPadding3 = Instance.new("UIPadding")
inputBoxUIPadding3.Name = "InputBoxUIPadding"
inputBoxUIPadding3.PaddingLeft = UDim.new(0, 8)
inputBoxUIPadding3.PaddingRight = UDim.new(0, 10)
inputBoxUIPadding3.Parent = inputBox3
inputBox3.Parent = alpha
alpha.Parent = inputs
local hex = Instance.new("Frame")
hex.Name = "Hex"
hex.AutomaticSize = Enum.AutomaticSize.XY
hex.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
hex.BackgroundTransparency = 1
hex.BorderColor3 = Color3.fromRGB(0, 0, 0)
hex.BorderSizePixel = 0
hex.Size = UDim2.fromOffset(0, 38)
local inputName4 = Instance.new("TextLabel")
inputName4.Name = "InputName"
inputName4.FontFace = Font.new(assets.interFont)
inputName4.Text = "Hex"
inputName4.TextColor3 = Color3.fromRGB(255, 255, 255)
inputName4.TextSize = 13
inputName4.TextTransparency = 0.5
inputName4.TextTruncate = Enum.TextTruncate.AtEnd
inputName4.TextXAlignment = Enum.TextXAlignment.Left
inputName4.TextYAlignment = Enum.TextYAlignment.Top
inputName4.AnchorPoint = Vector2.new(0, 0.5)
inputName4.AutomaticSize = Enum.AutomaticSize.XY
inputName4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputName4.BackgroundTransparency = 1
inputName4.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputName4.BorderSizePixel = 0
inputName4.LayoutOrder = 2
inputName4.Position = UDim2.fromScale(0, 0.5)
inputName4.Parent = hex
local uIListLayout7 = Instance.new("UIListLayout")
uIListLayout7.Name = "UIListLayout"
uIListLayout7.Padding = UDim.new(0, 15)
uIListLayout7.FillDirection = Enum.FillDirection.Horizontal
uIListLayout7.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout7.VerticalAlignment = Enum.VerticalAlignment.Center
uIListLayout7.Parent = hex
local inputBox4 = Instance.new("TextBox")
inputBox4.Name = "InputBox"
inputBox4.ClearTextOnFocus = false
inputBox4.CursorPosition = -1
inputBox4.FontFace = Font.new(assets.interFont)
inputBox4.Text = "255"
inputBox4.TextColor3 = Color3.fromRGB(255, 255, 255)
inputBox4.TextSize = 12
inputBox4.TextTransparency = 0.1
inputBox4.TextXAlignment = Enum.TextXAlignment.Left
inputBox4.AnchorPoint = Vector2.new(1, 0.5)
inputBox4.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
inputBox4.BackgroundTransparency = 0.95
inputBox4.BorderColor3 = Color3.fromRGB(0, 0, 0)
inputBox4.BorderSizePixel = 0
inputBox4.ClipsDescendants = true
inputBox4.LayoutOrder = 1
inputBox4.Position = UDim2.fromScale(1, 0.5)
inputBox4.Size = UDim2.fromOffset(75, 25)
local inputBoxUICorner4 = Instance.new("UICorner")
inputBoxUICorner4.Name = "InputBoxUICorner"
inputBoxUICorner4.CornerRadius = UDim.new(0, 4)
inputBoxUICorner4.Parent = inputBox4
local inputBoxUIStroke4 = Instance.new("UIStroke")
inputBoxUIStroke4.Name = "InputBoxUIStroke"
inputBoxUIStroke4.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
inputBoxUIStroke4.Color = Color3.fromRGB(255, 255, 255)
inputBoxUIStroke4.Transparency = 0.9
inputBoxUIStroke4.Parent = inputBox4
local inputBoxUISizeConstraint4 = Instance.new("UISizeConstraint")
inputBoxUISizeConstraint4.Name = "InputBoxUISizeConstraint"
inputBoxUISizeConstraint4.Parent = inputBox4
local inputBoxUIPadding4 = Instance.new("UIPadding")
inputBoxUIPadding4.Name = "InputBoxUIPadding"
inputBoxUIPadding4.PaddingLeft = UDim.new(0, 8)
inputBoxUIPadding4.PaddingRight = UDim.new(0, 10)
inputBoxUIPadding4.Parent = inputBox4
inputBox4.Parent = hex
hex.Parent = inputs
inputs.Parent = wheel
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingRight = UDim.new(0, 5)
uIPadding.Parent = wheel
wheel.Parent = colorOptions
local colorWells = Instance.new("Frame")
colorWells.Name = "ColorWells"
colorWells.AutomaticSize = Enum.AutomaticSize.Y
colorWells.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorWells.BackgroundTransparency = 1
colorWells.BorderColor3 = Color3.fromRGB(0, 0, 0)
colorWells.BorderSizePixel = 0
colorWells.LayoutOrder = 2
colorWells.Size = UDim2.fromScale(1, 0)
local uIGridLayout = Instance.new("UIGridLayout")
uIGridLayout.Name = "UIGridLayout"
uIGridLayout.CellPadding = UDim2.fromOffset(10, 0)
uIGridLayout.CellSize = UDim2.new(0.5, -5, 0, 30)
uIGridLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIGridLayout.Parent = colorWells
local newColor = Instance.new("ImageLabel")
newColor.Name = "NewColor"
newColor.Image = assets.grid
newColor.ScaleType = Enum.ScaleType.Tile
newColor.TileSize = UDim2.fromOffset(500, 500)
newColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
newColor.BackgroundTransparency = 1
newColor.BorderColor3 = Color3.fromRGB(0, 0, 0)
newColor.BorderSizePixel = 0
newColor.Size = UDim2.fromOffset(100, 100)
local uICorner2 = Instance.new("UICorner")
uICorner2.Name = "UICorner"
uICorner2.Parent = newColor
local color = Instance.new("Frame")
color.Name = "Color"
color.AnchorPoint = Vector2.new(0.5, 0.5)
color.BorderColor3 = Color3.fromRGB(27, 42, 53)
color.BorderSizePixel = 0
color.Position = UDim2.fromScale(0.5, 0.5)
color.Size = UDim2.new(1, 1, 1, 1)
local uICorner3 = Instance.new("UICorner")
uICorner3.Name = "UICorner"
uICorner3.Parent = color
color.Parent = newColor
newColor.Parent = colorWells
local oldColor = Instance.new("ImageLabel")
oldColor.Name = "OldColor"
oldColor.Image = assets.grid
oldColor.ScaleType = Enum.ScaleType.Tile
oldColor.TileSize = UDim2.fromOffset(500, 500)
oldColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
oldColor.BackgroundTransparency = 1
oldColor.BorderColor3 = Color3.fromRGB(0, 0, 0)
oldColor.BorderSizePixel = 0
oldColor.LayoutOrder = 1
oldColor.Size = UDim2.fromOffset(100, 100)
local uICorner4 = Instance.new("UICorner")
uICorner4.Name = "UICorner"
uICorner4.Parent = oldColor
local color1 = Instance.new("Frame")
color1.Name = "Color"
color1.AnchorPoint = Vector2.new(0.5, 0.5)
color1.BorderColor3 = Color3.fromRGB(27, 42, 53)
color1.BorderSizePixel = 0
color1.Position = UDim2.fromScale(0.5, 0.5)
color1.Size = UDim2.new(1, 1, 1, 1)
local uICorner5 = Instance.new("UICorner")
uICorner5.Name = "UICorner"
uICorner5.Parent = color1
color1.Parent = oldColor
oldColor.Parent = colorWells
colorWells.Parent = colorOptions
colorOptions.Parent = prompt
local interactions = Instance.new("Frame")
interactions.Name = "Interactions"
interactions.AutomaticSize = Enum.AutomaticSize.Y
interactions.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
interactions.BackgroundTransparency = 1
interactions.BorderColor3 = Color3.fromRGB(0, 0, 0)
interactions.BorderSizePixel = 0
interactions.LayoutOrder = 2
interactions.Size = UDim2.fromScale(1, 0)
local uIListLayout8 = Instance.new("UIListLayout")
uIListLayout8.Name = "UIListLayout"
uIListLayout8.Padding = UDim.new(0, 10)
uIListLayout8.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout8.Parent = interactions
local confirm = Instance.new("TextButton")
confirm.Name = "Confirm"
confirm.FontFace = Font.new(
"rbxassetid://12187365364",
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
confirm.Text = "Confirm"
confirm.TextColor3 = Color3.fromRGB(255, 255, 255)
confirm.TextSize = 15
confirm.TextTransparency = 0.5
confirm.TextTruncate = Enum.TextTruncate.AtEnd
confirm.AutoButtonColor = false
confirm.AutomaticSize = Enum.AutomaticSize.Y
confirm.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
confirm.BorderColor3 = Color3.fromRGB(0, 0, 0)
confirm.BorderSizePixel = 0
confirm.Size = UDim2.fromScale(1, 0)
local uIPadding1 = Instance.new("UIPadding")
uIPadding1.Name = "UIPadding"
uIPadding1.PaddingBottom = UDim.new(0, 9)
uIPadding1.PaddingLeft = UDim.new(0, 10)
uIPadding1.PaddingRight = UDim.new(0, 10)
uIPadding1.PaddingTop = UDim.new(0, 9)
uIPadding1.Parent = confirm
local baseUICorner = Instance.new("UICorner")
baseUICorner.Name = "BaseUICorner"
baseUICorner.CornerRadius = UDim.new(0, 10)
baseUICorner.Parent = confirm
confirm.Parent = interactions
local cancel = Instance.new("TextButton")
cancel.Name = "Cancel"
cancel.FontFace = Font.new(
"rbxassetid://12187365364",
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
cancel.Text = "Cancel"
cancel.TextColor3 = Color3.fromRGB(255, 255, 255)
cancel.TextSize = 15
cancel.TextTransparency = 0.5
cancel.TextTruncate = Enum.TextTruncate.AtEnd
cancel.AutoButtonColor = false
cancel.AutomaticSize = Enum.AutomaticSize.Y
cancel.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
cancel.BorderColor3 = Color3.fromRGB(0, 0, 0)
cancel.BorderSizePixel = 0
cancel.Size = UDim2.fromScale(1, 0)
local baseUICorner1 = Instance.new("UICorner")
baseUICorner1.Name = "BaseUICorner"
baseUICorner1.CornerRadius = UDim.new(0, 10)
baseUICorner1.Parent = cancel
local uIPadding2 = Instance.new("UIPadding")
uIPadding2.Name = "UIPadding"
uIPadding2.PaddingBottom = UDim.new(0, 9)
uIPadding2.PaddingLeft = UDim.new(0, 10)
uIPadding2.PaddingRight = UDim.new(0, 10)
uIPadding2.PaddingTop = UDim.new(0, 9)
uIPadding2.Parent = cancel
cancel.Parent = interactions
local uIPadding3 = Instance.new("UIPadding")
uIPadding3.Name = "UIPadding"
uIPadding3.PaddingTop = UDim.new(0, 10)
uIPadding3.Parent = interactions
interactions.Parent = prompt
local globalSettingsUIPadding = Instance.new("UIPadding")
globalSettingsUIPadding.Name = "GlobalSettingsUIPadding"
globalSettingsUIPadding.PaddingBottom = UDim.new(0, 20)
globalSettingsUIPadding.PaddingLeft = UDim.new(0, 20)
globalSettingsUIPadding.PaddingRight = UDim.new(0, 20)
globalSettingsUIPadding.PaddingTop = UDim.new(0, 20)
globalSettingsUIPadding.Parent = prompt
local paragraph = Instance.new("Frame")
paragraph.Name = "Paragraph"
paragraph.AutomaticSize = Enum.AutomaticSize.Y
paragraph.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BackgroundTransparency = 1
paragraph.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BorderSizePixel = 0
paragraph.Size = UDim2.fromScale(1, 0)
local paragraphHeader = Instance.new("TextLabel")
paragraphHeader.Name = "ParagraphHeader"
paragraphHeader.FontFace = Font.new(
"rbxassetid://12187365364",
Enum.FontWeight.SemiBold,
Enum.FontStyle.Normal
)
paragraphHeader.RichText = true
paragraphHeader.Text = ColorpickerFunctions.Settings.Name
paragraphHeader.TextColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.TextSize = 18
paragraphHeader.TextTransparency = 0.4
paragraphHeader.TextWrapped = true
paragraphHeader.TextYAlignment = Enum.TextYAlignment.Top
paragraphHeader.AutomaticSize = Enum.AutomaticSize.XY
paragraphHeader.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.BackgroundTransparency = 1
paragraphHeader.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraphHeader.BorderSizePixel = 0
paragraphHeader.Size = UDim2.fromScale(1, 0)
paragraphHeader.Parent = paragraph
local uIListLayout9 = Instance.new("UIListLayout")
uIListLayout9.Name = "UIListLayout"
uIListLayout9.Padding = UDim.new(0, 15)
uIListLayout9.HorizontalAlignment = Enum.HorizontalAlignment.Center
uIListLayout9.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout9.Parent = paragraph
local uIPadding4 = Instance.new("UIPadding")
uIPadding4.Name = "UIPadding"
uIPadding4.PaddingBottom = UDim.new(0, 15)
uIPadding4.Parent = paragraph
local line = Instance.new("Frame")
line.Name = "Line"
line.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
line.BackgroundTransparency = 0.9
line.BorderColor3 = Color3.fromRGB(0, 0, 0)
line.BorderSizePixel = 0
line.LayoutOrder = 1
line.Size = UDim2.new(1, 0, 0, 1)
line.Parent = paragraph
paragraph.Parent = prompt
prompt.Parent = colorPicker
colorPicker.Parent = base
local fromHSV, fromRGB, v2, udim2 = Color3.fromHSV, Color3.fromRGB, Vector2.new, UDim2.new
local wheel = wheel1
local ring = target
local slider = value
local colour = color
local modifierInputs = {
Hex = hex.InputBox,
Red = red.InputBox,
Green = green.InputBox,
Blue = blue.InputBox,
Alpha = alpha.InputBox
}
local Mouse = LocalPlayer:GetMouse()
local WheelDown, SlideDown = false, false
local hue, saturation, value = 0, 0, 1
local function toPolar(v)
return math.atan2(v.y, v.x), v.magnitude
end
local function radToDeg(x)
return ((x + math.pi) / (2 * math.pi)) * 360
end
local function degToRad(degrees)
return degrees * (math.pi / 180)
end
local function hexToRGB(hex)
hex = hex:gsub("#","")
if #hex ~= 6 then return 0, 0, 0 end
local r = tonumber(hex:sub(1, 2), 16) or 0
local g = tonumber(hex:sub(3, 4), 16) or 0
local b = tonumber(hex:sub(5, 6), 16) or 0
return r, g, b
end
local function clampInput(value, min, max)
local num = tonumber(value)
if num then
return math.clamp(num, min, max)
end
return min
end
local function update()
local c = fromHSV(hue, saturation, value)
colour.BackgroundColor3 = c
colour.BackgroundTransparency = clampInput(modifierInputs.Alpha.Text, 0, 1)
modifierInputs.Red.Text = tostring(math.floor(c.r * 255 + 0.5))
modifierInputs.Green.Text = tostring(math.floor(c.g * 255 + 0.5))
modifierInputs.Blue.Text = tostring(math.floor(c.b * 255 + 0.5))
modifierInputs.Alpha.Text = clampInput(modifierInputs.Alpha.Text, 0, 1)
local hexColor = string.format("#%02X%02X%02X",
math.floor(c.r * 255 + 0.5),
math.floor(c.g * 255 + 0.5),
math.floor(c.b * 255 + 0.5))
modifierInputs.Hex.Text = hexColor
end
local function UpdateSlide(iX)
local rY = iX - slider.AbsolutePosition.X
local cY = math.clamp(rY, 0, slider.AbsoluteSize.X - slide.AbsoluteSize.X)
slide.Position = udim2(0, cY, 0.5, 0)
value = 1 - (cY / (slider.AbsoluteSize.X - slide.AbsoluteSize.X))
update()
end
local function UpdateRing(iX, iY)
local r = wheel.AbsoluteSize.x / 2
local d = v2(iX, iY) - wheel.AbsolutePosition - wheel.AbsoluteSize / 2
if d:Dot(d) > r * r then
d = d.unit * r
end
ring.Position = udim2(0.5, d.x, 0.5, d.y)
local phi, len = toPolar(d * v2(1, -1))
hue, saturation = radToDeg(phi) / 360, math.clamp(len / r, 0, 1)
slider.BackgroundColor3 = fromHSV(hue, saturation, 1)
update()
end
local function UpdateSlideFromValue(value)
local cY = (1 - value) * (slider.AbsoluteSize.X - slide.AbsoluteSize.X)
slide.Position = UDim2.new(0, cY, 0.5, 0)
end
local function UpdateRingFromHSV(hue, saturation)
local r = wheel.AbsoluteSize.X / 2
local phi = degToRad(hue * 360)
local len = saturation * r
local x = len * math.cos(phi)
local y = len * math.sin(phi)
ring.Position = UDim2.new(0.5, -x, 0.5, y)
slider.BackgroundColor3 = fromHSV(hue, saturation, 1)
end
local function updateFromRGB()
local r = clampInput(modifierInputs.Red.Text, 0, 255)
local g = clampInput(modifierInputs.Green.Text, 0, 255)
local b = clampInput(modifierInputs.Blue.Text, 0, 255)
modifierInputs.Red.Text = r
modifierInputs.Green.Text = g
modifierInputs.Blue.Text = b
hue, saturation, value = Color3.fromRGB(r, g, b):ToHSV()
UpdateSlideFromValue(value)
UpdateRingFromHSV(hue, saturation)
update()
end
local function updateFromHex()
local hex = modifierInputs.Hex.Text
local r, g, b = hexToRGB(hex)
r = clampInput(r, 0, 255)
g = clampInput(g, 0, 255)
b = clampInput(b, 0, 255)
modifierInputs.Red.Text = r
modifierInputs.Green.Text = g
modifierInputs.Blue.Text = b
hue, saturation, value = Color3.fromRGB(r, g, b):ToHSV()
UpdateSlideFromValue(value)
UpdateRingFromHSV(hue, saturation)
update()
end
local function updateFromSettings()
local r = math.floor(ColorpickerFunctions.Color.R * 255 + 0.5)
local g = math.floor(ColorpickerFunctions.Color.G * 255 + 0.5)
local b = math.floor(ColorpickerFunctions.Color.B * 255 + 0.5)
modifierInputs.Red.Text = r
modifierInputs.Green.Text = g
modifierInputs.Blue.Text = b
modifierInputs.Alpha.Text = isAlpha and ColorpickerFunctions.Alpha or 0
local hexColor = string.format("#%02X%02X%02X", r,g,b)
modifierInputs.Hex.Text = hexColor
hue, saturation, value = Color3.fromRGB(r, g, b):ToHSV()
color1.BackgroundColor3 = ColorpickerFunctions.Color
color1.BackgroundTransparency = isAlpha and ColorpickerFunctions.Alpha or 0
colour.BackgroundColor3 = Color3.fromRGB(r,g,b)
colour.BackgroundTransparency = isAlpha and ColorpickerFunctions.Alpha or 0
UpdateSlideFromValue(value)
UpdateRingFromHSV(hue, saturation)
end
wheel.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
WheelDown = true
UpdateRing(Mouse.X, Mouse.Y)
end
end)
slider.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
SlideDown = true
UpdateSlide(Mouse.X)
end
end)
slider.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
SlideDown = false
end
end)
wheel.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
WheelDown = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
if SlideDown then
UpdateSlide(Mouse.X)
elseif WheelDown then
UpdateRing(Mouse.X, Mouse.Y)
end
end
end)
local function onFocusEnter(instance)
local placeholder = instance.Text
instance.Text = ""
instance.PlaceholderText = placeholder
end
modifierInputs.Hex.FocusLost:Connect(updateFromHex)
modifierInputs.Red.FocusLost:Connect(updateFromRGB)
modifierInputs.Green.FocusLost:Connect(updateFromRGB)
modifierInputs.Blue.FocusLost:Connect(updateFromRGB)
modifierInputs.Alpha.FocusLost:Connect(update)
modifierInputs.Hex.Focused:Connect(function()
onFocusEnter(modifierInputs.Hex)
end)
modifierInputs.Red.Focused:Connect(function()
onFocusEnter(modifierInputs.Red)
end)
modifierInputs.Green.Focused:Connect(function()
onFocusEnter(modifierInputs.Green)
end)
modifierInputs.Blue.Focused:Connect(function()
onFocusEnter(modifierInputs.Blue)
end)
modifierInputs.Alpha.Focused:Connect(function()
onFocusEnter(modifierInputs.Alpha)
end)
local function makeCanvas()
local ColorPickerCanvas = Instance.new("CanvasGroup")
ColorPickerCanvas.Name = "ColorPickerCanvas"
ColorPickerCanvas.BackgroundTransparency = 1
ColorPickerCanvas.BorderSizePixel = 0
ColorPickerCanvas.Size = UDim2.fromScale(1, 1)
ColorPickerCanvas.ZIndex = 5
ColorPickerCanvas.GroupTransparency = 1
ColorPickerCanvas.Parent = base
ColorPickerCanvas.Visible = false
return ColorPickerCanvas
end
local function transition(isIn)
local canvas = makeCanvas()
local tweenTransparency = isIn and 0 or 1
local tweenScale = isIn and 1 or 0.95
local stateTransparency = isIn and 1 or 0
local tweenInfo = TweenInfo.new(0.1, Enum.EasingStyle.Sine)
local canvasTween = Tween(canvas, tweenInfo, { GroupTransparency = tweenTransparency })
local scaleTween = Tween(promptUIScale, tweenInfo, { Scale = tweenScale })
colorPicker.Visible = true
colorPicker.Parent = canvas
canvas.Visible = true
canvas.GroupTransparency = stateTransparency
canvasTween:Play()
scaleTween:Play()
canvasTween.Completed:Wait()
if not isIn then
colorPicker.Visible = false
canvas.Visible = false
end
colorPicker.Parent = base
canvas:Destroy()
end
local function colorpickerIn()
transition(true)
end
local function colorpickerOut()
transition(false)
end
interact.MouseButton1Click:Connect(colorpickerIn)
cancel.MouseButton1Click:Connect(colorpickerOut)
confirm.MouseButton1Click:Connect(function()
colorpickerOut()
local c = fromHSV(hue, saturation, value)
ColorpickerFunctions.Color = Color3.fromRGB(c.r * 255, c.g * 255, c.b * 255)
ColorpickerFunctions.Alpha = isAlpha and clampInput(modifierInputs.Alpha.Text, 0, 1)
color1.BackgroundColor3 = ColorpickerFunctions.Color
color1.BackgroundTransparency = isAlpha and ColorpickerFunctions.Alpha or 0
colorC.BackgroundColor3 = ColorpickerFunctions.Color
colorC.BackgroundTransparency = isAlpha and ColorpickerFunctions.Alpha or 0
if ColorpickerFunctions.Settings.Callback then
task.spawn(function()
ColorpickerFunctions.Settings.Callback(ColorpickerFunctions.Color, isAlpha and ColorpickerFunctions.Alpha)
end)
end
end)
updateFromSettings()
function ColorpickerFunctions:UpdateName(New)
colorpickerName.Text = New
end
function ColorpickerFunctions:SetVisibility(State)
colorpicker.Visible = State
end
function ColorpickerFunctions:SetColor(color3)
ColorpickerFunctions.Color = color3
colorC.BackgroundColor3 = color3
local r = math.floor(ColorpickerFunctions.Color.R * 255 + 0.5)
local g = math.floor(ColorpickerFunctions.Color.G * 255 + 0.5)
local b = math.floor(ColorpickerFunctions.Color.B * 255 + 0.5)
modifierInputs.Red.Text = r
modifierInputs.Green.Text = g
modifierInputs.Blue.Text = b
local hexColor = string.format("#%02X%02X%02X", r,g,b)
modifierInputs.Hex.Text = hexColor
hue, saturation, value = Color3.fromRGB(r, g, b):ToHSV()
color1.BackgroundColor3 = ColorpickerFunctions.Color
colour.BackgroundColor3 = Color3.fromRGB(r,g,b)
UpdateSlideFromValue(value)
UpdateRingFromHSV(hue, saturation)
if ColorpickerFunctions.Settings.Callback then
task.spawn(function()
ColorpickerFunctions.Settings.Callback(ColorpickerFunctions.Color, isAlpha and ColorpickerFunctions.Alpha)
end)
end
end
function ColorpickerFunctions:SetAlpha(alpha)
ColorpickerFunctions.Alpha = alpha
colorC.Transparency = alpha
updateFromSettings()
end
if Flag then
MacLib.Options[Flag] = ColorpickerFunctions
end
return ColorpickerFunctions
end
function SectionFunctions:Header(Settings, Flag)
local HeaderFunctions = {Settings = Settings}
local header = Instance.new("Frame")
header.Name = "Header"
header.AutomaticSize = Enum.AutomaticSize.Y
header.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
header.BackgroundTransparency = 1
header.BorderColor3 = Color3.fromRGB(0, 0, 0)
header.BorderSizePixel = 0
header.LayoutOrder = 0
header.Size = UDim2.fromScale(1, 0)
header.Parent = section
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingBottom = UDim.new(0, 5)
uIPadding.Parent = header
local headerText = Instance.new("TextLabel")
headerText.Name = "HeaderText"
headerText.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
headerText.RichText = true
headerText.Text = HeaderFunctions.Settings.Text or HeaderFunctions.Settings.Name
headerText.TextColor3 = Color3.fromRGB(255, 255, 255)
headerText.TextSize = 16
headerText.TextTransparency = 0.3
headerText.TextWrapped = true
headerText.TextXAlignment = Enum.TextXAlignment.Left
headerText.AutomaticSize = Enum.AutomaticSize.Y
headerText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
headerText.BackgroundTransparency = 1
headerText.BorderColor3 = Color3.fromRGB(0, 0, 0)
headerText.BorderSizePixel = 0
headerText.Size = UDim2.fromScale(1, 0)
headerText.Parent = header
function HeaderFunctions:UpdateName(New)
headerText.Text = New
end
function HeaderFunctions:SetVisibility(State)
header.Visible = State
end
if Flag then
MacLib.Options[Flag] = HeaderFunctions
end
return HeaderFunctions
end
function SectionFunctions:Label(Settings, Flag)
local LabelFunctions = {Settings = Settings}
local label = Instance.new("Frame")
label.Name = "Label"
label.AutomaticSize = Enum.AutomaticSize.Y
label.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
label.BackgroundTransparency = 1
label.BorderColor3 = Color3.fromRGB(0, 0, 0)
label.BorderSizePixel = 0
label.Size = UDim2.new(1, 0, 0, 38)
label.Parent = section
local labelText = Instance.new("TextLabel")
labelText.Name = "LabelText"
labelText.FontFace = Font.new(assets.interFont)
labelText.RichText = true
labelText.Text = LabelFunctions.Settings.Text or LabelFunctions.Settings.Name -- Settings.Name Deprecated use Settings.Text
labelText.TextColor3 = Color3.fromRGB(255, 255, 255)
labelText.TextSize = 13
labelText.TextTransparency = 0.5
labelText.TextWrapped = true
labelText.TextXAlignment = Enum.TextXAlignment.Left
labelText.AutomaticSize = Enum.AutomaticSize.Y
labelText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
labelText.BackgroundTransparency = 1
labelText.BorderColor3 = Color3.fromRGB(0, 0, 0)
labelText.BorderSizePixel = 0
labelText.Size = UDim2.fromScale(1, 1)
labelText.Parent = label
function LabelFunctions:UpdateName(New)
labelText.Text = New
end
function LabelFunctions:SetVisibility(State)
label.Visible = State
end
if Flag then
MacLib.Options[Flag] = LabelFunctions
end
return LabelFunctions
end
function SectionFunctions:SubLabel(Settings, Flag)
local SubLabelFunctions = {Settings = Settings}
local subLabel = Instance.new("Frame")
subLabel.Name = "SubLabel"
subLabel.AutomaticSize = Enum.AutomaticSize.Y
subLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
subLabel.BackgroundTransparency = 1
subLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
subLabel.BorderSizePixel = 0
subLabel.Size = UDim2.new(1, 0, 0, 0)
subLabel.Parent = section
local subLabelText = Instance.new("TextLabel")
subLabelText.Name = "SubLabelText"
subLabelText.FontFace = Font.new(assets.interFont)
subLabelText.RichText = true
subLabelText.Text = SubLabelFunctions.Settings.Text or SubLabelFunctions.Settings.Name -- Settings.Name Deprecated use Settings.Text
subLabelText.TextColor3 = Color3.fromRGB(255, 255, 255)
subLabelText.TextSize = 12
subLabelText.TextTransparency = 0.7
subLabelText.TextWrapped = true
subLabelText.TextXAlignment = Enum.TextXAlignment.Left
subLabelText.AutomaticSize = Enum.AutomaticSize.Y
subLabelText.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
subLabelText.BackgroundTransparency = 1
subLabelText.BorderColor3 = Color3.fromRGB(0, 0, 0)
subLabelText.BorderSizePixel = 0
subLabelText.Size = UDim2.fromScale(1, 1)
subLabelText.Parent = subLabel
function SubLabelFunctions:UpdateName(New)
subLabelText.Text = New
end
function SubLabelFunctions:SetVisibility(State)
subLabel.Visible = State
end
if Flag then
MacLib.Options[Flag] = SubLabelFunctions
end
return SubLabelFunctions
end
function SectionFunctions:Paragraph(Settings, Flag)
local ParagraphFunctions = {Settings = Settings}
local paragraph = Instance.new("Frame")
paragraph.Name = "Paragraph"
paragraph.AutomaticSize = Enum.AutomaticSize.Y
paragraph.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BackgroundTransparency = 1
paragraph.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BorderSizePixel = 0
paragraph.Size = UDim2.new(1, 0, 0, 38)
paragraph.Parent = section
local paragraphHeader = Instance.new("TextLabel")
paragraphHeader.Name = "ParagraphHeader"
paragraphHeader.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
paragraphHeader.RichText = true
paragraphHeader.Text = ParagraphFunctions.Settings.Header
paragraphHeader.TextColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.TextSize = 15
paragraphHeader.TextTransparency = 0.4
paragraphHeader.TextWrapped = true
paragraphHeader.TextXAlignment = Enum.TextXAlignment.Left
paragraphHeader.AutomaticSize = Enum.AutomaticSize.Y
paragraphHeader.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.BackgroundTransparency = 1
paragraphHeader.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraphHeader.BorderSizePixel = 0
paragraphHeader.Size = UDim2.fromScale(1, 0)
paragraphHeader.Parent = paragraph
local uIListLayout = Instance.new("UIListLayout")
uIListLayout.Name = "UIListLayout"
uIListLayout.Padding = UDim.new(0, 5)
uIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout.Parent = paragraph
local paragraphBody = Instance.new("TextLabel")
paragraphBody.Name = "ParagraphBody"
paragraphBody.FontFace = Font.new(assets.interFont)
paragraphBody.RichText = true
paragraphBody.Text = ParagraphFunctions.Settings.Body
paragraphBody.TextColor3 = Color3.fromRGB(255, 255, 255)
paragraphBody.TextSize = 13
paragraphBody.TextTransparency = 0.5
paragraphBody.TextWrapped = true
paragraphBody.TextXAlignment = Enum.TextXAlignment.Left
paragraphBody.AutomaticSize = Enum.AutomaticSize.Y
paragraphBody.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
paragraphBody.BackgroundTransparency = 1
paragraphBody.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraphBody.BorderSizePixel = 0
paragraphBody.LayoutOrder = 1
paragraphBody.Size = UDim2.fromScale(1, 0)
paragraphBody.Parent = paragraph
function ParagraphFunctions:UpdateHeader(New)
paragraphHeader.Text = New
end
function ParagraphFunctions:UpdateBody(New)
paragraphBody.Text = New
end
function ParagraphFunctions:SetVisibility(State)
paragraph.Visible = State
end
if Flag then
MacLib.Options[Flag] = ParagraphFunctions
end
return ParagraphFunctions
end
function SectionFunctions:Divider()
local DividerFunctions = {}
local divider = Instance.new("Frame")
divider.Name = "Divider"
divider.AnchorPoint = Vector2.new(0, 1)
divider.AutomaticSize = Enum.AutomaticSize.Y
divider.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
divider.BackgroundTransparency = 1
divider.BorderColor3 = Color3.fromRGB(0, 0, 0)
divider.BorderSizePixel = 0
divider.Position = UDim2.fromScale(0, 1)
divider.Size = UDim2.new(1, 0, 0, 1)
divider.Parent = section
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingBottom = UDim.new(0, 8)
uIPadding.PaddingTop = UDim.new(0, 8)
uIPadding.Parent = divider
local uIListLayout = Instance.new("UIListLayout")
uIListLayout.Name = "UIListLayout"
uIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout.Parent = divider
local line = Instance.new("Frame")
line.Name = "Line"
line.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
line.BackgroundTransparency = 0.9
line.BorderColor3 = Color3.fromRGB(0, 0, 0)
line.BorderSizePixel = 0
line.Size = UDim2.new(1, 0, 0, 1)
line.Parent = divider
function DividerFunctions:Remove()
divider:Destroy()
end
function DividerFunctions:SetVisibility(State)
divider.Visible = State
end
return DividerFunctions
end
function SectionFunctions:Spacer()
local SpacerFunctions = {}
local spacer = Instance.new("Frame")
spacer.Name = "Spacer"
spacer.AnchorPoint = Vector2.new(0, 1)
spacer.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
spacer.BackgroundTransparency = 1
spacer.BorderColor3 = Color3.fromRGB(0, 0, 0)
spacer.BorderSizePixel = 0
spacer.Position = UDim2.fromScale(0, 1)
spacer.Parent = section
function SpacerFunctions:Remove()
spacer:Destroy()
end
function SpacerFunctions:SetVisibility(State)
spacer.Visible = State
end
return SpacerFunctions
end
return SectionFunctions
end
local function SelectCurrentTab()
local easetime = 0.15
if currentTabInstance then
currentTabInstance.Parent = nil
end
for i, tabInfo in pairs(tabs) do
Tween(i, TweenInfo.new(easetime, Enum.EasingStyle.Sine), {
BackgroundTransparency = (i == tabSwitcher and 0.98 or 1)
}):Play()
if tabInfo.tabStroke then
Tween(tabInfo.tabStroke, TweenInfo.new(easetime, Enum.EasingStyle.Sine), {
Transparency = (i == tabSwitcher and 0.95 or 1)
}):Play()
end
if tabInfo.switcherImage then
Tween(tabInfo.switcherImage, TweenInfo.new(easetime, Enum.EasingStyle.Sine), {
ImageTransparency = (i == tabSwitcher and 0.1 or 0.5)
}):Play()
end
if tabInfo.switcherName then
Tween(tabInfo.switcherName, TweenInfo.new(easetime, Enum.EasingStyle.Sine), {
TextTransparency = (i == tabSwitcher and 0.1 or 0.5)
}):Play()
end
end
tabs[tabSwitcher].tabContent.Parent = content
currentTabInstance = tabs[tabSwitcher].tabContent
currentTab.Text = Settings.Name
end
tabSwitcher.MouseButton1Click:Connect(function()
SelectCurrentTab()
end)
function TabFunctions:Select()
SelectCurrentTab()
end
function TabFunctions:InsertConfigSection(Side)
local configSection = TabFunctions:Section({ Side = "Left" })
if isStudio then
configSection:Label({Text = "Config system unavailable. (Environment isStudio)"})
return "Config system unavailable."
end
local inputPath = nil
local selectedConfig = nil
configSection:Input({
Name = "Config Name",
Placeholder = "Name",
AcceptedCharacters = "All",
Callback = function(input)
inputPath = input
end,
})
local configSelection = configSection:Dropdown({
Name = "Select Config",
Multi = false,
Required = false,
Options = MacLib:RefreshConfigList(),
Callback = function(Value)
selectedConfig = Value
end,
})
configSection:Button({
Name = "Create Config",
Callback = function()
if not inputPath or string.gsub(inputPath, " ", "") == "" then
WindowFunctions:Notify({
Title = "Interface",
Description = "Config name cannot be empty."
})
return
end
local success, returned = MacLib:SaveConfig(inputPath)
if not success then
WindowFunctions:Notify({
Title = "Interface",
Description = "Unable to save config, return error: " .. returned
})
end
WindowFunctions:Notify({
Title = "Interface",
Description = string.format("Created config %q", inputPath),
})
configSelection:ClearOptions()
configSelection:InsertOptions(MacLib:RefreshConfigList())
end,
})
configSection:Button({
Name = "Load Config",
Callback = function()
local success, returned = MacLib:LoadConfig(configSelection.Value)
if not success then
WindowFunctions:Notify({
Title = "Interface",
Description = "Unable to load config, return error: " .. returned
})
return
end
WindowFunctions:Notify({
Title = "Interface",
Description = string.format("Loaded config %q", configSelection.Value),
})
end,
})
configSection:Button({
Name = "Overwrite Config",
Callback = function()
local success, returned = MacLib:SaveConfig(configSelection.Value)
if not success then
WindowFunctions:Notify({
Title = "Interface",
Description = "Unable to overwrite config, return error: " .. returned
})
return
end
WindowFunctions:Notify({
Title = "Interface",
Description = string.format("Overwrote config %q", configSelection.Value),
})
end,
})
configSection:Button({
Name = "Refresh Config List",
Callback = function()
configSelection:ClearOptions()
configSelection:InsertOptions(MacLib:RefreshConfigList())
end,
})
local autoloadLabel
configSection:Button({
Name = "Set as autoload",
Callback = function()
local name = configSelection.Value
writefile(MacLib.Folder .. "/settings/autoload.txt", name)
autoloadLabel:UpdateName("Autoload config: " .. name)
WindowFunctions:Notify({
Title = "Interface",
Description = string.format("Set %q as autoload", name),
})
end,
})
autoloadLabel = configSection:Label({Text = "Autoload config: None"})
if isfile(MacLib.Folder .. "/settings/autoload.txt") then
local name = readfile(MacLib.Folder .. "/settings/autoload.txt")
autoloadLabel:UpdateName("Autoload config: " .. name)
end
end
tabs[tabSwitcher] = {
tabContent = elements1,
tabStroke = tabSwitcherUIStroke,
switcherImage = tabImage,
switcherName = tabSwitcherName,
}
return TabFunctions
end
return SectionFunctions
end
function WindowFunctions:Notify(Settings)
local NotificationFunctions = {}
local notification = Instance.new("Frame")
notification.Name = "Notification"
notification.AnchorPoint = Vector2.new(0.5, 0.5)
notification.AutomaticSize = Enum.AutomaticSize.Y
notification.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
notification.BorderColor3 = Color3.fromRGB(0, 0, 0)
notification.BorderSizePixel = 0
notification.Position = UDim2.fromScale(0.5, 0.5)
notification.Size = UDim2.fromOffset(Settings.SizeX or 250, 0)
notification.Parent = notifications
local notificationUIStroke = Instance.new("UIStroke")
notificationUIStroke.Name = "NotificationUIStroke"
notificationUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
notificationUIStroke.Color = Color3.fromRGB(255, 255, 255)
notificationUIStroke.Transparency = 0.9
notificationUIStroke.Parent = notification
local notificationUICorner = Instance.new("UICorner")
notificationUICorner.Name = "NotificationUICorner"
notificationUICorner.CornerRadius = UDim.new(0, 10)
notificationUICorner.Parent = notification
local notificationUIScale = Instance.new("UIScale")
notificationUIScale.Name = "NotificationUIScale"
notificationUIScale.Parent = notification
notificationUIScale.Scale = 0
local notificationInformation = Instance.new("Frame")
notificationInformation.Name = "NotificationInformation"
notificationInformation.AutomaticSize = Enum.AutomaticSize.Y
notificationInformation.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
notificationInformation.BackgroundTransparency = 1
notificationInformation.BorderColor3 = Color3.fromRGB(0, 0, 0)
notificationInformation.BorderSizePixel = 0
notificationInformation.Size = UDim2.fromScale(1, 1)
local notificationTitle = Instance.new("TextLabel")
notificationTitle.Name = "NotificationTitle"
notificationTitle.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.SemiBold,
Enum.FontStyle.Normal
)
notificationTitle.RichText = true
notificationTitle.Text = Settings.Title
notificationTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
notificationTitle.TextSize = 13
notificationTitle.TextTransparency = 0.2
notificationTitle.TextTruncate = Enum.TextTruncate.SplitWord
notificationTitle.TextXAlignment = Enum.TextXAlignment.Left
notificationTitle.TextYAlignment = Enum.TextYAlignment.Top
notificationTitle.AutomaticSize = Enum.AutomaticSize.XY
notificationTitle.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
notificationTitle.BackgroundTransparency = 1
notificationTitle.BorderColor3 = Color3.fromRGB(0, 0, 0)
notificationTitle.BorderSizePixel = 0
notificationTitle.Size = UDim2.new(1, -12, 0, 0)
local notificationTitleUIPadding = Instance.new("UIPadding")
notificationTitleUIPadding.Name = "NotificationTitleUIPadding"
notificationTitleUIPadding.PaddingRight = UDim.new(0, 25)
notificationTitleUIPadding.Parent = notificationTitle
notificationTitle.Parent = notificationInformation
local notificationDescription = Instance.new("TextLabel")
notificationDescription.Name = "NotificationDescription"
notificationDescription.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
notificationDescription.Text = Settings.Description
notificationDescription.TextColor3 = Color3.fromRGB(255, 255, 255)
notificationDescription.TextSize = 11
notificationDescription.TextTransparency = 0.5
notificationDescription.TextWrapped = true
notificationDescription.RichText = true
notificationDescription.TextXAlignment = Enum.TextXAlignment.Left
notificationDescription.TextYAlignment = Enum.TextYAlignment.Top
notificationDescription.AutomaticSize = Enum.AutomaticSize.XY
notificationDescription.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
notificationDescription.BackgroundTransparency = 1
notificationDescription.BorderColor3 = Color3.fromRGB(0, 0, 0)
notificationDescription.BorderSizePixel = 0
notificationDescription.Size = UDim2.new(1, -12, 0, 0)
local notificationDescriptionUIPadding = Instance.new("UIPadding")
notificationDescriptionUIPadding.Name = "NotificationDescriptionUIPadding"
notificationDescriptionUIPadding.PaddingRight = UDim.new(0, 25)
notificationDescriptionUIPadding.PaddingTop = UDim.new(0, 17)
notificationDescriptionUIPadding.Parent = notificationDescription
notificationDescription.Parent = notificationInformation
local notificationUIPadding = Instance.new("UIPadding")
notificationUIPadding.Name = "NotificationUIPadding"
notificationUIPadding.PaddingBottom = UDim.new(0, 12)
notificationUIPadding.PaddingLeft = UDim.new(0, 10)
notificationUIPadding.PaddingRight = UDim.new(0, 10)
notificationUIPadding.PaddingTop = UDim.new(0, 10)
notificationUIPadding.Parent = notificationInformation
notificationInformation.Parent = notification
local notificationControls = Instance.new("Frame")
notificationControls.Name = "NotificationControls"
notificationControls.AutomaticSize = Enum.AutomaticSize.Y
notificationControls.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
notificationControls.BackgroundTransparency = 1
notificationControls.BorderColor3 = Color3.fromRGB(0, 0, 0)
notificationControls.BorderSizePixel = 0
notificationControls.Size = UDim2.fromScale(1, 1)
local interactable = Instance.new("TextButton")
interactable.Name = "Interactable"
interactable.FontFace = Font.new(assets.interFont)
interactable.Text = "✓"
interactable.TextColor3 = Color3.fromRGB(255, 255, 255)
interactable.TextSize = 17
interactable.TextTransparency = 0.2
interactable.AnchorPoint = Vector2.new(1, 0.5)
interactable.AutomaticSize = Enum.AutomaticSize.XY
interactable.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
interactable.BackgroundTransparency = 1
interactable.BorderColor3 = Color3.fromRGB(0, 0, 0)
interactable.BorderSizePixel = 0
interactable.LayoutOrder = 1
interactable.Position = UDim2.fromScale(1, 0.5)
interactable.Parent = notificationControls
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingBottom = UDim.new(0, 6)
uIPadding.PaddingRight = UDim.new(0, 13)
uIPadding.PaddingTop = UDim.new(0, 6)
uIPadding.Parent = notificationControls
notificationControls.Parent = notification
local tweens = {
In = Tween(notificationUIScale, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {
Scale = Settings.Scale or 1
}),
Out = Tween(notificationUIScale, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {
Scale = 0
}),
}
local styles = {
None = function() interactable:Destroy() end,
Confirm = function() interactable.Text = "✓" end,
Cancel = function() interactable.Text = "✗" end
}
local style = styles[Settings.Style] or function() interactable:Destroy() end
style()
if interactable then
interactable.MouseButton1Click:Connect(function()
NotificationFunctions:Cancel()
if Settings.Callback then
task.spawn(Settings.Callback)
end
end)
end
local AnimateNotification = task.spawn(function()
tweens.In:Play()
Settings.Lifetime = Settings.Lifetime or 3
if Settings.Lifetime ~= 0 then
task.wait(Settings.Lifetime)
local out = tweens.Out
out:Play()
out.Completed:Wait()
notification:Destroy()
end
end)
function NotificationFunctions:UpdateTitle(New)
notificationTitle.Text = New
end
function NotificationFunctions:UpdateDescription(New)
notificationDescription.Text = New
end
function NotificationFunctions:Resize(X)
local targ = X or 250
notification.Size = UDim2.fromOffset(targ, 0)
end
function NotificationFunctions:Cancel()
task.cancel(AnimateNotification)
local out = tweens.Out
out:Play()
out.Completed:Wait()
notification:Destroy()
end
return NotificationFunctions
end
function WindowFunctions:Dialog(Settings)
local DialogFunctions = {}
local dialogCanvas = Instance.new("CanvasGroup")
dialogCanvas.Name = "DialogCanvas"
dialogCanvas.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
dialogCanvas.BackgroundTransparency = 1
dialogCanvas.BorderColor3 = Color3.fromRGB(0, 0, 0)
dialogCanvas.BorderSizePixel = 0
dialogCanvas.Size = UDim2.fromScale(1, 1)
dialogCanvas.GroupTransparency = 1
dialogCanvas.Parent = base
local dialog = Instance.new("Frame")
dialog.Name = "Dialog"
dialog.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
dialog.BackgroundTransparency = 0.5
dialog.BorderColor3 = Color3.fromRGB(0, 0, 0)
dialog.BorderSizePixel = 0
dialog.Size = UDim2.fromScale(1, 1)
local dialogUICorner = Instance.new("UICorner")
dialogUICorner.Name = "BaseUICorner"
dialogUICorner.CornerRadius = UDim.new(0, 10)
dialogUICorner.Parent = dialog
local prompt = Instance.new("Frame")
prompt.Name = "Prompt"
prompt.AnchorPoint = Vector2.new(0.5, 0.5)
prompt.AutomaticSize = Enum.AutomaticSize.Y
prompt.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
prompt.BorderColor3 = Color3.fromRGB(0, 0, 0)
prompt.BorderSizePixel = 0
prompt.Position = UDim2.fromScale(0.5, 0.5)
prompt.Size = UDim2.fromOffset(280, 0)
local promptUIScale = Instance.new("UIScale")
promptUIScale.Name = "BaseUIScale"
promptUIScale.Parent = prompt
promptUIScale.Scale = 0.95
local globalSettingsUIStroke = Instance.new("UIStroke")
globalSettingsUIStroke.Name = "GlobalSettingsUIStroke"
globalSettingsUIStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
globalSettingsUIStroke.Color = Color3.fromRGB(255, 255, 255)
globalSettingsUIStroke.Transparency = 0.9
globalSettingsUIStroke.Parent = prompt
local globalSettingsUICorner = Instance.new("UICorner")
globalSettingsUICorner.Name = "GlobalSettingsUICorner"
globalSettingsUICorner.CornerRadius = UDim.new(0, 10)
globalSettingsUICorner.Parent = prompt
local globalSettingsUIPadding = Instance.new("UIPadding")
globalSettingsUIPadding.Name = "GlobalSettingsUIPadding"
globalSettingsUIPadding.PaddingBottom = UDim.new(0, 20)
globalSettingsUIPadding.PaddingLeft = UDim.new(0, 20)
globalSettingsUIPadding.PaddingRight = UDim.new(0, 20)
globalSettingsUIPadding.PaddingTop = UDim.new(0, 20)
globalSettingsUIPadding.Parent = prompt
local paragraph = Instance.new("Frame")
paragraph.Name = "Paragraph"
paragraph.AutomaticSize = Enum.AutomaticSize.Y
paragraph.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BackgroundTransparency = 1
paragraph.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraph.BorderSizePixel = 0
paragraph.Size = UDim2.new(1, 0, 0, 38)
local paragraphHeader = Instance.new("TextLabel")
paragraphHeader.Name = "ParagraphHeader"
paragraphHeader.FontFace = Font.new(
assets.interFont,
Enum.FontWeight.Medium,
Enum.FontStyle.Normal
)
paragraphHeader.RichText = true
paragraphHeader.Text = Settings.Title
paragraphHeader.TextColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.TextSize = 18
paragraphHeader.TextTransparency = 0.4
paragraphHeader.TextWrapped = true
paragraphHeader.AutomaticSize = Enum.AutomaticSize.Y
paragraphHeader.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
paragraphHeader.BackgroundTransparency = 1
paragraphHeader.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraphHeader.BorderSizePixel = 0
paragraphHeader.Size = UDim2.fromScale(1, 0)
paragraphHeader.Parent = paragraph
local uIListLayout = Instance.new("UIListLayout")
uIListLayout.Name = "UIListLayout"
uIListLayout.Padding = UDim.new(0, 15)
uIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout.Parent = paragraph
local paragraphBody = Instance.new("TextLabel")
paragraphBody.Name = "ParagraphBody"
paragraphBody.FontFace = Font.new(assets.interFont)
paragraphBody.RichText = true
paragraphBody.Text = Settings.Description
paragraphBody.TextColor3 = Color3.fromRGB(255, 255, 255)
paragraphBody.TextSize = 14
paragraphBody.TextTransparency = 0.5
paragraphBody.TextWrapped = true
paragraphBody.AutomaticSize = Enum.AutomaticSize.Y
paragraphBody.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
paragraphBody.BackgroundTransparency = 1
paragraphBody.BorderColor3 = Color3.fromRGB(0, 0, 0)
paragraphBody.BorderSizePixel = 0
paragraphBody.LayoutOrder = 1
paragraphBody.Size = UDim2.fromScale(1, 0)
paragraphBody.Parent = paragraph
paragraph.Parent = prompt
local interactions = Instance.new("Frame")
interactions.Name = "Interactions"
interactions.AutomaticSize = Enum.AutomaticSize.Y
interactions.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
interactions.BackgroundTransparency = 1
interactions.BorderColor3 = Color3.fromRGB(0, 0, 0)
interactions.BorderSizePixel = 0
interactions.LayoutOrder = 1
interactions.Size = UDim2.fromScale(1, 0)
local uIListLayout1 = Instance.new("UIListLayout")
uIListLayout1.Name = "UIListLayout"
uIListLayout1.Padding = UDim.new(0, 10)
uIListLayout1.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout1.Parent = interactions
local uIPadding = Instance.new("UIPadding")
uIPadding.Name = "UIPadding"
uIPadding.PaddingTop = UDim.new(0, 20)
uIPadding.Parent = interactions
interactions.Parent = prompt
local uIListLayout2 = Instance.new("UIListLayout")
uIListLayout2.Name = "UIListLayout"
uIListLayout2.SortOrder = Enum.SortOrder.LayoutOrder
uIListLayout2.Parent = prompt
prompt.Parent = dialog
dialog.Parent = dialogCanvas
local canvasIn = Tween(dialogCanvas, TweenInfo.new(0.1, Enum.EasingStyle.Sine), { GroupTransparency = 0 })
local canvasOut = Tween(dialogCanvas, TweenInfo.new(0.1, Enum.EasingStyle.Sine), { GroupTransparency = 1 })
local scaleIn = Tween(promptUIScale, TweenInfo.new(0.1, Enum.EasingStyle.Sine), { Scale = 1 })
local scaleOut = Tween(promptUIScale, TweenInfo.new(0.1, Enum.EasingStyle.Sine), { Scale = 0.95 })
local function dialogIn()
canvasIn:Play()
scaleIn:Play()
canvasIn.Completed:Wait()
dialog.Parent = base
end
local function dialogOut()
if not dialog.Parent then return end
dialog.Parent = dialogCanvas
canvasOut:Play()
scaleOut:Play()
canvasOut.Completed:Wait()
dialogCanvas:Destroy()
end
for _, v in pairs(Settings.Buttons) do
local button = Instance.new("TextButton")
button.Name = "Button"
button.FontFace = Font.new(assets.interFont)
button.Text = v.Name
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextSize = 15
button.TextTransparency = 0.5
button.TextTruncate = Enum.TextTruncate.AtEnd
button.AutoButtonColor = false
button.AutomaticSize = Enum.AutomaticSize.Y
button.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
button.BorderColor3 = Color3.fromRGB(0, 0, 0)
button.BorderSizePixel = 0
button.Size = UDim2.fromScale(1, 0)
local uIPadding1 = Instance.new("UIPadding")
uIPadding1.Name = "UIPadding"
uIPadding1.PaddingBottom = UDim.new(0, 9)
uIPadding1.PaddingLeft = UDim.new(0, 10)
uIPadding1.PaddingRight = UDim.new(0, 10)
uIPadding1.PaddingTop = UDim.new(0, 9)
uIPadding1.Parent = button
local baseUICorner1 = Instance.new("UICorner")
baseUICorner1.Name = "BaseUICorner"
baseUICorner1.CornerRadius = UDim.new(0, 10)
baseUICorner1.Parent = button
button.Parent = interactions
local TweenSettings = {
DefaultTransparency = 0,
DefaultTransparency2 = 0.5,
HoverTransparency = 0.3,
HoverTransparency2 = 0.6,
EasingStyle = Enum.EasingStyle.Sine
}
local function ChangeState(State)
if State == "Idle" then
Tween(button, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
BackgroundTransparency = TweenSettings.DefaultTransparency,
TextTransparency = TweenSettings.DefaultTransparency2
}):Play()
elseif State == "Hover" then
Tween(button, TweenInfo.new(0.2, TweenSettings.EasingStyle), {
BackgroundTransparency = TweenSettings.HoverTransparency,
TextTransparency = TweenSettings.HoverTransparency2
}):Play()
end
end
button.MouseButton1Click:Connect(function()
if dialogCanvas.GroupTransparency ~= 0 then return end
if v.Callback then
v.Callback()
end
dialogOut()
end)
button.MouseEnter:Connect(function()
ChangeState("Hover")
end)
button.MouseLeave:Connect(function()
ChangeState("Idle")
end)
end
dialogIn()
function DialogFunctions:UpdateTitle(New)
paragraphHeader.Text = New
end
function DialogFunctions:UpdateDescription(New)
paragraphBody.Text = New
end
function DialogFunctions:Cancel()
dialogOut()
end
return DialogFunctions
end
function WindowFunctions:SetNotificationsState(State)
notifications.Visible = State
end
function WindowFunctions:GetNotificationsState(State)
return notifications.Visible
end
function WindowFunctions:SetState(State)
windowState = State
base.Visible = State
end
function WindowFunctions:GetState()
return windowState
end
local onUnloadCallback
function WindowFunctions:Unload()
if onUnloadCallback then
onUnloadCallback()
end
macLib:Destroy()
unloaded = true
end
function WindowFunctions.onUnloaded(callback)
onUnloadCallback = callback
end
local MenuKeybind = Settings.Keybind or Enum.KeyCode.RightControl
local function ToggleMenu()
local state = not WindowFunctions:GetState()
WindowFunctions:SetState(state)
WindowFunctions:Notify({
Title = Settings.Title,
Description = (state and "Maximized " or "Minimized ") .. "the menu. Use " .. tostring(MenuKeybind.Name) .. " to toggle it.",
Lifetime = 5
})
end
UserInputService.InputEnded:Connect(function(inp, gpe)
if gpe then return end
if inp.KeyCode == MenuKeybind then
ToggleMenu()
end
end)
minimize.MouseButton1Click:Connect(ToggleMenu)
exit.MouseButton1Click:Connect(function()
WindowFunctions:Dialog({
Title = Settings.Title,
Description = "Are you sure you want to exit the menu? You will lose any unsaved configurations.",
Buttons = {
{
Name = "Confirm",
Callback = function()
WindowFunctions:Unload()
end,
},
{
Name = "Cancel"
}
}
})
end)
function WindowFunctions:SetKeybind(Keycode)
MenuKeybind = Keycode
end
function WindowFunctions:SetAcrylicBlurState(State)
acrylicBlur = State
base.BackgroundTransparency = State and 0.05 or 0
end
function WindowFunctions:GetAcrylicBlurState()
return acrylicBlur
end
local function _SetUserInfoState(State)
if State then
headshot.Image = (isReady and headshotImage) or "rbxassetid://0"
username.Text = "@" .. LocalPlayer.Name
displayName.Text = LocalPlayer.DisplayName
else
headshot.Image = assets.userInfoBlurred
local nameLength = #LocalPlayer.Name
local displayNameLength = #LocalPlayer.DisplayName
username.Text = "@" .. string.rep(".", nameLength)
displayName.Text = string.rep(".", displayNameLength)
end
end
local showUserInfo
if Settings.ShowUserInfo ~= nil then
showUserInfo = Settings.ShowUserInfo
else
showUserInfo = true
end
_SetUserInfoState(showUserInfo)
function WindowFunctions:SetUserInfoState(State)
_SetUserInfoState(State)
end
function WindowFunctions:GetUserInfoState(State)
return showUserInfo
end
function WindowFunctions:SetSize(Size)
base.Size = Size
end
function WindowFunctions:GetSize(Size)
return base.Size
end
function WindowFunctions:SetScale(Scale)
baseUIScale.Scale = Scale
end
function WindowFunctions:GetScale()
return baseUIScale.Scale
end
local ClassParser = {
["Toggle"] = {
Save = function(Flag, data)
return {
type = "Toggle",
flag = Flag,
state = data.State or false
}
end,
Load = function(Flag, data)
if MacLib.Options[Flag] and data.state then
MacLib.Options[Flag]:UpdateState(data.state)
end
end
},
["Slider"] = {
Save = function(Flag, data)
return {
type = "Slider",
flag = Flag,
value = (data.Value and tostring(data.Value)) or false
}
end,
Load = function(Flag, data)
if MacLib.Options[Flag] and data.value then
MacLib.Options[Flag]:UpdateValue(data.value)
end
end
},
["Input"] = {
Save = function(Flag, data)
return {
type = "Input",
flag = Flag,
text = data.Text
}
end,
Load = function(Flag, data)
if MacLib.Options[Flag] and data.text and type(data.text) == "string" then
MacLib.Options[Flag]:UpdateText(data.text)
end
end
},
["Keybind"] = {
Save = function(Flag, data)
return {
type = "Keybind",
flag = Flag,
bind = (typeof(data.Bind) == "EnumItem" and data.Bind.Name) or nil
}
end,
Load = function(Flag, data)
if MacLib.Options[Flag] and data.bind then
MacLib.Options[Flag]:Bind(Enum.KeyCode[data.bind])
end
end
},
["Dropdown"] = {
Save = function(Flag, data)
return {
type = "Dropdown",
flag = Flag,
value = data.Value
}
end,
Load = function(Flag, data)
if MacLib.Options[Flag] and data.value then
MacLib.Options[Flag]:UpdateSelection(data.value)
end
end
},
["Colorpicker"] = {
Save = function(Flag, data)
local function Color3ToHex(color)
return string.format("#%02X%02X%02X", math.floor(color.R * 255), math.floor(color.G * 255), math.floor(color.B * 255))
end
return {
type = "Colorpicker",
flag = Flag,
color = Color3ToHex(data.Color) or nil,
alpha = data.Alpha
}
end,
Load = function(Flag, data)
local function HexToColor3(hex)
local r = tonumber(hex:sub(2, 3), 16) / 255
local g = tonumber(hex:sub(4, 5), 16) / 255
local b = tonumber(hex:sub(6, 7), 16) / 255
return Color3.new(r, g, b)
end
if MacLib.Options[Flag] and data.color then
MacLib.Options[Flag]:SetColor(HexToColor3(data.color))
if data.alpha then
MacLib.Options[Flag]:SetAlpha(data.alpha)
end
end
end
}
}
local function BuildFolderTree()
if isStudio or not (isfolder and makefolder) then return "Config system unavailable." end
local paths = {
MacLib.Folder,
MacLib.Folder .. "/settings"
}
for i = 1, #paths do
local str = paths[i]
if not isfolder(str) then
makefolder(str)
end
end
end
function MacLib:LoadAutoLoadConfig()
if isStudio or not (isfile and readfile) then return "Config system unavailable." end
if isfile(MacLib.Folder .. "/settings/autoload.txt") then
local name = readfile(MacLib.Folder .. "/settings/autoload.txt")
local suc, err = MacLib:LoadConfig(name)
if not suc then
WindowFunctions:Notify({
Title = "Interface",
Description = "Error loading autoload config: " .. err
})
end
WindowFunctions:Notify({
Title = "Interface",
Description = string.format("Autoloaded config: %q", name),
})
end
end
function MacLib:SetFolder(Folder)
if isStudio then return "Config system unavailable." end
MacLib.Folder = Folder;
BuildFolderTree()
end
function MacLib:SaveConfig(Path)
if isStudio or not writefile then return "Config system unavailable." end
if (not Path) then
return false, "Please select a config file."
end
local fullPath = MacLib.Folder .. "/settings/" .. Path .. ".json"
local data = {
objects = {}
}
for flag, option in next, MacLib.Options do
if not ClassParser[option.Class] then continue end
if option.IgnoreConfig then continue end
table.insert(data.objects, ClassParser[option.Class].Save(flag, option))
end
local success, encoded = pcall(HttpService.JSONEncode, HttpService, data)
if not success then
return false, "Unable to encode into JSON data"
end
writefile(fullPath, encoded)
return true
end
function MacLib:LoadConfig(Path)
if isStudio or not (isfile and readfile) then return "Config system unavailable." end
if (not Path) then
return false, "Please select a config file."
end
local file = MacLib.Folder .. "/settings/" .. Path .. ".json"
if not isfile(file) then return false, "Invalid file" end
local success, decoded = pcall(HttpService.JSONDecode, HttpService, readfile(file))
if not success then return false, "Unable to decode JSON data." end
for _, option in next, decoded.objects do
if ClassParser[option.type] then
task.spawn(function()
ClassParser[option.type].Load(option.flag, option)
end)
end
end
return true
end
function MacLib:RefreshConfigList()
if isStudio or not (isfolder and listfiles) then return "Config system unavailable." end
local list = (isfolder(MacLib.Folder) and isfolder(MacLib.Folder .. "/settings")) and listfiles(MacLib.Folder .. "/settings") or {}
local out = {}
for i = 1, #list do
local file = list[i]
if file:sub(-5) == ".json" then
local pos = file:find(".json", 1, true)
local start = pos
local char = file:sub(pos, pos)
while char ~= "/" and char ~= "\\" and char ~= "" do
pos = pos - 1
char = file:sub(pos, pos)
end
if char == "/" or char == "\\" then
local name = file:sub(pos + 1, start - 1)
if name ~= "options" then
table.insert(out, name)
end
end
end
end
return out
end
macLib.Enabled = false
local assetList = {}
for _, assetId in pairs(assets) do
table.insert(assetList, assetId)
end
ContentProvider:PreloadAsync(assetList)
macLib.Enabled = true
windowState = true
return WindowFunctions
end
function MacLib:Demo()
local Window = MacLib:Window({
Title = "Maclib Demo",
Subtitle = "This is a subtitle.",
Size = UDim2.fromOffset(868, 650),
DragStyle = 1,
DisabledWindowControls = {},
ShowUserInfo = true,
Keybind = Enum.KeyCode.RightControl,
AcrylicBlur = true,
})
local globalSettings = {
UIBlurToggle = Window:GlobalSetting({
Name = "UI Blur",
Default = Window:GetAcrylicBlurState(),
Callback = function(bool)
Window:SetAcrylicBlurState(bool)
Window:Notify({
Title = Window.Settings.Title,
Description = (bool and "Enabled" or "Disabled") .. " UI Blur",
Lifetime = 5
})
end,
}),
NotificationToggler = Window:GlobalSetting({
Name = "Notifications",
Default = Window:GetNotificationsState(),
Callback = function(bool)
Window:SetNotificationsState(bool)
Window:Notify({
Title = Window.Settings.Title,
Description = (bool and "Enabled" or "Disabled") .. " Notifications",
Lifetime = 5
})
end,
}),
ShowUserInfo = Window:GlobalSetting({
Name = "Show User Info",
Default = Window:GetUserInfoState(),
Callback = function(bool)
Window:SetUserInfoState(bool)
Window:Notify({
Title = Window.Settings.Title,
Description = (bool and "Showing" or "Redacted") .. " User Info",
Lifetime = 5
})
end,
})
}
local tabGroups = {
TabGroup1 = Window:TabGroup()
}
local tabs = {
Main = tabGroups.TabGroup1:Tab({ Name = "Demo", Image = "rbxassetid://18821914323" }),
Settings = tabGroups.TabGroup1:Tab({ Name = "Settings", Image = "rbxassetid://10734950309" })
}
local sections = {
MainSection1 = tabs.Main:Section({ Side = "Left" }),
}
sections.MainSection1:Header({
Name = "Header #1"
})
sections.MainSection1:Button({
Name = "Button",
Callback = function()
Window:Dialog({
Title = Window.Settings.Title,
Description = "Lorem ipsum odor amet, consectetuer adipiscing elit. Eros vestibulum aliquet mattis, ex platea nunc.",
Buttons = {
{
Name = "Confirm",
Callback = function()
print("Confirmed!")
end,
},
{
Name = "Cancel"
}
}
})
end,
})
sections.MainSection1:Input({
Name = "Input",
Placeholder = "Input",
AcceptedCharacters = "All",
Callback = function(input)
Window:Notify({
Title = Window.Settings.Title,
Description = "Successfully set input to " .. input
})
end,
onChanged = function(input)
print("Input is now " .. input)
end,
}, "Input")
sections.MainSection1:Slider({
Name = "Slider",
Default = 50,
Minimum = 0,
Maximum = 100,
DisplayMethod = "Percent",
Precision = 0,
Callback = function(Value)
print("Changed to ".. Value)
end
}, "Slider")
sections.MainSection1:Toggle({
Name = "Toggle",
Default = false,
Callback = function(value)
Window:Notify({
Title = Window.Settings.Title,
Description = (value and "Enabled " or "Disabled ") .. "Toggle"
})
end,
}, "Toggle")
sections.MainSection1:Keybind({
Name = "Keybind",
Blacklist = false,
Callback = function(binded)
Window:Notify({
Title = "Demo Window",
Description = "Pressed keybind - "..tostring(binded.Name),
Lifetime = 3
})
end,
onBinded = function(bind)
Window:Notify({
Title = "Demo Window",
Description = "Successfully Binded Keybind to - "..tostring(bind.Name),
Lifetime = 3
})
end,
}, "Keybind")
sections.MainSection1:Colorpicker({
Name = "Colorpicker",
Default = Color3.fromRGB(0, 255, 255),
Callback = function(color)
print("Color: ", color)
end,
}, "Colorpicker")
local alphaColorPicker = sections.MainSection1:Colorpicker({
Name = "Transparency Colorpicker",
Default = Color3.fromRGB(255,0,0),
Alpha = 0,
Callback = function(color, alpha)
print("Color: ", color, " Alpha: ", alpha)
end,
}, "TransparencyColorpicker")
local rainbowActive
local rainbowConnection
local hue = 0
sections.MainSection1:Toggle({
Name = "Rainbow",
Default = false,
Callback = function(value)
rainbowActive = value
if rainbowActive then
rainbowConnection = game:GetService("RunService").RenderStepped:Connect(function(deltaTime)
hue = (hue + deltaTime * 0.1) % 1
alphaColorPicker:SetColor(Color3.fromHSV(hue, 1, 1))
end)
elseif rainbowConnection then
rainbowConnection:Disconnect()
rainbowConnection = nil
end
end,
}, "RainbowToggle")
local optionTable = {
"Apple",
"Banana",
"Orange",
"Grapes",
"Pineapple",
"Mango",
"Strawberry",
"Blueberry",
"Watermelon",
"Peach"
}
local Dropdown = sections.MainSection1:Dropdown({
Name = "Dropdown",
Multi = false,
Required = true,
Options = optionTable,
Default = 1,
Callback = function(Value)
print("Dropdown changed: ".. Value)
end,
}, "Dropdown")
local MultiDropdown = sections.MainSection1:Dropdown({
Name = "Multi Dropdown",
Search = true,
Multi = true,
Required = false,
Options = optionTable,
Default = {"Apple", "Orange"},
Callback = function(Value)
local Values = {}
for Value, State in next, Value do
table.insert(Values, Value)
end
print("Mutlidropdown changed:", table.concat(Values, ", "))
end,
}, "MultiDropdown")
sections.MainSection1:Button({
Name = "Update Selection",
Callback = function()
Dropdown:UpdateSelection("Grapes")
MultiDropdown:UpdateSelection({"Banana", "Pineapple"})
end,
})
sections.MainSection1:Divider()
sections.MainSection1:Header({
Text = "Header #2"
})
sections.MainSection1:Paragraph({
Header = "Paragraph",
Body = "Paragraph body. Lorem ipsum odor amet, consectetuer adipiscing elit. Morbi tempus netus aliquet per velit est gravida."
})
sections.MainSection1:Label({
Text = "Label. Lorem ipsum odor amet, consectetuer adipiscing elit."
})
sections.MainSection1:SubLabel({
Text = "Sub-Label. Lorem ipsum odor amet, consectetuer adipiscing elit."
})
MacLib:SetFolder("Maclib")
tabs.Settings:InsertConfigSection("Left")
Window.onUnloaded(function()
print("Unloaded!")
end)
tabs.Main:Select()
MacLib:LoadAutoLoadConfig()
end
return MacLib