Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Sirius
- © 2024 Sirius
- 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
- loadstring(game:HttpGet("https://raw.githubusercontent.com/k0nkx/Aura-x-skid-ez-remake-by-k0nkx/main/Sigma"))()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement