-- Packed using RedlinePack v1.1.1 local RayfieldLib = (function(...) -- ../Libraries/Rayfield.lua --[[ Rayfield Interface Suite by Sirius edited by SadLeaf for LeafHub shlex | Designing + Programming iRay | Programming Max | Programming ]] if debugX then warn('Initialising Rayfield') end local function getService(name) local service = game:GetService(name) return if cloneref then cloneref(service) else service end local requestsDisabled = getgenv and getgenv().DISABLE_RAYFIELD_REQUESTS local InterfaceBuild = '3K3W' local Release = "Build 1.672" local RayfieldFolder = "Rayfield" local ConfigurationFolder = RayfieldFolder.."/Configurations" local ConfigurationExtension = ".rfld" local settingsTable = { General = { -- if needs be in order just make getSetting(name) rayfieldOpen = {Type = 'bind', Value = 'K', Name = 'Rayfield Keybind'}, -- buildwarnings -- rayfieldprompts }, System = { usageAnalytics = {Type = 'toggle', Value = true, Name = 'Anonymised Analytics'}, } } local HttpService = getService('HttpService') local RunService = getService('RunService') -- Environment Check local useStudio = RunService:IsStudio() or false local settingsCreated = false local cachedSettings local prompt = (function(...) -- ../Libraries/RayfieldPrompt.lua local promptRet = {} local useStudio local runService = game:GetService("RunService") local coreGui = game:GetService('CoreGui') local fin local tweenService = game:GetService('TweenService') if runService:IsStudio() then useStudio = true end local debounce = false local function open(prompt) debounce = true prompt.Policy.Size = UDim2.new(0, 450, 0, 120) prompt.Policy.BackgroundTransparency = 1 prompt.Policy.Shadow.Image.ImageTransparency = 1 prompt.Policy.Title.TextTransparency = 1 prompt.Policy.Notice.TextTransparency = 1 prompt.Policy.Actions.Primary.BackgroundTransparency = 1 prompt.Policy.Actions.Primary.Shadow.ImageTransparency = 1 prompt.Policy.Actions.Primary.Title.TextTransparency = 1 prompt.Policy.Actions.Secondary.Title.TextTransparency = 1 -- Show the prompt prompt.Policy.Visible = true prompt.Enabled = true tweenService:Create(prompt.Policy, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() tweenService:Create(prompt.Policy.Shadow.Image, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 0.6}):Play() tweenService:Create(prompt.Policy, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, 520, 0, 150)}):Play() task.wait(0.15) tweenService:Create(prompt.Policy.Title, TweenInfo.new(0.35, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() task.wait(0.03) tweenService:Create(prompt.Policy.Notice, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.5}):Play() task.wait(0.15) tweenService:Create(prompt.Policy.Actions.Primary, TweenInfo.new(0.6, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 0.3}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Title, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.2}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Shadow, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 0.7}):Play() task.wait(5) if not fin then tweenService:Create(prompt.Policy.Actions.Secondary.Title, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.6}):Play() debounce = false end end local function close(prompt) debounce = true tweenService:Create(prompt.Policy, TweenInfo.new(0.3, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = UDim2.new(0, 430, 0, 110)}):Play() tweenService:Create(prompt.Policy.Title, TweenInfo.new(0.35, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() tweenService:Create(prompt.Policy.Notice, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() tweenService:Create(prompt.Policy.Actions.Secondary.Title, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() tweenService:Create(prompt.Policy.Actions.Primary, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Title, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 1}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Shadow, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 1}):Play() tweenService:Create(prompt.Policy, TweenInfo.new(0.2, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play() tweenService:Create(prompt.Policy.Shadow.Image, TweenInfo.new(0.25, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 1}):Play() task.wait(1) prompt:Destroy() fin = true end function promptRet.create(title, description, primary, secondary, callback) local prompt = useStudio and script.Parent:FindFirstChild('Prompt') or game:GetObjects("rbxassetid://97206084643256")[1] prompt.Enabled = false if gethui then prompt.Parent = gethui() elseif syn and syn.protect_gui then syn.protect_gui(prompt) prompt.Parent = coreGui elseif not useStudio and coreGui:FindFirstChild("RobloxGui") then prompt.Parent = coreGui:FindFirstChild("RobloxGui") elseif not useStudio then prompt.Parent = coreGui end -- Disable other instances of the prompt if gethui then for _, Interface in ipairs(gethui():GetChildren()) do if Interface.Name == prompt.Name and Interface ~= prompt then Interface.Enabled = false Interface.Name = "Prompt-Old" end end elseif not useStudio then for _, Interface in ipairs(coreGui:GetChildren()) do if Interface.Name == prompt.Name and Interface ~= prompt then Interface.Enabled = false Interface.Name = "Prompt-Old" end end end -- Set the prompt text prompt.Policy.Title.Text = title prompt.Policy.Notice.Text = description prompt.Policy.Actions.Primary.Title.Text = primary prompt.Policy.Actions.Secondary.Title.Text = secondary -- Handle the button clicks and trigger the callback prompt.Policy.Actions.Primary.Interact.MouseButton1Click:Connect(function() close(prompt) if callback then callback(true) end end) prompt.Policy.Actions.Secondary.Interact.MouseButton1Click:Connect(function() close(prompt) if callback then callback(false) end end) prompt.Policy.Actions.Primary.Interact.MouseEnter:Connect(function() if debounce then return end tweenService:Create(prompt.Policy.Actions.Primary, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 0}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Shadow, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 0.45}):Play() end) prompt.Policy.Actions.Primary.Interact.MouseLeave:Connect(function() if debounce then return end tweenService:Create(prompt.Policy.Actions.Primary, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {BackgroundTransparency = 0.2}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.2}):Play() tweenService:Create(prompt.Policy.Actions.Primary.Shadow, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {ImageTransparency = 0.7}):Play() end) prompt.Policy.Actions.Secondary.Interact.MouseEnter:Connect(function() if debounce then return end tweenService:Create(prompt.Policy.Actions.Secondary.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.3}):Play() end) prompt.Policy.Actions.Secondary.Interact.MouseLeave:Connect(function() if debounce then return end tweenService:Create(prompt.Policy.Actions.Secondary.Title, TweenInfo.new(0.4, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {TextTransparency = 0.6}):Play() end) task.wait(0.5) task.spawn(open, prompt) end return promptRet end)() local request = (syn and syn.request) or (fluxus and fluxus.request) or (http and http.request) or http_request or request local function loadSettings() local file = nil local success, result = pcall(function() task.spawn(function() if isfolder and isfolder(RayfieldFolder) then if isfile and isfile(RayfieldFolder..'/settings'..ConfigurationExtension) then file = readfile(RayfieldFolder..'/settings'..ConfigurationExtension) end end -- for debug in studio if useStudio then file = [[ {"General":{"rayfieldOpen":{"Value":"K","Type":"bind","Name":"Rayfield Keybind","Element":{"HoldToInteract":false,"Ext":true,"Name":"Rayfield Keybind","Set":null,"CallOnChange":true,"Callback":null,"CurrentKeybind":"K"}}},"System":{"usageAnalytics":{"Value":false,"Type":"toggle","Name":"Anonymised Analytics","Element":{"Ext":true,"Name":"Anonymised Analytics","Set":null,"CurrentValue":false,"Callback":null}}}} ]] end if file then local success, decodedFile = pcall(function() return HttpService:JSONDecode(file) end) if success then file = decodedFile else file = {} end else file = {} end if not settingsCreated then cachedSettings = file return end if file ~= {} then for categoryName, settingCategory in pairs(settingsTable) do if file[categoryName] then for settingName, setting in pairs(settingCategory) do if file[categoryName][settingName] then setting.Value = file[categoryName][settingName].Value setting.Element:Set(setting.Value) end end end end end end) end) if not success then if writefile then warn('Rayfield had an issue accessing configuration saving capability.') end end end if debugX then warn('Now Loading Settings Configuration') end loadSettings() if debugX then warn('Settings Loaded') end --if not cachedSettings or not cachedSettings.System or not cachedSettings.System.usageAnalytics then -- local fileFunctionsAvailable = isfile and writefile and readfile -- if not fileFunctionsAvailable and not useStudio then -- warn('Rayfield Interface Suite | Sirius Analytics:\n\n\nAs you don\'t have file functionality with your executor, we are unable to save whether you want to opt in or out to analytics.\nIf you do not want to take part in anonymised usage statistics, let us know in our Discord at sirius.menu/discord and we will manually opt you out.') -- analytics = true -- else -- prompt.create( -- 'Help us improve', -- [[Would you like to allow Sirius to collect usage statistics? --No data is linked to you or your personal activity.]], -- 'Continue', -- 'Cancel', -- function(result) -- settingsTable.System.usageAnalytics.Value = result -- analytics = result -- end -- ) -- end -- repeat task.wait() until analytics ~= nil --end if not requestsDisabled then end if debugX then warn('Moving on to continue initialisation') end 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), ElementStroke = Color3.fromRGB(50, 50, 50), SecondaryElementStroke = Color3.fromRGB(40, 40, 40), 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) }, Ocean = { TextColor = Color3.fromRGB(230, 240, 240), Background = Color3.fromRGB(20, 30, 30), Topbar = Color3.fromRGB(25, 40, 40), Shadow = Color3.fromRGB(15, 20, 20), NotificationBackground = Color3.fromRGB(25, 35, 35), NotificationActionsBackground = Color3.fromRGB(230, 240, 240), TabBackground = Color3.fromRGB(40, 60, 60), TabStroke = Color3.fromRGB(50, 70, 70), TabBackgroundSelected = Color3.fromRGB(100, 180, 180), TabTextColor = Color3.fromRGB(210, 230, 230), SelectedTabTextColor = Color3.fromRGB(20, 50, 50), ElementBackground = Color3.fromRGB(30, 50, 50), ElementBackgroundHover = Color3.fromRGB(40, 60, 60), SecondaryElementBackground = Color3.fromRGB(30, 45, 45), ElementStroke = Color3.fromRGB(45, 70, 70), SecondaryElementStroke = Color3.fromRGB(40, 65, 65), SliderBackground = Color3.fromRGB(0, 110, 110), SliderProgress = Color3.fromRGB(0, 140, 140), SliderStroke = Color3.fromRGB(0, 160, 160), ToggleBackground = Color3.fromRGB(30, 50, 50), ToggleEnabled = Color3.fromRGB(0, 130, 130), ToggleDisabled = Color3.fromRGB(70, 90, 90), ToggleEnabledStroke = Color3.fromRGB(0, 160, 160), ToggleDisabledStroke = Color3.fromRGB(85, 105, 105), ToggleEnabledOuterStroke = Color3.fromRGB(50, 100, 100), ToggleDisabledOuterStroke = Color3.fromRGB(45, 65, 65), DropdownSelected = Color3.fromRGB(30, 60, 60), DropdownUnselected = Color3.fromRGB(25, 40, 40), InputBackground = Color3.fromRGB(30, 50, 50), InputStroke = Color3.fromRGB(50, 70, 70), PlaceholderColor = Color3.fromRGB(140, 160, 160) }, AmberGlow = { TextColor = Color3.fromRGB(255, 245, 230), Background = Color3.fromRGB(45, 30, 20), Topbar = Color3.fromRGB(55, 40, 25), Shadow = Color3.fromRGB(35, 25, 15), NotificationBackground = Color3.fromRGB(50, 35, 25), NotificationActionsBackground = Color3.fromRGB(245, 230, 215), TabBackground = Color3.fromRGB(75, 50, 35), TabStroke = Color3.fromRGB(90, 60, 45), TabBackgroundSelected = Color3.fromRGB(230, 180, 100), TabTextColor = Color3.fromRGB(250, 220, 200), SelectedTabTextColor = Color3.fromRGB(50, 30, 10), ElementBackground = Color3.fromRGB(60, 45, 35), ElementBackgroundHover = Color3.fromRGB(70, 50, 40), SecondaryElementBackground = Color3.fromRGB(55, 40, 30), ElementStroke = Color3.fromRGB(85, 60, 45), SecondaryElementStroke = Color3.fromRGB(75, 50, 35), SliderBackground = Color3.fromRGB(220, 130, 60), SliderProgress = Color3.fromRGB(250, 150, 75), SliderStroke = Color3.fromRGB(255, 170, 85), ToggleBackground = Color3.fromRGB(55, 40, 30), ToggleEnabled = Color3.fromRGB(240, 130, 30), ToggleDisabled = Color3.fromRGB(90, 70, 60), ToggleEnabledStroke = Color3.fromRGB(255, 160, 50), ToggleDisabledStroke = Color3.fromRGB(110, 85, 75), ToggleEnabledOuterStroke = Color3.fromRGB(200, 100, 50), ToggleDisabledOuterStroke = Color3.fromRGB(75, 60, 55), DropdownSelected = Color3.fromRGB(70, 50, 40), DropdownUnselected = Color3.fromRGB(55, 40, 30), InputBackground = Color3.fromRGB(60, 45, 35), InputStroke = Color3.fromRGB(90, 65, 50), PlaceholderColor = Color3.fromRGB(190, 150, 130) }, Light = { TextColor = Color3.fromRGB(40, 40, 40), Background = Color3.fromRGB(245, 245, 245), Topbar = Color3.fromRGB(230, 230, 230), Shadow = Color3.fromRGB(200, 200, 200), NotificationBackground = Color3.fromRGB(250, 250, 250), NotificationActionsBackground = Color3.fromRGB(240, 240, 240), 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), ElementStroke = Color3.fromRGB(210, 210, 210), SecondaryElementStroke = Color3.fromRGB(210, 210, 210), SliderBackground = Color3.fromRGB(150, 180, 220), SliderProg