Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Rayfield Interface Suite
- by Sirius
- shlex | Designing + Programming
- iRay | Programming
- ]]
- local Release = "Build 1.1a"
- local RayfieldFolder = "Rayfield"
- local ConfigurationFolder = RayfieldFolder.."/Configurations"
- local ConfigurationExtension = ".rfld"
- local RayfieldLibrary = {
- Flags = {},
- Theme = {
- Default = {
- 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(50, 138, 220),
- SliderProgress = Color3.fromRGB(50, 138, 220),
- SliderStroke = Color3.fromRGB(58, 163, 255),
- 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),
- DropdownSelected = Color3.fromRGB(40, 40, 40),
- DropdownUnselected = Color3.fromRGB(30, 30, 30),
- InputBackground = Color3.fromRGB(30, 30, 30),
- InputStroke = Color3.fromRGB(65, 65, 65),
- PlaceholderColor = Color3.fromRGB(178, 178, 178)
- },
- Light = {
- TextColor = Color3.fromRGB(40, 40, 40), -- Darker text for readability on light background
- Background = Color3.fromRGB(245, 245, 245),
- Topbar = Color3.fromRGB(230, 230, 230),
- Shadow = Color3.fromRGB(200, 200, 200), -- Subtle shadow to enhance layering
- NotificationBackground = Color3.fromRGB(250, 250, 250), -- Light background for notifications
- NotificationActionsBackground = Color3.fromRGB(240, 240, 240), -- Slight contrast for actions
- TabBackground = Color3.fromRGB(235, 235, 235),
- TabStroke = Color3.fromRGB(215, 215, 215),
- TabBackgroundSelected = Color3.fromRGB(255, 255, 255),
- TabTextColor = Color3.fromRGB(80, 80, 80),
- SelectedTabTextColor = Color3.fromRGB(0, 0, 0),
- ElementBackground = Color3.fromRGB(240, 240, 240),
- ElementBackgroundHover = Color3.fromRGB(225, 225, 225),
- SecondaryElementBackground = Color3.fromRGB(235, 235, 235), -- Unified look for labels and paragraphs
- ElementStroke = Color3.fromRGB(210, 210, 210),
- SecondaryElementStroke = Color3.fromRGB(210, 210, 210),
- SliderBackground = Color3.fromRGB(150, 180, 220), -- Softer slider background for light theme
- SliderProgress = Color3.fromRGB(100, 150, 200),
- SliderStroke = Color3.fromRGB(120, 170, 220),
- ToggleBackground = Color3.fromRGB(220, 220, 220), -- Light toggle background
- ToggleEnabled = Color3.fromRGB(0, 146, 214),
- ToggleDisabled = Color3.fromRGB(150, 150, 150),
- ToggleEnabledStroke = Color3.fromRGB(0, 170, 255),
- ToggleDisabledStroke = Color3.fromRGB(170, 170, 170),
- ToggleEnabledOuterStroke = Color3.fromRGB(100, 100, 100),
- ToggleDisabledOuterStroke = Color3.fromRGB(180, 180, 180),
- DropdownSelected = Color3.fromRGB(230, 230, 230), -- Lighten to match theme
- DropdownUnselected = Color3.fromRGB(220, 220, 220),
- InputBackground = Color3.fromRGB(240, 240, 240),
- InputStroke = Color3.fromRGB(180, 180, 180),
- PlaceholderColor = Color3.fromRGB(140, 140, 140)
- },
- Green = {
- TextColor = Color3.fromRGB(30, 60, 30), -- Deep green for readability
- Background = Color3.fromRGB(235, 245, 235), -- Soft green background
- Topbar = Color3.fromRGB(210, 230, 210), -- Slightly darker for contrast
- Shadow = Color3.fromRGB(200, 220, 200),
- NotificationBackground = Color3.fromRGB(240, 250, 240),
- NotificationActionsBackground = Color3.fromRGB(220, 235, 220),
- TabBackground = Color3.fromRGB(215, 235, 215),
- TabStroke = Color3.fromRGB(190, 210, 190),
- TabBackgroundSelected = Color3.fromRGB(245, 255, 245),
- TabTextColor = Color3.fromRGB(50, 80, 50),
- SelectedTabTextColor = Color3.fromRGB(20, 60, 20),
- ElementBackground = Color3.fromRGB(225, 240, 225),
- ElementBackgroundHover = Color3.fromRGB(210, 225, 210),
- SecondaryElementBackground = Color3.fromRGB(235, 245, 235),
- ElementStroke = Color3.fromRGB(180, 200, 180),
- SecondaryElementStroke = Color3.fromRGB(180, 200, 180),
- SliderBackground = Color3.fromRGB(90, 160, 90),
- SliderProgress = Color3.fromRGB(70, 130, 70),
- SliderStroke = Color3.fromRGB(100, 180, 100),
- ToggleBackground = Color3.fromRGB(215, 235, 215),
- ToggleEnabled = Color3.fromRGB(60, 130, 60),
- ToggleDisabled = Color3.fromRGB(150, 175, 150),
- ToggleEnabledStroke = Color3.fromRGB(80, 150, 80),
- ToggleDisabledStroke = Color3.fromRGB(130, 150, 130),
- ToggleEnabledOuterStroke = Color3.fromRGB(100, 160, 100), -- Outer stroke for enabled toggle
- ToggleDisabledOuterStroke = Color3.fromRGB(160, 180, 160), -- Outer stroke for disabled toggle
- DropdownSelected = Color3.fromRGB(225, 240, 225),
- DropdownUnselected = Color3.fromRGB(210, 225, 210),
- InputBackground = Color3.fromRGB(235, 245, 235),
- InputStroke = Color3.fromRGB(180, 200, 180),
- PlaceholderColor = Color3.fromRGB(120, 140, 120)
- },
- DarkBlue = {
- TextColor = Color3.fromRGB(230, 230, 230), -- Light gray for high contrast on dark backgrounds
- Background = Color3.fromRGB(20, 25, 30), -- Very dark blue-gray base
- Topbar = Color3.fromRGB(30, 35, 40), -- Slightly lighter topbar
- Shadow = Color3.fromRGB(15, 20, 25), -- Deep shadow for layering effect
- NotificationBackground = Color3.fromRGB(25, 30, 35),
- NotificationActionsBackground = Color3.fromRGB(45, 50, 55),
- TabBackground = Color3.fromRGB(35, 40, 45),
- TabStroke = Color3.fromRGB(45, 50, 55), -- Darkened stroke to match dark theme
- TabBackgroundSelected = Color3.fromRGB(40, 70, 100), -- Bold blue for selected tab
- TabTextColor = Color3.fromRGB(200, 200, 200),
- SelectedTabTextColor = Color3.fromRGB(255, 255, 255),
- ElementBackground = Color3.fromRGB(30, 35, 40),
- ElementBackgroundHover = Color3.fromRGB(40, 45, 50),
- SecondaryElementBackground = Color3.fromRGB(35, 40, 45),
- ElementStroke = Color3.fromRGB(45, 50, 55), -- Deeper, less white stroke
- SecondaryElementStroke = Color3.fromRGB(40, 45, 50), -- Slightly lighter for subtle contrast
- SliderBackground = Color3.fromRGB(0, 90, 180),
- SliderProgress = Color3.fromRGB(0, 120, 210),
- SliderStroke = Color3.fromRGB(0, 150, 240),
- ToggleBackground = Color3.fromRGB(35, 40, 45),
- ToggleEnabled = Color3.fromRGB(0, 120, 210), -- Bright blue for enabled state
- ToggleDisabled = Color3.fromRGB(80, 80, 80),
- ToggleEnabledStroke = Color3.fromRGB(0, 150, 240),
- ToggleDisabledStroke = Color3.fromRGB(90, 90, 90),
- ToggleEnabledOuterStroke = Color3.fromRGB(20, 100, 180), -- Darker outer stroke for toggle
- ToggleDisabledOuterStroke = Color3.fromRGB(50, 50, 50),
- DropdownSelected = Color3.fromRGB(30, 70, 90), -- Muted blue for dropdown
- DropdownUnselected = Color3.fromRGB(25, 30, 35),
- InputBackground = Color3.fromRGB(25, 30, 35),
- InputStroke = Color3.fromRGB(45, 50, 55), -- Deepened input stroke
- PlaceholderColor = Color3.fromRGB(150, 150, 160)
- }
- }
- }
- -- 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")
- -- Environment Check
- local useStudio
- if RunService:IsStudio() then
- useStudio = true
- end
- -- Interface Management
- local Rayfield = useStudio and script.Parent:FindFirstChild('Rayfield') or game:GetObjects("rbxassetid://10804731440")[1]
- Rayfield.Enabled = false
- if gethui then
- Rayfield.Parent = gethui()
- elseif syn and syn.protect_gui then
- syn.protect_gui(Rayfield)
- Rayfield.Parent = CoreGui
- elseif not useStudio and CoreGui:FindFirstChild("RobloxGui") then
- Rayfield.Parent = CoreGui:FindFirstChild("RobloxGui")
- elseif not useStudio then
- 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
- elseif not useStudio then
- 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
- local minSize = Vector2.new(1024, 768)
- local useMobileSizing
- if Rayfield.AbsoluteSize.X < minSize.X and Rayfield.AbsoluteSize.Y < minSize.Y then
- useMobileSizing = true
- end
- -- Object Variables
- local Camera = workspace.CurrentCamera
- local Main = Rayfield.Main
- local MPrompt = Rayfield:FindFirstChild('Prompt')
- 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 searchOpen = false
- local Notifications = Rayfield.Notifications
- local SelectedTheme = RayfieldLibrary.Theme.Default
- function ChangeTheme(ThemeName)
- SelectedTheme = RayfieldLibrary.Theme[ThemeName]
- 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.Search.ImageColor3 = SelectedTheme.TextColor
- for _, text in ipairs(Rayfield:GetDescendants()) do
- if text:IsA('TextLabel') or text:IsA('TextBox') then text.TextColor3 = SelectedTheme.TextColor end
- end
- 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" and Element.Name ~= "SearchTitle-fsefsefesfsefesfesfThanks" 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
- DragPoint.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch 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 or Input.UserInputType == Enum.UserInputType.Touch 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.35, Enum.EasingStyle.Exponential, 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
- task.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. Check docs.sirius.menu for help."})
- 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
- function RayfieldLibrary:Notify(data) -- action e.g open messages
- task.spawn(function()
- -- Notification Object Creation
- local newNotification = Notifications.Template:Clone()
- newNotification.Name = data.Title or 'No Title Provided'
- newNotification.Parent = Notifications
- newNotification.LayoutOrder = #Notifications:GetChildren()
- newNotification.Visible = false
- -- Set Data
- newNotification.Title.Text = data.Title or "Unknown Title"
- newNotification.Description.Text = data.Content or "Unknown Content"
- newNotification.Icon.Image = "rbxassetid://" .. (data.Image or 0)
- -- Set initial transparency values
- newNotification.BackgroundTransparency = 1
- newNotification.Title.TextTransparency = 1
- newNotification.Description.TextTransparency = 1
- newNotification.UIStroke.Transparency = 1
- newNotification.Shadow.ImageTransparency = 1
- newNotification.Size = UDim2.new(1, 0, 0.5, 0)
- newNotification.Icon.ImageTransparency = 1
- newNotification.Icon.BackgroundTransparency = 1
- task.wait()
- if data.Actions then
- warn('Rayfield | Not seeing your actions in notifications?')
- print("Notification Actions are being sunset for now, keep up to date on when they're back in the discord. (sirius.menu/discord)")
- end
- -- Calculate textbounds and set initial values
- local bounds = {newNotification.Title.TextBounds.Y, newNotification.Description.TextBounds.Y}
- newNotification.Size = UDim2.new(1, -60, 0, -Notifications:FindFirstChild("UIListLayout").Padding.Offset)
- newNotification.Icon.Size = UDim2.new(0, 32, 0, 32)
- newNotification.Icon.Position = UDim2.new(0, 20, 0.5, 0)
- newNotification.Visible = true
- TweenService:Create(newNotification, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, 0, 0, math.max(bounds[1] + bounds[2] + 31, 60))}):Play()
- task.wait(0.15)
- TweenService:Create(newNotification, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.45}):Play()
- TweenService:Create(newNotification.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(newNotification.Icon, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(newNotification.Description, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0.35}):Play()
- TweenService:Create(newNotification.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.95}):Play()
- TweenService:Create(newNotification.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0.82}):Play()
- local waitDuration = math.min(math.max((#newNotification.Description.Text * 0.1) + 2.5, 3), 10)
- task.wait(data.Duration or waitDuration)
- newNotification.Icon.Visible = false
- TweenService:Create(newNotification, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(newNotification.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(newNotification.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(newNotification.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(newNotification.Description, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(newNotification, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, -90, 0, 0)}):Play()
- task.wait(1)
- TweenService:Create(newNotification, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, -90, 0, -Notifications:FindFirstChild("UIListLayout").Padding.Offset)}):Play()
- newNotification.Visible = false
- newNotification:Destroy()
- end)
- end
- local function openSearch()
- Main.Search.BackgroundTransparency = 1
- Main.Search.Shadow.ImageTransparency = 1
- Main.Search.Input.TextTransparency = 1
- Main.Search.Search.ImageTransparency = 1
- Main.Search.UIStroke.Transparency = 1
- Main.Search.Size = UDim2.new(1, 0, 0, 80)
- Main.Search.Position = UDim2.new(0.5, 0, 0, 70)
- Main.Search.Input.Interactable = true
- Main.Search.Visible = true
- 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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- end
- end
- Main.Search.Input:CaptureFocus()
- TweenService:Create(Main.Search.Shadow, TweenInfo.new(0.05, Enum.EasingStyle.Quint), {ImageTransparency = 0.95}):Play()
- TweenService:Create(Main.Search, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.5, 0, 0, 57), BackgroundTransparency = 0.9}):Play()
- TweenService:Create(Main.Search.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0.8}):Play()
- TweenService:Create(Main.Search.Input, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(Main.Search.Search, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0.5}):Play()
- TweenService:Create(Main.Search, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, -40, 0, 35)}):Play()
- end
- local function closeSearch()
- TweenService:Create(Main.Search, TweenInfo.new(0.35, Enum.EasingStyle.Quint), {BackgroundTransparency = 1, Size = UDim2.new(1, -55, 0, 30)}):Play()
- TweenService:Create(Main.Search.Search, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
- TweenService:Create(Main.Search.Shadow, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play()
- TweenService:Create(Main.Search.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play()
- TweenService:Create(Main.Search.Input, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play()
- 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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- else
- TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.7}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play()
- end
- end
- end
- Main.Search.Input.Text = ''
- Main.Search.Input.Interactable = false
- end
- local function Hide(notify: boolean?)
- if MPrompt then
- MPrompt.Position = UDim2.new(0.5, 0, 0, -50)
- MPrompt.Size = UDim2.new(0, 40, 0, 10)
- MPrompt.BackgroundTransparency = 1
- MPrompt.Title.TextTransparency = 1
- MPrompt.Visible = true
- end
- task.spawn(closeSearch)
- searchOpen = false
- Debounce = true
- if notify then
- if useMobileSizing then
- RayfieldLibrary:Notify({Title = "Interface Hidden", Content = "The interface has been hidden, you can unhide the interface by tapping 'Show Rayfield'.", Duration = 7})
- else
- RayfieldLibrary:Notify({Title = "Interface Hidden", Content = "The interface has been hidden, you can unhide the interface by tapping K.", Duration = 7})
- end
- end
- TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 470, 0, 0)}):Play()
- TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 470, 0, 45)}):Play()
- TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- if useMobileSizing and MPrompt then
- TweenService:Create(MPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 120, 0, 30), Position = UDim2.new(0.5, 0, 0, 20), BackgroundTransparency = 0.3}):Play()
- TweenService:Create(MPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0.3}):Play()
- end
- for _, TopbarButton in ipairs(Topbar:GetChildren()) do
- if TopbarButton.ClassName == "ImageButton" then
- TweenService:Create(TopbarButton, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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" or element.Name == 'SearchTitle-fsefsefesfsefesfesfThanks' then
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- else
- TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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
- task.wait(0.5)
- Main.Visible = false
- Debounce = false
- end
- local function Maximise()
- Debounce = true
- Topbar.ChangeSize.Image = "rbxassetid://"..10137941941
- TweenService:Create(Topbar.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play()
- TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = useMobileSizing and UDim2.new(0, 500, 0, 275) or UDim2.new(0, 500, 0, 475)}):Play()
- TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 500, 0, 45)}):Play()
- TabList.Visible = true
- task.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" or element.Name == 'SearchTitle-fsefsefesfsefesfesfThanks' then
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- else
- TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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
- task.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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- else
- TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.7}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play()
- end
- end
- end
- task.wait(0.5)
- Debounce = false
- end
- local 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.Exponential), {Size = useMobileSizing and UDim2.new(0, 500, 0, 275) or UDim2.new(0, 500, 0, 475)}):Play()
- TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 500, 0, 45)}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play()
- TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.Topbar.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- if MPrompt then
- TweenService:Create(MPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 40, 0, 10), Position = UDim2.new(0.5, 0, 0, -50), BackgroundTransparency = 1}):Play()
- TweenService:Create(MPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- task.spawn(function()
- task.wait(0.5)
- MPrompt.Visible = false
- end)
- end
- if Minimised then
- task.spawn(Maximise)
- end
- for _, TopbarButton in ipairs(Topbar:GetChildren()) do
- if TopbarButton.ClassName == "ImageButton" then
- TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- else
- TweenService:Create(tabbtn, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.7}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0.5}):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" or element.Name == 'SearchTitle-fsefsefesfsefesfesfThanks' then
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- else
- TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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
- task.wait(0.5)
- Minimised = false
- Debounce = false
- end
- local function Minimise()
- Debounce = true
- Topbar.ChangeSize.Image = "rbxassetid://"..11036884234
- task.spawn(closeSearch)
- searchOpen = false
- 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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(tabbtn.Image, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(tabbtn.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(tabbtn.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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" or element.Name == 'SearchTitle-fsefsefesfsefesfesfThanks' then
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- else
- TweenService:Create(element, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(element.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(element.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Topbar.Divider, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 495, 0, 45)}):Play()
- TweenService:Create(Topbar, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 495, 0, 45)}):Play()
- task.wait(0.3)
- Elements.Visible = false
- TabList.Visible = false
- task.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
- if Settings.Theme then
- local success = pcall(ChangeTheme, Settings.Theme)
- if not success then
- warn('issue rendering theme. no theme file')
- end
- end
- Topbar.Visible = false
- Elements.Visible = false
- LoadingFrame.Visible = true
- if not Settings.DisableRayfieldPrompts then
- task.spawn(function()
- while true do
- task.wait(math.random(120, 600))
- RayfieldLibrary:Notify({
- Title = "Rayfield Interface",
- Content = "Enjoying this UI library? You can use it yourself at docs.sirius.menu/rayfield or sirius.menu/discord",
- Duration = 7,
- Image = 4483362458,
- })
- end
- end)
- end
- 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.Image.ImageTransparency = 1
- TabButton.UIStroke.Transparency = 1
- end
- end
- if Settings.Discord and not useStudio 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
- end
- end
- if (Settings.KeySystem) then
- Passthrough = true
- 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))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- 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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 500, 0, 187)}):Play()
- TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 0.5}):Play()
- task.wait(0.05)
- TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.15)
- TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 467, 0, 175)}):Play()
- TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- task.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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 467, 0, 175)}):Play()
- TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- task.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.Exponential), {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()
- task.wait(0.1)
- TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Elastic), {Position = UDim2.new(0.505,0,0.5,0)}):Play()
- task.wait(0.1)
- TweenService:Create(KeyMain, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.5,0,0.5,0)}):Play()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 500, 0, 187)}):Play()
- end
- end)
- KeyMain.Hide.MouseButton1Click:Connect(function()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 467, 0, 175)}):Play()
- TweenService:Create(KeyMain.Shadow.Image, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(KeyMain.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.KeyNote, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(KeyMain.Input.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(KeyMain.Input.InputBox, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteTitle, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.NoteMessage, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(KeyMain.Hide, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- task.wait(0.51)
- RayfieldLibrary:Destroy()
- KeyUI:Destroy()
- end)
- else
- Passthrough = true
- end
- end
- if Settings.KeySystem then
- repeat task.wait() until Passthrough
- end
- Notifications.Template.Visible = false
- Notifications.Visible = true
- Rayfield.Enabled = true
- task.wait(0.5)
- TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play()
- task.wait(0.1)
- TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.05)
- TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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 + 52, 0, 30)
- end
- TabButton.BackgroundTransparency = 1
- TabButton.Title.TextTransparency = 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
- TabButton.UIStroke.Color = SelectedTheme.TabStroke
- -- Animate
- task.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.Exponential), {BackgroundTransparency = 0.7}):Play()
- TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
- TweenService:Create(TabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play()
- else
- FirstTab = Name
- TabButton.BackgroundColor3 = SelectedTheme.TabBackgroundSelected
- TabButton.Image.ImageColor3 = SelectedTheme.SelectedTabTextColor
- TabButton.Title.TextColor3 = SelectedTheme.SelectedTabTextColor
- TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- end
- TabButton.Interact.MouseButton1Click:Connect(function()
- if Minimised then return end
- TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(TabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(TabButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.TabBackgroundSelected}):Play()
- TweenService:Create(TabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextColor3 = SelectedTheme.SelectedTabTextColor}):Play()
- TweenService:Create(TabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageColor3 = SelectedTheme.SelectedTabTextColor}):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.Exponential), {BackgroundColor3 = SelectedTheme.TabBackground}):Play()
- TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextColor3 = SelectedTheme.TabTextColor}):Play()
- TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageColor3 = SelectedTheme.TabTextColor}):Play()
- TweenService:Create(OtherTabButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.7}):Play()
- TweenService:Create(OtherTabButton.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play()
- TweenService:Create(OtherTabButton.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
- TweenService:Create(OtherTabButton.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play()
- end
- end
- if Elements.UIPageLayout.CurrentPage ~= TabPage then
- TweenService:Create(Elements, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 460, 1, -130)}):Play()
- Elements.UIPageLayout:JumpTo(TabPage)
- task.wait(0.2)
- TweenService:Create(Elements, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 475, 1, -100)}):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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Button.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Button.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Button.Title.Text = "Callback Error"
- print("Rayfield | "..ButtonSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Button.Title.Text = ButtonSettings.Name
- TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {TextTransparency = 0.9}):Play()
- TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- else
- SaveConfiguration()
- TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- task.wait(0.2)
- TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {TextTransparency = 0.9}):Play()
- TweenService:Create(Button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- end
- end)
- Button.MouseEnter:Connect(function()
- TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {TextTransparency = 0.7}):Play()
- end)
- Button.MouseLeave:Connect(function()
- TweenService:Create(Button, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Button.ElementIndicator, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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, 45)
- 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.Exponential), {Size = UDim2.new(1, -10, 0, 120)}):Play()
- TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 173, 0, 86)}):Play()
- TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.289, 0, 0.5, 0)}):Play()
- TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {Position = UDim2.new(0, 17, 0, 40)}):Play()
- TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Position = UDim2.new(0, 17, 0, 73)}):Play()
- TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0.574, 0, 1, 0)}):Play()
- TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play()
- TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {ImageTransparency = 0.1}):Play()
- TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- else
- opened = false
- TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, -10, 0, 45)}):Play()
- TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 39, 0, 22)}):Play()
- TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, 0, 1, 0)}):Play()
- TweenService:Create(ColorPicker.Interact, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.5, 0, 0.5, 0)}):Play()
- TweenService:Create(ColorPicker.RGB, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Position = UDim2.new(0, 17, 0, 70)}):Play()
- TweenService:Create(ColorPicker.HexInput, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Position = UDim2.new(0, 17, 0, 90)}):Play()
- TweenService:Create(Display, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Main.MainPoint, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(Main, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play()
- TweenService:Create(Background, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play()
- end
- end)
- UserInputService.InputEnded:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch 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
- ColorPicker.MouseEnter:Connect(function()
- TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end)
- ColorPicker.MouseLeave:Connect(function()
- TweenService:Create(ColorPicker, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- 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.Exponential), {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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Label.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Label.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Paragraph.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Paragraph.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- TweenService:Create(Paragraph.Content, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Input.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Input.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Input.Title.Text = "Callback Error"
- print("Rayfield | "..InputSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Input.Title.Text = InputSettings.Name
- TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Input.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end)
- Input.MouseLeave:Connect(function()
- TweenService:Create(Input, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- end)
- Input.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function()
- TweenService:Create(Input.InputFrame, TweenInfo.new(0.55, Enum.EasingStyle.Exponential, 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 DropdownSettings.CurrentOption then
- if type(DropdownSettings.CurrentOption) == "string" then
- DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption}
- end
- if not DropdownSettings.MultipleOptions and type(DropdownSettings.CurrentOption) == "table" then
- DropdownSettings.CurrentOption = {DropdownSettings.CurrentOption[1]}
- end
- else
- DropdownSettings.CurrentOption = {}
- end
- if DropdownSettings.MultipleOptions then
- if DropdownSettings.CurrentOption and type(DropdownSettings.CurrentOption) == "table" 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
- DropdownSettings.CurrentOption = {}
- Dropdown.Selected.Text = "None"
- end
- else
- Dropdown.Selected.Text = DropdownSettings.CurrentOption[1] or "None"
- 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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Dropdown.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- task.wait(0.1)
- TweenService:Create(Dropdown, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- if Debounce then return end
- if Dropdown.List.Visible then
- Debounce = true
- TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- end
- end
- TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ScrollBarImageTransparency = 1}):Play()
- TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Rotation = 180}):Play()
- task.wait(0.35)
- Dropdown.List.Visible = false
- Debounce = false
- else
- TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, -10, 0, 180)}):Play()
- Dropdown.List.Visible = true
- TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ScrollBarImageTransparency = 0.7}):Play()
- TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end
- end)
- Dropdown.MouseLeave:Connect(function()
- TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- end)
- local function SetDropdownOptions()
- 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 = SelectedTheme.DropdownSelected
- 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.Exponential), {Transparency = 1}):Play()
- TweenService:Create(DropdownOption, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.DropdownSelected}):Play()
- Debounce = true
- task.wait(0.2)
- TweenService:Create(DropdownOption.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Dropdown.Title.Text = "Callback Error"
- print("Rayfield | "..DropdownSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Dropdown.Title.Text = DropdownSettings.Name
- TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.DropdownUnselected}):Play()
- end
- end
- if not DropdownSettings.MultipleOptions then
- task.wait(0.1)
- TweenService:Create(Dropdown, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundTransparency = 1}):Play()
- TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(DropdownOpt.Title, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- end
- end
- TweenService:Create(Dropdown.List, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ScrollBarImageTransparency = 1}):Play()
- TweenService:Create(Dropdown.Toggle, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Rotation = 180}):Play()
- task.wait(0.35)
- Dropdown.List.Visible = false
- end
- Debounce = false
- SaveConfiguration()
- end)
- end
- end
- SetDropdownOptions()
- 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 = SelectedTheme.DropdownUnselected
- else
- droption.BackgroundColor3 = SelectedTheme.DropdownSelected
- 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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Dropdown.Title.Text = "Callback Error"
- print("Rayfield | "..DropdownSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Dropdown.Title.Text = DropdownSettings.Name
- TweenService:Create(Dropdown, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Dropdown.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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 = SelectedTheme.DropdownUnselected
- else
- droption.BackgroundColor3 = SelectedTheme.DropdownSelected
- end
- end
- end
- --SaveConfiguration()
- end
- function DropdownSettings:Refresh(optionsTable: table) -- updates a dropdown with new options from optionsTable
- DropdownSettings.Options = optionsTable
- for _, option in Dropdown.List:GetChildren() do
- if option.ClassName == "Frame" and option.Name ~= "Placeholder" then
- option:Destroy()
- end
- end
- SetDropdownOptions()
- 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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Keybind.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end)
- Keybind.MouseLeave:Connect(function()
- TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Keybind.Title.Text = "Callback Error"
- print("Rayfield | "..KeybindSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Keybind.Title.Text = KeybindSettings.Name
- TweenService:Create(Keybind, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Keybind.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- end
- else
- task.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.Exponential, 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.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Toggle.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end)
- Toggle.MouseLeave:Connect(function()
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play()
- TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play()
- TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledOuterStroke}):Play()
- task.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()
- task.wait(0.15)
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- else
- ToggleSettings.CurrentValue = true
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play()
- TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play()
- TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledOuterStroke}):Play()
- task.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()
- task.wait(0.15)
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Toggle.Title.Text = "Callback Error"
- print("Rayfield | "..ToggleSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Toggle.Title.Text = ToggleSettings.Name
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledStroke}):Play()
- TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleEnabled}):Play()
- TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleEnabledOuterStroke}):Play()
- task.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()
- task.wait(0.15)
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- else
- ToggleSettings.CurrentValue = false
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledStroke}):Play()
- TweenService:Create(Toggle.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundColor3 = SelectedTheme.ToggleDisabled}):Play()
- TweenService:Create(Toggle.Switch.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Color = SelectedTheme.ToggleDisabledOuterStroke}):Play()
- task.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()
- task.wait(0.15)
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Toggle.Title.Text = "Callback Error"
- print("Rayfield | "..ToggleSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Toggle.Title.Text = ToggleSettings.Name
- TweenService:Create(Toggle, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Toggle.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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.UIStroke.Color = SelectedTheme.SliderStroke
- Slider.Main.Progress.BackgroundColor3 = SelectedTheme.SliderProgress
- TweenService:Create(Slider, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Slider.UIStroke, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- TweenService:Create(Slider.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackgroundHover}):Play()
- end)
- Slider.MouseLeave:Connect(function()
- TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- end)
- Slider.Main.Interact.InputBegan:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- TweenService:Create(Slider.Main.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- TweenService:Create(Slider.Main.Progress.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Dragging = true
- end
- end)
- Slider.Main.Interact.InputEnded:Connect(function(Input)
- if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
- TweenService:Create(Slider.Main.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play()
- TweenService:Create(Slider.Main.Progress.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0.3}):Play()
- 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.Exponential, 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.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Slider.Title.Text = "Callback Error"
- print("Rayfield | "..SliderSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Slider.Title.Text = SliderSettings.Name
- TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
- end
- SliderSettings.CurrentValue = NewValue
- SaveConfiguration()
- end
- else
- TweenService:Create(Slider.Main.Progress, TweenInfo.new(0.3, Enum.EasingStyle.Exponential, 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.Exponential, 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 or "")
- local Success, Response = pcall(function()
- SliderSettings.Callback(NewVal)
- end)
- if not Success then
- TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = Color3.fromRGB(85, 0, 0)}):Play()
- TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 1}):Play()
- Slider.Title.Text = "Callback Error"
- print("Rayfield | "..SliderSettings.Name.." Callback Error " ..tostring(Response))
- warn('Check docs.sirius.menu for help with Rayfield specific development.')
- task.wait(0.5)
- Slider.Title.Text = SliderSettings.Name
- TweenService:Create(Slider, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {BackgroundColor3 = SelectedTheme.ElementBackground}):Play()
- TweenService:Create(Slider.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {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
- task.wait(0.7)
- TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
- task.wait(0.2)
- TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {Size = useMobileSizing and UDim2.new(0, 500, 0, 275) or UDim2.new(0, 500, 0, 475)}):Play()
- TweenService:Create(Main.Shadow.Image, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play()
- Topbar.BackgroundTransparency = 1
- Topbar.Divider.Size = UDim2.new(0, 0, 0, 1)
- Topbar.CornerRepair.BackgroundTransparency = 1
- Topbar.Title.TextTransparency = 1
- Topbar.Search.ImageTransparency = 1
- Topbar.ChangeSize.ImageTransparency = 1
- Topbar.Hide.ImageTransparency = 1
- task.wait(0.5)
- Topbar.Visible = true
- TweenService:Create(Topbar, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- TweenService:Create(Topbar.CornerRepair, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0}):Play()
- task.wait(0.1)
- TweenService:Create(Topbar.Divider, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Size = UDim2.new(1, 0, 0, 1)}):Play()
- task.wait(0.1)
- TweenService:Create(Topbar.Title, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
- task.wait(0.1)
- TweenService:Create(Topbar.Search, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
- task.wait(0.1)
- TweenService:Create(Topbar.ChangeSize, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
- task.wait(0.1)
- TweenService:Create(Topbar.Hide, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
- task.wait(0.3)
- return Window
- end
- local function setVisibility(visibility: boolean, notify: boolean?)
- if Debounce then return end
- if visibility then
- Hidden = false
- Unhide()
- else
- Hidden = true
- Hide(notify)
- end
- end
- function RayfieldLibrary:SetVisibility(visibility: boolean)
- setVisibility(visibility, false)
- end
- function RayfieldLibrary:IsVisible(): boolean
- return not Hidden
- 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)
- Main.Search.Input:GetPropertyChangedSignal('Text'):Connect(function()
- if #Main.Search.Input.Text > 0 then
- if not Elements.UIPageLayout.CurrentPage:FindFirstChild('SearchTitle-fsefsefesfsefesfesfThanks') then
- local searchTitle = Elements.Template.SectionTitle:Clone()
- searchTitle.Parent = Elements.UIPageLayout.CurrentPage
- searchTitle.Name = 'SearchTitle-fsefsefesfsefesfesfThanks'
- searchTitle.LayoutOrder = -100
- searchTitle.Title.Text = "Results from '"..Elements.UIPageLayout.CurrentPage.Name.."'"
- searchTitle.Visible = true
- end
- else
- local searchTitle = Elements.UIPageLayout.CurrentPage:FindFirstChild('SearchTitle-fsefsefesfsefesfesfThanks')
- if searchTitle then
- searchTitle:Destroy()
- end
- end
- for _, element in ipairs(Elements.UIPageLayout.CurrentPage:GetChildren()) do
- if element.ClassName ~= 'UIListLayout' and element.Name ~= 'Placeholder' and element.Name ~= 'SearchTitle-fsefsefesfsefesfesfThanks' then
- if element.Name == 'SectionTitle' then
- if #Main.Search.Input.Text == 0 then
- element.Visible = true
- else
- element.Visible = false
- end
- else
- if string.lower(element.Name):find(string.lower(Main.Search.Input.Text), 1, true) then
- element.Visible = true
- else
- element.Visible = false
- end
- end
- end
- end
- end)
- Main.Search.Input.FocusLost:Connect(function(enterPressed)
- if enterPressed then
- if #Main.Search.Input.Text == 0 then
- task.spawn(closeSearch)
- searchOpen = false
- else
- task.wait()
- Main.Search.Input:CaptureFocus()
- end
- end
- end)
- Topbar.Search.MouseButton1Click:Connect(function()
- task.spawn(function()
- if searchOpen then
- closeSearch()
- else
- openSearch()
- end
- end)
- searchOpen = not searchOpen
- end)
- Topbar.Hide.MouseButton1Click:Connect(function()
- setVisibility(Hidden, not useMobileSizing)
- 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)
- if MPrompt then
- MPrompt.Interact.MouseButton1Click:Connect(function()
- if Debounce then return end
- if Hidden then
- Hidden = false
- Unhide()
- 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.Exponential), {ImageTransparency = 0}):Play()
- end)
- TopbarButton.MouseLeave:Connect(function()
- TweenService:Create(TopbarButton, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {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
- --ChangeTheme('Green')
- if useStudio then
- -- run w/ studio
- -- Feel free to place your own script here to see how it'd work in Roblox Studio before running it on your execution software.
- local Window = RayfieldLibrary:CreateWindow({
- Name = "Rayfield Example Window",
- LoadingTitle = "Rayfield Interface Suite",
- LoadingSubtitle = "by Sirius",
- ConfigurationSaving = {
- Enabled = true,
- FolderName = nil, -- Create a custom folder for your hub/game
- FileName = "Big Hub"
- },
- Discord = {
- Enabled = false,
- Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ABCD would be ABCD
- RememberJoins = true -- Set this to false to make them join the discord every time they load it up
- },
- KeySystem = false, -- Set this to true to use our key system
- KeySettings = {
- Title = "Untitled",
- Subtitle = "Key System",
- Note = "No method of obtaining the key is provided",
- FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
- SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
- GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
- Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
- }
- })
- local Tab = Window:CreateTab("Tab Example", 4483362458) -- Title, Image
- local Tab2 = Window:CreateTab("Tab Example 2", 4483362458) -- Title, Image
- RayfieldLibrary:Notify({Title = "Rayfield Interface", Content = "Welcome to Rayfield. These - are the brand new notification design for Rayfield, with custom sizing and Rayfield calculated wait times.", Image = 4483362458})
- local Section = Tab:CreateSection("Section Example")
- local Button = Tab:CreateButton({
- Name = "Button Example",
- Callback = function()
- -- The function that takes place when the button is pressed
- end,
- })
- local Toggle = Tab:CreateToggle({
- Name = "Toggle Example",
- CurrentValue = false,
- Flag = "Toggle1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
- Callback = function(Value)
- -- The function that takes place when the toggle is pressed
- -- The variable (Value) is a boolean on whether the toggle is true or false
- end,
- })
- local ColorPicker = Tab:CreateColorPicker({
- Name = "Color Picker",
- Color = Color3.fromRGB(255,255,255),
- Flag = "ColorPicker1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
- Callback = function(Value)
- -- The function that takes place every time the color picker is moved/changed
- -- The variable (Value) is a Color3fromRGB value based on which color is selected
- end
- })
- local Slider = Tab:CreateSlider({
- Name = "Slider Example",
- Range = {0, 100},
- Increment = 10,
- Suffix = "Bananas",
- CurrentValue = 40,
- Flag = "Slider1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
- Callback = function(Value)
- -- The function that takes place when the slider changes
- -- The variable (Value) is a number which correlates to the value the slider is currently at
- end,
- })
- local Input = Tab:CreateInput({
- Name = "Input Example",
- PlaceholderText = "Input Placeholder",
- RemoveTextAfterFocusLost = false,
- Callback = function(Text)
- -- The function that takes place when the input is changed
- -- The variable (Text) is a string for the value in the text box
- end,
- })
- local Dropdown = Tab:CreateDropdown({
- Name = "Dropdown Example",
- Options = {"Option 1","Option 2"},
- CurrentOption = {"Option 1"},
- MultipleOptions = false,
- Flag = "Dropdown1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
- Callback = function(Option)
- -- The function that takes place when the selected option is changed
- -- The variable (Option) is a table of strings for the current selected options
- end,
- })
- local Keybind = Tab:CreateKeybind({
- Name = "Keybind Example",
- CurrentKeybind = "Q",
- HoldToInteract = false,
- Flag = "Keybind1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
- Callback = function(Keybind)
- -- The function that takes place when the keybind is pressed
- -- The variable (Keybind) is a boolean for whether the keybind is being held or not (HoldToInteract needs to be true)
- end,
- })
- local Label = Tab:CreateLabel("Label Example")
- local Paragraph = Tab:CreateParagraph({Title = "Paragraph Example", Content = "Paragraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph ExampleParagraph Example"})
- end
- task.delay(3.5, RayfieldLibrary.LoadConfiguration, RayfieldLibrary)
- return RayfieldLibrary
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement