Source.lua (1)
Source.lua (1)
]]
-- Environment Check
local useStudio = RunService:IsStudio() or false
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 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
loadSettings()
local RayfieldLibrary = {
Flags = {},
Theme = {
Default = {
TextColor = Color3.fromRGB(240, 240, 240),
Ocean = {
TextColor = Color3.fromRGB(230, 240, 240),
AmberGlow = {
TextColor = Color3.fromRGB(255, 245, 230),
Light = {
TextColor = Color3.fromRGB(40, 40, 40),
Amethyst = {
TextColor = Color3.fromRGB(240, 240, 240),
Green = {
TextColor = Color3.fromRGB(30, 60, 30),
Bloom = {
TextColor = Color3.fromRGB(60, 40, 50),
DarkBlue = {
TextColor = Color3.fromRGB(230, 230, 230),
Serenity = {
TextColor = Color3.fromRGB(50, 55, 60),
Background = Color3.fromRGB(240, 245, 250),
Topbar = Color3.fromRGB(215, 225, 235),
Shadow = Color3.fromRGB(200, 210, 220),
-- Services
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
-- Interface Management
repeat
if Rayfield:FindFirstChild('Build') and Rayfield.Build.Value ==
InterfaceBuild then
correctBuild = true
break
end
correctBuild = false
buildAttempts = buildAttempts + 1
until buildAttempts >= 2
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
if UserInputService.TouchEnabled then
useMobilePrompt = true
end
-- Object Variables
Rayfield.DisplayOrder = 100
LoadingFrame.Version.Text = Release
-- Variables
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
if Topbar:FindFirstChild('Settings') then
Rayfield.Main.Topbar.Settings.ImageColor3 = SelectedTheme.TextColor
Rayfield.Main.Topbar.Divider.BackgroundColor3 =
SelectedTheme.ElementStroke
end
Main.Search.BackgroundColor3 = SelectedTheme.TextColor
Main.Search.Shadow.ImageColor3 = SelectedTheme.TextColor
Main.Search.Search.ImageColor3 = SelectedTheme.TextColor
Main.Search.Input.PlaceholderColor3 = SelectedTheme.TextColor
Main.Search.UIStroke.Color = SelectedTheme.SecondaryElementStroke
if Main:FindFirstChild('Notice') then
Main.Notice.BackgroundColor3 = SelectedTheme.Background
end
local r = sizedicons[name]
if not r then
error("Lucide Icons: Failed to find icon by the name of \"" .. name ..
"\.", 2)
end
local asset = {
id = r[1],
imageRectSize = irs,
imageRectOffset = iro,
}
return asset
end
dragBar.MouseLeave:Connect(function()
if not dragging and not Hidden then
TweenService:Create(dragBarCosmetic,
TweenInfo.new(0.25, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
{BackgroundTransparency = 0.7, Size = UDim2.new(0, 100, 0, 4)}):Play()
end
end)
end
end
connectFunctions()
dragObject.InputBegan:Connect(function(input, processed)
if processed then return end
connectFunctions()
object.Destroying:Connect(function()
if inputEnded then inputEnded:Disconnect() end
if renderStepped then renderStepped:Disconnect() end
end)
end
if FlagValue then
task.spawn(function()
if Flag.Type == "ColorPicker" then
changed = true
Flag:Set(UnpackColor(FlagValue))
else
if (Flag.CurrentValue or Flag.CurrentKeybind or
Flag.CurrentOption or Flag.Color) ~= FlagValue then
changed = true
Flag:Set(FlagValue)
end
end
end)
else
warn("Rayfield | Unable to find '"..FlagName.. "' in the save
file.")
print("The error above may not be an issue if new elements have
been added or not been set values.")
--RayfieldLibrary:Notify({Title = "Rayfield Flags", Content =
"Rayfield was unable to find '"..FlagName.. "' in the save file. Check
sirius.menu/discord for help.", Image = 3944688398})
end
end
return changed
end
local Data = {}
for i, v in pairs(RayfieldLibrary.Flags) do
if v.Type == "ColorPicker" then
Data[i] = PackColor(v.Color)
else
if typeof(v.CurrentValue) == 'boolean' then
if v.CurrentValue == false then
Data[i] = false
else
Data[i] = v.CurrentValue or v.CurrentKeybind or
v.CurrentOption or v.Color
end
else
Data[i] = v.CurrentValue or v.CurrentKeybind or
v.CurrentOption or v.Color
end
end
end
if useStudio then
if script.Parent:FindFirstChild('configuration') then
script.Parent.configuration:Destroy() end
if writefile then
writefile(ConfigurationFolder .. "/" .. CFileName ..
ConfigurationExtension, tostring(HttpService:JSONEncode(Data)))
end
end
-- Set Data
newNotification.Title.Text = data.Title or "Unknown Title"
newNotification.Description.Text = data.Content or "Unknown Content"
if data.Image then
if typeof(data.Image) == 'string' then
local asset = getIcon(data.Image)
newNotification.Icon.Image = 'rbxassetid://'..asset.id
newNotification.Icon.ImageRectOffset =
asset.imageRectOffset
newNotification.Icon.ImageRectSize = asset.imageRectSize
else
newNotification.Icon.Image = "rbxassetid://" .. (data.Image
or 0)
end
else
newNotification.Icon.Image = "rbxassetid://" .. 0
end
newNotification.Title.TextColor3 = SelectedTheme.TextColor
newNotification.Description.TextColor3 = SelectedTheme.TextColor
newNotification.BackgroundColor3 = SelectedTheme.Background
newNotification.UIStroke.Color = SelectedTheme.TextColor
newNotification.Icon.ImageColor3 = SelectedTheme.TextColor
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, 800)
newNotification.Icon.ImageTransparency = 1
newNotification.Icon.BackgroundTransparency = 1
task.wait()
newNotification.Visible = true
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
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
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
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, -35, 0, 35)}):Play()
end
Main.Search.Input.Text = ''
Main.Search.Input.Interactable = false
end
task.spawn(closeSearch)
Debounce = true
if notify then
if useMobilePrompt then
RayfieldLibrary:Notify({Title = "Interface Hidden", Content =
"The interface has been hidden, you can unhide the interface by tapping 'Show
Rayfield'.", Duration = 7, Image = 4400697855})
else
RayfieldLibrary:Notify({Title = "Interface Hidden", Content =
`The interface has been hidden, you can unhide the interface by tapping
{settingsTable.General.rayfieldOpen.Value or 'K'}.`, Duration = 7, Image =
4400697855})
end
end
dragInteract.Visible = false
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(dragBarCosmetic, TweenInfo.new(0.25,
Enum.EasingStyle.Back, Enum.EasingDirection.Out), {BackgroundTransparency =
0.7}):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
task.wait(0.1)
end
end
task.wait(0.5)
Debounce = false
end
task.spawn(function()
task.wait(0.5)
MPrompt.Visible = false
end)
end
if Minimised then
task.spawn(Maximise)
end
dragInteract.Visible = true
end
end
TweenService:Create(dragBarCosmetic, TweenInfo.new(0.25,
Enum.EasingStyle.Back, Enum.EasingDirection.Out), {BackgroundTransparency =
0.5}):Play()
task.wait(0.5)
Minimised = false
Debounce = false
end
Topbar.UIStroke.Color = SelectedTheme.ElementStroke
task.spawn(closeSearch)
TweenService:Create(dragBarCosmetic, TweenInfo.new(0.25,
Enum.EasingStyle.Back, Enum.EasingDirection.Out), {BackgroundTransparency =
1}):Play()
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
if success then
if useStudio then
if script.Parent['get.val'] then
script.Parent['get.val'].Value = encoded
end
end
if writefile then
writefile(RayfieldFolder..'/settings'..ConfigurationExtension,
encoded)
end
end
end
settingsCreated = true
loadSettings()
updateSettings()
end
function RayfieldLibrary:CreateWindow(Settings)
if not correctBuild and not Settings.DisableBuildWarnings then
task.delay(3,
function()
RayfieldLibrary:Notify({Title = 'Build Mismatch', Content =
'Rayfield may encounter issues as you are running an incompatible interface version
('.. ((Rayfield:FindFirstChild('Build') and Rayfield.Build.Value) or 'No
Build') ..').\n\nThis version of Rayfield is intended for interface build
'..InterfaceBuild..'.\n\nTry rejoining and then run the script twice.', Image =
4335487866, Duration = 15})
end)
end
LoadingFrame.Title.TextTransparency = 1
LoadingFrame.Subtitle.TextTransparency = 1
LoadingFrame.Version.TextTransparency = 1
LoadingFrame.Title.Text = Settings.LoadingTitle or "Rayfield"
LoadingFrame.Subtitle.Text = Settings.LoadingSubtitle or "Interface Suite"
if Settings.Icon then
if typeof(Settings.Icon) == 'string' then
local asset = getIcon(Settings.Icon)
Topbar.Icon.Image = 'rbxassetid://'..asset.id
Topbar.Icon.ImageRectOffset = asset.imageRectOffset
Topbar.Icon.ImageRectSize = asset.imageRectSize
else
Topbar.Icon.Image = "rbxassetid://" .. (Settings.Icon or 0)
end
else
Topbar.Icon.Image = "rbxassetid://" .. 0
end
end
if dragBar then
dragBar.Visible = false
dragBarCosmetic.BackgroundTransparency = 1
dragBar.Visible = true
end
if Settings.Theme then
local success, result = pcall(ChangeTheme, Settings.Theme)
if not success then
local success, result2 = pcall(ChangeTheme, 'Default')
if not success then
warn('CRITICAL ERROR - NO DEFAULT THEME')
print(result2)
end
warn('issue rendering theme. no theme on file')
print(result)
end
end
Topbar.Visible = false
Elements.Visible = false
LoadingFrame.Visible = true
pcall(function()
if not Settings.ConfigurationSaving.FileName then
Settings.ConfigurationSaving.FileName = tostring(game.PlaceId)
end
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)
if (Settings.KeySystem) then
if not Settings.KeySettings then
Passthrough = true
return
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
KeyUI.Enabled = true
if gethui then
KeyUI.Parent = gethui()
elseif syn and syn.protect_gui then
syn.protect_gui(KeyUI)
KeyUI.Parent = CoreGui
elseif not useStudio and CoreGui:FindFirstChild("RobloxGui") then
KeyUI.Parent = CoreGui:FindFirstChild("RobloxGui")
elseif not useStudio then
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
elseif not useStudio then
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
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
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, Ext)
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)
TabButton.Image.Image = 'rbxassetid://'..asset.id
TabButton.Image.ImageRectOffset = asset.imageRectOffset
TabButton.Image.ImageRectSize = asset.imageRectSize
else
TabButton.Image.Image = "rbxassetid://"..Image
end
TabButton.Title.AnchorPoint = Vector2.new(0, 0.5)
TabButton.Title.Position = UDim2.new(0, 37, 0.5, 0)
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
TabPage.Parent = Elements
if not FirstTab and not Ext 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 or Ext 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()
elseif not Ext then
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()
local Tab = {}
-- Button
function Tab:CreateButton(ButtonSettings)
local ButtonValue = {}
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
if not ButtonSettings.Ext then
SaveConfiguration()
end
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
ColorPicker.HexInput.BackgroundColor3 =
SelectedTheme.InputBackground
ColorPicker.HexInput.UIStroke.Color = SelectedTheme.InputStroke
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)
if not ColorPickerSettings.Ext then
SaveConfiguration()
end
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)
if not ColorPickerSettings.Ext then
SaveConfiguration()
end
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)
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)
if not ColorPickerSettings.Ext then
SaveConfiguration()
end
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)
if not ColorPickerSettings.Ext then
SaveConfiguration()
end
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)
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
for _, rgbinput in ipairs(ColorPicker.RGB:GetChildren()) do
if rgbinput:IsA("Frame") then
rgbinput.BackgroundColor3 =
SelectedTheme.InputBackground
rgbinput.UIStroke.Color =
SelectedTheme.InputStroke
end
end
ColorPicker.HexInput.BackgroundColor3 =
SelectedTheme.InputBackground
ColorPicker.HexInput.UIStroke.Color =
SelectedTheme.InputStroke
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
Section.Title.TextTransparency = 1
TweenService:Create(Section.Title, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {TextTransparency = 0.4}):Play()
function SectionValue:Set(NewSection)
Section.Title.Text = NewSection
end
SDone = true
return SectionValue
end
-- Divider
function Tab:CreateDivider()
local DividerValue = {}
Divider.Divider.BackgroundTransparency = 1
TweenService:Create(Divider.Divider, TweenInfo.new(0.5,
Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.85}):Play()
function DividerValue:Set(Value)
Divider.Visible = Value
end
return DividerValue
end
-- Label
function Tab:CreateLabel(LabelText : string, Icon: number, Color :
Color3, IgnoreTheme : boolean)
local LabelValue = {}
Label.BackgroundColor3 = Color or
SelectedTheme.SecondaryElementBackground
Label.UIStroke.Color = Color or
SelectedTheme.SecondaryElementStroke
if Icon then
if typeof(Icon) == 'string' then
local asset = getIcon(Icon)
Label.Icon.Image = 'rbxassetid://'..asset.id
Label.Icon.ImageRectOffset = asset.imageRectOffset
Label.Icon.ImageRectSize = asset.imageRectSize
else
Label.Icon.Image = "rbxassetid://" .. (Icon or 0)
end
else
Label.Icon.Image = "rbxassetid://" .. 0
end
if Icon then
if typeof(Icon) == 'string' then
local asset = getIcon(Icon)
Label.Icon.Image = 'rbxassetid://'..asset.id
Label.Icon.ImageRectOffset =
asset.imageRectOffset
Label.Icon.ImageRectSize = asset.imageRectSize
else
Label.Icon.Image = "rbxassetid://" .. (Icon or
0)
end
else
Label.Icon.Image = "rbxassetid://" .. 0
end
Label.Icon.Visible = true
end
Label.Icon.ImageTransparency = 1
Label.BackgroundTransparency = 1
Label.UIStroke.Transparency = 1
Label.Title.TextTransparency = 1
TweenService:Create(Label, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {BackgroundTransparency = Color and 0.8 or
0}):Play()
TweenService:Create(Label.UIStroke, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {Transparency = Color and 0.7 or 0}):Play()
TweenService:Create(Label.Icon, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.2}):Play()
TweenService:Create(Label.Title, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {TextTransparency = Color and 0.2 or 0}):Play()
if Color then
Label.BackgroundColor3 = Color or
SelectedTheme.SecondaryElementBackground
Label.UIStroke.Color = Color or
SelectedTheme.SecondaryElementStroke
end
if Icon then
if typeof(Icon) == 'string' then
local asset = getIcon(Icon)
Label.Icon.Image =
'rbxassetid://'..asset.id
Label.Icon.ImageRectOffset =
asset.imageRectOffset
Label.Icon.ImageRectSize =
asset.imageRectSize
else
Label.Icon.Image = "rbxassetid://" ..
(Icon or 0)
end
else
Label.Icon.Image = "rbxassetid://" .. 0
end
Label.Icon.Visible = true
end
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Label.BackgroundColor3 = IgnoreTheme and (Color or
Label.BackgroundColor3) or SelectedTheme.SecondaryElementBackground
Label.UIStroke.Color = IgnoreTheme and (Color or
Label.BackgroundColor3) or SelectedTheme.SecondaryElementStroke
end)
return LabelValue
end
-- Paragraph
function Tab:CreateParagraph(ParagraphSettings)
local ParagraphValue = {}
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
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Paragraph.BackgroundColor3 =
SelectedTheme.SecondaryElementBackground
Paragraph.UIStroke.Color =
SelectedTheme.SecondaryElementStroke
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)
InputSettings.CurrentValue =
Input.InputFrame.InputBox.Text
end)
if InputSettings.RemoveTextAfterFocusLost then
Input.InputFrame.InputBox.Text = ""
end
if not InputSettings.Ext then
SaveConfiguration()
end
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)
function InputSettings:Set(text)
Input.InputFrame.InputBox.Text = text
if not InputSettings.Ext then
SaveConfiguration()
end
end
if Settings.ConfigurationSaving then
if Settings.ConfigurationSaving.Enabled and
InputSettings.Flag then
RayfieldLibrary.Flags[InputSettings.Flag] =
InputSettings
end
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Input.InputFrame.BackgroundColor3 =
SelectedTheme.InputBackground
Input.InputFrame.UIStroke.Color = SelectedTheme.InputStroke
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.Toggle.ImageColor3 = SelectedTheme.TextColor
TweenService:Create(Dropdown, TweenInfo.new(0.4,
Enum.EasingStyle.Exponential), {BackgroundColor3 =
SelectedTheme.ElementBackground}):Play()
Dropdown.BackgroundTransparency = 1
Dropdown.UIStroke.Transparency = 1
Dropdown.Title.TextTransparency = 1
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()
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
if DropdownOpt.Name ~=
Dropdown.Selected.Text then
TweenService:Create(DropdownOpt.UIStroke, TweenInfo.new(0.3,
Enum.EasingStyle.Exponential), {Transparency = 0}):Play()
end
TweenService:Create(DropdownOpt,
TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {BackgroundTransparency =
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)
DropdownOption.BackgroundTransparency = 1
DropdownOption.UIStroke.Transparency = 1
DropdownOption.Title.TextTransparency = 1
-- 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
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
if not DropdownSettings.Ext then
SaveConfiguration()
end
end)
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
DropdownOption.UIStroke.Color =
SelectedTheme.ElementStroke
end)
end
end
SetDropdownOptions()
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
if not
table.find(DropdownSettings.CurrentOption, droption.Name) then
droption.BackgroundColor3 =
SelectedTheme.DropdownUnselected
else
droption.BackgroundColor3 =
SelectedTheme.DropdownSelected
end
end)
end
end
function DropdownSettings:Set(NewOption)
DropdownSettings.CurrentOption = NewOption
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
if Settings.ConfigurationSaving then
if Settings.ConfigurationSaving.Enabled and
DropdownSettings.Flag then
RayfieldLibrary.Flags[DropdownSettings.Flag] =
DropdownSettings
end
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Dropdown.Toggle.ImageColor3 = SelectedTheme.TextColor
TweenService:Create(Dropdown, TweenInfo.new(0.4,
Enum.EasingStyle.Exponential), {BackgroundColor3 =
SelectedTheme.ElementBackground}):Play()
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
if not KeybindSettings.Ext then
SaveConfiguration()
end
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 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()
if not KeybindSettings.Ext then
SaveConfiguration()
end
if KeybindSettings.CallOnChange then
KeybindSettings.Callback(tostring(NewKeyNoEnum))
end
end
elseif not KeybindSettings.CallOnChange and
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)
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()
if not KeybindSettings.Ext then
SaveConfiguration()
end
if KeybindSettings.CallOnChange then
KeybindSettings.Callback(tostring(NewKeybind))
end
end
if Settings.ConfigurationSaving then
if Settings.ConfigurationSaving.Enabled and
KeybindSettings.Flag then
RayfieldLibrary.Flags[KeybindSettings.Flag] =
KeybindSettings
end
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Keybind.KeybindFrame.BackgroundColor3 =
SelectedTheme.InputBackground
Keybind.KeybindFrame.UIStroke.Color =
SelectedTheme.InputStroke
end)
return KeybindSettings
end
-- Toggle
function Tab:CreateToggle(ToggleSettings)
local ToggleValue = {}
Toggle.BackgroundTransparency = 1
Toggle.UIStroke.Transparency = 1
Toggle.Title.TextTransparency = 1
Toggle.Switch.BackgroundColor3 = SelectedTheme.ToggleBackground
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()
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 == true 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.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()
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.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()
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
function ToggleSettings:Set(NewToggleValue)
if NewToggleValue == true 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()
TweenService:Create(Toggle.Switch.Indicator,
TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size =
UDim2.new(0,17,0,17)}):Play()
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()
TweenService:Create(Toggle.Switch.Indicator,
TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size =
UDim2.new(0,17,0,17)}):Play()
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
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
Toggle.Switch.BackgroundColor3 =
SelectedTheme.ToggleBackground
task.wait()
return ToggleSettings
end
-- Slider
function Tab:CreateSlider(SliderSettings)
local SLDragging = 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
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)
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()
SLDragging = 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()
SLDragging = 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 SLDragging then
Location =
UserInputService:GetMouseLocation().X
Current = Current + 0.025 * (Location - Start)
NewValue = math.floor(NewValue /
SliderSettings.Increment + 0.5) * (SliderSettings.Increment * 10000000) / 10000000
NewValue = math.clamp(NewValue,
SliderSettings.Range[1], SliderSettings.Range[2])
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
if not SliderSettings.Ext then
SaveConfiguration()
end
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)
local NewVal = math.clamp(NewVal, SliderSettings.Range[1],
SliderSettings.Range[2])
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 "")
SliderSettings.CurrentValue = NewVal
if not SliderSettings.Ext then
SaveConfiguration()
end
end
if Settings.ConfigurationSaving then
if Settings.ConfigurationSaving.Enabled and
SliderSettings.Flag then
RayfieldLibrary.Flags[SliderSettings.Flag] =
SliderSettings
end
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
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
end)
return SliderSettings
end
Rayfield.Main:GetPropertyChangedSignal('BackgroundColor3'):Connect(function()
TabButton.UIStroke.Color = SelectedTheme.TabStroke
return Tab
end
Elements.Visible = true
task.wait(1.1)
TweenService:Create(Main, TweenInfo.new(0.7, Enum.EasingStyle.Exponential,
Enum.EasingDirection.InOut), {Size = UDim2.new(0, 390, 0, 90)}):Play()
task.wait(0.3)
TweenService:Create(LoadingFrame.Title, TweenInfo.new(0.2,
Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
TweenService:Create(LoadingFrame.Subtitle, TweenInfo.new(0.2,
Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
TweenService:Create(LoadingFrame.Version, TweenInfo.new(0.2,
Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
task.wait(0.1)
TweenService:Create(Main, TweenInfo.new(0.6, Enum.EasingStyle.Exponential,
Enum.EasingDirection.Out), {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.5,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play()
Topbar.BackgroundTransparency = 1
Topbar.Divider.Size = UDim2.new(0, 0, 0, 1)
Topbar.Divider.BackgroundColor3 = SelectedTheme.ElementStroke
Topbar.CornerRepair.BackgroundTransparency = 1
Topbar.Title.TextTransparency = 1
Topbar.Search.ImageTransparency = 1
if Topbar:FindFirstChild('Settings') then
Topbar.Settings.ImageTransparency = 1
end
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()
TweenService:Create(Topbar.Title, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play()
task.wait(0.05)
TweenService:Create(Topbar.Search, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
task.wait(0.05)
if Topbar:FindFirstChild('Settings') then
TweenService:Create(Topbar.Settings, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
task.wait(0.05)
end
TweenService:Create(Topbar.ChangeSize, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
task.wait(0.05)
TweenService:Create(Topbar.Hide, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
task.wait(0.3)
if dragBar then
TweenService:Create(dragBarCosmetic, TweenInfo.new(0.6,
Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.7}):Play()
end
function Window.ModifyTheme(NewTheme)
local success = pcall(ChangeTheme, NewTheme)
if not success then
RayfieldLibrary:Notify({Title = 'Unable to Change Theme', Content
= 'We are unable find a theme on file.', Image = 4400704299})
else
RayfieldLibrary:Notify({Title = 'Theme Changed', Content =
'Successfully changed theme to '..(typeof(NewTheme) == 'string' and NewTheme or
'Custom Theme')..'.', Image = 4483362748})
end
end
createSettings(Window)
return Window
end
function RayfieldLibrary:Destroy()
hideHotkeyConnection:Disconnect()
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
Main.Search.Input.FocusLost:Connect(function(enterPressed)
if #Main.Search.Input.Text == 0 and searchOpen then
task.wait(0.12)
closeSearch()
end
end)
Topbar.Search.MouseButton1Click:Connect(function()
task.spawn(function()
if searchOpen then
closeSearch()
else
openSearch()
end
end)
end)
if Topbar:FindFirstChild('Settings') then
Topbar.Settings.MouseButton1Click:Connect(function()
task.spawn(function()
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
Elements.UIPageLayout:JumpTo(Elements['Rayfield Settings'])
end)
end)
end
Topbar.Hide.MouseButton1Click:Connect(function()
setVisibility(Hidden, not useMobileSizing)
end)
hideHotkeyConnection = UserInputService.InputBegan:Connect(function(input,
processed)
if (input.KeyCode == Enum.KeyCode[settingsTable.General.rayfieldOpen.Value or
'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
TopbarButton.MouseLeave:Connect(function()
TweenService:Create(TopbarButton, TweenInfo.new(0.7,
Enum.EasingStyle.Exponential), {ImageTransparency = 0.8}):Play()
end)
end
end
function RayfieldLibrary:LoadConfiguration()
local config
if useStudio then
config =
[[{"Toggle1adwawd":true,"Keybind1":"B","InputExample":"","Slider1dawd":120,"ColorPi
cfsefker1":
{"B":255,"G":255,"R":255},"Slidefefsr1":80,"dawdawd":"","ColorPicker1awd":
{"B":255,"G":255,"R":255},"Dropdown1":["Ocean"]}]]
end
if CEnabled then
local notified
local loaded
local success, result = pcall(function()
if useStudio and config then
loaded = LoadConfiguration(config)
return
end
if isfile then
if isfile(ConfigurationFolder .. "/" .. CFileName ..
ConfigurationExtension) then
loaded =
LoadConfiguration(readfile(ConfigurationFolder .. "/" .. CFileName ..
ConfigurationExtension))
end
else
notified = true
RayfieldLibrary:Notify({Title = "Rayfield Configurations",
Content = "We couldn't enable Configuration Saving as you are not using file
supported software.", Image = 4384402990})
end
end)
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 thoptions = {}
for themename, theme in pairs(RayfieldLibrary.Theme) do
table.insert(thoptions, themename)
end
--Window.ModifyTheme({
-- TextColor = Color3.fromRGB(50, 55, 60),
-- Background = Color3.fromRGB(240, 245, 250),
-- Topbar = Color3.fromRGB(215, 225, 235),
-- Shadow = Color3.fromRGB(200, 210, 220),
TweenService:Create(Main.Notice, TweenInfo.new(0.5,
Enum.EasingStyle.Exponential, Enum.EasingDirection.InOut), {Size = UDim2.new(0,
280, 0, 35), Position = UDim2.new(0.5, 0, 0, -50), BackgroundTransparency =
0.5}):Play()
TweenService:Create(Main.Notice.Title, TweenInfo.new(0.5,
Enum.EasingStyle.Exponential), {TextTransparency = 0.1}):Play()
end
loadstring(game:HttpGet('https://raw.githubusercontent.com/SiriusSoftwareLtd/
Sirius/refs/heads/request/boost.lua'))()
end)
task.delay(4, function()
RayfieldLibrary.LoadConfiguration()
if Main:FindFirstChild('Notice') and Main.Notice.Visible then
TweenService:Create(Main.Notice, TweenInfo.new(0.5,
Enum.EasingStyle.Exponential, Enum.EasingDirection.InOut), {Size = UDim2.new(0,
100, 0, 25), Position = UDim2.new(0.5, 0, 0, -100), BackgroundTransparency =
1}):Play()
TweenService:Create(Main.Notice.Title, TweenInfo.new(0.3,
Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play()
task.wait(0.5)
Main.Notice.Visible = false
end
end)
return RayfieldLibrary