Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement