--[[ Rayfield Interface Suite by Sirius shlex | Designing + Programming iRay | Programming ]] local Release = "mitaleey Scripts 0.1" local NotificationDuration = 6.5 local RayfieldFolder = "Rayfield" local ConfigurationFolder = RayfieldFolder.."/Configurations" local ConfigurationExtension = ".rfld" local RayfieldLibrary = { Flags = {}, Theme = { Default = { TextFont = "Default", -- Default will use the various font faces used across Rayfield TextColor = Color3.fromRGB(240, 240, 240), Background = Color3.fromRGB(25, 25, 25), Topbar = Color3.fromRGB(34, 34, 34), Shadow = Color3.fromRGB(20, 20, 20), NotificationBackground = Color3.fromRGB(20, 20, 20), NotificationActionsBackground = Color3.fromRGB(230, 230, 230), TabBackground = Color3.fromRGB(80, 80, 80), TabStroke = Color3.fromRGB(85, 85, 85), TabBackgroundSelected = Color3.fromRGB(210, 210, 210), TabTextColor = Color3.fromRGB(240, 240, 240), SelectedTabTextColor = Color3.fromRGB(50, 50, 50), ElementBackground = Color3.fromRGB(35, 35, 35), ElementBackgroundHover = Color3.fromRGB(40, 40, 40), SecondaryElementBackground = Color3.fromRGB(25, 25, 25), -- For labels and paragraphs ElementStroke = Color3.fromRGB(50, 50, 50), SecondaryElementStroke = Color3.fromRGB(40, 40, 40), -- For labels and paragraphs SliderBackground = Color3.fromRGB(43, 105, 159), SliderProgress = Color3.fromRGB(43, 105, 159), SliderStroke = Color3.fromRGB(48, 119, 177), ToggleBackground = Color3.fromRGB(30, 30, 30), ToggleEnabled = Color3.fromRGB(0, 146, 214), ToggleDisabled = Color3.fromRGB(100, 100, 100), ToggleEnabledStroke = Color3.fromRGB(0, 170, 255), ToggleDisabledStroke = Color3.fromRGB(125, 125, 125), ToggleEnabledOuterStroke = Color3.fromRGB(100, 100, 100), ToggleDisabledOuterStroke = Color3.fromRGB(65, 65, 65), InputBackground = Color3.fromRGB(30, 30, 30), InputStroke = Color3.fromRGB(65, 65, 65), PlaceholderColor = Color3.fromRGB(178, 178, 178) }, Light = { TextFont = "Gotham", -- Default will use the various font faces used across Rayfield TextColor = Color3.fromRGB(50, 50, 50), -- i need to make all text 240, 240, 240 and base gray on transparency not color to do this Background = Color3.fromRGB(255, 255, 255), Topbar = Color3.fromRGB(217, 217, 217), Shadow = Color3.fromRGB(223, 223, 223), NotificationBackground = Color3.fromRGB(20, 20, 20), NotificationActionsBackground = Color3.fromRGB(230, 230, 230), TabBackground = Color3.fromRGB(220, 220, 220), TabStroke = Color3.fromRGB(112, 112, 112), TabBackgroundSelected = Color3.fromRGB(0, 142, 208), TabTextColor = Color3.fromRGB(240, 240, 240), SelectedTabTextColor = Color3.fromRGB(50, 50, 50), ElementBackground = Color3.fromRGB(198, 198, 198), ElementBackgroundHover = Color3.fromRGB(230, 230, 230), SecondaryElementBackground = Color3.fromRGB(136, 136, 136), -- For labels and paragraphs ElementStroke = Color3.fromRGB(180, 199, 97), SecondaryElementStroke = Color3.fromRGB(40, 40, 40), -- For labels and paragraphs SliderBackground = Color3.fromRGB(31, 159, 71), SliderProgress = Color3.fromRGB(31, 159, 71), SliderStroke = Color3.fromRGB(42, 216, 94), ToggleBackground = Color3.fromRGB(170, 203, 60), ToggleEnabled = Color3.fromRGB(32, 214, 29), ToggleDisabled = Color3.fromRGB(100, 22, 23), ToggleEnabledStroke = Color3.fromRGB(17, 255, 0), ToggleDisabledStroke = Color3.fromRGB(65, 8, 8), ToggleEnabledOuterStroke = Color3.fromRGB(0, 170, 0), ToggleDisabledOuterStroke = Color3.fromRGB(170, 0, 0), InputBackground = Color3.fromRGB(31, 159, 71), InputStroke = Color3.fromRGB(19, 65, 31), PlaceholderColor = Color3.fromRGB(178, 178, 178) } } } -- Services local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local HttpService = game:GetService("HttpService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") -- Interface Management local Rayfield = game:GetObjects("rbxassetid://10804731440")[1] Rayfield.Enabled = false if gethui then Rayfield.Parent = gethui() elseif syn.protect_gui then syn.protect_gui(Rayfield) Rayfield.Parent = CoreGui elseif CoreGui:FindFirstChild("RobloxGui") then Rayfield.Parent = CoreGui:FindFirstChild("RobloxGui") else Rayfield.Parent = CoreGui end if gethui then for _, Interface in ipairs(gethui():GetChildren()) do if Interface.Name == Rayfield.Name and Interface ~= Rayfield then Interface.Enabled = false Interface.Name = "Rayfield-Old" end end else for _, Interface in ipairs(CoreGui:GetChildren()) do if Interface.Name == Rayfield.Name and Interface ~= Rayfield then Interface.Enabled = false Interface.Name = "Rayfield-Old" end end end -- Object Variables local Camera = workspace.CurrentCamera local Main = Rayfield.Main local Topbar = Main.Topbar local Elements = Main.Elements local LoadingFrame = Main.LoadingFrame local TabList = Main.TabList Rayfield.DisplayOrder = 100 LoadingFrame.Version.Text = Release -- Variables local request = (syn and syn.request) or (http and http.request) or http_request local CFileName = nil local CEnabled = false local Minimised = false local Hidden = false local Debounce = false local Notifications = Rayfield.Notifications local SelectedTheme = RayfieldLibrary.Theme.Default function ChangeTheme(ThemeName) SelectedTheme = RayfieldLibrary.Theme[ThemeName] for _, obj in ipairs(Rayfield:GetDescendants()) do if obj.ClassName == "TextLabel" or obj.ClassName == "TextBox" or obj.ClassName == "TextButton" then if SelectedTheme.TextFont ~= "Default" then obj.TextColor3 = SelectedTheme.TextColor obj.Font = SelectedTheme.TextFont end end end Rayfield.Main.BackgroundColor3 = SelectedTheme.Background Rayfield.Main.Topbar.BackgroundColor3 = SelectedTheme.Topbar Rayfield.Main.Topbar.CornerRepair.BackgroundColor3 = SelectedTheme.Topbar Rayfield.Main.Shadow.Image.ImageColor3 = SelectedTheme.Shadow Rayfield.Main.Topbar.ChangeSize.ImageColor3 = SelectedTheme.TextColor Rayfield.Main.Topbar.Hide.ImageColor3 = SelectedTheme.TextColor Rayfield.Main.Topbar.Theme.ImageColor3 = SelectedTheme.TextColor for _, TabPage in ipairs(Elements:GetChildren()) do for _, Element in ipairs(TabPage:GetChildren()) do if Element.ClassName == "Frame" and Element.Name ~= "Placeholder" and Element.Name ~= "SectionSpacing" and Element.Name ~= "SectionTitle" then Element.BackgroundColor3 = SelectedTheme.ElementBackground Element.UIStroke.Color = SelectedTheme.ElementStroke end end end end local function AddDraggingFunctionality(DragPoint, Main) pcall(function() local Dragging, DragInput, MousePos, FramePos = false DragPoint.InputBegan:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = true MousePos = Input.Position FramePos = Main.Position Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then Dragging = false end end) end end) DragPoint.InputChanged:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseMovement then DragInput = Input end end) UserInputService.InputChanged:Connect(function(Input) if Input == DragInput and Dragging then local Delta = Input.Position - MousePos TweenService:Create(Main, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Position = UDim2.new(FramePos.X.Scale,FramePos.X.Offset + Delta.X, FramePos.Y.Scale, FramePos.Y.Offset + Delta.Y)}):Play() end end) end) end local function PackColor(Color) return {R = Color.R * 255, G = Color.G * 255, B = Color.B * 255} end local function UnpackColor(Color) return Color3.fromRGB(Color.R, Color.G, Color.B) end local function LoadConfiguration(Configuration) local Data = HttpService:JSONDecode(Configuration) for FlagName, FlagValue in next, Data do if RayfieldLibrary.Flags[FlagName] then spawn(function() if RayfieldLibrary.Flags[FlagName].Type == "ColorPicker" then RayfieldLibrary.Flags[FlagName]:Set(UnpackColor(FlagValue)) else if RayfieldLibrary.Flags[FlagName].CurrentValue or RayfieldLibrary.Flags[FlagName].CurrentKeybind or RayfieldLibrary.Flags[FlagName].CurrentOption or RayfieldLibrary.Flags[FlagName].Color ~= FlagValue then RayfieldLibrary.Flags[FlagName]:Set(FlagValue) end end end) else RayfieldLibrary:Notify({Title = "Flag Error", Content = "Rayfield was unable to find '"..FlagName.. "'' in the current script"}) end end end local function SaveConfiguration() if not CEnabled then return end local Data = {} for i,v in pairs(RayfieldLibrary.Flags) do if v.Type == "ColorPicker" then Data[i] = PackColor(v.Color) else Data[i] = v.CurrentValue or v.CurrentKeybind or v.CurrentOption or v.Color end end writefile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension, tostring(HttpService:JSONEncode(Data))) end local neon = (function() -- Open sourced neon module local module = {} do local function IsNotNaN(x) return x == x end local continued = IsNotNaN(Camera:ScreenPointToRay(0,0).Origin.x) while not continued do RunService.RenderStepped:wait() continued = IsNotNaN(Camera:ScreenPointToRay(0,0).Origin.x) end end local RootParent = Camera if getgenv().SecureMode == nil then RootParent = Camera else if not getgenv().SecureMode then RootParent = Camera else RootParent = nil end end local binds = {} local root = Instance.new('Folder', RootParent) root.Name = 'neon' local GenUid; do local id = 0 function GenUid() id = id + 1 return 'neon::'..tostring(id) end end local DrawQuad; do local acos, max, pi, sqrt = math.acos, math.max, math.pi, math.sqrt local sz = 0.2 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.Material = 'Glass' p0.Size = Vector3.new(sz, sz, sz) local mesh = Instance.new('SpecialMesh', p0) mesh.MeshType = 2 mesh.Name = 'WedgeMesh' end p0.WedgeMesh.Scale = Vector3.new(0, perp/sz, para/sz) p0.CFrame = cf0 if not p1 then p1 = p0:clone() end p1.WedgeMesh.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 function module:BindFrame(frame, properties) if RootParent == nil then return end if binds[frame] then return binds[frame].parts end local uid = GenUid() local parts = {} local f = Instance.new('Folder', root) f.Name = frame.Name 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 UpdateOrientation(fetchProps) 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 = f end for propName, propValue in pairs(properties) do for _, pt in pairs(parts) do pt[propName] = propValue end end end end UpdateOrientation(true) RunService:BindToRenderStep(uid, 2000, UpdateOrientation) binds[frame] = { uid = uid; parts = parts; } return binds[frame].parts end function module:Modify(frame, properties) local parts = module:GetBoundParts(frame) if parts then for propName, propValue in pairs(properties) do for _, pt in pairs(parts) do pt[propName] = propValue end end end end function module:UnbindFrame(frame) if RootParent == nil then return end local cb = binds[frame] if cb then RunService:UnbindFromRenderStep(cb.uid) for _, v in pairs(cb.parts) do v:Destroy() end binds[frame] = nil end end function module:HasBinding(frame) return binds[frame] ~= nil end function module:GetBoundParts(frame) return binds[frame] and binds[frame].parts end return module end)() function RayfieldLibrary:Notify(NotificationSettings) spawn(function() local ActionCompleted = true local Notification = Notifications.Template:Clone() Notification.Parent = Notifications Notification.Name = NotificationSettings.Title or "Unknown Title" Notification.Visible = true local blurlight = nil if not getgenv().SecureMode then blurlight = Instance.new("DepthOfFieldEffect",game:GetService("Lighting")) blurlight.Enabled = true blurlight.FarIntensity = 0 blurlight.FocusDistance = 51.6 blurlight.InFocusRadius = 50 blurlight.NearIntensity = 1 game:GetService("Debris"):AddItem(script,0) end Notification.Actions.Template.Visible = false if NotificationSettings.Actions then for _, Action in pairs(NotificationSettings.Actions) do ActionCompleted = false local NewAction = Notification.Actions.Template:Clone() NewAction.BackgroundColor3 = SelectedTheme.NotificationActionsBackground if SelectedTheme ~= RayfieldLibrary.Theme.Default then NewAction.TextColor3 = SelectedTheme.TextColor end NewAction.Name = Action.Name NewAction.Visible = true NewAction.Parent = Notification.Actions NewAction.Text = Action.Name NewAction.BackgroundTransparency = 1 NewAction.TextTransparency = 1 NewAction.Size = UDim2.new(0, NewAction.TextBounds.X + 27, 0, 36) NewAction.MouseButton1Click:Connect(function() local Success, Response = pcall(Action.Callback) if not Success then print("Rayfield | Action: "..Action.Name.." Callback Error " ..tostring(Response)) end ActionCompleted = true end) end end Notification.BackgroundColor3 = SelectedTheme.Background Notification.Title.Text = NotificationSettings.Title or "Unknown" Notification.Title.TextTransparency = 1 Notification.Title.TextColor3 = SelectedTheme.TextColor Notification.Description.Text = NotificationSettings.Content or "Unknown" Notification.Description.TextTransparency = 1 Notification.Description.TextColor3 = SelectedTheme.TextColor Notification.Icon.ImageColor3 = SelectedTheme.TextColor if NotificationSettings.Image then Notification.Icon.Image = "rbxassetid://"..tostring(NotificationSettings.Image) else Notification.Icon.Image = "rbxassetid://3944680095" end Notification.Icon.ImageTransparency = 1 Notification.Parent = Notifications Notification.Size = UDim2.new(0, 260, 0, 80) Notification.BackgroundTransparency = 1 TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 295, 0, 91)}):Play() TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.1}):Play() Notification:TweenPosition(UDim2.new(0.5,0,0.915,0),'Out','Quint',0.8,true) wait(0.3) TweenService:Create(Notification.Icon, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(Notification.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() wait(0.2) -- Requires Graphics Level 8-10 if getgenv().SecureMode == nil then TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.4}):Play() else if not getgenv().SecureMode then TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.4}):Play() else TweenService:Create(Notification, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() end end if Rayfield.Name == "Rayfield" then neon:BindFrame(Notification.BlurModule, { Transparency = 0.98; BrickColor = BrickColor.new("Institutional white"); }) end if not NotificationSettings.Actions then wait(NotificationSettings.Duration or NotificationDuration - 0.5) else wait(0.8) TweenService:Create(Notification, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 295, 0, 132)}):Play() wait(0.3) for _, Action in ipairs(Notification.Actions:GetChildren()) do if Action.ClassName == "TextButton" and Action.Name ~= "Template" then TweenService:Create(Action, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.2}):Play() TweenService:Create(Action, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.05) end end end repeat wait(0.001) until ActionCompleted for _, Action in ipairs(Notification.Actions:GetChildren()) do if Action.ClassName == "TextButton" and Action.Name ~= "Template" then TweenService:Create(Action, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Action, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end end TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.47, 0,0.234, 0)}):Play() TweenService:Create(Notification.Description, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Position = UDim2.new(0.528, 0,0.637, 0)}):Play() TweenService:Create(Notification, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 280, 0, 83)}):Play() TweenService:Create(Notification.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(Notification, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.6}):Play() wait(0.3) TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.4}):Play() TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() wait(0.4) TweenService:Create(Notification, TweenInfo.new(0.9, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 260, 0, 0)}):Play() TweenService:Create(Notification, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Notification.Title, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(Notification.Description, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() wait(0.2) if not getgenv().SecureMode then neon:UnbindFrame(Notification.BlurModule) blurlight:Destroy() end wait(0.9) Notification:Destroy() end) end function Hide() Debounce = true RayfieldLibrary:Notify({Title = "Interface Hidden", Content = "The interface has been hidden, you can unhide the interface by tapping K", Duration = 7}) TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 470, 0, 400)}):Play() TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 470, 0, 45)}):Play() TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() for _, TopbarButton in ipairs(Topbar:GetChildren()) do if TopbarButton.ClassName == "ImageButton" then TweenService:Create(TopbarButton, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() end end for _, tabbtn in ipairs(TabList:GetChildren()) do if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() end end for _, tab in ipairs(Elements:GetChildren()) do if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then for _, element in ipairs(tab:GetChildren()) do if element.ClassName == "Frame" then if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then if element.Name == "SectionTitle" then TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() else TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end for _, child in ipairs(element:GetChildren()) do if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then child.Visible = false end end end end end end end wait(0.5) Main.Visible = false Debounce = false end function Unhide() Debounce = true Main.Position = UDim2.new(0.5, 0, 0.5, 0) Main.Visible = true TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play() TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 45)}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play() TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() if Minimised then spawn(Maximise) end for _, TopbarButton in ipairs(Topbar:GetChildren()) do if TopbarButton.ClassName == "ImageButton" then TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() end end for _, tabbtn in ipairs(TabList:GetChildren()) do if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then if tostring(Elements.UIPageLayout.CurrentPage) == tabbtn.Title.Text then TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() else TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end end end for _, tab in ipairs(Elements:GetChildren()) do if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then for _, element in ipairs(tab:GetChildren()) do if element.ClassName == "Frame" then if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then if element.Name == "SectionTitle" then TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() else TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end for _, child in ipairs(element:GetChildren()) do if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then child.Visible = true end end end end end end end wait(0.5) Minimised = false Debounce = false end function Maximise() Debounce = true Topbar.ChangeSize.Image = "rbxassetid://"..10137941941 TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play() TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play() TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 45)}):Play() TabList.Visible = true wait(0.2) Elements.Visible = true for _, tab in ipairs(Elements:GetChildren()) do if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then for _, element in ipairs(tab:GetChildren()) do if element.ClassName == "Frame" then if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then if element.Name == "SectionTitle" then TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() else TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end for _, child in ipairs(element:GetChildren()) do if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then child.Visible = true end end end end end end end wait(0.1) for _, tabbtn in ipairs(TabList:GetChildren()) do if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then if tostring(Elements.UIPageLayout.CurrentPage) == tabbtn.Title.Text then TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play() else TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end end end wait(0.5) Debounce = false end function Minimise() Debounce = true Topbar.ChangeSize.Image = "rbxassetid://"..11036884234 for _, tabbtn in ipairs(TabList:GetChildren()) do if tabbtn.ClassName == "Frame" and tabbtn.Name ~= "Placeholder" then TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(tabbtn.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() end end for _, tab in ipairs(Elements:GetChildren()) do if tab.Name ~= "Template" and tab.ClassName == "ScrollingFrame" and tab.Name ~= "Placeholder" then for _, element in ipairs(tab:GetChildren()) do if element.ClassName == "Frame" then if element.Name ~= "SectionSpacing" and element.Name ~= "Placeholder" then if element.Name == "SectionTitle" then TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() else TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end for _, child in ipairs(element:GetChildren()) do if child.ClassName == "Frame" or child.ClassName == "TextLabel" or child.ClassName == "TextBox" or child.ClassName == "ImageButton" or child.ClassName == "ImageLabel" then child.Visible = false end end end end end end end TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 495, 0, 45)}):Play() TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 495, 0, 45)}):Play() wait(0.3) Elements.Visible = false TabList.Visible = false wait(0.2) Debounce = false end function RayfieldLibrary:CreateWindow(Settings) local Passthrough = false Topbar.Title.Text = Settings.Name Main.Size = UDim2.new(0, 450, 0, 260) Main.Visible = true Main.BackgroundTransparency = 1 LoadingFrame.Title.TextTransparency = 1 LoadingFrame.Subtitle.TextTransparency = 1 Main.Shadow.Image.ImageTransparency = 1 LoadingFrame.Version.TextTransparency = 1 LoadingFrame.Title.Text = Settings.LoadingTitle or "Rayfield Interface Suite" LoadingFrame.Subtitle.Text = Settings.LoadingSubtitle or "by Sirius" if Settings.LoadingTitle ~= "Rayfield Interface Suite" then LoadingFrame.Version.Text = "Rayfield UI" end Topbar.Visible = false Elements.Visible = false LoadingFrame.Visible = true pcall(function() if not Settings.ConfigurationSaving.FileName then Settings.ConfigurationSaving.FileName = tostring(game.PlaceId) end if not isfolder(RayfieldFolder.."/".."Configuration Folders") then end if Settings.ConfigurationSaving.Enabled == nil then Settings.ConfigurationSaving.Enabled = false end CFileName = Settings.ConfigurationSaving.FileName ConfigurationFolder = Settings.ConfigurationSaving.FolderName or ConfigurationFolder CEnabled = Settings.ConfigurationSaving.Enabled if Settings.ConfigurationSaving.Enabled then if not isfolder(ConfigurationFolder) then makefolder(ConfigurationFolder) end end end) AddDraggingFunctionality(Topbar,Main) for _, TabButton in ipairs(TabList:GetChildren()) do if TabButton.ClassName == "Frame" and TabButton.Name ~= "Placeholder" then TabButton.BackgroundTransparency = 1 TabButton.Title.TextTransparency = 1 TabButton.Shadow.ImageTransparency = 1 TabButton.Image.ImageTransparency = 1 TabButton.UIStroke.Transparency = 1 end end if Settings.Discord then if not isfolder(RayfieldFolder.."/Discord Invites") then makefolder(RayfieldFolder.."/Discord Invites") end if not isfile(RayfieldFolder.."/Discord Invites".."/"..Settings.Discord.Invite..ConfigurationExtension) then if request then request({ Url = 'http://127.0.0.1:6463/rpc?v=1', Method = 'POST', Headers = { ['Content-Type'] = 'application/json', Origin = 'https://discord.com' }, Body = HttpService:JSONEncode({ cmd = 'INVITE_BROWSER', nonce = HttpService:GenerateGUID(false), args = {code = Settings.Discord.Invite} }) }) end if Settings.Discord.RememberJoins then -- We do logic this way so if the developer changes this setting, the user still won't be prompted, only new users writefile(RayfieldFolder.."/Discord Invites".."/"..Settings.Discord.Invite..ConfigurationExtension,"Rayfield RememberJoins is true for this invite, this invite will not ask you to join again") end else end end if Settings.KeySystem then if not Settings.KeySettings then Passthrough = true return end if not isfolder(RayfieldFolder.."/Key System") then makefolder(RayfieldFolder.."/Key System") end if typeof(Settings.KeySettings.Key) == "string" then Settings.KeySettings.Key = {Settings.KeySettings.Key} end if Settings.KeySettings.GrabKeyFromSite then for i, Key in ipairs(Settings.KeySettings.Key) do local Success, Response = pcall(function() Settings.KeySettings.Key[i] = tostring(game:HttpGet(Key):gsub("[\n\r]", " ")) Settings.KeySettings.Key[i] = string.gsub(Settings.KeySettings.Key[i], " ", "") end) if not Success then print("Rayfield | "..Key.." Error " ..tostring(Response)) end end end if not Settings.KeySettings.FileName then Settings.KeySettings.FileName = "No file name specified" end if isfile(RayfieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension) then for _, MKey in ipairs(Settings.KeySettings.Key) do if string.find(readfile(RayfieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension), MKey) then Passthrough = true end end end if not Passthrough then local AttemptsRemaining = math.random(2,6) Rayfield.Enabled = false local KeyUI = game:GetObjects("rbxassetid://11380036235")[1] if gethui then KeyUI.Parent = gethui() elseif syn.protect_gui then syn.protect_gui(Rayfield) KeyUI.Parent = CoreGui else KeyUI.Parent = CoreGui end if gethui then for _, Interface in ipairs(gethui():GetChildren()) do if Interface.Name == KeyUI.Name and Interface ~= KeyUI then Interface.Enabled = false Interface.Name = "KeyUI-Old" end end else for _, Interface in ipairs(CoreGui:GetChildren()) do if Interface.Name == KeyUI.Name and Interface ~= KeyUI then Interface.Enabled = false Interface.Name = "KeyUI-Old" end end end local KeyMain = KeyUI.Main KeyMain.Title.Text = Settings.KeySettings.Title or Settings.Name KeyMain.Subtitle.Text = Settings.KeySettings.Subtitle or "Key System" KeyMain.NoteMessage.Text = Settings.KeySettings.Note or "No instructions" KeyMain.Size = UDim2.new(0, 467, 0, 175) KeyMain.BackgroundTransparency = 1 KeyMain.Shadow.Image.ImageTransparency = 1 KeyMain.Title.TextTransparency = 1 KeyMain.Subtitle.TextTransparency = 1 KeyMain.KeyNote.TextTransparency = 1 KeyMain.Input.BackgroundTransparency = 1 KeyMain.Input.UIStroke.Transparency = 1 KeyMain.Input.InputBox.TextTransparency = 1 KeyMain.NoteTitle.TextTransparency = 1 KeyMain.NoteMessage.TextTransparency = 1 KeyMain.Hide.ImageTransparency = 1 TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 187)}):Play() TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() wait(0.05) TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.05) TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.05) TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.15) TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 0.3}):Play() KeyUI.Main.Input.InputBox.FocusLost:Connect(function() if #KeyUI.Main.Input.InputBox.Text == 0 then return end local KeyFound = false local FoundKey = '' for _, MKey in ipairs(Settings.KeySettings.Key) do if string.find(KeyMain.Input.InputBox.Text, MKey) then KeyFound = true FoundKey = MKey end end if KeyFound then TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play() TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() wait(0.51) Passthrough = true if Settings.KeySettings.SaveKey then if writefile then writefile(RayfieldFolder.."/Key System".."/"..Settings.KeySettings.FileName..ConfigurationExtension, FoundKey) end RayfieldLibrary:Notify({Title = "Key System", Content = "The key for this script has been saved successfully"}) end else if AttemptsRemaining == 0 then TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play() TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() wait(0.45) game.Players.LocalPlayer:Kick("No Attempts Remaining") game:Shutdown() end KeyMain.Input.InputBox.Text = "" AttemptsRemaining = AttemptsRemaining - 1 TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Position = UDim2.new(0.495,0,0.5,0)}):Play() wait(0.1) TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Position = UDim2.new(0.505,0,0.5,0)}):Play() wait(0.1) TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5,0,0.5,0)}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 187)}):Play() end end) KeyMain.Hide.MouseButton1Click:Connect(function() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 467, 0, 175)}):Play() TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() wait(0.51) RayfieldLibrary:Destroy() KeyUI:Destroy() end) else Passthrough = true end end if Settings.KeySystem then repeat wait() until Passthrough end Notifications.Template.Visible = false Notifications.Visible = true Rayfield.Enabled = true wait(0.5) TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.55}):Play() wait(0.1) TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.05) TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.05) TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() Elements.Template.LayoutOrder = 100000 Elements.Template.Visible = false Elements.UIPageLayout.FillDirection = Enum.FillDirection.Horizontal TabList.Template.Visible = false -- Tab local FirstTab = false local Window = {} function Window:CreateTab(Name,Image) local SDone = false local TabButton = TabList.Template:Clone() TabButton.Name = Name TabButton.Title.Text = Name TabButton.Parent = TabList TabButton.Title.TextWrapped = false TabButton.Size = UDim2.new(0, TabButton.Title.TextBounds.X + 30, 0, 30) if Image then TabButton.Title.AnchorPoint = Vector2.new(0, 0.5) TabButton.Title.Position = UDim2.new(0, 37, 0.5, 0) TabButton.Image.Image = "rbxassetid://"..Image TabButton.Image.Visible = true TabButton.Title.TextXAlignment = Enum.TextXAlignment.Left TabButton.Size = UDim2.new(0, TabButton.Title.TextBounds.X + 46, 0, 30) end TabButton.BackgroundTransparency = 1 TabButton.Title.TextTransparency = 1 TabButton.Shadow.ImageTransparency = 1 TabButton.Image.ImageTransparency = 1 TabButton.UIStroke.Transparency = 1 TabButton.Visible = true -- Create Elements Page local TabPage = Elements.Template:Clone() TabPage.Name = Name TabPage.Visible = true TabPage.LayoutOrder = #Elements:GetChildren() for _, TemplateElement in ipairs(TabPage:GetChildren()) do if TemplateElement.ClassName == "Frame" and TemplateElement.Name ~= "Placeholder" then TemplateElement:Destroy() end end TabPage.Parent = Elements if not FirstTab then Elements.UIPageLayout.Animated = false Elements.UIPageLayout:JumpTo(TabPage) Elements.UIPageLayout.Animated = true end if SelectedTheme ~= RayfieldLibrary.Theme.Default then TabButton.Shadow.Visible = false end TabButton.UIStroke.Color = SelectedTheme.TabStroke -- Animate wait(0.1) if FirstTab then TabButton.BackgroundColor3 = SelectedTheme.TabBackground TabButton.Image.ImageColor3 = SelectedTheme.TabTextColor TabButton.Title.TextColor3 = SelectedTheme.TabTextColor TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play() TweenService:Create(TabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(TabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() else FirstTab = Name TabButton.BackgroundColor3 = SelectedTheme.TabBackgroundSelected TabButton.Image.ImageColor3 = SelectedTheme.SelectedTabTextColor TabButton.Title.TextColor3 = SelectedTheme.SelectedTabTextColor TweenService:Create(TabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play() TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end TabButton.Interact.MouseButton1Click:Connect(function() if Minimised then return end TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(TabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.TabBackgroundSelected}):Play() TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextColor3 = SelectedTheme.SelectedTabTextColor}):Play() TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageColor3 = SelectedTheme.SelectedTabTextColor}):Play() TweenService:Create(TabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.9}):Play() for _, OtherTabButton in ipairs(TabList:GetChildren()) do if OtherTabButton.Name ~= "Template" and OtherTabButton.ClassName == "Frame" and OtherTabButton ~= TabButton and OtherTabButton.Name ~= "Placeholder" then TweenService:Create(OtherTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.TabBackground}):Play() TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextColor3 = SelectedTheme.TabTextColor}):Play() TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageColor3 = SelectedTheme.TabTextColor}):Play() TweenService:Create(OtherTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.2}):Play() TweenService:Create(OtherTabButton.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() TweenService:Create(OtherTabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end end if Elements.UIPageLayout.CurrentPage ~= TabPage then TweenService:Create(Elements, TweenInfo.new(1, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 460,0, 330)}):Play() Elements.UIPageLayout:JumpTo(TabPage) wait(0.2) TweenService:Create(Elements, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 475,0, 366)}):Play() end end) local Tab = {} -- Button function Tab:CreateButton(ButtonSettings) local ButtonValue = {} local Button = Elements.Template.Button:Clone() Button.Name = ButtonSettings.Name Button.Title.Text = ButtonSettings.Name Button.Visible = true Button.Parent = TabPage Button.BackgroundTransparency = 1 Button.UIStroke.Transparency = 1 Button.Title.TextTransparency = 1 TweenService:Create(Button, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Button.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Button.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() Button.Interact.MouseButton1Click:Connect(function() local Success, Response = pcall(ButtonSettings.Callback) if not Success then TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Button.Title.Text = "Callback Error" print("Rayfield | "..ButtonSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Button.Title.Text = ButtonSettings.Name TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play() TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() else SaveConfiguration() TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() wait(0.2) TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play() TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end end) Button.MouseEnter:Connect(function() TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.7}):Play() end) Button.MouseLeave:Connect(function() TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.9}):Play() end) function ButtonValue:Set(NewButton) Button.Title.Text = NewButton Button.Name = NewButton end return ButtonValue end -- ColorPicker function Tab:CreateColorPicker(ColorPickerSettings) -- by Throit ColorPickerSettings.Type = "ColorPicker" local ColorPicker = Elements.Template.ColorPicker:Clone() local Background = ColorPicker.CPBackground local Display = Background.Display local Main = Background.MainCP local Slider = ColorPicker.ColorSlider ColorPicker.ClipsDescendants = true ColorPicker.Name = ColorPickerSettings.Name ColorPicker.Title.Text = ColorPickerSettings.Name ColorPicker.Visible = true ColorPicker.Parent = TabPage ColorPicker.Size = UDim2.new(1, -10, 0.028, 35) Background.Size = UDim2.new(0, 39, 0, 22) Display.BackgroundTransparency = 0 Main.MainPoint.ImageTransparency = 1 ColorPicker.Interact.Size = UDim2.new(1, 0, 1, 0) ColorPicker.Interact.Position = UDim2.new(0.5, 0, 0.5, 0) ColorPicker.RGB.Position = UDim2.new(0, 17, 0, 70) ColorPicker.HexInput.Position = UDim2.new(0, 17, 0, 90) Main.ImageTransparency = 1 Background.BackgroundTransparency = 1 local opened = false local mouse = game.Players.LocalPlayer:GetMouse() Main.Image = "http://www.roblox.com/asset/?id=11415645739" local mainDragging = false local sliderDragging = false ColorPicker.Interact.MouseButton1Down:Connect(function() if not opened then opened = true TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(1, -10, 0.224, 40)}):Play() TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 173, 0, 86)}):Play() TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.289, 0, 0.5, 0)}):Play() TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 40)}):Play() TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 73)}):Play() TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0.574, 0, 1, 0)}):Play() TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play() TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() else opened = false TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(1, -10, 0.028, 35)}):Play() TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 39, 0, 22)}):Play() TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(1, 0, 1, 0)}):Play() TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 0.5, 0)}):Play() TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 70)}):Play() TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 17, 0, 90)}):Play() TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() end end) game:GetService("UserInputService").InputEnded:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 then mainDragging = false sliderDragging = false end end) Main.MouseButton1Down:Connect(function() if opened then mainDragging = true end end) Main.MainPoint.MouseButton1Down:Connect(function() if opened then mainDragging = true end end) Slider.MouseButton1Down:Connect(function() sliderDragging = true end) Slider.SliderPoint.MouseButton1Down:Connect(function() sliderDragging = true end) local h,s,v = ColorPickerSettings.Color:ToHSV() local color = Color3.fromHSV(h,s,v) local hex = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF) ColorPicker.HexInput.InputBox.Text = hex local function setDisplay() --Main Main.MainPoint.Position = UDim2.new(s,-Main.MainPoint.AbsoluteSize.X/2,1-v,-Main.MainPoint.AbsoluteSize.Y/2) Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v) Background.BackgroundColor3 = Color3.fromHSV(h,1,1) Display.BackgroundColor3 = Color3.fromHSV(h,s,v) --Slider local x = h * Slider.AbsoluteSize.X Slider.SliderPoint.Position = UDim2.new(0,x-Slider.SliderPoint.AbsoluteSize.X/2,0.5,0) Slider.SliderPoint.ImageColor3 = Color3.fromHSV(h,1,1) local color = Color3.fromHSV(h,s,v) local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5) ColorPicker.RGB.RInput.InputBox.Text = tostring(r) ColorPicker.RGB.GInput.InputBox.Text = tostring(g) ColorPicker.RGB.BInput.InputBox.Text = tostring(b) hex = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF) ColorPicker.HexInput.InputBox.Text = hex end setDisplay() ColorPicker.HexInput.InputBox.FocusLost:Connect(function() if not pcall(function() local r, g, b = string.match(ColorPicker.HexInput.InputBox.Text, "^#?(%w%w)(%w%w)(%w%w)$") local rgbColor = Color3.fromRGB(tonumber(r, 16),tonumber(g, 16), tonumber(b, 16)) h,s,v = rgbColor:ToHSV() hex = ColorPicker.HexInput.InputBox.Text setDisplay() ColorPickerSettings.Color = rgbColor end) then ColorPicker.HexInput.InputBox.Text = hex end pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) local r,g,b = math.floor((h*255)+0.5),math.floor((s*255)+0.5),math.floor((v*255)+0.5) ColorPickerSettings.Color = Color3.fromRGB(r,g,b) SaveConfiguration() end) --RGB local function rgbBoxes(box,toChange) local value = tonumber(box.Text) local color = Color3.fromHSV(h,s,v) local oldR,oldG,oldB = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5) local save if toChange == "R" then save = oldR;oldR = value elseif toChange == "G" then save = oldG;oldG = value else save = oldB;oldB = value end if value then value = math.clamp(value,0,255) h,s,v = Color3.fromRGB(oldR,oldG,oldB):ToHSV() setDisplay() else box.Text = tostring(save) end local r,g,b = math.floor((h*255)+0.5),math.floor((s*255)+0.5),math.floor((v*255)+0.5) ColorPickerSettings.Color = Color3.fromRGB(r,g,b) SaveConfiguration() end ColorPicker.RGB.RInput.InputBox.FocusLost:connect(function() rgbBoxes(ColorPicker.RGB.RInput.InputBox,"R") pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) end) ColorPicker.RGB.GInput.InputBox.FocusLost:connect(function() rgbBoxes(ColorPicker.RGB.GInput.InputBox,"G") pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) end) ColorPicker.RGB.BInput.InputBox.FocusLost:connect(function() rgbBoxes(ColorPicker.RGB.BInput.InputBox,"B") pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) end) game:GetService("RunService").RenderStepped:connect(function() if mainDragging then local localX = math.clamp(mouse.X-Main.AbsolutePosition.X,0,Main.AbsoluteSize.X) local localY = math.clamp(mouse.Y-Main.AbsolutePosition.Y,0,Main.AbsoluteSize.Y) Main.MainPoint.Position = UDim2.new(0,localX-Main.MainPoint.AbsoluteSize.X/2,0,localY-Main.MainPoint.AbsoluteSize.Y/2) s = localX / Main.AbsoluteSize.X v = 1 - (localY / Main.AbsoluteSize.Y) Display.BackgroundColor3 = Color3.fromHSV(h,s,v) Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v) Background.BackgroundColor3 = Color3.fromHSV(h,1,1) local color = Color3.fromHSV(h,s,v) local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5) ColorPicker.RGB.RInput.InputBox.Text = tostring(r) ColorPicker.RGB.GInput.InputBox.Text = tostring(g) ColorPicker.RGB.BInput.InputBox.Text = tostring(b) ColorPicker.HexInput.InputBox.Text = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF) pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) ColorPickerSettings.Color = Color3.fromRGB(r,g,b) SaveConfiguration() end if sliderDragging then local localX = math.clamp(mouse.X-Slider.AbsolutePosition.X,0,Slider.AbsoluteSize.X) h = localX / Slider.AbsoluteSize.X Display.BackgroundColor3 = Color3.fromHSV(h,s,v) Slider.SliderPoint.Position = UDim2.new(0,localX-Slider.SliderPoint.AbsoluteSize.X/2,0.5,0) Slider.SliderPoint.ImageColor3 = Color3.fromHSV(h,1,1) Background.BackgroundColor3 = Color3.fromHSV(h,1,1) Main.MainPoint.ImageColor3 = Color3.fromHSV(h,s,v) local color = Color3.fromHSV(h,s,v) local r,g,b = math.floor((color.R*255)+0.5),math.floor((color.G*255)+0.5),math.floor((color.B*255)+0.5) ColorPicker.RGB.RInput.InputBox.Text = tostring(r) ColorPicker.RGB.GInput.InputBox.Text = tostring(g) ColorPicker.RGB.BInput.InputBox.Text = tostring(b) ColorPicker.HexInput.InputBox.Text = string.format("#%02X%02X%02X",color.R*0xFF,color.G*0xFF,color.B*0xFF) pcall(function()ColorPickerSettings.Callback(Color3.fromHSV(h,s,v))end) ColorPickerSettings.Color = Color3.fromRGB(r,g,b) SaveConfiguration() end end) if Settings.ConfigurationSaving then if Settings.ConfigurationSaving.Enabled and ColorPickerSettings.Flag then RayfieldLibrary.Flags[ColorPickerSettings.Flag] = ColorPickerSettings end end function ColorPickerSettings:Set(RGBColor) ColorPickerSettings.Color = RGBColor h,s,v = ColorPickerSettings.Color:ToHSV() color = Color3.fromHSV(h,s,v) setDisplay() end return ColorPickerSettings end -- Section function Tab:CreateSection(SectionName) local SectionValue = {} if SDone then local SectionSpace = Elements.Template.SectionSpacing:Clone() SectionSpace.Visible = true SectionSpace.Parent = TabPage end local Section = Elements.Template.SectionTitle:Clone() Section.Title.Text = SectionName Section.Visible = true Section.Parent = TabPage Section.Title.TextTransparency = 1 TweenService:Create(Section.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() function SectionValue:Set(NewSection) Section.Title.Text = NewSection end SDone = true return SectionValue end -- Label function Tab:CreateLabel(LabelText) local LabelValue = {} local Label = Elements.Template.Label:Clone() Label.Title.Text = LabelText Label.Visible = true Label.Parent = TabPage Label.BackgroundTransparency = 1 Label.UIStroke.Transparency = 1 Label.Title.TextTransparency = 1 Label.BackgroundColor3 = SelectedTheme.SecondaryElementBackground Label.UIStroke.Color = SelectedTheme.SecondaryElementStroke TweenService:Create(Label, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Label.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Label.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() function LabelValue:Set(NewLabel) Label.Title.Text = NewLabel end return LabelValue end -- Paragraph function Tab:CreateParagraph(ParagraphSettings) local ParagraphValue = {} local Paragraph = Elements.Template.Paragraph:Clone() Paragraph.Title.Text = ParagraphSettings.Title Paragraph.Content.Text = ParagraphSettings.Content Paragraph.Visible = true Paragraph.Parent = TabPage Paragraph.Content.Size = UDim2.new(0, 438, 0, Paragraph.Content.TextBounds.Y) Paragraph.Content.Position = UDim2.new(1, -10, 0.575,0 ) Paragraph.Size = UDim2.new(1, -10, 0, Paragraph.Content.TextBounds.Y + 40) Paragraph.BackgroundTransparency = 1 Paragraph.UIStroke.Transparency = 1 Paragraph.Title.TextTransparency = 1 Paragraph.Content.TextTransparency = 1 Paragraph.BackgroundColor3 = SelectedTheme.SecondaryElementBackground Paragraph.UIStroke.Color = SelectedTheme.SecondaryElementStroke TweenService:Create(Paragraph, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Paragraph.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Paragraph.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() TweenService:Create(Paragraph.Content, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() function ParagraphValue:Set(NewParagraphSettings) Paragraph.Title.Text = NewParagraphSettings.Title Paragraph.Content.Text = NewParagraphSettings.Content end return ParagraphValue end -- Input function Tab:CreateInput(InputSettings) local Input = Elements.Template.Input:Clone() Input.Name = InputSettings.Name Input.Title.Text = InputSettings.Name Input.Visible = true Input.Parent = TabPage Input.BackgroundTransparency = 1 Input.UIStroke.Transparency = 1 Input.Title.TextTransparency = 1 Input.InputFrame.BackgroundColor3 = SelectedTheme.InputBackground Input.InputFrame.UIStroke.Color = SelectedTheme.InputStroke TweenService:Create(Input, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Input.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Input.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() Input.InputFrame.InputBox.PlaceholderText = InputSettings.PlaceholderText Input.InputFrame.Size = UDim2.new(0, Input.InputFrame.InputBox.TextBounds.X + 24, 0, 30) Input.InputFrame.InputBox.FocusLost:Connect(function() local Success, Response = pcall(function() InputSettings.Callback(Input.InputFrame.InputBox.Text) end) if not Success then TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Input.Title.Text = "Callback Error" print("Rayfield | "..InputSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Input.Title.Text = InputSettings.Name TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end if InputSettings.RemoveTextAfterFocusLost then Input.InputFrame.InputBox.Text = "" end SaveConfiguration() end) Input.MouseEnter:Connect(function() TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() end) Input.MouseLeave:Connect(function() TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() end) Input.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function() TweenService:Create(Input.InputFrame, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Input.InputFrame.InputBox.TextBounds.X + 24, 0, 30)}):Play() end) local InputSettings = {} function InputSettings:Set(text) --Doesnt fire the event Input.InputFrame.InputBox.Text = text end return InputSettings end -- Dropdown function Tab:CreateDropdown(DropdownSettings) local Dropdown = Elements.Template.Dropdown:Clone() if string.find(DropdownSettings.Name,"closed") then Dropdown.Name = "Dropdown" else Dropdown.Name = DropdownSettings.Name end Dropdown.Title.Text = DropdownSettings.Name Dropdown.Visible = true Dropdown.Parent = TabPage Dropdown.List.Visible = false if typeof(DropdownSettings.CurrentOption) == "string" then DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption} end if not DropdownSettings.MultipleOptions then DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption[1]} end if DropdownSettings.MultipleOptions then if #DropdownSettings.CurrentOption == 1 then Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] elseif #DropdownSettings.CurrentOption == 0 then Dropdown.Selected.Text = "None" else Dropdown.Selected.Text = "Various" end else Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] end Dropdown.BackgroundTransparency = 1 Dropdown.UIStroke.Transparency = 1 Dropdown.Title.TextTransparency = 1 Dropdown.Size = UDim2.new(1, -10, 0, 45) TweenService:Create(Dropdown, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Dropdown.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() for _, ununusedoption in ipairs(Dropdown.List:GetChildren()) do if ununusedoption.ClassName == "Frame" and ununusedoption.Name ~= "Placeholder" then ununusedoption:Destroy() end end Dropdown.Toggle.Rotation = 180 Dropdown.Interact.MouseButton1Click:Connect(function() TweenService:Create(Dropdown, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 1}):Play() wait(0.1) TweenService:Create(Dropdown, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Transparency = 0}):Play() if Debounce then return end if Dropdown.List.Visible then Debounce = true TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(1, -10, 0, 45)}):Play() for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= "Placeholder" then TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end end TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play() TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play() wait(0.35) Dropdown.List.Visible = false Debounce = false else TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(1, -10, 0, 180)}):Play() Dropdown.List.Visible = true TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 0.7}):Play() TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 0}):Play() for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= "Placeholder" then TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end end end end) Dropdown.MouseEnter:Connect(function() if not Dropdown.List.Visible then TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() end end) Dropdown.MouseLeave:Connect(function() TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() end) for _, Option in ipairs(DropdownSettings.Options) do local DropdownOption = Elements.Template.Dropdown.List.Template:Clone() DropdownOption.Name = Option DropdownOption.Title.Text = Option DropdownOption.Parent = Dropdown.List DropdownOption.Visible = true if DropdownSettings.CurrentOption == Option then DropdownOption.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end DropdownOption.BackgroundTransparency = 1 DropdownOption.UIStroke.Transparency = 1 DropdownOption.Title.TextTransparency = 1 --local Dropdown = Tab:CreateDropdown({ -- Name = "Dropdown Example", -- Options = {"Option 1","Option 2"}, -- CurrentOption = {"Option 1"}, -- MultipleOptions = true, -- Flag = "Dropdown1", -- Callback = function(TableOfOptions) -- end, --}) DropdownOption.Interact.ZIndex = 50 DropdownOption.Interact.MouseButton1Click:Connect(function() if not DropdownSettings.MultipleOptions and table.find(DropdownSettings.CurrentOption, Option) then return end if table.find(DropdownSettings.CurrentOption, Option) then table.remove(DropdownSettings.CurrentOption, table.find(DropdownSettings.CurrentOption, Option)) if DropdownSettings.MultipleOptions then if #DropdownSettings.CurrentOption == 1 then Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] elseif #DropdownSettings.CurrentOption == 0 then Dropdown.Selected.Text = "None" else Dropdown.Selected.Text = "Various" end else Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] end else if not DropdownSettings.MultipleOptions then table.clear(DropdownSettings.CurrentOption) end table.insert(DropdownSettings.CurrentOption, Option) if DropdownSettings.MultipleOptions then if #DropdownSettings.CurrentOption == 1 then Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] elseif #DropdownSettings.CurrentOption == 0 then Dropdown.Selected.Text = "None" else Dropdown.Selected.Text = "Various" end else Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] end TweenService:Create(DropdownOption.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(DropdownOption, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(40, 40, 40)}):Play() Debounce = true wait(0.2) TweenService:Create(DropdownOption.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end local Success, Response = pcall(function() DropdownSettings.Callback(DropdownSettings.CurrentOption) end) if not Success then TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Dropdown.Title.Text = "Callback Error" print("Rayfield | "..DropdownSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Dropdown.Title.Text = DropdownSettings.Name TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end for _, droption in ipairs(Dropdown.List:GetChildren()) do if droption.ClassName == "Frame" and droption.Name ~= "Placeholder" and not table.find(DropdownSettings.CurrentOption, droption.Name) then TweenService:Create(droption, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(30, 30, 30)}):Play() end end if not DropdownSettings.MultipleOptions then wait(0.1) TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(1, -10, 0, 45)}):Play() for _, DropdownOpt in ipairs(Dropdown.List:GetChildren()) do if DropdownOpt.ClassName == "Frame" and DropdownOpt.Name ~= "Placeholder" then TweenService:Create(DropdownOpt, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end end TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play() TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play() wait(0.35) Dropdown.List.Visible = false end Debounce = false SaveConfiguration() end) end for _, droption in ipairs(Dropdown.List:GetChildren()) do if droption.ClassName == "Frame" and droption.Name ~= "Placeholder" then if not table.find(DropdownSettings.CurrentOption, droption.Name) then droption.BackgroundColor3 = Color3.fromRGB(30, 30, 30) else droption.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end end end function DropdownSettings:Set(NewOption) DropdownSettings.CurrentOption = NewOption if typeof(DropdownSettings.CurrentOption) == "string" then DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption} end if not DropdownSettings.MultipleOptions then DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption[1]} end if DropdownSettings.MultipleOptions then if #DropdownSettings.CurrentOption == 1 then Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] elseif #DropdownSettings.CurrentOption == 0 then Dropdown.Selected.Text = "None" else Dropdown.Selected.Text = "Various" end else Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] end local Success, Response = pcall(function() DropdownSettings.Callback(NewOption) end) if not Success then TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Dropdown.Title.Text = "Callback Error" print("Rayfield | "..DropdownSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Dropdown.Title.Text = DropdownSettings.Name TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end for _, droption in ipairs(Dropdown.List:GetChildren()) do if droption.ClassName == "Frame" and droption.Name ~= "Placeholder" then if not table.find(DropdownSettings.CurrentOption, droption.Name) then droption.BackgroundColor3 = Color3.fromRGB(30, 30, 30) else droption.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end end end --SaveConfiguration() end if Settings.ConfigurationSaving then if Settings.ConfigurationSaving.Enabled and DropdownSettings.Flag then RayfieldLibrary.Flags[DropdownSettings.Flag] = DropdownSettings end end return DropdownSettings end -- Keybind function Tab:CreateKeybind(KeybindSettings) local CheckingForKey = false local Keybind = Elements.Template.Keybind:Clone() Keybind.Name = KeybindSettings.Name Keybind.Title.Text = KeybindSettings.Name Keybind.Visible = true Keybind.Parent = TabPage Keybind.BackgroundTransparency = 1 Keybind.UIStroke.Transparency = 1 Keybind.Title.TextTransparency = 1 Keybind.KeybindFrame.BackgroundColor3 = SelectedTheme.InputBackground Keybind.KeybindFrame.UIStroke.Color = SelectedTheme.InputStroke TweenService:Create(Keybind, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Keybind.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() Keybind.KeybindFrame.KeybindBox.Text = KeybindSettings.CurrentKeybind Keybind.KeybindFrame.Size = UDim2.new(0, Keybind.KeybindFrame.KeybindBox.TextBounds.X + 24, 0, 30) Keybind.KeybindFrame.KeybindBox.Focused:Connect(function() CheckingForKey = true Keybind.KeybindFrame.KeybindBox.Text = "" end) Keybind.KeybindFrame.KeybindBox.FocusLost:Connect(function() CheckingForKey = false if Keybind.KeybindFrame.KeybindBox.Text == nil or "" then Keybind.KeybindFrame.KeybindBox.Text = KeybindSettings.CurrentKeybind SaveConfiguration() end end) Keybind.MouseEnter:Connect(function() TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() end) Keybind.MouseLeave:Connect(function() TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() end) UserInputService.InputBegan:Connect(function(input, processed) if CheckingForKey then if input.KeyCode ~= Enum.KeyCode.Unknown and input.KeyCode ~= Enum.KeyCode.K then local SplitMessage = string.split(tostring(input.KeyCode), ".") local NewKeyNoEnum = SplitMessage[3] Keybind.KeybindFrame.KeybindBox.Text = tostring(NewKeyNoEnum) KeybindSettings.CurrentKeybind = tostring(NewKeyNoEnum) Keybind.KeybindFrame.KeybindBox:ReleaseFocus() SaveConfiguration() end elseif KeybindSettings.CurrentKeybind ~= nil and (input.KeyCode == Enum.KeyCode[KeybindSettings.CurrentKeybind] and not processed) then -- Test local Held = true local Connection Connection = input.Changed:Connect(function(prop) if prop == "UserInputState" then Connection:Disconnect() Held = false end end) if not KeybindSettings.HoldToInteract then local Success, Response = pcall(KeybindSettings.Callback) if not Success then TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Keybind.Title.Text = "Callback Error" print("Rayfield | "..KeybindSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Keybind.Title.Text = KeybindSettings.Name TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end else wait(0.25) if Held then local Loop; Loop = RunService.Stepped:Connect(function() if not Held then KeybindSettings.Callback(false) -- maybe pcall this Loop:Disconnect() else KeybindSettings.Callback(true) -- maybe pcall this end end) end end end end) Keybind.KeybindFrame.KeybindBox:GetPropertyChangedSignal("Text"):Connect(function() TweenService:Create(Keybind.KeybindFrame, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Keybind.KeybindFrame.KeybindBox.TextBounds.X + 24, 0, 30)}):Play() end) function KeybindSettings:Set(NewKeybind) Keybind.KeybindFrame.KeybindBox.Text = tostring(NewKeybind) KeybindSettings.CurrentKeybind = tostring(NewKeybind) Keybind.KeybindFrame.KeybindBox:ReleaseFocus() SaveConfiguration() end if Settings.ConfigurationSaving then if Settings.ConfigurationSaving.Enabled and KeybindSettings.Flag then RayfieldLibrary.Flags[KeybindSettings.Flag] = KeybindSettings end end return KeybindSettings end -- Toggle function Tab:CreateToggle(ToggleSettings) local ToggleValue = {} local Toggle = Elements.Template.Toggle:Clone() Toggle.Name = ToggleSettings.Name Toggle.Title.Text = ToggleSettings.Name Toggle.Visible = true Toggle.Parent = TabPage Toggle.BackgroundTransparency = 1 Toggle.UIStroke.Transparency = 1 Toggle.Title.TextTransparency = 1 Toggle.Switch.BackgroundColor3 = SelectedTheme.ToggleBackground if SelectedTheme ~= RayfieldLibrary.Theme.Default then Toggle.Switch.Shadow.Visible = false end TweenService:Create(Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Toggle.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() if not ToggleSettings.CurrentValue then Toggle.Switch.Indicator.Position = UDim2.new(1, -40, 0.5, 0) Toggle.Switch.Indicator.UIStroke.Color = SelectedTheme.ToggleDisabledStroke Toggle.Switch.Indicator.BackgroundColor3 = SelectedTheme.ToggleDisabled Toggle.Switch.UIStroke.Color = SelectedTheme.ToggleDisabledOuterStroke else Toggle.Switch.Indicator.Position = UDim2.new(1, -20, 0.5, 0) Toggle.Switch.Indicator.UIStroke.Color = SelectedTheme.ToggleEnabledStroke Toggle.Switch.Indicator.BackgroundColor3 = SelectedTheme.ToggleEnabled Toggle.Switch.UIStroke.Color = SelectedTheme.ToggleEnabledOuterStroke end Toggle.MouseEnter:Connect(function() TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() end) Toggle.MouseLeave:Connect(function() TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() end) Toggle.Interact.MouseButton1Click:Connect(function() if ToggleSettings.CurrentValue then ToggleSettings.CurrentValue = false TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -40, 0.5, 0)}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play() TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledOuterStroke}):Play() wait(0.05) TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() wait(0.15) TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() else ToggleSettings.CurrentValue = true TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -20, 0.5, 0)}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play() TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledOuterStroke}):Play() wait(0.05) TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() wait(0.15) TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end local Success, Response = pcall(function() ToggleSettings.Callback(ToggleSettings.CurrentValue) end) if not Success then TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Toggle.Title.Text = "Callback Error" print("Rayfield | "..ToggleSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Toggle.Title.Text = ToggleSettings.Name TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end SaveConfiguration() end) function ToggleSettings:Set(NewToggleValue) if NewToggleValue then ToggleSettings.CurrentValue = true TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -20, 0.5, 0)}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play() TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(100,100,100)}):Play() wait(0.05) TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() wait(0.15) TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() else ToggleSettings.CurrentValue = false TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -40, 0.5, 0)}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() TweenService:Create(Toggle.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play() TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play() TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(65,65,65)}):Play() wait(0.05) TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() wait(0.15) TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end local Success, Response = pcall(function() ToggleSettings.Callback(ToggleSettings.CurrentValue) end) if not Success then TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Toggle.Title.Text = "Callback Error" print("Rayfield | "..ToggleSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Toggle.Title.Text = ToggleSettings.Name TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end SaveConfiguration() end if Settings.ConfigurationSaving then if Settings.ConfigurationSaving.Enabled and ToggleSettings.Flag then RayfieldLibrary.Flags[ToggleSettings.Flag] = ToggleSettings end end return ToggleSettings end -- Slider function Tab:CreateSlider(SliderSettings) local Dragging = false local Slider = Elements.Template.Slider:Clone() Slider.Name = SliderSettings.Name Slider.Title.Text = SliderSettings.Name Slider.Visible = true Slider.Parent = TabPage Slider.BackgroundTransparency = 1 Slider.UIStroke.Transparency = 1 Slider.Title.TextTransparency = 1 if SelectedTheme ~= RayfieldLibrary.Theme.Default then Slider.Main.Shadow.Visible = false end Slider.Main.BackgroundColor3 = SelectedTheme.SliderBackground Slider.Main.UIStroke.Color = SelectedTheme.SliderStroke Slider.Main.Progress.BackgroundColor3 = SelectedTheme.SliderProgress TweenService:Create(Slider, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Slider.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Transparency = 0}):Play() TweenService:Create(Slider.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() Slider.Main.Progress.Size = UDim2.new(0, Slider.Main.AbsoluteSize.X * ((SliderSettings.CurrentValue + SliderSettings.Range[1]) / (SliderSettings.Range[2] - SliderSettings.Range[1])) > 5 and Slider.Main.AbsoluteSize.X * (SliderSettings.CurrentValue / (SliderSettings.Range[2] - SliderSettings.Range[1])) or 5, 1, 0) if not SliderSettings.Suffix then Slider.Main.Information.Text = tostring(SliderSettings.CurrentValue) else Slider.Main.Information.Text = tostring(SliderSettings.CurrentValue) .. " " .. SliderSettings.Suffix end Slider.MouseEnter:Connect(function() TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play() end) Slider.MouseLeave:Connect(function() TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() end) Slider.Main.Interact.InputBegan:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = true end end) Slider.Main.Interact.InputEnded:Connect(function(Input) if Input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = false end end) Slider.Main.Interact.MouseButton1Down:Connect(function(X) local Current = Slider.Main.Progress.AbsolutePosition.X + Slider.Main.Progress.AbsoluteSize.X local Start = Current local Location = X local Loop; Loop = RunService.Stepped:Connect(function() if Dragging then Location = UserInputService:GetMouseLocation().X Current = Current + 0.025 * (Location - Start) if Location < Slider.Main.AbsolutePosition.X then Location = Slider.Main.AbsolutePosition.X elseif Location > Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X then Location = Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X end if Current < Slider.Main.AbsolutePosition.X + 5 then Current = Slider.Main.AbsolutePosition.X + 5 elseif Current > Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X then Current = Slider.Main.AbsolutePosition.X + Slider.Main.AbsoluteSize.X end if Current <= Location and (Location - Start) < 0 then Start = Location elseif Current >= Location and (Location - Start) > 0 then Start = Location end TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Current - Slider.Main.AbsolutePosition.X, 1, 0)}):Play() local NewValue = SliderSettings.Range[1] + (Location - Slider.Main.AbsolutePosition.X) / Slider.Main.AbsoluteSize.X * (SliderSettings.Range[2] - SliderSettings.Range[1]) NewValue = math.floor(NewValue / SliderSettings.Increment + 0.5) * (SliderSettings.Increment * 10000000) / 10000000 if not SliderSettings.Suffix then Slider.Main.Information.Text = tostring(NewValue) else Slider.Main.Information.Text = tostring(NewValue) .. " " .. SliderSettings.Suffix end if SliderSettings.CurrentValue ~= NewValue then local Success, Response = pcall(function() SliderSettings.Callback(NewValue) end) if not Success then TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Slider.Title.Text = "Callback Error" print("Rayfield | "..SliderSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Slider.Title.Text = SliderSettings.Name TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end SliderSettings.CurrentValue = NewValue SaveConfiguration() end else TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Location - Slider.Main.AbsolutePosition.X > 5 and Location - Slider.Main.AbsolutePosition.X or 5, 1, 0)}):Play() Loop:Disconnect() end end) end) function SliderSettings:Set(NewVal) TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, Slider.Main.AbsoluteSize.X * ((NewVal + SliderSettings.Range[1]) / (SliderSettings.Range[2] - SliderSettings.Range[1])) > 5 and Slider.Main.AbsoluteSize.X * (NewVal / (SliderSettings.Range[2] - SliderSettings.Range[1])) or 5, 1, 0)}):Play() Slider.Main.Information.Text = tostring(NewVal) .. " " .. SliderSettings.Suffix local Success, Response = pcall(function() SliderSettings.Callback(NewVal) end) if not Success then TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play() TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() Slider.Title.Text = "Callback Error" print("Rayfield | "..SliderSettings.Name.." Callback Error " ..tostring(Response)) wait(0.5) Slider.Title.Text = SliderSettings.Name TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play() TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end SliderSettings.CurrentValue = NewVal SaveConfiguration() end if Settings.ConfigurationSaving then if Settings.ConfigurationSaving.Enabled and SliderSettings.Flag then RayfieldLibrary.Flags[SliderSettings.Flag] = SliderSettings end end return SliderSettings end return Tab end Elements.Visible = true wait(0.7) TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() wait(0.2) TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 475)}):Play() TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play() Topbar.BackgroundTransparency = 1 Topbar.Divider.Size = UDim2.new(0, 0, 0, 1) Topbar.CornerRepair.BackgroundTransparency = 1 Topbar.Title.TextTransparency = 1 Topbar.Theme.ImageTransparency = 1 Topbar.ChangeSize.ImageTransparency = 1 Topbar.Hide.ImageTransparency = 1 wait(0.5) Topbar.Visible = true TweenService:Create(Topbar, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() wait(0.1) TweenService:Create(Topbar.Divider, TweenInfo.new(1, Enum.EasingStyle.Quint), {Size = UDim2.new(1, 0, 0, 1)}):Play() wait(0.1) TweenService:Create(Topbar.Title, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() wait(0.1) TweenService:Create(Topbar.Theme, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() wait(0.1) TweenService:Create(Topbar.ChangeSize, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() wait(0.1) TweenService:Create(Topbar.Hide, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() wait(0.3) return Window end function RayfieldLibrary:Destroy() Rayfield:Destroy() end Topbar.ChangeSize.MouseButton1Click:Connect(function() if Debounce then return end if Minimised then Minimised = false Maximise() else Minimised = true Minimise() end end) Topbar.Hide.MouseButton1Click:Connect(function() if Debounce then return end if Hidden then Hidden = false Minimised = false Unhide() else Hidden = true Hide() end end) UserInputService.InputBegan:Connect(function(input, processed) if (input.KeyCode == Enum.KeyCode.K and not processed) then if Debounce then return end if Hidden then Hidden = false Unhide() else Hidden = true Hide() end end end) for _, TopbarButton in ipairs(Topbar:GetChildren()) do if TopbarButton.ClassName == "ImageButton" then TopbarButton.MouseEnter:Connect(function() TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() end) TopbarButton.MouseLeave:Connect(function() TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() end) TopbarButton.MouseButton1Click:Connect(function() TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {ImageTransparency = 0.8}):Play() end) end end function RayfieldLibrary:LoadConfiguration() if CEnabled then pcall(function() if isfile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension) then LoadConfiguration(readfile(ConfigurationFolder .. "/" .. CFileName .. ConfigurationExtension)) RayfieldLibrary:Notify({Title = "Configuration Loaded", Content = "The configuration file for this script has been loaded from a previous session"}) end end) end end task.delay(3.5, RayfieldLibrary.LoadConfiguration, RayfieldLibrary) return RayfieldLibrary