--[[ Sirius © 2023 Sirius Software Ltd. All Rights Reserved. --]] --[[ Sirius Pre-Hyperion Todo List High Priority - Invisible, Godmode - All Scripts buttons and Universal scripts - Chat Spam Detection - Custom Script Prompts - Player Kill, Spectate and ESP via Playerlist - http.request support for Sirius Intelligent HTTP Interception - Performance Improvements to Roblox itself Moderate Priority - Spectate Animation, like GTA serverhop, tween to high in the sky, then tween to other player's head - Chat Spy Tracking: Follows who they're whispering to based on original message - Starlight - Chatlogs - GTA Serverhop - Anti-Spam (chat) formula, based on text length, caps, emojis etc. - Reduce any form of detection of Sirius - Automated lowering of graphics on lower FPS, ensure no false positives Potential Future Setting Options - Block entire domain or just the specific page in the Sirius Intelligent Flow Interception. Do this on case by case, e.g blocked = {"link.com", true} - true being whether its the domain or not - Serverhop type (default/gta) - Hook Specific Functions to reduce the need for external scripts --]] -- Ensure the game is loaded if not game:IsLoaded() then game.Loaded:Wait() end -- Check License Tier local Pro = true -- We're open sourced now! -- Create Variables for Roblox Services local coreGui = game:GetService("CoreGui") local httpService = game:GetService("HttpService") local lighting = game:GetService("Lighting") local players = game:GetService("Players") local replicatedStorage = game:GetService("ReplicatedStorage") local runService = game:GetService("RunService") local guiService = game:GetService("GuiService") local statsService = game:GetService("Stats") local starterGui = game:GetService("StarterGui") local teleportService = game:GetService("TeleportService") local tweenService = game:GetService("TweenService") local userInputService = game:GetService('UserInputService') local gameSettings = UserSettings():GetService("UserGameSettings") -- Variables local camera = workspace.CurrentCamera local getMessage = replicatedStorage:WaitForChild("DefaultChatSystemChatEvents", 1) and replicatedStorage.DefaultChatSystemChatEvents:WaitForChild("OnMessageDoneFiltering", 1) local localPlayer = players.LocalPlayer local notifications = {} local friendsCooldown = 0 local mouse = localPlayer:GetMouse() local promptedDisconnected = false local smartBarOpen = false local debounce = false local searchingForPlayer = false local musicQueue = {} local currentAudio local lowerName = localPlayer.Name:lower() local lowerDisplayName = localPlayer.DisplayName:lower() local placeId = game.PlaceId local jobId = game.JobId local checkingForKey = false local originalTextValues = {} local creatorId = game.CreatorId local noclipDefaults = {} local movers = {} local creatorType = game.CreatorType local espContainer = Instance.new("Folder", gethui and gethui() or coreGui) local oldVolume = gameSettings.MasterVolume -- Configurable Core Values local siriusValues = { siriusVersion = "1.24", siriusName = "Sirius", releaseType = "Stable", siriusFolder = "Sirius", settingsFile = "settings.srs", interfaceAsset = 14183548964, cdn = "https://cdn.sirius.menu/SIRIUS-SCRIPT-CORE-ASSETS/", icons = "https://cdn.sirius.menu/SIRIUS-SCRIPT-CORE-ASSETS/Icons/", enableExperienceSync = false, -- Games are no longer available due to a lack of whitelisting, they may be made open source at a later date, however they are patched as of now and are useless to the end user. Turning this on may introduce "fake functionality". games = { BreakingPoint = { name = "Breaking Point", description = "Players are seated around a table. Their only goal? To be the last one standing. Execute this script to gain an unfair advantage.", id = 648362523, enabled = true, raw = "BreakingPoint", minimumTier = "Free", }, MurderMystery2 = { name = "Murder Mystery 2", description = "A murder has occured, will you be the one to find the murderer, or kill your next victim? Execute this script to gain an unfair advantage.", id = 142823291, enabled = true, raw = "MurderMystery2", minimumTier = "Free", }, TowerOfHell = { name = "Tower Of Hell", description = "A difficult popular parkouring game, with random levels and modifiers. Execute this script to gain an unfair advantage.", id = 1962086868, enabled = true, raw = "TowerOfHell", minimumTier = "Free", }, Strucid = { name = "Strucid", description = "Fight friends and enemies in Strucid with building mechanics! Execute this script to gain an unfair advantage.", id = 2377868063, enabled = true, raw = "Strucid", minimumTier = "Free", }, PhantomForces = { name = "Phantom Forces", description = "One of the most popular FPS shooters from the team at StyLiS Studios. Execute this script to gain an unfair advantage.", id = 292439477, enabled = true, raw = "PhantomForces", minimumTier = "Pro", }, }, rawTree = "https://raw.githubusercontent.com/SiriusSoftwareLtd/Sirius/Sirius/games/", neonModule = "https://raw.githubusercontent.com/shlexware/Sirius/request/library/neon.lua", senseRaw = "https://raw.githubusercontent.com/shlexware/Sirius/request/library/sense/source.lua", executors = {"synapse x", "script-ware", "krnl", "scriptware", "comet", "valyse", "fluxus", "electron", "hydrogen"}, disconnectTypes = { {"ban", {"ban", "perm"}}, {"network", {"internet connection", "network"}} }, nameGeneration = { adjectives = {"Cool", "Awesome", "Epic", "Ninja", "Super", "Mystic", "Swift", "Golden", "Diamond", "Silver", "Mint", "Roblox", "Amazing"}, nouns = {"Player", "Gamer", "Master", "Legend", "Hero", "Ninja", "Wizard", "Champion", "Warrior", "Sorcerer"} }, administratorRoles = {"mod","admin","staff","dev","founder","owner","supervis","manager","management","executive","president","chairman","chairwoman","chairperson","director"}, transparencyProperties = { UIStroke = {'Transparency'}, Frame = {'BackgroundTransparency'}, TextButton = {'BackgroundTransparency', 'TextTransparency'}, TextLabel = {'BackgroundTransparency', 'TextTransparency'}, TextBox = {'BackgroundTransparency', 'TextTransparency'}, ImageLabel = {'BackgroundTransparency', 'ImageTransparency'}, ImageButton = {'BackgroundTransparency', 'ImageTransparency'}, ScrollingFrame = {'BackgroundTransparency', 'ScrollBarImageTransparency'} }, buttonPositions = {Character = UDim2.new(0.5, -155, 1, -29), Scripts = UDim2.new(0.5, -122, 1, -29), Playerlist = UDim2.new(0.5, -68, 1, -29)}, chatSpy = { enabled = true, visual = { Color = Color3.fromRGB(26, 148, 255), Font = Enum.Font.SourceSansBold, TextSize = 18 }, }, pingProfile = { recentPings = {}, adaptiveBaselinePings = {}, pingNotificationCooldown = 0, maxSamples = 12, -- max num of recent pings stored spikeThreshold = 1.75, -- high Ping in comparison to average ping (e.g 100 avg would be high at 150) adaptiveBaselineSamples = 30, -- how many samples Sirius takes before deciding on a fixed high ping value adaptiveHighPingThreshold = 120 -- default value }, frameProfile = { frameNotificationCooldown = 0, fpsQueueSize = 10, lowFPSThreshold = 20, -- what's low fps!??!?! totalFPS = 0, fpsQueue = {}, }, actions = { { name = "Noclip", images = {14385986465, 9134787693}, color = Color3.fromRGB(0, 170, 127), enabled = false, rotateWhileEnabled = false, callback = function() end, }, { name = "Flight", images = {9134755504, 14385992605}, color = Color3.fromRGB(170, 37, 46), enabled = false, rotateWhileEnabled = false, callback = function(value) local character = localPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.PlatformStand = value end end, }, { name = "Refresh", images = {9134761478, 9134761478}, color = Color3.fromRGB(61, 179, 98), enabled = false, rotateWhileEnabled = true, disableAfter = 3, callback = function() task.spawn(function() local character = localPlayer.Character if character then local cframe = character:GetPivot() local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Dead) end character = localPlayer.CharacterAdded:Wait() task.defer(character.PivotTo, character, cframe) end end) end, }, { name = "Respawn", images = {9134762943, 9134762943}, color = Color3.fromRGB(49, 88, 193), enabled = false, rotateWhileEnabled = true, disableAfter = 2, callback = function() local character = localPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Dead) end end, }, { name = "Invulnerability", images = {9134765994, 14386216487}, color = Color3.fromRGB(193, 46, 90), enabled = false, rotateWhileEnabled = false, callback = function() end, }, { name = "Fling", images = {9134785384, 14386226155}, color = Color3.fromRGB(184, 85, 61), enabled = false, rotateWhileEnabled = true, callback = function(value) local character = localPlayer.Character local primaryPart = character and character.PrimaryPart if primaryPart then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then part.Massless = value part.CustomPhysicalProperties = PhysicalProperties.new(value and math.huge or 0.7, 0.3, 0.5) end end primaryPart.Anchored = true primaryPart.AssemblyLinearVelocity = Vector3.zero primaryPart.AssemblyAngularVelocity = Vector3.zero movers[3].Parent = value and primaryPart or nil task.delay(0.5, function() primaryPart.Anchored = false end) end end, }, { name = "Extrasensory Perception", images = {9134780101, 14386232387}, color = Color3.fromRGB(214, 182, 19), enabled = false, rotateWhileEnabled = false, callback = function(value) for _, highlight in ipairs(espContainer:GetChildren()) do highlight.Enabled = value end end, }, { name = "Night and Day", images = {9134778004, 10137794784}, color = Color3.fromRGB(102, 75, 190), enabled = false, rotateWhileEnabled = false, callback = function(value) tweenService:Create(lighting, TweenInfo.new(0.5), { ClockTime = value and 12 or 24 }):Play() end, }, { name = "Global Audio", images = {9134774810, 14386246782}, color = Color3.fromRGB(202, 103, 58), enabled = false, rotateWhileEnabled = false, callback = function(value) if value then oldVolume = gameSettings.MasterVolume gameSettings.MasterVolume = 0 else gameSettings.MasterVolume = oldVolume end end, }, { name = "Visibility", images = {14386256326, 9134770786}, color = Color3.fromRGB(62, 94, 170), enabled = false, rotateWhileEnabled = false, callback = function() end, }, }, sliders = { { name = "player speed", color = Color3.fromRGB(44, 153, 93), values = {0, 300}, default = 16, value = 16, active = false, callback = function(value) local character = localPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if character then humanoid.WalkSpeed = value end end, }, { name = "jump power", color = Color3.fromRGB(59, 126, 184), values = {0, 350}, default = 50, value = 16, active = false, callback = function(value) local character = localPlayer.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") if character then if humanoid.UseJumpPower then humanoid.JumpPower = value else humanoid.JumpHeight = value end end end, }, { name = "flight speed", color = Color3.fromRGB(177, 45, 45), values = {1, 25}, default = 3, value = 3, active = false, callback = function(value) end, }, { name = "field of view", color = Color3.fromRGB(198, 178, 75), values = {45, 120}, default = 70, value = 16, active = false, callback = function(value) tweenService:Create(camera, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), { FieldOfView = value }):Play() end, }, } } local siriusSettings = { { name = 'General', description = 'The general settings for Sirius, from simple to unique features.', color = Color3.new(0.117647, 0.490196, 0.72549), minimumLicense = 'Free', categorySettings = { { name = 'Anonymous Client', description = 'Randomise your username in real-time in any CoreGui parented interface, including Sirius. You will still appear as your actual name to others in-game. This setting can be performance intensive.', settingType = 'Boolean', current = false, id = 'anonmode' }, { name = 'Chat Spy', description = 'This will only work on the legacy Roblox chat system. Sirius will display whispers usually hidden from you in the chat box.', settingType = 'Boolean', current = true, id = 'chatspy' }, { name = 'Hide Toggle Button', description = 'This will remove the option to open the smartBar with the toggle button.', settingType = 'Boolean', current = false, id = 'hidetoggle' }, { name = 'Now Playing Notifications', description = 'When active, Sirius will notify you when the next song in your Music queue plays.', settingType = 'Boolean', current = true, id = 'nowplaying' }, { name = 'Friend Notifications', settingType = 'Boolean', current = true, id = 'friendnotifs' }, { name = 'Load Hidden', settingType = 'Boolean', current = false, id = 'loadhidden' }, { name = 'Startup Sound Effect', settingType = 'Boolean', current = true, id = 'startupsound' }, { name = 'Anti Idle', description = 'Remove all callbacks and events linked to the LocalPlayer Idled state. This may prompt detection from Adonis or similar anti-cheats.', settingType = 'Boolean', current = true, id = 'antiidle' }, { name = 'Client-Based Anti Kick', description = 'Cancel any kick request involving you sent by the client. This may prompt detection from Adonis or similar anti-cheats. You will need to rejoin and re-run Sirius to toggle.', settingType = 'Boolean', current = false, id = 'antikick' }, { name = 'Muffle audio while unfocused', settingType = 'Boolean', current = true, id = 'muffleunfocused' }, } }, { name = 'Keybinds', description = 'Assign keybinds to actions or change keybinds such as the one to open/close Sirius.', color = Color3.new(0.0941176, 0.686275, 0.509804), minimumLicense = 'Free', categorySettings = { { name = 'Toggle smartBar', settingType = 'Key', current = "K", id = 'smartbar' }, { name = 'Open ScriptSearch', settingType = 'Key', current = "T", id = 'scriptsearch' }, { name = 'NoClip', settingType = 'Key', current = nil, id = 'noclip', callback = function() local noclip = siriusValues.actions[1] noclip.enabled = not noclip.enabled noclip.callback(noclip.enabled) end }, { name = 'Flight', settingType = 'Key', current = nil, id = 'flight', callback = function() local flight = siriusValues.actions[2] flight.enabled = not flight.enabled flight.callback(flight.enabled) end }, { name = 'Refresh', settingType = 'Key', current = nil, id = 'refresh', callback = function() local refresh = siriusValues.actions[3] if not refresh.enabled then refresh.enabled = true refresh.callback() end end }, { name = 'Respawn', settingType = 'Key', current = nil, id = 'respawn', callback = function() local respawn = siriusValues.actions[4] if not respawn.enabled then respawn.enabled = true respawn.callback() end end }, { name = 'Invulnerability', settingType = 'Key', current = nil, id = 'invulnerability', callback = function() local invulnerability = siriusValues.actions[5] invulnerability.enabled = not invulnerability.enabled invulnerability.callback(invulnerability.enabled) end }, { name = 'Fling', settingType = 'Key', current = nil, id = 'fling', callback = function() local fling = siriusValues.actions[6] fling.enabled = not fling.enabled fling.callback(fling.enabled) end }, { name = 'ESP', settingType = 'Key', current = nil, id = 'esp', callback = function() local esp = siriusValues.actions[7] esp.enabled = not esp.enabled esp.callback(esp.enabled) end }, { name = 'Night and Day', settingType = 'Key', current = nil, id = 'nightandday', callback = function() local nightandday = siriusValues.actions[8] nightandday.enabled = not nightandday.enabled nightandday.callback(nightandday.enabled) end }, { name = 'Global Audio', settingType = 'Key', current = nil, id = 'globalaudio', callback = function() local globalaudio = siriusValues.actions[9] globalaudio.enabled = not globalaudio.enabled globalaudio.callback(globalaudio.enabled) end }, { name = 'Visibility', settingType = 'Key', current = nil, id = 'visibility', callback = function() local visibility = siriusValues.actions[10] visibility.enabled = not visibility.enabled visibility.callback(visibility.enabled) end }, } }, { name = 'Performance', description = 'Tweak and test your performance settings for Roblox in Sirius.', color = Color3.new(1, 0.376471, 0.168627), minimumLicense = 'Free', categorySettings = { { name = 'Artificial FPS Limit', description = 'Sirius will automatically set your FPS to this number when you are tabbed-in to Roblox.', settingType = 'Number', values = {20, 5000}, current = 240, id = 'fpscap' }, { name = 'Limit FPS while unfocused', description = 'Sirius will automatically set your FPS to 60 when you tab-out or unfocus from Roblox.', settingType = 'Boolean', -- number for the cap below!! with min and max val current = true, id = 'fpsunfocused' }, { name = 'Adaptive Latency Warning', description = 'Sirius will check your average latency in the background and notify you if your current latency significantly goes above your average latency.', settingType = 'Boolean', current = true, id = 'latencynotif' }, { name = 'Adaptive Performance Warning', description = 'Sirius will check your average FPS in the background and notify you if your current FPS goes below a specific number.', settingType = 'Boolean', current = true, id = 'fpsnotif' }, } }, { name = 'Detections', description = 'Sirius detects and prevents anything malicious or possibly harmful to your wellbeing.', color = Color3.new(0.705882, 0, 0), minimumLicense = 'Free', categorySettings = { { name = 'Spatial Shield', description = 'Suppress loud sounds played from any audio source in-game, in real-time with Spatial Shield.', settingType = 'Boolean', minimumLicense = 'Pro', current = true, id = 'spatialshield' }, { name = 'Spatial Shield Threshold', description = 'How loud a sound needs to be to be suppressed.', settingType = 'Number', minimumLicense = 'Pro', values = {100, 1000}, current = 300, id = 'spatialshieldthreshold' }, { name = 'Moderator Detection', description = 'Be notified whenever Sirius detects a player joins your session that could be a game moderator.', settingType = 'Boolean', minimumLicense = 'Pro', current = true, id = 'moddetection' }, { name = 'Intelligent HTTP Interception', description = 'Block external HTTP/HTTPS requests from being sent/recieved and ask you before allowing it to run.', settingType = 'Boolean', minimumLicense = 'Essential', current = true, id = 'intflowintercept' }, { name = 'Intelligent Clipboard Interception', description = 'Block your clipboard from being set and ask you before allowing it to set your clipboard.', settingType = 'Boolean', minimumLicense = 'Essential', current = true, id = 'intflowinterceptclip' }, }, }, { name = 'Logging', description = 'Send logs to your specified webhook URL of things like player joins and leaves and messages.', color = Color3.new(0.905882, 0.780392, 0.0666667), minimumLicense = 'Free', categorySettings = { { name = 'Log Messages', description = 'Log messages sent by any player to your webhook.', settingType = 'Boolean', current = false, id = 'logmsg' }, { name = 'Message Webhook URL', description = 'Discord Webhook URL', settingType = 'Input', current = 'No Webhook', id = 'logmsgurl' }, { name = 'Log PlayerAdded and PlayerRemoving', description = 'Log whenever any player leaves or joins your session.', settingType = 'Boolean', current = false, id = 'logplrjoinleave' }, { name = 'Player Added and Removing Webhook URL', description = 'Discord Webhook URL', settingType = 'Input', current = 'No Webhook', id = 'logplrjoinleaveurl' }, } }, } -- Generate random username local randomAdjective = siriusValues.nameGeneration.adjectives[math.random(1, #siriusValues.nameGeneration.adjectives)] local randomNoun = siriusValues.nameGeneration.nouns[math.random(1, #siriusValues.nameGeneration.nouns)] local randomNumber = math.random(100, 3999) -- You can customize the range local randomUsername = randomAdjective .. randomNoun .. randomNumber -- Initialise Sirius Client Interface local guiParent = gethui and gethui() or coreGui local sirius = guiParent:FindFirstChild("Sirius") if sirius then sirius:Destroy() end local UI = game:GetObjects('rbxassetid://'..siriusValues.interfaceAsset)[1] UI.Name = siriusValues.siriusName UI.Parent = guiParent UI.Enabled = false -- Create Variables for Interface Elements local characterPanel = UI.Character local customScriptPrompt = UI.CustomScriptPrompt local securityPrompt = UI.SecurityPrompt local disconnectedPrompt = UI.Disconnected local gameDetectionPrompt = UI.GameDetection local homeContainer = UI.Home local moderatorDetectionPrompt = UI.ModeratorDetectionPrompt local musicPanel = UI.Music local notificationContainer = UI.Notifications local playerlistPanel = UI.Playerlist local scriptSearch = UI.ScriptSearch local scriptsPanel = UI.Scripts local settingsPanel = UI.Settings local smartBar = UI.SmartBar local toggle = UI.Toggle local starlight = UI.Starlight local toastsContainer = UI.Toasts -- Interface Caching if not getgenv().cachedInGameUI then getgenv().cachedInGameUI = {} end if not getgenv().cachedCoreUI then getgenv().cachedCoreUI = {} end -- Malicious Behavior Prevention local indexSetClipboard = "setclipboard" local originalSetClipboard = getgenv()[indexSetClipboard] local index = http_request and "http_request" or "request" local originalRequest = getgenv()[index] -- put this into siriusValues, like the fps and ping shit local suppressedSounds = {} local soundSuppressionNotificationCooldown = 0 local soundInstances = {} local cachedIds = {} local cachedText = {} if not getMessage then siriusValues.chatSpy.enabled = false end -- Call External Modules -- httpRequest local httpRequest = originalRequest -- Neon Module local neonModule = (function() -- Open sourced neon module local module = {} do local function IsNotNaN(x) return x == x end local continued = IsNotNaN(camera:ScreenPointToRay(0,0).Origin.x) while not continued do runService.RenderStepped:wait() continued = IsNotNaN(camera:ScreenPointToRay(0,0).Origin.x) end end local RootParent = camera local root local binds = {} local function getRoot() if root then return root else root = Instance.new('Folder', RootParent) root.Name = 'neon' return root end end local function destroyRoot() if root then root:Destroy() root = nil end end local GenUid; do local id = 0 function GenUid() id = id + 1 return 'neon::'..tostring(id) end end local DrawQuad; do local acos, max, pi, sqrt = math.acos, math.max, math.pi, math.sqrt local sz = 0.2 local function DrawTriangle(v1, v2, v3, p0, p1) local s1 = (v1 - v2).magnitude local s2 = (v2 - v3).magnitude local s3 = (v3 - v1).magnitude local smax = max(s1, s2, s3) local A, B, C if s1 == smax then A, B, C = v1, v2, v3 elseif s2 == smax then A, B, C = v2, v3, v1 elseif s3 == smax then A, B, C = v3, v1, v2 end local para = ( (B-A).x*(C-A).x + (B-A).y*(C-A).y + (B-A).z*(C-A).z ) / (A-B).magnitude local perp = sqrt((C-A).magnitude^2 - para*para) local dif_para = (A - B).magnitude - para local st = CFrame.new(B, A) local za = CFrame.Angles(pi/2,0,0) local cf0 = st local Top_Look = (cf0 * za).lookVector local Mid_Point = A + CFrame.new(A, B).LookVector * para local Needed_Look = CFrame.new(Mid_Point, C).LookVector local dot = Top_Look.x*Needed_Look.x + Top_Look.y*Needed_Look.y + Top_Look.z*Needed_Look.z local ac = CFrame.Angles(0, 0, acos(dot)) cf0 = cf0 * ac if ((cf0 * za).lookVector - Needed_Look).magnitude > 0.01 then cf0 = cf0 * CFrame.Angles(0, 0, -2*acos(dot)) end cf0 = cf0 * CFrame.new(0, perp/2, -(dif_para + para/2)) local cf1 = st * ac * CFrame.Angles(0, pi, 0) if ((cf1 * za).lookVector - Needed_Look).magnitude > 0.01 then cf1 = cf1 * CFrame.Angles(0, 0, 2*acos(dot)) end cf1 = cf1 * CFrame.new(0, perp/2, dif_para/2) if not p0 then p0 = Instance.new('Part') p0.FormFactor = 'Custom' p0.TopSurface = 0 p0.BottomSurface = 0 p0.Anchored = true p0.CanCollide = false p0.Material = 'Glass' p0.Size = Vector3.new(sz, sz, sz) local mesh = Instance.new('SpecialMesh', p0) mesh.MeshType = 2 mesh.Name = 'WedgeMesh' end p0.WedgeMesh.Scale = Vector3.new(0, perp/sz, para/sz) p0.CFrame = cf0 if not p1 then p1 = p0:clone() end p1.WedgeMesh.Scale = Vector3.new(0, perp/sz, dif_para/sz) p1.CFrame = cf1 return p0, p1 end function DrawQuad(v1, v2, v3, v4, parts) parts[1], parts[2] = DrawTriangle(v1, v2, v3, parts[1], parts[2]) parts[3], parts[4] = DrawTriangle(v3, v2, v4, parts[3], parts[4]) end end function module:BindFrame(frame, properties) if binds[frame] then return binds[frame].parts end local uid = GenUid() local parts = {} local f = Instance.new('Folder', getRoot()) f.Name = frame.Name local parents = {} do local function add(child) if child:IsA'GuiObject' then parents[#parents + 1] = child add(child.Parent) end end add(frame) end local function UpdateOrientation(fetchProps) local zIndex = 1 - 0.05*frame.ZIndex local tl, br = frame.AbsolutePosition, frame.AbsolutePosition + frame.AbsoluteSize local tr, bl = Vector2.new(br.x, tl.y), Vector2.new(tl.x, br.y) do local rot = 0 for _, v in ipairs(parents) do rot = rot + v.Rotation end if rot ~= 0 and rot%180 ~= 0 then local mid = tl:lerp(br, 0.5) local s, c = math.sin(math.rad(rot)), math.cos(math.rad(rot)) local vec = tl tl = Vector2.new(c*(tl.x - mid.x) - s*(tl.y - mid.y), s*(tl.x - mid.x) + c*(tl.y - mid.y)) + mid tr = Vector2.new(c*(tr.x - mid.x) - s*(tr.y - mid.y), s*(tr.x - mid.x) + c*(tr.y - mid.y)) + mid bl = Vector2.new(c*(bl.x - mid.x) - s*(bl.y - mid.y), s*(bl.x - mid.x) + c*(bl.y - mid.y)) + mid br = Vector2.new(c*(br.x - mid.x) - s*(br.y - mid.y), s*(br.x - mid.x) + c*(br.y - mid.y)) + mid end end DrawQuad( camera:ScreenPointToRay(tl.x, tl.y, zIndex).Origin, camera:ScreenPointToRay(tr.x, tr.y, zIndex).Origin, camera:ScreenPointToRay(bl.x, bl.y, zIndex).Origin, camera:ScreenPointToRay(br.x, br.y, zIndex).Origin, parts ) if fetchProps then for _, pt in pairs(parts) do pt.Parent = f end for propName, propValue in pairs(properties) do for _, pt in pairs(parts) do pt[propName] = propValue end end end end UpdateOrientation(true) runService:BindToRenderStep(uid, 2000, UpdateOrientation) binds[frame] = { uid = uid, parts = parts } return binds[frame].parts end function module:Modify(frame, properties) local parts = module:GetBoundParts(frame) if parts then for propName, propValue in pairs(properties) do for _, pt in pairs(parts) do pt[propName] = propValue end end end end function module:UnbindFrame(frame) if RootParent == nil then return end local cb = binds[frame] if cb then runService:UnbindFromRenderStep(cb.uid) for _, v in pairs(cb.parts) do v:Destroy() end binds[frame] = nil end if getRoot():FindFirstChild(frame.Name) then getRoot()[frame.Name]:Destroy() end end function module:HasBinding(frame) return binds[frame] ~= nil end function module:GetBoundParts(frame) return binds[frame] and binds[frame].parts end return module end)() -- Sirius Functions local function checkSirius() return UI.Parent end local function getPing() return math.clamp(statsService.Network.ServerStatsItem["Data Ping"]:GetValue(), 10, 700) end local function checkFolder() if isfolder then if not isfolder(siriusValues.siriusFolder) then makefolder(siriusValues.siriusFolder) end if not isfolder(siriusValues.siriusFolder.."/Music") then makefolder(siriusValues.siriusFolder.."/Music") writefile(siriusValues.siriusFolder.."/Music/readme.txt", "Hey there! Place your MP3 or other audio files in this folder, and have the ability to play them through the Sirius Music UI!") end if not isfolder(siriusValues.siriusFolder.."/Assets/Icons") then makefolder(siriusValues.siriusFolder.."/Assets/Icons") end if not isfolder(siriusValues.siriusFolder.."/Assets") then makefolder(siriusValues.siriusFolder.."/Assets") end end end local function isPanel(name) return not table.find({"Home", "Music", "Settings"}, name) end local function fetchFromCDN(path, write, savePath) checkFolder() local file = game:HttpGet(siriusValues.cdn..path) or nil if not file then return end if not write then return file end writefile(siriusValues.siriusFolder.."/"..savePath, file) return end local function fetchIcon(iconName) checkFolder() local pathCDN = siriusValues.icons..iconName..".png" local path = siriusValues.siriusFolder.."/Assets/"..iconName..".png" if not isfile(path) then local file = game:HttpGet(pathCDN) if not file then return end writefile(path, file) end local imageToReturn = getcustomasset(path) return imageToReturn end local function storeOriginalText(element) originalTextValues[element] = element.Text end local function undoAnonymousChanges() for element, originalText in pairs(originalTextValues) do element.Text = originalText end end local function createEsp(player) if player == localPlayer or not checkSirius() then return end local highlight = Instance.new("Highlight") highlight.FillTransparency = 1 highlight.OutlineTransparency = 0 highlight.OutlineColor = Color3.new(1,1,1) highlight.Adornee = player.Character highlight.Name = player.Name highlight.Enabled = siriusValues.actions[7].enabled highlight.Parent = espContainer player.CharacterAdded:Connect(function(character) if not checkSirius() then return end task.wait() highlight.Adornee = character end) end local function makeDraggable(object) local dragging = false local relative = nil local offset = Vector2.zero local screenGui = object:FindFirstAncestorWhichIsA("ScreenGui") if screenGui and screenGui.IgnoreGuiInset then offset += guiService:GetGuiInset() end object.InputBegan:Connect(function(input, processed) if processed then return end local inputType = input.UserInputType.Name if inputType == "MouseButton1" or inputType == "Touch" then relative = object.AbsolutePosition + object.AbsoluteSize * object.AnchorPoint - userInputService:GetMouseLocation() dragging = true end end) local inputEnded = userInputService.InputEnded:Connect(function(input) if not dragging then return end local inputType = input.UserInputType.Name if inputType == "MouseButton1" or inputType == "Touch" then dragging = false end end) local renderStepped = runService.RenderStepped:Connect(function() if dragging then local position = userInputService:GetMouseLocation() + relative + offset object.Position = UDim2.fromOffset(position.X, position.Y) end end) object.Destroying:Connect(function() inputEnded:Disconnect() renderStepped:Disconnect() end) end local function checkAction(target) local toReturn = {} for _, action in ipairs(siriusValues.actions) do if action.name == target then toReturn.action = action break end end for _, action in ipairs(characterPanel.Interactions.Grid:GetChildren()) do if action.name == target then toReturn.object = action break end end return toReturn end local function checkSetting(settingTarget, categoryTarget) for _, category in ipairs(siriusSettings) do if categoryTarget then if category.name == categoryTarget then for _, setting in ipairs(category.categorySettings) do if setting.name == settingTarget then return setting end end end return else for _, setting in ipairs(category.categorySettings) do if setting.name == settingTarget then return setting end end end end end local function wipeTransparency(ins, target, checkSelf, tween, duration) local transparencyProperties = siriusValues.transparencyProperties local function applyTransparency(obj) local properties = transparencyProperties[obj.className] if properties then local tweenProperties = {} for _, property in ipairs(properties) do tweenProperties[property] = target end for property, transparency in pairs(tweenProperties) do if tween then tweenService:Create(obj, TweenInfo.new(duration, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {[property] = transparency}):Play() else obj[property] = transparency end end end end if checkSelf then applyTransparency(ins) end for _, descendant in ipairs(ins:getDescendants()) do applyTransparency(descendant) end end local function blurSignature(value) if not value then if lighting:FindFirstChild("SiriusBlur") then lighting:FindFirstChild("SiriusBlur"):Destroy() end else if not lighting:FindFirstChild("SiriusBlur") then local blurLight = Instance.new("DepthOfFieldEffect", lighting) blurLight.Name = "SiriusBlur" blurLight.Enabled = true blurLight.FarIntensity = 0 blurLight.FocusDistance = 51.6 blurLight.InFocusRadius = 50 blurLight.NearIntensity = 0.8 end end end local function figureNotifications() if checkSirius() then local notificationsSize = 0 if #notifications > 0 then blurSignature(true) else blurSignature(false) end for i = #notifications, 0, -1 do local notification = notifications[i] if notification then if notificationsSize == 0 then notificationsSize = notification.Size.Y.Offset + 2 else notificationsSize += notification.Size.Y.Offset + 5 end local desiredPosition = UDim2.new(0.5, 0, 0, notificationsSize) if notification.Position ~= desiredPosition then notification:TweenPosition(desiredPosition, "Out", "Quint", 0.8, true) end end end end end local contentProvider = game:GetService("ContentProvider") local function queueNotification(Title, Description, Image) task.spawn(function() if checkSirius() then local newNotification = notificationContainer.Template:Clone() newNotification.Parent = notificationContainer newNotification.Name = Title or "Unknown Title" newNotification.Visible = true newNotification.Title.Text = Title or "Unknown Title" newNotification.Description.Text = Description or "Unknown Description" newNotification.Time.Text = "now" -- Prepare for animation newNotification.AnchorPoint = Vector2.new(0.5, 1) newNotification.Position = UDim2.new(0.5, 0, -1, 0) newNotification.Size = UDim2.new(0, 320, 0, 500) newNotification.Description.Size = UDim2.new(0, 241, 0, 400) wipeTransparency(newNotification, 1, true) newNotification.Description.Size = UDim2.new(0, 241, 0, newNotification.Description.TextBounds.Y) newNotification.Size = UDim2.new(0, 100, 0, newNotification.Description.TextBounds.Y + 50) table.insert(notifications, newNotification) figureNotifications() local notificationSound = Instance.new("Sound") notificationSound.Parent = UI notificationSound.SoundId = "rbxassetid://255881176" notificationSound.Name = "notificationSound" notificationSound.Volume = 0.65 notificationSound.PlayOnRemove = true notificationSound:Destroy() if not tonumber(Image) then newNotification.Icon.Image = fetchIcon(Image) else newNotification.Icon.Image = 'rbxassetid://'..Image or 0 end newNotification:TweenPosition(UDim2.new(0.5, 0, 0, newNotification.Size.Y.Offset + 2), "Out", "Quint", 0.9, true) task.wait(0.1) tweenService:Create(newNotification, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {Size = UDim2.new(0, 320, 0, newNotification.Description.TextBounds.Y + 50)}):Play() task.wait(0.05) tweenService:Create(newNotification, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.35}):Play() tweenService:Create(newNotification.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Exponential), {Transparency = 0.7}):Play() task.wait(0.05) tweenService:Create(newNotification.Icon, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play() task.wait(0.04) tweenService:Create(newNotification.Title, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0}):Play() task.wait(0.04) tweenService:Create(newNotification.Description, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0.15}):Play() tweenService:Create(newNotification.Time, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {TextTransparency = 0.5}):Play() neonModule:BindFrame(newNotification.BlurModule, { Transparency = 0.98, BrickColor = BrickColor.new("Institutional white") }) newNotification.Interact.MouseButton1Click:Connect(function() local foundNotification = table.find(notifications, newNotification) if foundNotification then table.remove(notifications, foundNotification) end tweenService:Create(newNotification, TweenInfo.new(0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {Position = UDim2.new(1.5, 0, 0, newNotification.Position.Y.Offset)}):Play() task.wait(0.4) newNotification:Destroy() figureNotifications() return end) local waitTime = (#newNotification.Description.Text*0.1)+2 if waitTime <= 1 then waitTime = 2.5 elseif waitTime > 10 then waitTime = 10 end task.wait(waitTime) local foundNotification = table.find(notifications, newNotification) if foundNotification then table.remove(notifications, foundNotification) end tweenService:Create(newNotification, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.In), {Position = UDim2.new(1.5, 0, 0, newNotification.Position.Y.Offset)}):Play() task.wait(1.2) neonModule:UnbindFrame(newNotification.BlurModule) newNotification:Destroy() figureNotifications() end end) end local function checkLastVersion() checkFolder() local lastVersion = isfile and isfile(siriusValues.siriusFolder.."/".."version.srs") and readfile(siriusValues.siriusFolder.."/".."version.srs") or nil if lastVersion then if lastVersion ~= siriusValues.siriusVersion then queueNotification("Sirius has been updated", "Sirius has been updated to version "..siriusValues.siriusVersion..", check our Discord for all new features and changes.", 4400701828) end end if writefile then writefile(siriusValues.siriusFolder.."/".."version.srs", siriusValues.siriusVersion) end end local function removeReverbs(timing) timing = timing or 0.65 for index, sound in next, soundInstances do if sound:FindFirstChild("SiriusAudioProfile") then local reverb = sound:FindFirstChild("SiriusAudioProfile") tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {HighGain = 0}):Play() tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {LowGain = 0}):Play() tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {MidGain = 0}):Play() task.delay(timing + 0.03, reverb.Destroy, reverb) end end end local function playNext() if #musicQueue == 0 then currentAudio.Playing = false currentAudio.SoundId = "" musicPanel.Playing.Text = "Not Playing" return end if not currentAudio then local newAudio = Instance.new("Sound") newAudio.Parent = UI newAudio.Name = "Audio" currentAudio = newAudio end musicPanel.Menu.TogglePlaying.ImageRectOffset = currentAudio.Playing and Vector2.new(804, 124) or Vector2.new(764, 244) local asset = getcustomasset(siriusValues.siriusFolder.."/Music/"..musicQueue[1].sound) if checkSetting("Now Playing Notifications").current then queueNotification("Now Playing", musicQueue[1].sound, 4400695581) end if musicPanel.Queue.List:FindFirstChild(tostring(musicQueue[1].instanceName)) then musicPanel.Queue.List:FindFirstChild(tostring(musicQueue[1].instanceName)):Destroy() end currentAudio.SoundId = asset musicPanel.Playing.Text = musicQueue[1].sound currentAudio:Play() musicPanel.Menu.TogglePlaying.ImageRectOffset = currentAudio.Playing and Vector2.new(804, 124) or Vector2.new(764, 244) currentAudio.Ended:Wait() table.remove(musicQueue, 1) playNext() end local function addToQueue(file) if not getcustomasset then return end checkFolder() if not isfile(siriusValues.siriusFolder.."/Music/"..file) then queueNotification("Unable to locate file", "Please ensure that your audio file is in the Sirius/Music folder and that you are including the file extension (e.g mp3 or ogg).", 4370341699) return end musicPanel.AddBox.Input.Text = "" local newAudio = musicPanel.Queue.List.Template:Clone() newAudio.Parent = musicPanel.Queue.List newAudio.Size = UDim2.new(0, 254, 0, 40) newAudio.Close.ImageTransparency = 1 newAudio.Name = file if string.len(newAudio.FileName.Text) > 26 then newAudio.FileName.Text = string.sub(tostring(file), 1,24)..".." else newAudio.FileName.Text = file end newAudio.Visible = true newAudio.Duration.Text = "" table.insert(musicQueue, {sound = file, instanceName = newAudio.Name}) local getLength = Instance.new("Sound", workspace) getLength.SoundId = getcustomasset(siriusValues.siriusFolder.."/Music/"..file) getLength.Volume = 0 getLength:Play() task.wait(0.05) newAudio.Duration.Text = tostring(math.round(getLength.TimeLength)).."s" getLength:Stop() getLength:Destroy() newAudio.MouseEnter:Connect(function() tweenService:Create(newAudio, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {BackgroundColor3 = Color3.fromRGB(100, 100, 100)}):Play() tweenService:Create(newAudio.Close, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {ImageTransparency = 0}):Play() tweenService:Create(newAudio.Duration, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {TextTransparency = 1}):Play() end) newAudio.MouseLeave:Connect(function() tweenService:Create(newAudio.Close, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play() tweenService:Create(newAudio, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {BackgroundColor3 = Color3.fromRGB(0, 0, 0)}):Play() tweenService:Create(newAudio.Duration, TweenInfo.new(0.45, Enum.EasingStyle.Exponential), {TextTransparency = 0.7}):Play() end) newAudio.Close.MouseButton1Click:Connect(function() if not string.find(currentAudio.Name, file) then for i,v in pairs(musicQueue) do for _,b in pairs(v) do if b == newAudio.Name then newAudio:Destroy() table.remove(musicQueue, i) end end end else for i,v in pairs(musicQueue) do for _,b in pairs(v) do if b == newAudio.Name then newAudio:Destroy() table.remove(musicQueue, i) playNext() end end end end end) if #musicQueue == 1 then playNext() end end local function openMusic() debounce = true musicPanel.Visible = true musicPanel.Queue.List.Template.Visible = false debounce = false end local function closeMusic() debounce = true musicPanel.Visible = false debounce = false end local function createReverb(timing) for index, sound in next, soundInstances do if not sound:FindFirstChild("SiriusAudioProfile") then local reverb = Instance.new("EqualizerSoundEffect") reverb.Name = "SiriusAudioProfile" reverb.Parent = sound reverb.Enabled = false reverb.HighGain = 0 reverb.LowGain = 0 reverb.MidGain = 0 reverb.Enabled = true if timing then tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {HighGain = -20}):Play() tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {LowGain = 5}):Play() tweenService:Create(reverb, TweenInfo.new(timing, Enum.EasingStyle.Exponential), {MidGain = -20}):Play() end end end end local function runScript(raw) loadstring(game:HttpGet(raw))() end local function syncExperienceInformation() siriusValues.currentCreator = creatorId if creatorType == Enum.CreatorType.Group then siriusValues.currentGroup = creatorId siriusValues.currentCreator = "group" end for _, gameFound in pairs(siriusValues.games) do if gameFound.id == placeId and gameFound.enabled then local minimumTier = gameFound.minimumTier if minimumTier == "Essential" then if not (Essential or Pro) then return end elseif minimumTier == "Pro" then if not Pro then return end end local rawFile = siriusValues.rawTree..gameFound.raw siriusValues.currentGame = gameFound gameDetectionPrompt.ScriptTitle.Text = gameFound.name gameDetectionPrompt.Layer.ScriptSubtitle.Text = gameFound.description gameDetectionPrompt.Thumbnail.Image = "https://assetgame.roblox.com/Game/Tools/ThumbnailAsset.ashx?aid="..tostring(placeId).."&fmt=png&wd=420&ht=420" gameDetectionPrompt.Size = UDim2.new(0, 550, 0, 0) gameDetectionPrompt.Position = UDim2.new(0.5, 0, 0, 120) gameDetectionPrompt.UICorner.CornerRadius = UDim.new(0, 9) gameDetectionPrompt.Thumbnail.UICorner.CornerRadius = UDim.new(0, 9) gameDetectionPrompt.ScriptTitle.Position = UDim2.new(0, 30, 0.5, 0) gameDetectionPrompt.Layer.Visible = false gameDetectionPrompt.Warning.Visible = false wipeTransparency(gameDetectionPrompt, 1, true) gameDetectionPrompt.Visible = true tweenService:Create(gameDetectionPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(gameDetectionPrompt.Thumbnail, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.4}):Play() tweenService:Create(gameDetectionPrompt.ScriptTitle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(gameDetectionPrompt, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 587, 0, 44)}):Play() tweenService:Create(gameDetectionPrompt, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.5, 0, 0, 150)}):Play() task.wait(1) wipeTransparency(gameDetectionPrompt.Layer, 1, true) gameDetectionPrompt.Layer.Visible = true tweenService:Create(gameDetectionPrompt, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 473, 0, 154)}):Play() tweenService:Create(gameDetectionPrompt.ScriptTitle, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Position = UDim2.new(0, 23, 0.352, 0)}):Play() tweenService:Create(gameDetectionPrompt, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Position = UDim2.new(0.5, 0, 0, 200)}):Play() tweenService:Create(gameDetectionPrompt.UICorner, TweenInfo.new(1, Enum.EasingStyle.Exponential), {CornerRadius = UDim.new(0, 13)}):Play() tweenService:Create(gameDetectionPrompt.Thumbnail.UICorner, TweenInfo.new(1, Enum.EasingStyle.Exponential), {CornerRadius = UDim.new(0, 13)}):Play() tweenService:Create(gameDetectionPrompt.Thumbnail, TweenInfo.new(1, Enum.EasingStyle.Exponential), {ImageTransparency = 0.5}):Play() task.wait(0.3) tweenService:Create(gameDetectionPrompt.Layer.ScriptSubtitle, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0.85}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.6}):Play() task.wait(0.2) tweenService:Create(gameDetectionPrompt.Layer.Close, TweenInfo.new(0.7, Enum.EasingStyle.Exponential), {ImageTransparency = 0.6}):Play() task.wait(0.3) local function closeGameDetection() tweenService:Create(gameDetectionPrompt.Layer.ScriptSubtitle, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.Layer.Close, TweenInfo.new(0.3, Enum.EasingStyle.Exponential), {ImageTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.Thumbnail, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.ScriptTitle, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(gameDetectionPrompt.Layer.Run.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() task.wait(0.05) tweenService:Create(gameDetectionPrompt, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 400, 0, 0)}):Play() tweenService:Create(gameDetectionPrompt.UICorner, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {CornerRadius = UDim.new(0, 5)}):Play() tweenService:Create(gameDetectionPrompt.Thumbnail.UICorner, TweenInfo.new(0.2, Enum.EasingStyle.Exponential), {CornerRadius = UDim.new(0, 5)}):Play() task.wait(0.41) gameDetectionPrompt.Visible = false end gameDetectionPrompt.Layer.Run.MouseButton1Click:Connect(function() closeGameDetection() queueNotification("Running "..gameFound.name, "Now running Sirius' "..gameFound.name.." script, this may take a moment.", 4400701828) runScript(rawFile) end) gameDetectionPrompt.Layer.Close.MouseButton1Click:Connect(function() closeGameDetection() end) break end end end local function updateSliderPadding() for _, v in pairs(siriusValues.sliders) do v.padding = { v.object.Interact.AbsolutePosition.X, v.object.Interact.AbsolutePosition.X + v.object.Interact.AbsoluteSize.X } end end local function updateSlider(data, setValue, forceValue) local inverse_interpolation if setValue then setValue = math.clamp(setValue, data.values[1], data.values[2]) inverse_interpolation = (setValue - data.values[1]) / (data.values[2] - data.values[1]) local posX = data.padding[1] + (data.padding[2] - data.padding[1]) * inverse_interpolation else local posX = math.clamp(mouse.X, data.padding[1], data.padding[2]) inverse_interpolation = (posX - data.padding[1]) / (data.padding[2] - data.padding[1]) end tweenService:Create(data.object.Progress, TweenInfo.new(.5, Enum.EasingStyle.Quint), {Size = UDim2.new(inverse_interpolation, 0, 1, 0)}):Play() local value = math.floor(data.values[1] + (data.values[2] - data.values[1]) * inverse_interpolation + .5) data.object.Information.Text = value.." "..data.name data.value = value if data.callback and not setValue or forceValue then data.callback(value) end end local function resetSliders() for _, v in pairs(siriusValues.sliders) do updateSlider(v, v.default, true) end end local function sortActions() characterPanel.Interactions.Grid.Template.Visible = false characterPanel.Interactions.Sliders.Template.Visible = false for _, action in ipairs(siriusValues.actions) do local newAction = characterPanel.Interactions.Grid.Template:Clone() newAction.Name = action.name newAction.Parent = characterPanel.Interactions.Grid newAction.BackgroundColor3 = action.color newAction.UIStroke.Color = action.color newAction.Icon.Image = "rbxassetid://"..action.images[2] newAction.Visible = true newAction.BackgroundTransparency = 0.8 newAction.Transparency = 0.7 newAction.MouseEnter:Connect(function() characterPanel.Interactions.ActionsTitle.Text = string.upper(action.name) if action.enabled or debounce then return end tweenService:Create(newAction, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.4}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Transparency = 0.6}):Play() end) newAction.MouseLeave:Connect(function() if action.enabled or debounce then return end tweenService:Create(newAction, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() end) characterPanel.Interactions.Grid.MouseLeave:Connect(function() characterPanel.Interactions.ActionsTitle.Text = "PLAYER ACTIONS" end) newAction.Interact.MouseButton1Click:Connect(function() local success, response = pcall(function() action.enabled = not action.enabled action.callback(action.enabled) if action.enabled then newAction.Icon.Image = "rbxassetid://"..action.images[1] tweenService:Create(newAction, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.1}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(newAction.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play() if action.disableAfter then task.delay(action.disableAfter, function() action.enabled = false newAction.Icon.Image = "rbxassetid://"..action.images[2] tweenService:Create(newAction, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(newAction.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end) end if action.rotateWhileEnabled then repeat newAction.Icon.Rotation = 0 tweenService:Create(newAction.Icon, TweenInfo.new(0.75, Enum.EasingStyle.Quint), {Rotation = 360}):Play() task.wait(1) until not action.enabled newAction.Icon.Rotation = 0 end else newAction.Icon.Image = "rbxassetid://"..action.images[2] tweenService:Create(newAction, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(newAction.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end end) if not success then queueNotification("Action Error", "This action ('"..(action.name).."') had an error while running, please report this to the Sirius team at sirius.menu/discord", 4370336704) action.enabled = false newAction.Icon.Image = "rbxassetid://"..action.images[2] tweenService:Create(newAction, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(newAction.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(newAction.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end end) end if localPlayer.Character then if not localPlayer.Character:FindFirstChildOfClass('Humanoid').UseJumpPower then siriusValues.sliders[2].name = "jump height" siriusValues.sliders[2].default = 7.2 siriusValues.sliders[2].values = {0, 120} end end for _, slider in ipairs(siriusValues.sliders) do local newSlider = characterPanel.Interactions.Sliders.Template:Clone() newSlider.Name = slider.name.." Slider" newSlider.Parent = characterPanel.Interactions.Sliders newSlider.BackgroundColor3 = slider.color newSlider.Progress.BackgroundColor3 = slider.color newSlider.UIStroke.Color = slider.color newSlider.Information.Text = slider.name newSlider.Visible = true slider.object = newSlider slider.padding = { newSlider.Interact.AbsolutePosition.X, newSlider.Interact.AbsolutePosition.X + newSlider.Interact.AbsoluteSize.X } newSlider.MouseEnter:Connect(function() if debounce or slider.active then return end tweenService:Create(newSlider, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.85}):Play() tweenService:Create(newSlider.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.6}):Play() tweenService:Create(newSlider.Information, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0.2}):Play() end) newSlider.MouseLeave:Connect(function() if debounce or slider.active then return end tweenService:Create(newSlider, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.8}):Play() tweenService:Create(newSlider.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play() tweenService:Create(newSlider.Information, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0.3}):Play() end) newSlider.Interact.MouseButton1Down:Connect(function() if debounce or not checkSirius() then return end slider.active = true updateSlider(slider) tweenService:Create(slider.object, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.9}):Play() tweenService:Create(slider.object.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 1}):Play() tweenService:Create(slider.object.Information, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0.05}):Play() end) updateSlider(slider, slider.default) end end local function getAdaptiveHighPingThreshold() local adaptiveBaselinePings = siriusValues.pingProfile.adaptiveBaselinePings if #adaptiveBaselinePings == 0 then return siriusValues.pingProfile.adaptiveHighPingThreshold end table.sort(adaptiveBaselinePings) local median if #adaptiveBaselinePings % 2 == 0 then median = (adaptiveBaselinePings[#adaptiveBaselinePings/2] + adaptiveBaselinePings[#adaptiveBaselinePings/2 + 1]) / 2 else median = adaptiveBaselinePings[math.ceil(#adaptiveBaselinePings/2)] end return median * siriusValues.pingProfile.spikeThreshold end local function checkHighPing() local recentPings = siriusValues.pingProfile.recentPings local adaptiveBaselinePings = siriusValues.pingProfile.adaptiveBaselinePings local currentPing = getPing() table.insert(recentPings, currentPing) if #recentPings > siriusValues.pingProfile.maxSamples then table.remove(recentPings, 1) end if #adaptiveBaselinePings < siriusValues.pingProfile.adaptiveBaselineSamples then if currentPing >= 350 then currentPing = 300 end table.insert(adaptiveBaselinePings, currentPing) return false end local averagePing = 0 for _, ping in ipairs(recentPings) do averagePing = averagePing + ping end averagePing = averagePing / #recentPings if averagePing > getAdaptiveHighPingThreshold() then return true end return false end local function checkTools() task.wait(0.03) if localPlayer.Backpack and localPlayer.Character then if localPlayer.Backpack:FindFirstChildOfClass('Tool') or localPlayer.Character:FindFirstChildOfClass('Tool') then return true end else return false end end local function closePanel(panelName, openingOther) debounce = true local button = smartBar.Buttons:FindFirstChild(panelName) local panel = UI:FindFirstChild(panelName) if not isPanel(panelName) then return end if not (panel and button) then return end local panelSize = UDim2.new(0, 581, 0, 246) if not openingOther then if panel.Name == "Character" then -- Character Panel Animation tweenService:Create(characterPanel.Interactions.PropertiesTitle, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, slider in ipairs(characterPanel.Interactions.Sliders:GetChildren()) do if slider.ClassName == "Frame" then tweenService:Create(slider, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(slider.Progress, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(slider.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(slider.Shadow, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(slider.Information, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() -- tween the text after end end tweenService:Create(characterPanel.Interactions.Reset, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(characterPanel.Interactions.ActionsTitle, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, gridButton in ipairs(characterPanel.Interactions.Grid:GetChildren()) do if gridButton.ClassName == "Frame" then tweenService:Create(gridButton, TweenInfo.new(0.21, Enum.EasingStyle.Exponential), {BackgroundTransparency = 1}):Play() tweenService:Create(gridButton.UIStroke, TweenInfo.new(0.1, Enum.EasingStyle.Exponential), {Transparency = 1}):Play() tweenService:Create(gridButton.Icon, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(gridButton.Shadow, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() end end tweenService:Create(characterPanel.Interactions.Serverhop, TweenInfo.new(.15,Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.Title, TweenInfo.new(.15,Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.UIStroke, TweenInfo.new(.15,Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(characterPanel.Interactions.Rejoin, TweenInfo.new(.15,Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.Title, TweenInfo.new(.15,Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.UIStroke, TweenInfo.new(.15,Enum.EasingStyle.Quint), {Transparency = 1}):Play() elseif panel.Name == "Scripts" then -- Scripts Panel Animation for _, scriptButton in ipairs(scriptsPanel.Interactions.Selection:GetChildren()) do if scriptButton.ClassName == "Frame" then tweenService:Create(scriptButton, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() if scriptButton:FindFirstChild('Icon') then tweenService:Create(scriptButton.Icon, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() end tweenService:Create(scriptButton.Title, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() if scriptButton:FindFirstChild('Subtitle') then tweenService:Create(scriptButton.Subtitle, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end tweenService:Create(scriptButton.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play() end end elseif panel.Name == "Playerlist" then -- Playerlist Panel Animation for _, playerIns in ipairs(playerlistPanel.Interactions.List:GetDescendants()) do if playerIns.ClassName == "Frame" then tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() elseif playerIns.ClassName == "TextLabel" or playerIns.ClassName == "TextButton" then if playerIns.Name == "DisplayName" then tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() else tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end elseif playerIns.ClassName == "ImageLabel" or playerIns.ClassName == "ImageButton" then tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() if playerIns.Name == "Avatar" then tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() end elseif playerIns.ClassName == "UIStroke" then tweenService:Create(playerIns, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play() end end tweenService:Create(playerlistPanel.Interactions.SearchFrame, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(playerlistPanel.Interactions.SearchFrame.Icon, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(playerlistPanel.Interactions.SearchFrame.SearchBox, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(playerlistPanel.Interactions.SearchFrame.UIStroke, TweenInfo.new(0.15, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(playerlistPanel.Interactions.List, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 1}):Play() end tweenService:Create(panel.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(panel.Title, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(panel.UIStroke, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(panel.Shadow, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() task.wait(0.03) tweenService:Create(panel, TweenInfo.new(0.75, Enum.EasingStyle.Exponential, Enum.EasingDirection.InOut), {BackgroundTransparency = 1}):Play() tweenService:Create(panel, TweenInfo.new(1.1, Enum.EasingStyle.Exponential, Enum.EasingDirection.Out), {Size = button.Size}):Play() tweenService:Create(panel, TweenInfo.new(0.65, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = siriusValues.buttonPositions[panelName]}):Play() tweenService:Create(toggle, TweenInfo.new(0.6, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5, 0, 1, -85)}):Play() end -- Animate interactive elements if openingOther then tweenService:Create(panel, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 350, 1, -90)}):Play() wipeTransparency(panel, 1, true, true, 0.3) end task.wait(0.5) panel.Size = panelSize panel.Visible = false debounce = false end local function openPanel(panelName) if debounce then return end debounce = true local button = smartBar.Buttons:FindFirstChild(panelName) local panel = UI:FindFirstChild(panelName) if not isPanel(panelName) then return end if not (panel and button) then return end for _, otherPanel in ipairs(UI:GetChildren()) do if smartBar.Buttons:FindFirstChild(otherPanel.Name) then if isPanel(otherPanel.Name) and otherPanel.Visible then task.spawn(closePanel, otherPanel.Name, true) task.wait() end end end local panelSize = UDim2.new(0, 581, 0, 246) panel.Size = button.Size panel.Position = siriusValues.buttonPositions[panelName] wipeTransparency(panel, 1, true) panel.Visible = true tweenService:Create(toggle, TweenInfo.new(0.65, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 1, -(panelSize.Y.Offset + 95))}):Play() tweenService:Create(panel, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(panel, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {Size = panelSize}):Play() tweenService:Create(panel, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 1, -90)}):Play() task.wait(0.1) tweenService:Create(panel.Shadow, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(panel.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() task.wait(0.05) tweenService:Create(panel.Title, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(panel.UIStroke, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {Transparency = 0.95}):Play() task.wait(0.05) -- Animate interactive elements if panel.Name == "Character" then -- Character Panel Animation tweenService:Create(characterPanel.Interactions.PropertiesTitle, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0.65}):Play() local sliderInfo = {} for _, slider in ipairs(characterPanel.Interactions.Sliders:GetChildren()) do if slider.ClassName == "Frame" then table.insert(sliderInfo, {slider.Name, slider.Progress.Size, slider.Information.Text}) slider.Progress.Size = UDim2.new(0, 0, 1, 0) slider.Progress.BackgroundTransparency = 0 tweenService:Create(slider, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.8}):Play() tweenService:Create(slider.UIStroke, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Transparency = 0.5}):Play() tweenService:Create(slider.Shadow, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {ImageTransparency = 0.6}):Play() tweenService:Create(slider.Information, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() end end for _, sliderV in pairs(sliderInfo) do if characterPanel.Interactions.Sliders:FindFirstChild(sliderV[1]) then local slider = characterPanel.Interactions.Sliders:FindFirstChild(sliderV[1]) local tweenValue = Instance.new("IntValue", UI) local tweenTo local name for _, sliderFound in ipairs(siriusValues.sliders) do if sliderFound.name.." Slider" == slider.Name then tweenTo = sliderFound.value name = sliderFound.name break end end tweenService:Create(slider.Progress, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Size = sliderV[2]}):Play() local function animateNumber(n) tweenService:Create(tweenValue, TweenInfo.new(0.35, Enum.EasingStyle.Exponential), {Value = n}):Play() task.delay(0.4, tweenValue.Destroy, tweenValue) end tweenValue:GetPropertyChangedSignal("Value"):Connect(function() slider.Information.Text = tostring(tweenValue.Value).." "..name end) animateNumber(tweenTo) end end tweenService:Create(characterPanel.Interactions.Reset, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(characterPanel.Interactions.ActionsTitle, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0.65}):Play() for _, gridButton in ipairs(characterPanel.Interactions.Grid:GetChildren()) do if gridButton.ClassName == "Frame" then for _, action in ipairs(siriusValues.actions) do if action.name == gridButton.Name then if action.enabled then tweenService:Create(gridButton, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.1}):Play() tweenService:Create(gridButton.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(gridButton.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play() else tweenService:Create(gridButton, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(gridButton.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(gridButton.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end break end end tweenService:Create(gridButton.Shadow, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {ImageTransparency = 0.6}):Play() end end tweenService:Create(characterPanel.Interactions.Serverhop, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(characterPanel.Interactions.Rejoin, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 0}):Play() elseif panel.Name == "Scripts" then -- Scripts Panel Animation for _, scriptButton in ipairs(scriptsPanel.Interactions.Selection:GetChildren()) do if scriptButton.ClassName == "Frame" then tweenService:Create(scriptButton, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() if scriptButton:FindFirstChild('Icon') then tweenService:Create(scriptButton.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() end tweenService:Create(scriptButton.Title, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() if scriptButton:FindFirstChild('Subtitle') then tweenService:Create(scriptButton.Subtitle, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() end tweenService:Create(scriptButton.UIStroke, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {Transparency = 0.2}):Play() end end elseif panel.Name == "Playerlist" then -- Playerlist Panel Animation for _, playerIns in ipairs(playerlistPanel.Interactions.List:GetDescendants()) do if playerIns.Name ~= "Interact" and playerIns.Name ~= "Role" then if playerIns.ClassName == "Frame" then tweenService:Create(playerIns, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() elseif playerIns.ClassName == "TextLabel" or playerIns.ClassName == "TextButton" then tweenService:Create(playerIns, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() elseif playerIns.ClassName == "ImageLabel" or playerIns.ClassName == "ImageButton" then tweenService:Create(playerIns, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() if playerIns.Name == "Avatar" then tweenService:Create(playerIns, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() end elseif playerIns.ClassName == "UIStroke" then tweenService:Create(playerIns, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end end end tweenService:Create(playerlistPanel.Interactions.SearchFrame, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(playerlistPanel.Interactions.SearchFrame.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() task.wait(0.01) tweenService:Create(playerlistPanel.Interactions.SearchFrame.SearchBox, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(playerlistPanel.Interactions.SearchFrame.UIStroke, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {Transparency = 0.2}):Play() task.wait(0.05) tweenService:Create(playerlistPanel.Interactions.List, TweenInfo.new(0.35, Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 0.7}):Play() end task.wait(0.45) debounce = false end local function rejoin() queueNotification("Rejoining Session", "We're queueing a rejoin to this session, give us a moment.", 4400696294) if #players:GetPlayers() <= 1 then task.wait() teleportService:Teleport(placeId, localPlayer) else teleportService:TeleportToPlaceInstance(placeId, jobId, localPlayer) end end local function serverhop() local highestPlayers = 0 local servers = {} for _, v in ipairs(httpService:JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/" .. placeId .. "/servers/Public?sortOrder=Asc&limit=100")).data) do if type(v) == "table" and v.maxPlayers > v.playing and v.id ~= jobId then if v.playing > highestPlayers then highestPlayers = v.playing servers[1] = v.id end end end if #servers > 0 then queueNotification("Teleporting", "We're now moving you to the new session, this may take a few seconds.", 4335479121) task.wait(0.3) teleportService:TeleportToPlaceInstance(placeId, servers[1]) else return queueNotification("No Servers Found", "We couldn't find another server, this may be the only server.", 4370317928) end end local function ensureFrameProperties() UI.Enabled = true characterPanel.Visible = false customScriptPrompt.Visible = false disconnectedPrompt.Visible = false playerlistPanel.Interactions.List.Template.Visible = false gameDetectionPrompt.Visible = false homeContainer.Visible = false moderatorDetectionPrompt.Visible = false musicPanel.Visible = false notificationContainer.Visible = true playerlistPanel.Visible = false scriptSearch.Visible = false scriptsPanel.Visible = false settingsPanel.Visible = false smartBar.Visible = false musicPanel.Playing.Text = "Not Playing" if not getcustomasset then smartBar.Buttons.Music.Visible = false end toastsContainer.Visible = true makeDraggable(settingsPanel) makeDraggable(musicPanel) end local function checkFriends() if friendsCooldown == 0 then friendsCooldown = 25 local playersFriends = {} local success, page = pcall(players.GetFriendsAsync, players, localPlayer.UserId) if success then repeat local info = page:GetCurrentPage() for i, friendInfo in pairs(info) do table.insert(playersFriends, friendInfo) end if not page.IsFinished then page:AdvanceToNextPageAsync() end until page.IsFinished end local friendsInTotal = 0 local onlineFriends = 0 local friendsInGame = 0 for i,v in pairs(playersFriends) do friendsInTotal = friendsInTotal + 1 if v.IsOnline then onlineFriends = onlineFriends + 1 end if players:FindFirstChild(v.Username) then friendsInGame = friendsInGame + 1 end end if not checkSirius() then return end homeContainer.Interactions.Friends.All.Value.Text = tostring(friendsInTotal).." friends" homeContainer.Interactions.Friends.Offline.Value.Text = tostring(friendsInTotal - onlineFriends).." friends" homeContainer.Interactions.Friends.Online.Value.Text = tostring(onlineFriends).." friends" homeContainer.Interactions.Friends.InGame.Value.Text = tostring(friendsInGame).." friends" else friendsCooldown -= 1 end end function promptModerator(player, role) local serversAvailable = false local promptClosed = false if moderatorDetectionPrompt.Visible then return end moderatorDetectionPrompt.Size = UDim2.new(0, 283, 0, 175) moderatorDetectionPrompt.UIGradient.Offset = Vector2.new(0, 1) wipeTransparency(moderatorDetectionPrompt, 1, true) moderatorDetectionPrompt.DisplayName.Text = player.DisplayName moderatorDetectionPrompt.Rank.Text = role moderatorDetectionPrompt.Avatar.Image = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png" moderatorDetectionPrompt.Visible = true for _, v in ipairs(game:GetService("HttpService"):JSONDecode(game:HttpGetAsync("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100")).data) do if type(v) == "table" and v.maxPlayers > v.playing and v.id ~= game.JobId then serversAvailable = true end end if not serversAvailable then moderatorDetectionPrompt.Serverhop.Visible = false else moderatorDetectionPrompt.ServersAvailableFade.Visible = true end tweenService:Create(moderatorDetectionPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 300, 0, 186)}):Play() tweenService:Create(moderatorDetectionPrompt.UIGradient, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.65)}):Play() tweenService:Create(moderatorDetectionPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() tweenService:Create(moderatorDetectionPrompt.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.Rank, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.Serverhop, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() tweenService:Create(moderatorDetectionPrompt.Leave, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() task.wait(0.2) tweenService:Create(moderatorDetectionPrompt.Serverhop, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(moderatorDetectionPrompt.Leave, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() task.wait(0.3) tweenService:Create(moderatorDetectionPrompt.Close, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.6}):Play() local function closeModPrompt() tweenService:Create(moderatorDetectionPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 283, 0, 175)}):Play() tweenService:Create(moderatorDetectionPrompt.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 1)}):Play() tweenService:Create(moderatorDetectionPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Rank, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Serverhop, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Leave, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Serverhop, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Leave, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(moderatorDetectionPrompt.Close, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() task.wait(0.5) moderatorDetectionPrompt.Visible = false end moderatorDetectionPrompt.Leave.MouseButton1Click:Connect(function() closeModPrompt() game:Shutdown() end) moderatorDetectionPrompt.Serverhop.MouseEnter:Connect(function() tweenService:Create(moderatorDetectionPrompt.ServersAvailableFade, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() end) moderatorDetectionPrompt.Serverhop.MouseLeave:Connect(function() tweenService:Create(moderatorDetectionPrompt.ServersAvailableFade, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end) moderatorDetectionPrompt.Serverhop.MouseButton1Click:Connect(function() if promptClosed then return end serverhop() closeModPrompt() end) moderatorDetectionPrompt.Close.MouseButton1Click:Connect(function() closeModPrompt() promptClosed = true end) end local function UpdateHome() if not checkSirius() then return end local function format(Int) return string.format("%02i", Int) end local function convertToHMS(Seconds) local Minutes = (Seconds - Seconds%60)/60 Seconds = Seconds - Minutes*60 local Hours = (Minutes - Minutes%60)/60 Minutes = Minutes - Hours*60 return format(Hours)..":"..format(Minutes)..":"..format(Seconds) end -- Home Title homeContainer.Title.Text = "Welcome home, "..localPlayer.DisplayName -- Players homeContainer.Interactions.Server.Players.Value.Text = #players:GetPlayers().." playing" homeContainer.Interactions.Server.MaxPlayers.Value.Text = players.MaxPlayers.." players can join this server" -- Ping homeContainer.Interactions.Server.Latency.Value.Text = math.floor(getPing()).."ms" -- Time homeContainer.Interactions.Server.Time.Value.Text = convertToHMS(time()) -- Region homeContainer.Interactions.Server.Region.Value.Text = "Unable to retrieve region" -- Player Information homeContainer.Interactions.User.Avatar.Image = "https://www.roblox.com/headshot-thumbnail/image?userId="..localPlayer.UserId.."&width=420&height=420&format=png" homeContainer.Interactions.User.Title.Text = localPlayer.DisplayName homeContainer.Interactions.User.Subtitle.Text = localPlayer.Name -- Update Executor homeContainer.Interactions.Client.Title.Text = identifyexecutor() if not table.find(siriusValues.executors, string.lower(identifyexecutor())) then homeContainer.Interactions.Client.Subtitle.Text = "This executor is not verified as supported." end -- Update Friends Statuses checkFriends() end local function openHome() if debounce then return end debounce = true homeContainer.Visible = true local homeBlur = Instance.new("BlurEffect", lighting) homeBlur.Size = 0 homeBlur.Name = "HomeBlur" homeContainer.BackgroundTransparency = 1 homeContainer.Title.TextTransparency = 1 homeContainer.Subtitle.TextTransparency = 1 for _, homeItem in ipairs(homeContainer.Interactions:GetChildren()) do wipeTransparency(homeItem, 1, true) homeItem.Position = UDim2.new(0, homeItem.Position.X.Offset - 20, 0, homeItem.Position.Y.Offset - 20) homeItem.Size = UDim2.new(0, homeItem.Size.X.Offset + 30, 0, homeItem.Size.Y.Offset + 20) if homeItem.UIGradient.Offset.Y > 0 then homeItem.UIGradient.Offset = Vector2.new(0, homeItem.UIGradient.Offset.Y + 3) homeItem.UIStroke.UIGradient.Offset = Vector2.new(0, homeItem.UIStroke.UIGradient.Offset.Y + 3) else homeItem.UIGradient.Offset = Vector2.new(0, homeItem.UIGradient.Offset.Y - 3) homeItem.UIStroke.UIGradient.Offset = Vector2.new(0, homeItem.UIStroke.UIGradient.Offset.Y - 3) end end tweenService:Create(homeContainer, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.9}):Play() tweenService:Create(homeBlur, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Size = 5}):Play() tweenService:Create(camera, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {FieldOfView = camera.FieldOfView + 5}):Play() task.wait(0.25) for _, inGameUI in ipairs(localPlayer:FindFirstChildWhichIsA("PlayerGui"):GetChildren()) do if inGameUI:IsA("ScreenGui") then if inGameUI.Enabled then if not table.find(getgenv().cachedInGameUI, inGameUI.Name) then table.insert(getgenv().cachedInGameUI, #getgenv().cachedInGameUI+1, inGameUI.Name) end inGameUI.Enabled = false end end end table.clear(getgenv().cachedCoreUI) for _, coreUI in pairs({"PlayerList", "Chat", "EmotesMenu", "Health", "Backpack"}) do if game:GetService("StarterGui"):GetCoreGuiEnabled(coreUI) then table.insert(getgenv().cachedCoreUI, #getgenv().cachedCoreUI+1, coreUI) end end for _, coreUI in pairs(getgenv().cachedCoreUI) do game:GetService("StarterGui"):SetCoreGuiEnabled(coreUI, false) end createReverb(0.8) tweenService:Create(camera, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {FieldOfView = camera.FieldOfView - 40}):Play() tweenService:Create(homeContainer, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() tweenService:Create(homeContainer.Title, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(homeContainer.Subtitle, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0.4}):Play() tweenService:Create(homeBlur, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Size = 20}):Play() for _, homeItem in ipairs(homeContainer.Interactions:GetChildren()) do for _, otherHomeItem in ipairs(homeItem:GetDescendants()) do if otherHomeItem.ClassName == "Frame" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() elseif otherHomeItem.ClassName == "TextLabel" then if otherHomeItem.Name == "Title" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() else tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() end elseif otherHomeItem.ClassName == "ImageLabel" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.8}):Play() tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() end end tweenService:Create(homeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(homeItem.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(homeItem, TweenInfo.new(0.5, Enum.EasingStyle.Back), {Position = UDim2.new(0, homeItem.Position.X.Offset + 20, 0, homeItem.Position.Y.Offset + 20)}):Play() tweenService:Create(homeItem, TweenInfo.new(0.5, Enum.EasingStyle.Back), {Size = UDim2.new(0, homeItem.Size.X.Offset - 30, 0, homeItem.Size.Y.Offset - 20)}):Play() task.delay(0.03, function() if homeItem.UIGradient.Offset.Y > 0 then tweenService:Create(homeItem.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, homeItem.UIGradient.Offset.Y - 3)}):Play() tweenService:Create(homeItem.UIStroke.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, homeItem.UIStroke.UIGradient.Offset.Y - 3)}):Play() else tweenService:Create(homeItem.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, homeItem.UIGradient.Offset.Y + 3)}):Play() tweenService:Create(homeItem.UIStroke.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, homeItem.UIStroke.UIGradient.Offset.Y + 3)}):Play() end end) task.wait(0.02) end task.wait(0.85) debounce = false end local function closeHome() if debounce then return end debounce = true tweenService:Create(camera, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {FieldOfView = camera.FieldOfView + 35}):Play() for _, obj in ipairs(lighting:GetChildren()) do if obj.Name == "HomeBlur" then tweenService:Create(obj, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = 0}):Play() task.delay(0.6, obj.Destroy, obj) end end tweenService:Create(homeContainer, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(homeContainer.Title, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(homeContainer.Subtitle, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, homeItem in ipairs(homeContainer.Interactions:GetChildren()) do for _, otherHomeItem in ipairs(homeItem:GetDescendants()) do if otherHomeItem.ClassName == "Frame" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() elseif otherHomeItem.ClassName == "TextLabel" then if otherHomeItem.Name == "Title" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() else tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end elseif otherHomeItem.ClassName == "ImageLabel" then tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(otherHomeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() end end tweenService:Create(homeItem, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(homeItem.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() end task.wait(0.2) for _, cachedInGameUIObject in pairs(getgenv().cachedInGameUI) do for _, currentPlayerUI in ipairs(localPlayer:FindFirstChildWhichIsA("PlayerGui"):GetChildren()) do if table.find(getgenv().cachedInGameUI, currentPlayerUI.Name) then currentPlayerUI.Enabled = true end end end for _, coreUI in pairs(getgenv().cachedCoreUI) do game:GetService("StarterGui"):SetCoreGuiEnabled(coreUI, true) end removeReverbs(0.5) task.wait(0.52) homeContainer.Visible = false debounce = false end local function openScriptSearch() debounce = true scriptSearch.Size = UDim2.new(0, 480, 0, 23) scriptSearch.Position = UDim2.new(0.5, 0, 0.5, 0) scriptSearch.SearchBox.Position = UDim2.new(0.509, 0, 0.5, 0) scriptSearch.Icon.Position = UDim2.new(0.04, 0, 0.5, 0) scriptSearch.SearchBox.Text = "" scriptSearch.UIGradient.Offset = Vector2.new(0, 2) scriptSearch.SearchBox.PlaceholderText = "Search ScriptBlox.com" scriptSearch.List.Template.Visible = false scriptSearch.List.Visible = false scriptSearch.Visible = true wipeTransparency(scriptSearch, 1, true) tweenService:Create(scriptSearch, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(scriptSearch, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Size = UDim2.new(0, 580, 0, 43)}):Play() tweenService:Create(scriptSearch.Shadow, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageTransparency = 0.85}):Play() task.wait(0.03) tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() task.wait(0.02) tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() task.wait(0.3) scriptSearch.SearchBox:CaptureFocus() task.wait(0.2) debounce = false end local function closeScriptSearch() debounce = true wipeTransparency(scriptSearch, 1, false) task.wait(0.1) scriptSearch.BackgroundColor3 = Color3.fromRGB(0, 0, 0) scriptSearch.UIGradient.Enabled = false tweenService:Create(scriptSearch, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 520, 0, 0)}):Play() scriptSearch.SearchBox:ReleaseFocus() task.wait(0.5) for _, createdScript in ipairs(scriptSearch.List:GetChildren()) do if createdScript.Name ~= "Placeholder" and createdScript.Name ~= "Template" and createdScript.ClassName == "Frame" then createdScript:Destroy() end end task.wait(0.1) scriptSearch.BackgroundColor3 = Color3.fromRGB(255 ,255, 255) scriptSearch.Visible = false scriptSearch.UIGradient.Enabled = true debounce = false end local function createScript(result) local newScript = UI.ScriptSearch.List.Template:Clone() newScript.Name = result.title newScript.Parent = UI.ScriptSearch.List newScript.Visible = true for _, tag in ipairs(newScript.Tags:GetChildren()) do if tag.ClassName == "Frame" then tag.Shadow.ImageTransparency = 1 tag.BackgroundTransparency = 1 tag.Title.TextTransparency = 1 end end task.spawn(function() local response local success, ErrorStatement = pcall(function() local responseRequest = httpRequest({ Url = "https://www.scriptblox.com/api/script/"..result['slug'], Method = "GET" }) response = httpService:JSONDecode(responseRequest.Body) end) newScript.ScriptDescription.Text = response.script.features local likes = response.script.likeCount local dislikes = response.script.dislikeCount if likes ~= dislikes then newScript.Tags.Review.Title.Text = (likes > dislikes) and "Positive Reviews" or "Negative Reviews" newScript.Tags.Review.BackgroundColor3 = (likes > dislikes) and Color3.fromRGB(0, 139, 102) or Color3.fromRGB(180, 0, 0) newScript.Tags.Review.Size = (likes > dislikes) and UDim2.new(0, 145, 1, 0) or UDim2.new(0, 150, 1, 0) elseif likes > 0 then newScript.Tags.Review.Title.Text = "Mixed Reviews" newScript.Tags.Review.BackgroundColor3 = Color3.fromRGB(198, 132, 0) newScript.Tags.Review.Size = UDim2.new(0, 130, 1, 0) else newScript.Tags.Review.Visible = false end newScript.ScriptAuthor.Text = "uploaded by "..response.script.owner.username newScript.Tags.Verified.Visible = response.script.owner.verified or false tweenService:Create(newScript, TweenInfo.new(.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.8}):Play() tweenService:Create(newScript.ScriptName, TweenInfo.new(.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(newScript.Execute, TweenInfo.new(.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.8}):Play() tweenService:Create(newScript.Execute, TweenInfo.new(.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() newScript.Tags.Visible = true tweenService:Create(newScript.ScriptDescription, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() tweenService:Create(newScript.ScriptAuthor, TweenInfo.new(.5, Enum.EasingStyle.Quint), {TextTransparency = 0.7}):Play() for _, tag in ipairs(newScript.Tags:GetChildren()) do if tag.ClassName == "Frame" then tweenService:Create(tag.Shadow, TweenInfo.new(.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(tag, TweenInfo.new(.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(tag.Title, TweenInfo.new(.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end end end) wipeTransparency(newScript, 1, true) newScript.ScriptName.Text = result.title newScript.Tags.Visible = false newScript.Tags.Patched.Visible = result.isPatched or false newScript.Execute.MouseButton1Click:Connect(function() queueNotification("ScriptSearch", "Running "..result.title.. " via ScriptSearch" , 4384403532) closeScriptSearch() loadstring(result.script)() end) end local function extractDomain(link) local domainToReturn = link:match("([%w-_]+%.[%w-_%.]+)") return domainToReturn end local function securityDetection(title, content, link, gradient, actions) if not checkSirius() then return end local domain = extractDomain(link) or link checkFolder() local currentAllowlist = isfile and isfile(siriusValues.siriusFolder.."/".."allowedLinks.srs") and readfile(siriusValues.siriusFolder.."/".."allowedLinks.srs") or nil if currentAllowlist then currentAllowlist = httpService:JSONDecode(currentAllowlist) if table.find(currentAllowlist, domain) then return true end end local newSecurityPrompt = securityPrompt:Clone() newSecurityPrompt.Parent = UI newSecurityPrompt.Name = link wipeTransparency(newSecurityPrompt, 1, true) newSecurityPrompt.Size = UDim2.new(0, 478, 0, 150) newSecurityPrompt.Title.Text = title newSecurityPrompt.Subtitle.Text = content newSecurityPrompt.FoundLink.Text = domain newSecurityPrompt.Visible = true newSecurityPrompt.UIGradient.Color = gradient newSecurityPrompt.Buttons.Template.Visible = false local function closeSecurityPrompt() tweenService:Create(newSecurityPrompt, TweenInfo.new(0.52, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 500, 0, 165)}):Play() tweenService:Create(newSecurityPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(newSecurityPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(newSecurityPrompt.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(newSecurityPrompt.FoundLink, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, button in ipairs(newSecurityPrompt.Buttons:GetChildren()) do if button.Name ~= "Template" and button.ClassName == "TextButton" then tweenService:Create(button, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(button, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end end task.wait(0.55) newSecurityPrompt:Destroy() end local decision for _, action in ipairs(actions) do local newAction = newSecurityPrompt.Buttons.Template:Clone() newAction.Name = action[1] newAction.Text = action[1] newAction.Parent = newSecurityPrompt.Buttons newAction.Visible = true newAction.Size = UDim2.new(0, newAction.TextBounds.X + 50, 0, 36) -- textbounds newAction.MouseButton1Click:Connect(function() if action[2] then if action[3] then checkFolder() if currentAllowlist then table.insert(currentAllowlist, domain) writefile(siriusValues.siriusFolder.."/".."allowedLinks.srs", httpService:JSONEncode(currentAllowlist)) else writefile(siriusValues.siriusFolder.."/".."allowedLinks.srs", httpService:JSONEncode({domain})) end end decision = true else decision = false end closeSecurityPrompt() end) end tweenService:Create(newSecurityPrompt, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 576, 0, 181)}):Play() tweenService:Create(newSecurityPrompt, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(newSecurityPrompt.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(newSecurityPrompt.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() task.wait(0.03) tweenService:Create(newSecurityPrompt.FoundLink, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() task.wait(0.1) for _, button in ipairs(newSecurityPrompt.Buttons:GetChildren()) do if button.Name ~= "Template" and button.ClassName == "TextButton" then tweenService:Create(button, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() tweenService:Create(button, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.05}):Play() task.wait(0.1) end end newSecurityPrompt.FoundLink.MouseEnter:Connect(function() newSecurityPrompt.FoundLink.Text = link tweenService:Create(newSecurityPrompt.FoundLink, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.4}):Play() end) newSecurityPrompt.FoundLink.MouseLeave:Connect(function() newSecurityPrompt.FoundLink.Text = domain tweenService:Create(newSecurityPrompt.FoundLink, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() end) repeat task.wait() until decision return decision end if Essential or Pro then getgenv()[index] = function(data) if checkSirius() and checkSetting("Intelligent HTTP Interception").current then local title = "Do you trust this source?" local content = "Sirius has prevented data from being sent off-client, would you like to allow data to be sent or retrieved from this source?" local url = data.Url or "Unknown Link" local gradient = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0, 0, 0)),ColorSequenceKeypoint.new(1, Color3.new(0.764706, 0.305882, 0.0941176))}) local actions = {{"Always Allow", true, true}, {"Allow just this once", true}, {"Don't Allow", false}} if url == "http://127.0.0.1:6463/rpc?v=1" then local bodyDecoded = httpService:JSONDecode(data.Body) if bodyDecoded.cmd == "INVITE_BROWSER" then title = "Would you like to join this Discord server?" content = "Sirius has prevented your Discord client from automatically joining this Discord server, would you like to continue and join, or block it?" url = bodyDecoded.args and "discord.gg/"..bodyDecoded.args.code or "Unknown Invite" gradient = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0, 0, 0)),ColorSequenceKeypoint.new(1, Color3.new(0.345098, 0.396078, 0.94902))}) actions = {{"Allow", true}, {"Don't Allow", false}} end end local answer = securityDetection(title, content, url, gradient, actions) if answer then return originalRequest(data) else return end else return originalRequest(data) end end getgenv()[indexSetClipboard] = function(data) if checkSirius() and checkSetting("Intelligent Clipboard Interception").current then local title = "Would you like to copy this to your clipboard?" local content = "Sirius has prevented a script from setting the below text to your clipboard, would you like to allow this, or prevent it from copying?" local url = data or "Unknown Clipboard" local gradient = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0, 0, 0)),ColorSequenceKeypoint.new(1, Color3.new(0.776471, 0.611765, 0.529412))}) local actions = {{"Allow", true}, {"Don't Allow", false}} local answer = securityDetection(title, content, url, gradient, actions) if answer then return originalSetClipboard(data) else return end else return originalSetClipboard(data) end end end local function searchScriptBlox(query) local response local success, ErrorStatement = pcall(function() local responseRequest = httpRequest({ Url = "https://scriptblox.com/api/script/search?q="..httpService:UrlEncode(query).."&mode=free&max=20&page=1", Method = "GET" }) response = httpService:JSONDecode(responseRequest.Body) end) if not success then queueNotification("ScriptSearch", "ScriptSearch backend encountered an error, try again later", 4384402990) closeScriptSearch() return end tweenService:Create(scriptSearch.NoScriptsTitle, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(scriptSearch.NoScriptsDesc, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, createdScript in ipairs(scriptSearch.List:GetChildren()) do if createdScript.Name ~= "Placeholder" and createdScript.Name ~= "Template" and createdScript.ClassName == "Frame" then wipeTransparency(createdScript, 1, true) end end scriptSearch.List.Visible = true task.wait(0.5) scriptSearch.List.CanvasPosition = Vector2.new(0,0) for _, createdScript in ipairs(scriptSearch.List:GetChildren()) do if createdScript.Name ~= "Placeholder" and createdScript.Name ~= "Template" and createdScript.ClassName == "Frame" then createdScript:Destroy() end end tweenService:Create(scriptSearch, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Size = UDim2.new(0, 580, 0, 529)}):Play() tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Position = UDim2.new(0.054, 0, 0.056, 0)}):Play() tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Position = UDim2.new(0.523, 0, 0.056, 0)}):Play() tweenService:Create(scriptSearch.UIGradient, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.6)}):Play() if response then local scriptCreated = false for _, scriptResult in pairs(response.result.scripts) do local success, response = pcall(function() createScript(scriptResult) end) scriptCreated = true end if not scriptCreated then task.wait(0.2) tweenService:Create(scriptSearch.NoScriptsTitle, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() task.wait(0.1) tweenService:Create(scriptSearch.NoScriptsDesc, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() else tweenService:Create(scriptSearch.List, TweenInfo.new(.3,Enum.EasingStyle.Quint), {ScrollBarImageTransparency = 0}):Play() end else queueNotification("ScriptSearch", "ScriptSearch backend encountered an error, try again later", 4384402990) closeScriptSearch() return end end local function openSmartBar() smartBarOpen = true coreGui.RobloxGui.Backpack.Position = UDim2.new(0,0,0,0) -- Set Values for frame properties smartBar.BackgroundTransparency = 1 smartBar.Time.TextTransparency = 1 smartBar.UIStroke.Transparency = 1 smartBar.Shadow.ImageTransparency = 1 smartBar.Visible = true smartBar.Position = UDim2.new(0.5, 0, 1.05, 0) smartBar.Size = UDim2.new(0, 531, 0, 64) toggle.Rotation = 180 toggle.Visible = not checkSetting("Hide Toggle Button").current if checkTools() then toggle.Position = UDim2.new(0.5,0,1,-68) else toggle.Position = UDim2.new(0.5, 0, 1, -5) end for _, button in ipairs(smartBar.Buttons:GetChildren()) do button.UIGradient.Rotation = -120 button.UIStroke.UIGradient.Rotation = -120 button.Size = UDim2.new(0,30,0,30) button.Position = UDim2.new(button.Position.X.Scale, 0, 1.3, 0) button.BackgroundTransparency = 1 button.UIStroke.Transparency = 1 button.Icon.ImageTransparency = 1 end tweenService:Create(coreGui.RobloxGui.Backpack, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(-0.325,0,0,0)}):Play() tweenService:Create(toggle, TweenInfo.new(0.82, Enum.EasingStyle.Quint), {Rotation = 0}):Play() tweenService:Create(smartBar, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 1, -12)}):Play() tweenService:Create(toastsContainer, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 1, -110)}):Play() tweenService:Create(toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Position = UDim2.new(0.5, 0, 1, -85)}):Play() tweenService:Create(smartBar, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Size = UDim2.new(0,581,0,70)}):Play() tweenService:Create(smartBar, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(smartBar.Shadow, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(smartBar.Time, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(smartBar.UIStroke, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Transparency = 0.95}):Play() tweenService:Create(toggle, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() for _, button in ipairs(smartBar.Buttons:GetChildren()) do tweenService:Create(button.UIStroke, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(button, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 36, 0, 36)}):Play() tweenService:Create(button.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Quint), {Rotation = 50}):Play() tweenService:Create(button.UIStroke.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Quint), {Rotation = 50}):Play() tweenService:Create(button, TweenInfo.new(0.8, Enum.EasingStyle.Exponential), {Position = UDim2.new(button.Position.X.Scale, 0, 0.5, 0)}):Play() tweenService:Create(button, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(button.Icon, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() task.wait(0.03) end end local function closeSmartBar() smartBarOpen = false for _, otherPanel in ipairs(UI:GetChildren()) do if smartBar.Buttons:FindFirstChild(otherPanel.Name) then if isPanel(otherPanel.Name) and otherPanel.Visible then task.spawn(closePanel, otherPanel.Name, true) task.wait() end end end tweenService:Create(smartBar.Time, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, Button in ipairs(smartBar.Buttons:GetChildren()) do tweenService:Create(Button.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(Button, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 30, 0, 30)}):Play() tweenService:Create(Button, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(Button.Icon, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() end tweenService:Create(coreGui.RobloxGui.Backpack, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 0, 0, 0)}):Play() tweenService:Create(smartBar, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {BackgroundTransparency = 1}):Play() tweenService:Create(smartBar.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(smartBar.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(smartBar, TweenInfo.new(0.5, Enum.EasingStyle.Back), {Size = UDim2.new(0,531,0,64)}):Play() tweenService:Create(smartBar, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5, 0,1, 73)}):Play() -- If tools, move the toggle if checkTools() then tweenService:Create(toggle, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5,0,1,-68)}):Play() tweenService:Create(toastsContainer, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5, 0, 1, -90)}):Play() tweenService:Create(toggle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Rotation = 180}):Play() else tweenService:Create(toastsContainer, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5, 0, 1, -28)}):Play() tweenService:Create(toggle, TweenInfo.new(0.45, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut), {Position = UDim2.new(0.5, 0, 1, -5)}):Play() tweenService:Create(toggle, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Rotation = 180}):Play() end end local function windowFocusChanged(value) if checkSirius() then if value then -- Window Focused setfpscap(tonumber(checkSetting("Artificial FPS Limit").current)) removeReverbs(0.5) else -- Window unfocused if checkSetting("Muffle audio while unfocused").current then createReverb(0.7) end if checkSetting("Limit FPS while unfocused").current then setfpscap(60) end end end end local function onChatted(player, message) local enabled = checkSetting("Chat Spy").current and siriusValues.chatSpy.enabled local chatSpyVisuals = siriusValues.chatSpy.visual if not message or not checkSirius() then return end if enabled and player ~= localPlayer then local message2 = message:gsub("[\n\r]",''):gsub("\t",' '):gsub("[ ]+",' ') local hidden = true local get = getMessage.OnClientEvent:Connect(function(packet, channel) if packet.SpeakerUserId == player.UserId and packet.Message == message2:sub(#message2-#packet.Message+1) and (channel=="All" or (channel=="Team" and players[packet.FromSpeaker].Team == localPlayer.Team)) then hidden = false end end) task.wait(1) get:Disconnect() if hidden and enabled then chatSpyVisuals.Text = "Sirius Spy - [".. player.Name .."]: "..message2 starterGui:SetCore("ChatMakeSystemMessage", chatSpyVisuals) end end if checkSetting("Log Messages").current then local logData = { ["content"] = message, ["avatar_url"] = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png", ["username"] = player.DisplayName, ["allowed_mentions"] = {parse = {}} } logData = httpService:JSONEncode(logData) pcall(function() local req = originalRequest({ Url = checkSetting("Message Webhook URL").current, Method = 'POST', Headers = { ['Content-Type'] = 'application/json', }, Body = logData }) end) end end local function sortPlayers() local newTable = playerlistPanel.Interactions.List:GetChildren() for index, player in ipairs(newTable) do if player.ClassName ~= "Frame" or player.Name == "Placeholder" then table.remove(newTable, index) end end table.sort(newTable, function(playerA, playerB) return playerA.Name < playerB.Name end) for index, frame in ipairs(newTable) do if frame.ClassName == "Frame" then if frame.Name ~= "Placeholder" then frame.LayoutOrder = index end end end end local function kill(player) -- kill end local function teleportTo(player) if players:FindFirstChild(player.Name) then queueNotification("Teleportation", "Teleporting to "..player.DisplayName..".") local target = workspace:FindFirstChild(player.Name).HumanoidRootPart localPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(target.Position.X, target.Position.Y, target.Position.Z) else queueNotification("Teleportation Error", player.DisplayName.." has left this server.") end end local function createPlayer(player) if not checkSirius() then return end if playerlistPanel.Interactions.List:FindFirstChild(player.DisplayName) then return end local newPlayer = playerlistPanel.Interactions.List.Template:Clone() newPlayer.Name = player.DisplayName newPlayer.Parent = playerlistPanel.Interactions.List newPlayer.Visible = not searchingForPlayer newPlayer.NoActions.Visible = false newPlayer.PlayerInteractions.Visible = false newPlayer.Role.Visible = false newPlayer.Size = UDim2.new(0, 539, 0, 45) newPlayer.DisplayName.Position = UDim2.new(0, 53, 0.5, 0) newPlayer.DisplayName.Size = UDim2.new(0, 224, 0, 16) newPlayer.Avatar.Size = UDim2.new(0, 30, 0, 30) sortPlayers() newPlayer.DisplayName.TextTransparency = 0 newPlayer.DisplayName.TextScaled = true newPlayer.DisplayName.FontFace.Weight = Enum.FontWeight.Medium newPlayer.DisplayName.Text = player.DisplayName newPlayer.Avatar.Image = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png" if creatorType == Enum.CreatorType.Group then task.spawn(function() local role = player:GetRoleInGroup(creatorId) if role == "Guest" then newPlayer.Role.Text = "Group Rank: None" else newPlayer.Role.Text = "Group Rank: "..role end newPlayer.Role.Visible = true newPlayer.Role.TextTransparency = 1 end) end local function openInteractions() if newPlayer.PlayerInteractions.Visible then return end newPlayer.PlayerInteractions.BackgroundTransparency = 1 for _, interaction in ipairs(newPlayer.PlayerInteractions:GetChildren()) do if interaction.ClassName == "Frame" and interaction.Name ~= "Placeholder" then interaction.BackgroundTransparency = 1 interaction.Shadow.ImageTransparency = 1 interaction.Icon.ImageTransparency = 1 interaction.UIStroke.Transparency = 1 end end newPlayer.PlayerInteractions.Visible = true for _, interaction in ipairs(newPlayer.PlayerInteractions:GetChildren()) do if interaction.ClassName == "Frame" and interaction.Name ~= "Placeholder" then tweenService:Create(interaction.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(interaction.Icon, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() tweenService:Create(interaction.Shadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(interaction, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() end end end local function closeInteractions() if not newPlayer.PlayerInteractions.Visible then return end for _, interaction in ipairs(newPlayer.PlayerInteractions:GetChildren()) do if interaction.ClassName == "Frame" and interaction.Name ~= "Placeholder" then tweenService:Create(interaction.UIStroke, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(interaction.Icon, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(interaction.Shadow, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(interaction, TweenInfo.new(0.3, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() end end task.wait(0.35) newPlayer.PlayerInteractions.Visible = false end newPlayer.MouseEnter:Connect(function() if debounce or not playerlistPanel.Visible then return end tweenService:Create(newPlayer.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() end) newPlayer.MouseLeave:Connect(function() if debounce or not playerlistPanel.Visible then return end task.spawn(closeInteractions) tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 53, 0.5, 0)}):Play() tweenService:Create(newPlayer, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 539, 0, 45)}):Play() tweenService:Create(newPlayer.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 30, 0, 30)}):Play() tweenService:Create(newPlayer.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(newPlayer.Role, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end) newPlayer.Interact.MouseButton1Click:Connect(function() if debounce or not playerlistPanel.Visible then return end if creatorType == Enum.CreatorType.Group then tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 73, 0.39, 0)}):Play() tweenService:Create(newPlayer.Role, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() else tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0, 73, 0.5, 0)}):Play() end if player ~= localPlayer then openInteractions() end tweenService:Create(newPlayer, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 539, 0, 75)}):Play() tweenService:Create(newPlayer.DisplayName, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(newPlayer.Avatar, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 50, 0, 50)}):Play() tweenService:Create(newPlayer.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() end) newPlayer.PlayerInteractions.Kill.Interact.MouseButton1Click:Connect(function() queueNotification("Simulation Notification","Simulating Kill Notification for "..player.DisplayName..".") tweenService:Create(newPlayer.PlayerInteractions.Kill, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(0, 124, 89)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Kill.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(220, 220, 220)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Kill.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Color = Color3.fromRGB(0, 134, 96)}):Play() kill(player) task.wait(1) tweenService:Create(newPlayer.PlayerInteractions.Kill, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(50, 50, 50)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Kill.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(100, 100, 100)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Kill.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Color = Color3.fromRGB(60, 60, 60)}):Play() end) newPlayer.PlayerInteractions.Teleport.Interact.MouseButton1Click:Connect(function() tweenService:Create(newPlayer.PlayerInteractions.Teleport, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(0, 152, 111)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Teleport.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(220, 220, 220)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Teleport.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Color = Color3.fromRGB(0, 152, 111)}):Play() teleportTo(player) task.wait(0.5) tweenService:Create(newPlayer.PlayerInteractions.Teleport, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {BackgroundColor3 = Color3.fromRGB(50, 50, 50)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Teleport.Icon, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(100, 100, 100)}):Play() tweenService:Create(newPlayer.PlayerInteractions.Teleport.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Color = Color3.fromRGB(60, 60, 60)}):Play() end) newPlayer.PlayerInteractions.Spectate.Interact.MouseButton1Click:Connect(function() queueNotification("Simulation Notification","Simulating Spectate Notification for "..player.DisplayName..".") -- Spectate end) newPlayer.PlayerInteractions.Locate.Interact.MouseButton1Click:Connect(function() queueNotification("Simulation Notification","Simulating Locate ESP Notification for "..player.DisplayName..".") -- ESP for that user only end) end local function removePlayer(player) if not checkSirius() then return end if playerlistPanel.Interactions.List:FindFirstChild(player.Name) then playerlistPanel.Interactions.List:FindFirstChild(player.Name):Destroy() end end local function openSettings() debounce = true settingsPanel.BackgroundTransparency = 1 settingsPanel.Title.TextTransparency = 1 settingsPanel.Subtitle.TextTransparency = 1 settingsPanel.Back.ImageTransparency = 1 settingsPanel.Shadow.ImageTransparency = 1 wipeTransparency(settingsPanel.SettingTypes, 1, true) settingsPanel.Visible = true settingsPanel.UIGradient.Enabled = true settingsPanel.BackgroundColor3 = Color3.fromRGB(255, 255, 255) settingsPanel.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0.0470588, 0.0470588, 0.0470588)),ColorSequenceKeypoint.new(1, Color3.new(0.0470588, 0.0470588, 0.0470588))}) settingsPanel.UIGradient.Offset = Vector2.new(0, 1.7) settingsPanel.SettingTypes.Visible = true settingsPanel.SettingLists.Visible = false settingsPanel.Size = UDim2.new(0, 550, 0, 340) settingsPanel.Title.Position = UDim2.new(0.045, 0, 0.057, 0) settingsPanel.Title.Text = "Settings" settingsPanel.Subtitle.Text = "Adjust your preferences, set new keybinds, test out new features and more." tweenService:Create(settingsPanel, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 613, 0, 384)}):Play() tweenService:Create(settingsPanel, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(settingsPanel.Shadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(settingsPanel.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(settingsPanel.Subtitle, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() task.wait(0.1) for _, settingType in ipairs(settingsPanel.SettingTypes:GetChildren()) do if settingType.ClassName == "Frame" then local gradientRotation = math.random(78, 95) tweenService:Create(settingType.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Rotation = gradientRotation}):Play() tweenService:Create(settingType.Shadow.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Rotation = gradientRotation}):Play() tweenService:Create(settingType.UIStroke.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Rotation = gradientRotation}):Play() tweenService:Create(settingType, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(settingType.Shadow, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() tweenService:Create(settingType.UIStroke, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(settingType.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() task.wait(0.02) end end for _, settingList in ipairs(settingsPanel.SettingLists:GetChildren()) do if settingList.ClassName == "ScrollingFrame" then for _, setting in ipairs(settingList:GetChildren()) do if setting.ClassName == "Frame" then setting.Visible = true end end end end debounce = false end local function closeSettings() debounce = true for _, settingType in ipairs(settingsPanel.SettingTypes:GetChildren()) do if settingType.ClassName == "Frame" then tweenService:Create(settingType, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() tweenService:Create(settingType.Shadow, TweenInfo.new(0.05, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(settingType.UIStroke, TweenInfo.new(0.05, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(settingType.Title, TweenInfo.new(0.05, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() end end tweenService:Create(settingsPanel.Shadow, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(settingsPanel.Back, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(settingsPanel.Title, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() tweenService:Create(settingsPanel.Subtitle, TweenInfo.new(0.1, Enum.EasingStyle.Quint), {TextTransparency = 1}):Play() for _, settingList in ipairs(settingsPanel.SettingLists:GetChildren()) do if settingList.ClassName == "ScrollingFrame" then for _, setting in ipairs(settingList:GetChildren()) do if setting.ClassName == "Frame" then setting.Visible = false end end end end tweenService:Create(settingsPanel, TweenInfo.new(0.4, Enum.EasingStyle.Quint), {Size = UDim2.new(0, 520, 0, 0)}):Play() tweenService:Create(settingsPanel, TweenInfo.new(0.55, Enum.EasingStyle.Quint), {BackgroundTransparency = 1}):Play() task.wait(0.55) settingsPanel.Visible = false debounce = false end local function saveSettings() checkFolder() if isfile and isfile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile) then writefile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile, httpService:JSONEncode(siriusSettings)) end end local function assembleSettings() if isfile and isfile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile) then local currentSettings local success, response = pcall(function() currentSettings = httpService:JSONDecode(readfile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile)) end) if success then for _, liveCategory in ipairs(siriusSettings) do for _, liveSetting in ipairs(liveCategory.categorySettings) do for _, category in ipairs(currentSettings) do for _, setting in ipairs(category.categorySettings) do if liveSetting.id == setting.id then liveSetting.current = setting.current end end end end end writefile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile, httpService:JSONEncode(siriusSettings)) -- Update file with any new settings added end else if writefile then checkFolder() if not isfile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile) then writefile(siriusValues.siriusFolder.."/"..siriusValues.settingsFile, httpService:JSONEncode(siriusSettings)) end end end for _, category in siriusSettings do local newCategory = settingsPanel.SettingTypes.Template:Clone() newCategory.Name = category.name newCategory.Title.Text = string.upper(category.name) newCategory.Parent = settingsPanel.SettingTypes newCategory.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0.0392157, 0.0392157, 0.0392157)),ColorSequenceKeypoint.new(1, category.color)}) newCategory.Visible = true local hue, sat, val = Color3.toHSV(category.color) hue = math.clamp(hue + 0.01, 0, 1) sat = math.clamp(sat + 0.1, 0, 1) val = math.clamp(val + 0.2, 0, 1) local newColor = Color3.fromHSV(hue, sat, val) newCategory.UIStroke.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0.117647, 0.117647, 0.117647)),ColorSequenceKeypoint.new(1, newColor)}) newCategory.Shadow.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0.117647, 0.117647, 0.117647)),ColorSequenceKeypoint.new(1, newColor)}) local newList = settingsPanel.SettingLists.Template:Clone() newList.Name = category.name newList.Parent = settingsPanel.SettingLists newList.Visible = true for _, obj in ipairs(newList:GetChildren()) do if obj.Name ~= "Placeholder" and obj.Name ~= "UIListLayout" then obj:Destroy() end end settingsPanel.Back.MouseButton1Click:Connect(function() tweenService:Create(settingsPanel.Back, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 1}):Play() tweenService:Create(settingsPanel.Back, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.002, 0, 0.052, 0)}):Play() tweenService:Create(settingsPanel.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.045, 0, 0.057, 0)}):Play() tweenService:Create(settingsPanel.UIGradient, TweenInfo.new(1, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, 1.3)}):Play() settingsPanel.Title.Text = "Settings" settingsPanel.Subtitle.Text = "Adjust your preferences, set new keybinds, test out new features and more" settingsPanel.SettingTypes.Visible = true settingsPanel.SettingLists.Visible = false end) newCategory.Interact.MouseButton1Click:Connect(function() if settingsPanel.SettingLists:FindFirstChild(category.name) then settingsPanel.UIGradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.new(0.0470588, 0.0470588, 0.0470588)),ColorSequenceKeypoint.new(1, category.color)}) settingsPanel.SettingTypes.Visible = false settingsPanel.SettingLists.Visible = true settingsPanel.SettingLists.UIPageLayout:JumpTo(settingsPanel.SettingLists[category.name]) settingsPanel.Subtitle.Text = category.description settingsPanel.Back.Visible = true settingsPanel.Title.Text = category.name local gradientRotation = math.random(78, 95) settingsPanel.UIGradient.Rotation = gradientRotation tweenService:Create(settingsPanel.UIGradient, TweenInfo.new(0.5, Enum.EasingStyle.Exponential), {Offset = Vector2.new(0, 0.65)}):Play() tweenService:Create(settingsPanel.Back, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() tweenService:Create(settingsPanel.Back, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.041, 0, 0.052, 0)}):Play() tweenService:Create(settingsPanel.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {Position = UDim2.new(0.091, 0, 0.057, 0)}):Play() else -- error closeSettings() end end) newCategory.MouseEnter:Connect(function() tweenService:Create(newCategory.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(newCategory.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.4)}):Play() tweenService:Create(newCategory.UIStroke.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.2)}):Play() tweenService:Create(newCategory.Shadow.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.2)}):Play() end) newCategory.MouseLeave:Connect(function() tweenService:Create(newCategory.Title, TweenInfo.new(0.5, Enum.EasingStyle.Quint), {TextTransparency = 0.2}):Play() tweenService:Create(newCategory.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.65)}):Play() tweenService:Create(newCategory.UIStroke.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.4)}):Play() tweenService:Create(newCategory.Shadow.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0, 0.4)}):Play() end) for _, setting in ipairs(category.categorySettings) do if not setting.hidden then local settingType = setting.settingType local minimumLicense = setting.minimumLicense local object = nil if settingType == "Boolean" then local newSwitch = settingsPanel.SettingLists.Template.SwitchTemplate:Clone() object = newSwitch newSwitch.Name = setting.name newSwitch.Parent = newList newSwitch.Visible = true newSwitch.Title.Text = setting.name if setting.current == true then newSwitch.Switch.Indicator.Position = UDim2.new(1, -20, 0.5, 0) newSwitch.Switch.Indicator.UIStroke.Color = Color3.fromRGB(220, 220, 220) newSwitch.Switch.Indicator.BackgroundColor3 = Color3.fromRGB(255, 255, 255) newSwitch.Switch.Indicator.BackgroundTransparency = 0.6 end if minimumLicense then if (minimumLicense == "Pro" and not Pro) or (minimumLicense == "Essential" and not (Pro or Essential)) then newSwitch.Switch.Indicator.Position = UDim2.new(1, -40, 0.5, 0) newSwitch.Switch.Indicator.UIStroke.Color = Color3.fromRGB(255, 255, 255) newSwitch.Switch.Indicator.BackgroundColor3 = Color3.fromRGB(235, 235, 235) newSwitch.Switch.Indicator.BackgroundTransparency = 0.75 end end newSwitch.Interact.MouseButton1Click:Connect(function() if minimumLicense then if (minimumLicense == "Pro" and not Pro) or (minimumLicense == "Essential" and not (Pro or Essential)) then queueNotification("This feature is locked", "You must be "..minimumLicense.." or higher to use "..setting.name..". \n\nUpgrade at https://sirius.menu.", 4483345875) return end end setting.current = not setting.current saveSettings() if setting.current == true then tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -20, 0.5, 0)}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() tweenService:Create(newSwitch.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(200, 200, 200)}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(255, 255, 255)}):Play() tweenService:Create(newSwitch.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.5}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.6}):Play() task.wait(0.05) tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() else tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.45, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -40, 0.5, 0)}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,12,0,12)}):Play() tweenService:Create(newSwitch.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Color = Color3.fromRGB(255, 255, 255)}):Play() tweenService:Create(newSwitch.Switch.Indicator.UIStroke, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.7}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.8, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundColor3 = Color3.fromRGB(235, 235, 235)}):Play() tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.55, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.75}):Play() task.wait(0.05) tweenService:Create(newSwitch.Switch.Indicator, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(0,17,0,17)}):Play() end end) elseif settingType == "Input" then local newInput = settingsPanel.SettingLists.Template.InputTemplate:Clone() object = newInput newInput.Name = setting.name newInput.InputFrame.InputBox.Text = setting.current newInput.InputFrame.InputBox.PlaceholderText = setting.placeholder or "input" newInput.Parent = newList if string.len(setting.current) > 19 then newInput.InputFrame.InputBox.Text = string.sub(tostring(setting.current), 1,17)..".." else newInput.InputFrame.InputBox.Text = setting.current end newInput.Visible = true newInput.Title.Text = setting.name newInput.InputFrame.InputBox.TextWrapped = false newInput.InputFrame.Size = UDim2.new(0, newInput.InputFrame.InputBox.TextBounds.X + 24, 0, 30) newInput.InputFrame.InputBox.FocusLost:Connect(function() if minimumLicense then if (minimumLicense == "Pro" and not Pro) or (minimumLicense == "Essential" and not (Pro or Essential)) then queueNotification("This feature is locked", "You must be "..minimumLicense.." or higher to use "..setting.name..". \n\nUpgrade at https://sirius.menu.", 4483345875) newInput.InputFrame.InputBox.Text = setting.current return end end if newInput.InputFrame.InputBox.Text ~= nil or "" then setting.current = newInput.InputFrame.InputBox.Text saveSettings() end if string.len(setting.current) > 24 then newInput.InputFrame.InputBox.Text = string.sub(tostring(setting.current), 1,22)..".." else newInput.InputFrame.InputBox.Text = setting.current end end) newInput.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function() tweenService:Create(newInput.InputFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, newInput.InputFrame.InputBox.TextBounds.X + 24, 0, 30)}):Play() end) elseif settingType == "Number" then local newInput = settingsPanel.SettingLists.Template.InputTemplate:Clone() object = newInput newInput.Name = setting.name newInput.InputFrame.InputBox.Text = tostring(setting.current) newInput.InputFrame.InputBox.PlaceholderText = setting.placeholder or "number" newInput.Parent = newList if string.len(setting.current) > 19 then newInput.InputFrame.InputBox.Text = string.sub(tostring(setting.current), 1,17)..".." else newInput.InputFrame.InputBox.Text = setting.current end newInput.Visible = true newInput.Title.Text = setting.name newInput.InputFrame.InputBox.TextWrapped = false newInput.InputFrame.Size = UDim2.new(0, newInput.InputFrame.InputBox.TextBounds.X + 24, 0, 30) newInput.InputFrame.InputBox.FocusLost:Connect(function() if minimumLicense then if (minimumLicense == "Pro" and not Pro) or (minimumLicense == "Essential" and not (Pro or Essential)) then queueNotification("This feature is locked", "You must be "..minimumLicense.." or higher to use "..setting.name..". \n\nUpgrade at https://sirius.menu.", 4483345875) newInput.InputFrame.InputBox.Text = setting.current return end end local inputValue = tonumber(newInput.InputFrame.InputBox.Text) if inputValue then if setting.values then local minValue = setting.values[1] local maxValue = setting.values[2] if inputValue < minValue then setting.current = minValue elseif inputValue > maxValue then setting.current = maxValue else setting.current = inputValue end saveSettings() else setting.current = inputValue saveSettings() end else newInput.InputFrame.InputBox.Text = tostring(setting.current) end if string.len(setting.current) > 24 then newInput.InputFrame.InputBox.Text = string.sub(tostring(setting.current), 1,22)..".." else newInput.InputFrame.InputBox.Text = tostring(setting.current) end end) newInput.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function() tweenService:Create(newInput.InputFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, newInput.InputFrame.InputBox.TextBounds.X + 24, 0, 30)}):Play() end) elseif settingType == "Key" then local newKeybind = settingsPanel.SettingLists.Template.InputTemplate:Clone() object = newKeybind newKeybind.Name = setting.name newKeybind.InputFrame.InputBox.PlaceholderText = setting.placeholder or "listening.." newKeybind.InputFrame.InputBox.Text = setting.current or "No Keybind" newKeybind.Parent = newList newKeybind.Visible = true newKeybind.Title.Text = setting.name newKeybind.InputFrame.InputBox.TextWrapped = false newKeybind.InputFrame.Size = UDim2.new(0, newKeybind.InputFrame.InputBox.TextBounds.X + 24, 0, 30) newKeybind.InputFrame.InputBox.FocusLost:Connect(function() checkingForKey = false if minimumLicense then if (minimumLicense == "Pro" and not Pro) or (minimumLicense == "Essential" and not (Pro or Essential)) then queueNotification("This feature is locked", "You must be "..minimumLicense.." or higher to use "..setting.name..". \n\nUpgrade at https://sirius.menu.", 4483345875) newKeybind.InputFrame.InputBox.Text = setting.current return end end if newKeybind.InputFrame.InputBox.Text == nil or newKeybind.InputFrame.InputBox.Text == "" then newKeybind.InputFrame.InputBox.Text = "No Keybind" setting.current = nil newKeybind.InputFrame.InputBox:ReleaseFocus() saveSettings() end end) newKeybind.InputFrame.InputBox.Focused:Connect(function() checkingForKey = {data = setting, object = newKeybind} newKeybind.InputFrame.InputBox.Text = "" end) newKeybind.InputFrame.InputBox:GetPropertyChangedSignal("Text"):Connect(function() tweenService:Create(newKeybind.InputFrame, TweenInfo.new(0.5, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = UDim2.new(0, newKeybind.InputFrame.InputBox.TextBounds.X + 24, 0, 30)}):Play() end) end if object then if setting.description then object.Description.Visible = true object.Description.TextWrapped = true object.Description.Size = UDim2.new(0, 333, 5, 0) object.Description.Size = UDim2.new(0, 333, 0, 999) object.Description.Text = setting.description object.Description.Size = UDim2.new(0, 333, 0, object.Description.TextBounds.Y + 10) object.Size = UDim2.new(0, 558, 0, object.Description.TextBounds.Y + 44) end if minimumLicense then object.LicenseDisplay.Visible = true object.Title.Position = UDim2.new(0, 18, 0, 26) object.Description.Position = UDim2.new(0, 18, 0, 43) object.Size = UDim2.new(0, 558, 0, object.Size.Y.Offset + 13) object.LicenseDisplay.Text = string.upper(minimumLicense).." FEATURE" end local objectTouching object.MouseEnter:Connect(function() objectTouching = true tweenService:Create(object.UIStroke, TweenInfo.new(0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.45}):Play() tweenService:Create(object, TweenInfo.new(0.35, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.83}):Play() end) object.MouseLeave:Connect(function() objectTouching = false tweenService:Create(object.UIStroke, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.6}):Play() tweenService:Create(object, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.9}):Play() end) if object:FindFirstChild('Interact') then object.Interact.MouseButton1Click:Connect(function() tweenService:Create(object.UIStroke, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 1}):Play() tweenService:Create(object, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.8}):Play() task.wait(0.1) if objectTouching then tweenService:Create(object.UIStroke, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.45}):Play() tweenService:Create(object, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.83}):Play() else tweenService:Create(object.UIStroke, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Transparency = 0.6}):Play() tweenService:Create(object, TweenInfo.new(0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {BackgroundTransparency = 0.9}):Play() end end) end end end end end end local function initialiseAntiKick() if checkSetting("Client-Based Anti Kick").current then if hookmetamethod then local originalIndex local originalNamecall originalIndex = hookmetamethod(game, "__index", function(self, method) if self == localPlayer and method:lower() == "kick" and checkSetting("Client-Based Anti Kick").current and checkSirius() then queueNotification("Kick Prevented", "Sirius has prevented you from being kicked by the client.", 4400699701) return error("Expected ':' not '.' calling member function Kick", 2) end return originalIndex(self, method) end) originalNamecall = hookmetamethod(game, "__namecall", function(self, ...) if self == localPlayer and getnamecallmethod():lower() == "kick" and checkSetting("Client-Based Anti Kick").current and checkSirius() then queueNotification("Kick Prevented", "Sirius has prevented you from being kicked by the client.", 4400699701) return end return originalNamecall(self, ...) end) end end end local function start() if siriusValues.releaseType == "Experimental" then -- Make this more secure. if not Pro then localPlayer:Kick("This is an experimental release, you must be Pro to run this. \n\nUpgrade at https://sirius.menu/") return end end windowFocusChanged(true) UI.Enabled = true assembleSettings() ensureFrameProperties() sortActions() initialiseAntiKick() checkLastVersion() smartBar.Time.Text = os.date("%H")..":"..os.date("%M") toggle.Visible = not checkSetting("Hide Toggle Button").current if not checkSetting("Load Hidden").current then if checkSetting("Startup Sound Effect").current then local startupPath = siriusValues.siriusFolder.."/Assets/startup.wav" local startupAsset if isfile(startupPath) then startupAsset = getcustomasset(startupPath) or nil else startupAsset = fetchFromCDN("startup.wav", true, "Assets/startup.wav") startupAsset = isfile(startupPath) and getcustomasset(startupPath) or nil end if not startupAsset then return end local startupSound = Instance.new("Sound") startupSound.Parent = UI startupSound.SoundId = startupAsset startupSound.Name = "startupSound" startupSound.Volume = 0.85 startupSound.PlayOnRemove = true startupSound:Destroy() end openSmartBar() else closeSmartBar() end if script_key and not Essential and not Pro then queueNotification("License Error", "We've detected a key being placed above Sirius loadstring, however your key seems to be invalid. Make a support request at sirius.menu/discord to get this solved within minutes.", "document-minus") end if siriusValues.enableExperienceSync then task.spawn(syncExperienceInformation) end end -- Sirius Events start() toggle.MouseButton1Click:Connect(function() if smartBarOpen then closeSmartBar() else openSmartBar() end end) characterPanel.Interactions.Reset.MouseButton1Click:Connect(function() resetSliders() characterPanel.Interactions.Reset.Rotation = 360 queueNotification("Slider Values Reset","Successfully reset all character panel sliders", 4400696294) tweenService:Create(characterPanel.Interactions.Reset, TweenInfo.new(.5,Enum.EasingStyle.Back), {Rotation = 0}):Play() end) characterPanel.Interactions.Reset.MouseEnter:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Reset, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() end) characterPanel.Interactions.Reset.MouseLeave:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Reset, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageTransparency = 0.7}):Play() end) local playerSearch = playerlistPanel.Interactions.SearchFrame.SearchBox -- move this up to Variables once finished playerSearch:GetPropertyChangedSignal("Text"):Connect(function() local query = string.lower(playerSearch.Text) for _, player in ipairs(playerlistPanel.Interactions.List:GetChildren()) do if player.ClassName == "Frame" and player.Name ~= "Placeholder" and player.Name ~= "Template" then if string.find(player.Name, playerSearch.Text) then player.Visible = true else player.Visible = false end end end if #playerSearch.Text == 0 then searchingForPlayer = false for _, player in ipairs(playerlistPanel.Interactions.List:GetChildren()) do if player.ClassName == "Frame" and player.Name ~= "Placeholder" and player.Name ~= "Template" then player.Visible = true end end else searchingForPlayer = true end end) characterPanel.Interactions.Serverhop.MouseEnter:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Serverhop, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.1}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 1}):Play() end) characterPanel.Interactions.Serverhop.MouseLeave:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Serverhop, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Serverhop.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 0}):Play() end) characterPanel.Interactions.Rejoin.MouseEnter:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Rejoin, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.1}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 1}):Play() end) characterPanel.Interactions.Rejoin.MouseLeave:Connect(function() if debounce then return end tweenService:Create(characterPanel.Interactions.Rejoin, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.5}):Play() tweenService:Create(characterPanel.Interactions.Rejoin.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 0}):Play() end) musicPanel.Close.MouseButton1Click:Connect(function() if musicPanel.Visible and not debounce then closeMusic() end end) musicPanel.Add.Interact.MouseButton1Click:Connect(function() musicPanel.AddBox.Input:ReleaseFocus() addToQueue(musicPanel.AddBox.Input.Text) end) musicPanel.Menu.TogglePlaying.MouseButton1Click:Connect(function() if currentAudio then currentAudio.Playing = not currentAudio.Playing musicPanel.Menu.TogglePlaying.ImageRectOffset = currentAudio.Playing and Vector2.new(804, 124) or Vector2.new(764, 244) end end) musicPanel.Menu.Next.MouseButton1Click:Connect(function() if currentAudio then if #musicQueue == 0 then currentAudio.Playing = false currentAudio.SoundId = "" return end if musicPanel.Queue.List:FindFirstChild(tostring(musicQueue[1].instanceName)) then musicPanel.Queue.List:FindFirstChild(tostring(musicQueue[1].instanceName)):Destroy() end musicPanel.Menu.TogglePlaying.ImageRectOffset = currentAudio.Playing and Vector2.new(804, 124) or Vector2.new(764, 244) table.remove(musicQueue, 1) playNext() end end) characterPanel.Interactions.Rejoin.Interact.MouseButton1Click:Connect(rejoin) characterPanel.Interactions.Serverhop.Interact.MouseButton1Click:Connect(serverhop) homeContainer.Interactions.Server.JobId.Interact.MouseButton1Click:Connect(function() if setclipboard then originalSetClipboard([[ -- This script will teleport you to ' ]]..game:GetService("MarketplaceService"):GetProductInfo(placeId).Name..[[' -- If it doesn't work after a few seconds, try going into the same game, and then run the script to join ]]..localPlayer.DisplayName.. [['s specific server game:GetService("TeleportService"):TeleportToPlaceInstance(']]..placeId..[[', ']]..jobId..[[')]] ) queueNotification("Copied Join Script","Successfully set clipboard to join script, players can use this script to join your specific server.", 4335479121) else queueNotification("Unable to copy join script","Missing setclipboard() function, can't set data to your clipboard.", 4335479658) end end) homeContainer.Interactions.Discord.Interact.MouseButton1Click:Connect(function() if setclipboard then originalSetClipboard("https://sirius.menu/discord") queueNotification("Discord Invite Copied", "We've set your clipboard to the Sirius discord invite.", 4335479121) else queueNotification("Unable to copy Discord invite", "Missing setclipboard() function, can't set data to your clipboard.", 4335479658) end end) for _, button in ipairs(scriptsPanel.Interactions.Selection:GetChildren()) do local origsize = button.Size button.MouseEnter:Connect(function() if not debounce then tweenService:Create(button, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(button, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Size = UDim2.new(0, button.Size.X.Offset - 5, 0, button.Size.Y.Offset - 3)}):Play() tweenService:Create(button.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(button.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.1}):Play() end end) button.MouseLeave:Connect(function() if not debounce then tweenService:Create(button, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(button, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Size = origsize}):Play() tweenService:Create(button.UIStroke, TweenInfo.new(.5,Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(button.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() end end) button.Interact.MouseButton1Click:Connect(function() tweenService:Create(button, TweenInfo.new(.4,Enum.EasingStyle.Quint), {Size = UDim2.new(0, origsize.X.Offset - 9, 0, origsize.Y.Offset - 6)}):Play() task.wait(0.1) tweenService:Create(button, TweenInfo.new(.25,Enum.EasingStyle.Quint), {Size = origsize}):Play() if button.Name == "Library" then if not scriptSearch.Visible and not debounce then openScriptSearch() end end -- run action end) end smartBar.Buttons.Music.Interact.MouseButton1Click:Connect(function() if debounce then return end if musicPanel.Visible then closeMusic() else openMusic() end end) smartBar.Buttons.Home.Interact.MouseButton1Click:Connect(function() if debounce then return end if homeContainer.Visible then closeHome() else openHome() end end) smartBar.Buttons.Settings.Interact.MouseButton1Click:Connect(function() if debounce then return end if settingsPanel.Visible then closeSettings() else openSettings() end end) for _, button in ipairs(smartBar.Buttons:GetChildren()) do if UI:FindFirstChild(button.Name) and button:FindFirstChild("Interact") then button.Interact.MouseButton1Click:Connect(function() if isPanel(button.Name) then if not debounce and UI:FindFirstChild(button.Name).Visible then task.spawn(closePanel, button.Name) else task.spawn(openPanel, button.Name) end end tweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {Size = UDim2.new(0,28,0,28)}):Play() tweenService:Create(button, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.6}):Play() tweenService:Create(button.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0.6}):Play() task.wait(0.15) tweenService:Create(button, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {Size = UDim2.new(0,36,0,36)}):Play() tweenService:Create(button, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(button.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.02}):Play() end) button.MouseEnter:Connect(function() tweenService:Create(button.UIGradient, TweenInfo.new(1.4, Enum.EasingStyle.Quint), {Rotation = 360}):Play() tweenService:Create(button.UIStroke.UIGradient, TweenInfo.new(1.4, Enum.EasingStyle.Quint), {Rotation = 360}):Play() tweenService:Create(button.UIStroke, TweenInfo.new(0.8, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(button.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0}):Play() tweenService:Create(button.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0,-0.5)}):Play() end) button.MouseLeave:Connect(function() tweenService:Create(button.UIStroke.UIGradient, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Rotation = 50}):Play() tweenService:Create(button.UIGradient, TweenInfo.new(0.9, Enum.EasingStyle.Quint), {Rotation = 50}):Play() tweenService:Create(button.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 0}):Play() tweenService:Create(button.Icon, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {ImageTransparency = 0.05}):Play() tweenService:Create(button.UIGradient, TweenInfo.new(0.7, Enum.EasingStyle.Quint), {Offset = Vector2.new(0,0)}):Play() end) end end userInputService.InputBegan:Connect(function(input, processed) if not checkSirius() then return end if checkingForKey then if input.KeyCode ~= Enum.KeyCode.Unknown then local splitMessage = string.split(tostring(input.KeyCode), ".") local newKeyNoEnum = splitMessage[3] checkingForKey.object.InputFrame.InputBox.Text = tostring(newKeyNoEnum) checkingForKey.data.current = tostring(newKeyNoEnum) checkingForKey.object.InputFrame.InputBox:ReleaseFocus() saveSettings() end return end for _, category in ipairs(siriusSettings) do for _, setting in ipairs(category.categorySettings) do if setting.settingType == "Key" then if setting.current ~= nil and setting.current ~= "" then if input.KeyCode == Enum.KeyCode[setting.current] and not processed then if setting.callback then task.spawn(setting.callback) local action = checkAction(setting.name) or nil if action then local object = action.object action = action.action if action.enabled then object.Icon.Image = "rbxassetid://"..action.images[1] tweenService:Create(object, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {BackgroundTransparency = 0.1}):Play() tweenService:Create(object.UIStroke, TweenInfo.new(0.6, Enum.EasingStyle.Quint), {Transparency = 1}):Play() tweenService:Create(object.Icon, TweenInfo.new(0.45, Enum.EasingStyle.Quint), {ImageTransparency = 0.1}):Play() if action.disableAfter then task.delay(action.disableAfter, function() action.enabled = false object.Icon.Image = "rbxassetid://"..action.images[2] tweenService:Create(object, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(object.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(object.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end) end if action.rotateWhileEnabled then repeat object.Icon.Rotation = 0 tweenService:Create(object.Icon, TweenInfo.new(0.75, Enum.EasingStyle.Quint), {Rotation = 360}):Play() task.wait(1) until not action.enabled object.Icon.Rotation = 0 end else object.Icon.Image = "rbxassetid://"..action.images[2] tweenService:Create(object, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.55}):Play() tweenService:Create(object.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.4}):Play() tweenService:Create(object.Icon, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {ImageTransparency = 0.5}):Play() end end end end end end end end if input.KeyCode == Enum.KeyCode[checkSetting("Open ScriptSearch").current] and not processed and not debounce then if scriptSearch.Visible then closeScriptSearch() else openScriptSearch() end end if input.KeyCode == Enum.KeyCode[checkSetting("Toggle smartBar").current] and not processed and not debounce then if smartBarOpen then closeSmartBar() else openSmartBar() end end end) userInputService.InputEnded:Connect(function(input, processed) if not checkSirius() then return end if input.UserInputType == Enum.UserInputType.MouseButton1 then for _, slider in pairs(siriusValues.sliders) do slider.active = false if characterPanel.Visible and not debounce and slider.object and checkSirius() then tweenService:Create(slider.object, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {BackgroundTransparency = 0.8}):Play() tweenService:Create(slider.object.UIStroke, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {Transparency = 0.5}):Play() tweenService:Create(slider.object.Information, TweenInfo.new(0.4, Enum.EasingStyle.Exponential), {TextTransparency = 0.3}):Play() end end end end) camera:GetPropertyChangedSignal('ViewportSize'):Connect(function() task.wait(.5) updateSliderPadding() end) scriptSearch.SearchBox:GetPropertyChangedSignal("Text"):Connect(function() if #scriptSearch.SearchBox.Text > 0 then tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play() tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() else tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(150, 150, 150)}):Play() tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(150, 150, 150)}):Play() end end) scriptSearch.SearchBox.FocusLost:Connect(function(enterPressed) tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(150, 150, 150)}):Play() tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(150, 150, 150)}):Play() if #scriptSearch.SearchBox.Text > 0 then if enterPressed then local success, response = pcall(function() searchScriptBlox(scriptSearch.SearchBox.Text) end) end else closeScriptSearch() end end) scriptSearch.SearchBox.Focused:Connect(function() if #scriptSearch.SearchBox.Text > 0 then tweenService:Create(scriptSearch.Icon, TweenInfo.new(.5,Enum.EasingStyle.Quint), {ImageColor3 = Color3.fromRGB(255, 255, 255)}):Play() tweenService:Create(scriptSearch.SearchBox, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() end end) mouse.Move:Connect(function() for _, slider in pairs(siriusValues.sliders) do if slider.active then updateSlider(slider) end end end) userInputService.WindowFocusReleased:Connect(function() windowFocusChanged(false) end) userInputService.WindowFocused:Connect(function() windowFocusChanged(true) end) for index, player in ipairs(players:GetPlayers()) do createPlayer(player) createEsp(player) player.Chatted:Connect(function(message) onChatted(player, message) end) end players.PlayerAdded:Connect(function(player) if not checkSirius() then return end createPlayer(player) createEsp(player) player.Chatted:Connect(function(message) onChatted(player, message) end) if checkSetting("Log PlayerAdded and PlayerRemoving").current then local logData = { ["content"] = player.DisplayName.." (@"..player.Name..") left the server.", ["avatar_url"] = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png", ["username"] = player.DisplayName, ["allowed_mentions"] = {parse = {}} } logData = httpService:JSONEncode(logData) pcall(function() local req = originalRequest({ Url = checkSetting("Player Added and Removing Webhook URL").current, Method = 'POST', Headers = { ['Content-Type'] = 'application/json', }, Body = logData }) end) end if checkSetting("Moderator Detection").current and Pro then local roleFound = player:GetRoleInGroup(creatorId) if siriusValues.currentCreator == "group" then for _, role in pairs(siriusValues.administratorRoles) do if string.find(string.lower(roleFound), role) then promptModerator(player, roleFound) queueNotification("Administrator Joined", siriusValues.currentGroup .." "..roleFound.." ".. player.DisplayName .." has joined your session", 3944670656) -- change to group name end end end end if checkSetting("Friend Notifications").current then if localPlayer:IsFriendsWith(player.UserId) then queueNotification("Friend Joined", "Your friend "..player.DisplayName.." has joined your server.", 4370335364) end end end) players.PlayerRemoving:Connect(function(player) if checkSetting("Log PlayerAdded and PlayerRemoving").current then local logData = { ["content"] = player.DisplayName.." (@"..player.Name..") joined the server.", ["avatar_url"] = "https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png", ["username"] = player.DisplayName, ["allowed_mentions"] = {parse = {}} } logData = httpService:JSONEncode(logData) pcall(function() local req = originalRequest({ Url = checkSetting("Player Added and Removing Webhook URL").current, Method = 'POST', Headers = { ['Content-Type'] = 'application/json', }, Body = logData }) end) end removePlayer(player) local highlight = espContainer:FindFirstChild(player.Name) if highlight then highlight:Destroy() end end) runService.RenderStepped:Connect(function(frame) if not checkSirius() then return end local fps = math.round(1/frame) table.insert(siriusValues.frameProfile.fpsQueue, fps) siriusValues.frameProfile.totalFPS += fps if #siriusValues.frameProfile.fpsQueue > siriusValues.frameProfile.fpsQueueSize then siriusValues.frameProfile.totalFPS -= siriusValues.frameProfile.fpsQueue[1] table.remove(siriusValues.frameProfile.fpsQueue, 1) end end) runService.Stepped:Connect(function() if not checkSirius() then return end local character = localPlayer.Character if character then -- No Clip local noclipEnabled = siriusValues.actions[1].enabled local flingEnabled = siriusValues.actions[6].enabled for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then if noclipDefaults[part] == nil then task.wait() noclipDefaults[part] = part.CanCollide else if noclipEnabled or flingEnabled then part.CanCollide = false else part.CanCollide = noclipDefaults[part] end end end end end end) runService.Heartbeat:Connect(function() if not checkSirius() then return end local character = localPlayer.Character local primaryPart = character and character.PrimaryPart if primaryPart then local bodyVelocity, bodyGyro = unpack(movers) if not bodyVelocity then bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.one * 9e9 bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.one * 9e9 bodyGyro.P = 9e4 local bodyAngularVelocity = Instance.new("BodyAngularVelocity") bodyAngularVelocity.AngularVelocity = Vector3.yAxis * 9e9 bodyAngularVelocity.MaxTorque = Vector3.yAxis * 9e9 bodyAngularVelocity.P = 9e9 movers = { bodyVelocity, bodyGyro, bodyAngularVelocity } end -- Fly if siriusValues.actions[2].enabled then local camCFrame = camera.CFrame local velocity = Vector3.zero local rotation = camCFrame.Rotation if userInputService:IsKeyDown(Enum.KeyCode.W) then velocity += camCFrame.LookVector rotation *= CFrame.Angles(math.rad(-40), 0, 0) end if userInputService:IsKeyDown(Enum.KeyCode.S) then velocity -= camCFrame.LookVector rotation *= CFrame.Angles(math.rad(40), 0, 0) end if userInputService:IsKeyDown(Enum.KeyCode.D) then velocity += camCFrame.RightVector rotation *= CFrame.Angles(0, 0, math.rad(-40)) end if userInputService:IsKeyDown(Enum.KeyCode.A) then velocity -= camCFrame.RightVector rotation *= CFrame.Angles(0, 0, math.rad(40)) end if userInputService:IsKeyDown(Enum.KeyCode.Space) then velocity += Vector3.yAxis end if userInputService:IsKeyDown(Enum.KeyCode.LeftShift) then velocity -= Vector3.yAxis end local tweenInfo = TweenInfo.new(0.5) tweenService:Create(bodyVelocity, tweenInfo, { Velocity = velocity * siriusValues.sliders[3].value * 45 }):Play() bodyVelocity.Parent = primaryPart if not siriusValues.actions[6].enabled then tweenService:Create(bodyGyro, tweenInfo, { CFrame = rotation }):Play() bodyGyro.Parent = primaryPart end else bodyVelocity.Parent = nil bodyGyro.Parent = nil end end end) runService.Heartbeat:Connect(function(frame) if not checkSirius() then return end if Pro then if checkSetting("Spatial Shield").current and tonumber(checkSetting("Spatial Shield Threshold").current) then for index, sound in next, soundInstances do if not sound then table.remove(soundInstances, index) elseif gameSettings.MasterVolume * sound.PlaybackLoudness * sound.Volume >= tonumber(checkSetting("Spatial Shield Threshold").current) then if sound.Volume > 0.55 then suppressedSounds[sound.SoundId] = "S" sound.Volume = 0.5 elseif sound.Volume > 0.2 and sound.Volume < 0.55 then suppressedSounds[sound.SoundId] = "S2" sound.Volume = 0.1 elseif sound.Volume < 0.2 then suppressedSounds[sound.SoundId] = "Mute" sound.Volume = 0 end if soundSuppressionNotificationCooldown == 0 then queueNotification("Spatial Shield","A high-volume audio is being played ("..sound.Name..") and it has been suppressed.", 4483362458) soundSuppressionNotificationCooldown = 15 end table.remove(soundInstances, index) end end end end if checkSetting("Anonymous Client").current then for _, text in ipairs(cachedText) do local lowerText = string.lower(text.Text) if string.find(lowerText, lowerName, 1, true) or string.find(lowerText, lowerDisplayName, 1, true) then storeOriginalText(text) local newText = string.gsub(string.gsub(lowerText, lowerName, randomUsername), lowerDisplayName, randomUsername) text.Text = string.gsub(newText, "^%l", string.upper) end end else undoAnonymousChanges() end end) for _, instance in next, game:GetDescendants() do if instance:IsA("Sound") then if suppressedSounds[instance.SoundId] then if suppressedSounds[instance.SoundId] == "S" then instance.Volume = 0.5 elseif suppressedSounds[instance.SoundId] == "S2" then instance.Volume = 0.1 else instance.Volume = 0 end else if not table.find(cachedIds, instance.SoundId) then table.insert(soundInstances, instance) table.insert(cachedIds, instance.SoundId) end end elseif instance:IsA("TextLabel") or instance:IsA("TextButton") then if not table.find(cachedText, instance) then table.insert(cachedText, instance) end end end game.DescendantAdded:Connect(function(instance) if checkSirius() then if instance:IsA("Sound") then if suppressedSounds[instance.SoundId] then if suppressedSounds[instance.SoundId] == "S" then instance.Volume = 0.5 elseif suppressedSounds[instance.SoundId] == "S2" then instance.Volume = 0.1 else instance.Volume = 0 end else if not table.find(cachedIds, instance.SoundId) then table.insert(soundInstances, instance) table.insert(cachedIds, instance.SoundId) end end elseif instance:IsA("TextLabel") or instance:IsA("TextButton") then if not table.find(cachedText, instance) then table.insert(cachedText, instance) end end end end) while task.wait(1) do if not checkSirius() then if espContainer then espContainer:Destroy() end undoAnonymousChanges() break end smartBar.Time.Text = os.date("%H")..":"..os.date("%M") task.spawn(UpdateHome) for _, connection in getconnections(localPlayer.Idled) do if not checkSetting("Anti Idle").current then connection:Enable() else connection:Disable() end end toggle.Visible = not checkSetting("Hide Toggle Button").current -- Disconnected Check local disconnectedRobloxUI = coreGui.RobloxPromptGui.promptOverlay:FindFirstChild("ErrorPrompt") if disconnectedRobloxUI and not promptedDisconnected then local reasonPrompt = disconnectedRobloxUI.MessageArea.ErrorFrame.ErrorMessage.Text promptedDisconnected = true disconnectedPrompt.Parent = coreGui.RobloxPromptGui local disconnectType local foundString for _, preDisconnectType in ipairs(siriusValues.disconnectTypes) do for _, typeString in pairs(preDisconnectType[2]) do if string.find(reasonPrompt, typeString) then disconnectType = preDisconnectType[1] foundString = true break end end end if not foundString then disconnectType = "kick" end wipeTransparency(disconnectedPrompt, 1, true) disconnectedPrompt.Visible = true if disconnectType == "ban" then disconnectedPrompt.Content.Text = "You've been banned, would you like to leave this server?" disconnectedPrompt.Action.Text = "Leave" disconnectedPrompt.Action.Size = UDim2.new(0, 77, 0, 36) -- use textbounds disconnectedPrompt.UIGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0,0,0)), ColorSequenceKeypoint.new(1, Color3.new(0.819608, 0.164706, 0.164706)) }) elseif disconnectType == "kick" then disconnectedPrompt.Content.Text = "You've been kicked, would you like to serverhop?" disconnectedPrompt.Action.Text = "Serverhop" disconnectedPrompt.Action.Size = UDim2.new(0, 114, 0, 36) disconnectedPrompt.UIGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0,0,0)), ColorSequenceKeypoint.new(1, Color3.new(0.0862745, 0.596078, 0.835294)) }) elseif disconnectType == "network" then disconnectedPrompt.Content.Text = "You've lost connection, would you like to rejoin?" disconnectedPrompt.Action.Text = "Rejoin" disconnectedPrompt.Action.Size = UDim2.new(0, 82, 0, 36) disconnectedPrompt.UIGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0,0,0)), ColorSequenceKeypoint.new(1, Color3.new(0.862745, 0.501961, 0.0862745)) }) end tweenService:Create(disconnectedPrompt, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0}):Play() tweenService:Create(disconnectedPrompt.Title, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() tweenService:Create(disconnectedPrompt.Content, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0.3}):Play() tweenService:Create(disconnectedPrompt.Action, TweenInfo.new(.5,Enum.EasingStyle.Quint), {BackgroundTransparency = 0.7}):Play() tweenService:Create(disconnectedPrompt.Action, TweenInfo.new(.5,Enum.EasingStyle.Quint), {TextTransparency = 0}):Play() disconnectedPrompt.Action.MouseButton1Click:Connect(function() if disconnectType == "ban" then game:Shutdown() -- leave elseif disconnectType == "kick" then serverhop() elseif disconnectType == "network" then rejoin() end end) end if Pro then -- all Pro checks here! -- Two-Way Adaptive Latency Checks if checkHighPing() then if siriusValues.pingProfile.pingNotificationCooldown <= 0 then if checkSetting("Adaptive Latency Warning").current then queueNotification("High Latency Warning","We've noticed your latency has reached a higher value than usual, you may find that you are lagging or your actions are delayed in-game. Consider checking for any background downloads on your machine.", 4370305588) siriusValues.pingProfile.pingNotificationCooldown = 120 end end end if siriusValues.pingProfile.pingNotificationCooldown > 0 then siriusValues.pingProfile.pingNotificationCooldown -= 1 end -- Adaptive frame time checks if siriusValues.frameProfile.frameNotificationCooldown <= 0 then if #siriusValues.frameProfile.fpsQueue > 0 then local avgFPS = siriusValues.frameProfile.totalFPS / #siriusValues.frameProfile.fpsQueue if avgFPS < siriusValues.frameProfile.lowFPSThreshold then if checkSetting("Adaptive Performance Warning").current then queueNotification("Degraded Performance","We've noticed your client's frames per second have decreased. Consider checking for any background tasks or programs on your machine.", 4384400106) siriusValues.frameProfile.frameNotificationCooldown = 120 end end end end if siriusValues.frameProfile.frameNotificationCooldown > 0 then siriusValues.frameProfile.frameNotificationCooldown -= 1 end end end