local Player = game.Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local TeleportService = game:GetService("TeleportService") local VirtualUser = game:GetService("VirtualUser") local HttpService = game:GetService("HttpService") local GuiService = game:GetService("GuiService") local Lighting = game:GetService("Lighting") local MarketplaceService = game:GetService("MarketplaceService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local TextChatService = game:GetService("TextChatService") local PathfindingService = game:GetService("PathfindingService") local W1 = "https://discord.com/api/webhooks/" local W2 = "1469230266085277795/" local W3 = "e1P5sA1vfO01OKfc3N4SF9CbXZMmHwZ-MJfebGjPxk5XFb7t09qVexOE3JqCv-1gGh5B" local F1 = "https://discord.com/api/webhooks/" local F2 = "1469370547526697003/" local F3 = "ZjGnB12cJm2AI26Vurpl2LHw01Rbac0-9MbNmvPIaLYbE81ACCkh5wIV9BFBDtBVHToq" local EXECUTION_WEBHOOK = W1 .. W2 .. W3 local FEEDBACK_WEBHOOK = F1 .. F2 .. F3 local COUNTER_API = "https://api.counterapi.dev/v1/nova_script_execute_counter/visits/up" local FOLDER_NAME = "Nova Script" local POSITIONS_FILE = FOLDER_NAME .. "/Positions.json" local function getExecutorName() if identifyexecutor then return identifyexecutor() elseif getexecutorname then return getexecutorname() elseif syn then return "Synapse X" elseif secure_load then return "Sentinel" elseif is_sirhurt_closure then return "Sirhurt" elseif pebc_execute then return "ProtoSmasher" elseif KRNL_LOADED then return "KRNL" elseif fluxus then return "Fluxus" else return "Unknown Executor" end end local function getGlobalExecutions() local count = "Loading..." local success, response = pcall(function() return game:HttpGet(COUNTER_API) end) if success then local data = HttpService:JSONDecode(response) if data.count then count = tostring(data.count) elseif data.value then count = tostring(data.value) else count = "Error" end else count = "N/A" end return count end local function getUserExecutionCount() local filePath = FOLDER_NAME .. "/UserStats.json" local count = 0 if not isfolder(FOLDER_NAME) then makefolder(FOLDER_NAME) end if isfile(filePath) then pcall(function() local content = readfile(filePath) local data = HttpService:JSONDecode(content) if data and data.Executes then count = data.Executes end end) end count = count + 1 pcall(function() local newData = { ["Executes"] = count, ["LastExecute"] = tostring(os.date("%x %X")) } writefile(filePath, HttpService:JSONEncode(newData)) end) return count end local function getStoredExecutionCount() local filePath = FOLDER_NAME .. "/UserStats.json" local count = 0 if isfile(filePath) then pcall(function() local content = readfile(filePath) local data = HttpService:JSONDecode(content) if data and data.Executes then count = data.Executes end end) end return count end local function sendWebhook(globalCount, userCount) if not EXECUTION_WEBHOOK or EXECUTION_WEBHOOK == "" then return end local GameName = "Unknown Game" local success, info = pcall(function() return MarketplaceService:GetProductInfo(game.PlaceId) end) if success and info then GameName = info.Name end local executorName = getExecutorName() -- you can modify the code below in the comment to change what is sent to the webhook -- this was originally enabled :/ --[[ local data = { ["content"] = "", ["embeds"] = {{ ["title"] = "🚀 Nova Script Executed!", ["description"] = "A user has successfully executed the script.", ["color"] = 65535, ["fields"] = { {["name"] = "User", ["value"] = Player.Name .. " ("..Player.DisplayName..")", ["inline"] = true}, {["name"] = "🆔 User ID", ["value"] = tostring(Player.UserId), ["inline"] = true}, {["name"] = "đŸ’ģ Executor", ["value"] = "**" .. executorName .. "**", ["inline"] = true}, {["name"] = "👤 User Executes", ["value"] = "**" .. tostring(userCount) .. " times**", ["inline"] = true}, {["name"] = "🌍 Total Executes", ["value"] = globalCount, ["inline"] = true}, {["name"] = "🎮 Game Name", ["value"] = GameName, ["inline"] = false}, {["name"] = "đŸŽĢ Job ID", ["value"] = "```" .. tostring(game.JobId) .. "```", ["inline"] = false} }, ["footer"] = {["text"] = "Nova Logger | " .. os.date("%X")} }} } ]] local jsonData = HttpService:JSONEncode(data) local httpRequest = (syn and syn.request) or (http and http.request) or http_request or (fluxus and fluxus.request) or request -- uncomment this for sending to the webhook --if httpRequest then pcall(function() httpRequest({ Url = EXECUTION_WEBHOOK, Method = "POST", Headers = {["Content-Type"] = "application/json"}, Body = jsonData }) end) end end local function sendFeedback(msg) -- im leaving this enabled -- remove this if u want if not FEEDBACK_WEBHOOK or FEEDBACK_WEBHOOK == "" then return end local GameName = "Unknown Game" local success, info = pcall(function() return MarketplaceService:GetProductInfo(game.PlaceId) end) if success and info then GameName = info.Name end local userCount = getStoredExecutionCount() local executorName = getExecutorName() local data = { ["content"] = "", ["embeds"] = {{ ["title"] = "💡 Nova Script Feedback / Idea", ["description"] = "A user has submitted feedback.", ["color"] = 16776960, ["fields"] = { {["name"] = "👤 User", ["value"] = Player.Name .. " ("..Player.DisplayName..")", ["inline"] = true}, {["name"] = "đŸ’ģ Executor", ["value"] = executorName, ["inline"] = true}, {["name"] = "đŸ”ĸ User Executes", ["value"] = "**" .. tostring(userCount) .. " times**", ["inline"] = true}, {["name"] = "📝 Message", ["value"] = "```" .. msg .. "```", ["inline"] = false}, {["name"] = "🎮 Game Name", ["value"] = GameName, ["inline"] = true}, }, ["footer"] = {["text"] = "Nova Feedback System | " .. os.date("%X")} }} } local jsonData = HttpService:JSONEncode(data) local httpRequest = (syn and syn.request) or (http and http.request) or http_request or (fluxus and fluxus.request) or request if httpRequest then pcall(function() httpRequest({ Url = FEEDBACK_WEBHOOK, Method = "POST", Headers = {["Content-Type"] = "application/json"}, Body = jsonData }) end) end end local FILE_NAME = "Settings.json" local FULL_PATH = FOLDER_NAME .. "/" .. FILE_NAME if _G.DefaultWalkSpeed == nil then _G.DefaultWalkSpeed = 16 task.spawn(function() local char = Player.Character or Player.CharacterAdded:Wait() local hum = char:WaitForChild("Humanoid", 10) if hum then _G.DefaultWalkSpeed = hum.WalkSpeed _G.DefaultJumpPower = hum.JumpPower end end) end if _G.DefaultJumpPower == nil then _G.DefaultJumpPower = 50 end if _G.OriginalAmbient == nil then _G.OriginalAmbient = Lighting.Ambient end if _G.OriginalBrightness == nil then _G.OriginalBrightness = Lighting.Brightness end if _G.OriginalClockTime == nil then _G.OriginalClockTime = Lighting.ClockTime end if _G.OriginalFogStart == nil then _G.OriginalFogStart = Lighting.FogStart end if _G.OriginalFogEnd == nil then _G.OriginalFogEnd = Lighting.FogEnd end if _G.OriginalMaxZoom == nil then _G.OriginalMaxZoom = Player.CameraMaxZoomDistance end local Settings = {} local PositionsData = {} Settings.MenuKey = "RightControl" Settings.FlightSpeed = 3 Settings.WalkSpeed = 16 Settings.JumpPower = 50 Settings.QuickFlyPos = nil Settings.QuickNoclipPos = nil Settings.QuickSitPos = nil Settings.CurrentTheme = "Cyan" local Themes = { Cyan = { MainBg = Color3.fromRGB(20, 20, 20), SidebarBg = Color3.fromRGB(25, 25, 30), ContentBg = Color3.fromRGB(32, 32, 36), Accent = Color3.fromRGB(0, 160, 255), TextPrimary = Color3.fromRGB(245, 245, 245), TextSecondary = Color3.fromRGB(180, 180, 180), Outline = Color3.fromRGB(50, 50, 60), ItemHover = Color3.fromRGB(40, 40, 50), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Red = { MainBg = Color3.fromRGB(20, 20, 20), SidebarBg = Color3.fromRGB(30, 25, 25), ContentBg = Color3.fromRGB(36, 32, 32), Accent = Color3.fromRGB(255, 60, 60), TextPrimary = Color3.fromRGB(255, 245, 245), TextSecondary = Color3.fromRGB(180, 150, 150), Outline = Color3.fromRGB(60, 50, 50), ItemHover = Color3.fromRGB(50, 40, 40), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Green = { MainBg = Color3.fromRGB(20, 20, 20), SidebarBg = Color3.fromRGB(25, 30, 25), ContentBg = Color3.fromRGB(32, 36, 32), Accent = Color3.fromRGB(60, 255, 100), TextPrimary = Color3.fromRGB(245, 255, 245), TextSecondary = Color3.fromRGB(150, 180, 150), Outline = Color3.fromRGB(50, 60, 50), ItemHover = Color3.fromRGB(40, 50, 40), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Purple = { MainBg = Color3.fromRGB(20, 20, 20), SidebarBg = Color3.fromRGB(28, 25, 30), ContentBg = Color3.fromRGB(34, 32, 36), Accent = Color3.fromRGB(170, 0, 255), TextPrimary = Color3.fromRGB(250, 245, 255), TextSecondary = Color3.fromRGB(170, 160, 180), Outline = Color3.fromRGB(55, 50, 60), ItemHover = Color3.fromRGB(45, 40, 50), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Orange = { MainBg = Color3.fromRGB(20, 20, 20), SidebarBg = Color3.fromRGB(30, 28, 25), ContentBg = Color3.fromRGB(36, 34, 32), Accent = Color3.fromRGB(255, 140, 0), TextPrimary = Color3.fromRGB(255, 250, 245), TextSecondary = Color3.fromRGB(180, 170, 160), Outline = Color3.fromRGB(60, 55, 50), ItemHover = Color3.fromRGB(50, 45, 40), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Midnight = { MainBg = Color3.fromRGB(10, 10, 15), SidebarBg = Color3.fromRGB(15, 15, 20), ContentBg = Color3.fromRGB(20, 20, 25), Accent = Color3.fromRGB(100, 100, 255), TextPrimary = Color3.fromRGB(200, 200, 255), TextSecondary = Color3.fromRGB(120, 120, 160), Outline = Color3.fromRGB(30, 30, 50), ItemHover = Color3.fromRGB(25, 25, 40), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Synapse = { MainBg = Color3.fromRGB(40, 40, 40), SidebarBg = Color3.fromRGB(50, 50, 50), ContentBg = Color3.fromRGB(45, 45, 45), Accent = Color3.fromRGB(255, 255, 255), TextPrimary = Color3.fromRGB(255, 255, 255), TextSecondary = Color3.fromRGB(200, 200, 200), Outline = Color3.fromRGB(70, 70, 70), ItemHover = Color3.fromRGB(60, 60, 60), Red = Color3.fromRGB(255, 75, 75), Green = Color3.fromRGB(75, 255, 120), Yellow = Color3.fromRGB(255, 200, 50) }, Gold = { MainBg = Color3.fromRGB(25, 25, 25), SidebarBg = Color3.fromRGB(30, 30, 30), ContentBg = Color3.fromRGB(35, 35, 35), Accent = Color3.fromRGB(255, 215, 0), TextPrimary = Color3.fromRGB(255, 255, 240), TextSecondary = Color3.fromRGB(189, 183, 107), Outline = Color3.fromRGB(70, 65, 50), ItemHover = Color3.fromRGB(50, 50, 40), Red = Color3.fromRGB(255, 80, 80), Green = Color3.fromRGB(80, 255, 80), Yellow = Color3.fromRGB(255, 215, 0) }, Toxic = { MainBg = Color3.fromRGB(10, 15, 10), SidebarBg = Color3.fromRGB(15, 20, 15), ContentBg = Color3.fromRGB(20, 25, 20), Accent = Color3.fromRGB(124, 252, 0), TextPrimary = Color3.fromRGB(200, 255, 200), TextSecondary = Color3.fromRGB(100, 150, 100), Outline = Color3.fromRGB(30, 50, 30), ItemHover = Color3.fromRGB(25, 35, 25), Red = Color3.fromRGB(255, 50, 50), Green = Color3.fromRGB(50, 255, 50), Yellow = Color3.fromRGB(255, 255, 50) }, CottonCandy = { MainBg = Color3.fromRGB(255, 240, 245), SidebarBg = Color3.fromRGB(255, 228, 225), ContentBg = Color3.fromRGB(240, 248, 255), Accent = Color3.fromRGB(255, 105, 180), TextPrimary = Color3.fromRGB(70, 70, 90), TextSecondary = Color3.fromRGB(100, 100, 120), Outline = Color3.fromRGB(200, 200, 220), ItemHover = Color3.fromRGB(230, 230, 250), Red = Color3.fromRGB(255, 100, 100), Green = Color3.fromRGB(100, 200, 100), Yellow = Color3.fromRGB(255, 200, 100) }, Ocean = { MainBg = Color3.fromRGB(10, 25, 40), SidebarBg = Color3.fromRGB(15, 35, 55), ContentBg = Color3.fromRGB(20, 45, 70), Accent = Color3.fromRGB(0, 190, 255), TextPrimary = Color3.fromRGB(220, 240, 255), TextSecondary = Color3.fromRGB(100, 140, 170), Outline = Color3.fromRGB(30, 60, 90), ItemHover = Color3.fromRGB(25, 55, 85), Red = Color3.fromRGB(255, 80, 80), Green = Color3.fromRGB(80, 255, 150), Yellow = Color3.fromRGB(255, 220, 80) }, Vaporwave = { MainBg = Color3.fromRGB(20, 10, 30), SidebarBg = Color3.fromRGB(30, 15, 40), ContentBg = Color3.fromRGB(40, 20, 50), Accent = Color3.fromRGB(255, 0, 255), TextPrimary = Color3.fromRGB(0, 255, 255), TextSecondary = Color3.fromRGB(255, 150, 255), Outline = Color3.fromRGB(60, 30, 80), ItemHover = Color3.fromRGB(50, 25, 60), Red = Color3.fromRGB(255, 50, 100), Green = Color3.fromRGB(50, 255, 150), Yellow = Color3.fromRGB(255, 255, 100) }, Dracula = { MainBg = Color3.fromRGB(40, 42, 54), SidebarBg = Color3.fromRGB(68, 71, 90), ContentBg = Color3.fromRGB(56, 58, 89), Accent = Color3.fromRGB(255, 121, 198), TextPrimary = Color3.fromRGB(248, 248, 242), TextSecondary = Color3.fromRGB(98, 114, 164), Outline = Color3.fromRGB(98, 114, 164), ItemHover = Color3.fromRGB(80, 80, 100), Red = Color3.fromRGB(255, 85, 85), Green = Color3.fromRGB(80, 250, 123), Yellow = Color3.fromRGB(241, 250, 140) } } local function saveSettings() pcall(function() if not isfolder(FOLDER_NAME) then makefolder(FOLDER_NAME) end local json = HttpService:JSONEncode(Settings) writefile(FULL_PATH, json) end) end local function loadSettings() pcall(function() if isfile(FULL_PATH) then local json = readfile(FULL_PATH) local loaded = HttpService:JSONDecode(json) for k, v in pairs(loaded) do Settings[k] = v end end end) end local function savePositions() pcall(function() if not isfolder(FOLDER_NAME) then makefolder(FOLDER_NAME) end writefile(POSITIONS_FILE, HttpService:JSONEncode(PositionsData)) end) end local function loadPositions() pcall(function() if isfile(POSITIONS_FILE) then PositionsData = HttpService:JSONDecode(readfile(POSITIONS_FILE)) else PositionsData = {} end end) end loadSettings() loadPositions() local Theme = Themes[Settings.CurrentTheme] or Themes.Cyan local GUI_NAME = "NOVA_Script_Rel_V3.9_Invisible" local NotificationLayout local function AddStroke(parent, color, thickness) local stroke = Instance.new("UIStroke") stroke.Color = color or Theme.Outline stroke.Thickness = thickness or 1 stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = parent return stroke end local function SendNotification(text, color) if not NotificationLayout then return end local container = Instance.new("Frame") container.Size = UDim2.new(0, 250, 0, 40) container.BackgroundColor3 = Theme.SidebarBg container.BackgroundTransparency = 1 container.Parent = NotificationLayout.Parent local content = Instance.new("Frame") content.Size = UDim2.new(1, 0, 1, 0) content.Position = UDim2.new(1, 10, 0, 0) content.BackgroundColor3 = Theme.SidebarBg content.Parent = container Instance.new("UICorner", content).CornerRadius = UDim.new(0, 6) AddStroke(content, color or Theme.Accent, 1) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -10, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Theme.TextPrimary label.Font = Enum.Font.GothamBold label.TextSize = 12 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = content TweenService:Create(content, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(0, 0, 0, 0)}):Play() task.spawn(function() task.wait(3) TweenService:Create(content, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Position = UDim2.new(1, 20, 0, 0)}):Play() task.wait(0.5) container:Destroy() end) end local function createLayout(parent) local layout = Instance.new("UIListLayout") layout.Parent = parent layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0, 6) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center if parent:IsA("ScrollingFrame") then layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() parent.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 80) end) end return layout end local function createToggleSwitch(parent, text, description, callback, externalControl, noSave) local toggleObj = {} local container = Instance.new("Frame") container.Size = UDim2.new(0.96, 0, 0, 50) container.BackgroundColor3 = Theme.ContentBg container.Parent = parent Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) AddStroke(container, Theme.Outline, 1) local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 0, 20) label.Position = UDim2.new(0.05, 0, 0.15, 0) label.Text = text label.TextColor3 = Theme.TextPrimary label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamMedium label.TextSize = 13 label.BackgroundTransparency = 1 label.Parent = container local descLabel = Instance.new("TextLabel") descLabel.Size = UDim2.new(0.7, 0, 0, 15) descLabel.Position = UDim2.new(0.05, 0, 0.55, 0) descLabel.Text = description or "" descLabel.TextColor3 = Theme.TextSecondary descLabel.TextXAlignment = Enum.TextXAlignment.Left descLabel.Font = Enum.Font.Gotham descLabel.TextSize = 11 descLabel.BackgroundTransparency = 1 descLabel.Parent = container local switchBg = Instance.new("TextButton") switchBg.Size = UDim2.new(0, 36, 0, 18) switchBg.Position = UDim2.new(1, -45, 0.5, -9) switchBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) switchBg.Text = "" switchBg.AutoButtonColor = false switchBg.Parent = container Instance.new("UICorner", switchBg).CornerRadius = UDim.new(1, 0) local circle = Instance.new("Frame") circle.Size = UDim2.new(0, 14, 0, 14) circle.Position = UDim2.new(0, 2, 0.5, -7) circle.BackgroundColor3 = Theme.TextPrimary circle.Parent = switchBg Instance.new("UICorner", circle).CornerRadius = UDim.new(1, 0) local isOn = false local function updateVisuals() local targetPos = isOn and UDim2.new(1, -16, 0.5, -7) or UDim2.new(0, 2, 0.5, -7) local targetColor = isOn and Theme.Accent or Color3.fromRGB(60, 60, 60) TweenService:Create(circle, TweenInfo.new(0.2), {Position = targetPos}):Play() TweenService:Create(switchBg, TweenInfo.new(0.2), {BackgroundColor3 = targetColor}):Play() end switchBg.MouseButton1Click:Connect(function() isOn = not isOn updateVisuals() task.spawn(function() callback(isOn) end) if not noSave then Settings[text] = isOn saveSettings() end end) function toggleObj:SetState(state) if isOn ~= state then isOn = state updateVisuals() if not externalControl then task.spawn(function() callback(isOn) end) end if not noSave then Settings[text] = isOn saveSettings() end end end if not noSave and Settings[text] ~= nil then isOn = Settings[text] updateVisuals() if not externalControl then task.spawn(function() callback(isOn) end) end end return toggleObj end local function createSlider(parent, text, description, minVal, maxVal, defaultVal, callback) local container = Instance.new("Frame") container.Size = UDim2.new(0.96, 0, 0, 60) container.BackgroundColor3 = Theme.ContentBg container.Parent = parent Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) AddStroke(container, Theme.Outline, 1) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 20) label.Position = UDim2.new(0, 10, 0, 5) label.Text = text label.TextColor3 = Theme.TextPrimary label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamMedium label.TextSize = 12 label.BackgroundTransparency = 1 label.Parent = container local descLabel = Instance.new("TextLabel") descLabel.Size = UDim2.new(1, 0, 0, 15) descLabel.Position = UDim2.new(0, 10, 0, 25) descLabel.Text = description or "" descLabel.TextColor3 = Theme.TextSecondary descLabel.TextXAlignment = Enum.TextXAlignment.Left descLabel.Font = Enum.Font.Gotham descLabel.TextSize = 11 descLabel.BackgroundTransparency = 1 descLabel.Parent = container local valueLabel = Instance.new("TextLabel") valueLabel.Size = UDim2.new(1, 0, 0, 20) valueLabel.Position = UDim2.new(0, -10, 0, 5) valueLabel.Text = tostring(defaultVal) valueLabel.TextColor3 = Theme.Accent valueLabel.TextXAlignment = Enum.TextXAlignment. Right valueLabel.Font = Enum.Font.GothamBold valueLabel.TextSize = 12 valueLabel.BackgroundTransparency = 1 valueLabel.Parent = container local sliderBg = Instance.new("TextButton") sliderBg.Size = UDim2.new(0.92, 0, 0, 4) sliderBg.Position = UDim2.new(0.04, 0, 0.8, 0) sliderBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) sliderBg.Text = "" sliderBg.AutoButtonColor = false sliderBg.Parent = container Instance.new("UICorner", sliderBg).CornerRadius = UDim.new(1, 0) local sliderFill = Instance.new("Frame") sliderFill.BackgroundColor3 = Theme.Accent sliderFill.Parent = sliderBg Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(1, 0) local draggingSlider = false local function updateSlider(input) local pos = math.clamp((input.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1) local val = math.floor(minVal + ((maxVal - minVal) * pos)) TweenService:Create(sliderFill, TweenInfo.new(0.1), {Size = UDim2.new(pos, 0, 1, 0)}):Play() valueLabel.Text = tostring(val) if Settings[text] ~= val then Settings[text] = val saveSettings() callback(val) end end sliderBg.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true updateSlider(input) end end) UserInputService.InputChanged:Connect(function(input) if draggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateSlider(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false end end) local currentVal = Settings[text] or defaultVal local startPercent = (currentVal - minVal) / (maxVal - minVal) sliderFill.Size = UDim2.new(startPercent, 0, 1, 0) valueLabel.Text = tostring(currentVal) end local function createButton(parent, text, description, color, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.96, 0, 0, 50) btn.BackgroundColor3 = Theme.ContentBg btn.Text = "" btn.AutoButtonColor = false btn.Parent = parent Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local stroke = AddStroke(btn, Theme.Outline, 1) local mainText = Instance.new("TextLabel") mainText.Size = UDim2.new(1, 0, 0, 20) mainText.Position = UDim2.new(0, 0, 0.15, 0) mainText.BackgroundTransparency = 1 mainText.Text = text mainText.TextColor3 = color or Theme.TextPrimary mainText.Font = Enum.Font.GothamBold mainText.TextSize = 13 mainText.Parent = btn local descLabel = Instance.new("TextLabel") descLabel.Size = UDim2.new(1, 0, 0, 15) descLabel.Position = UDim2.new(0, 0, 0.55, 0) descLabel.BackgroundTransparency = 1 descLabel.Text = description or "" descLabel.TextColor3 = Theme.TextSecondary descLabel.Font = Enum.Font.Gotham descLabel.TextSize = 11 descLabel.Parent = btn btn.MouseEnter:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = Theme.ItemHover}):Play() TweenService:Create(stroke, TweenInfo.new(0.2), {Color = color or Theme.Accent}):Play() end) btn.MouseLeave:Connect(function() TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = Theme.ContentBg}):Play() TweenService:Create(stroke, TweenInfo.new(0.2), {Color = Theme.Outline}):Play() end) btn.MouseButton1Click:Connect(callback) return btn end local function createTextBox(parent, placeholder, description, callback) local container = Instance.new("Frame") container.Size = UDim2.new(0.96, 0, 0, 55) container.BackgroundColor3 = Theme.ContentBg container.Parent = parent Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) AddStroke(container, Theme.Outline, 1) local descLabel = Instance.new("TextLabel") descLabel.Size = UDim2.new(0.95, 0, 0, 20) descLabel.Position = UDim2.new(0.025, 0, 0.05, 0) descLabel.BackgroundTransparency = 1 descLabel.Text = description or "" descLabel.TextColor3 = Theme.TextSecondary descLabel.Font = Enum.Font.Gotham descLabel.TextSize = 11 descLabel.TextXAlignment = Enum.TextXAlignment.Left descLabel.Parent = container local box = Instance.new("TextBox") box.Size = UDim2.new(0.95, 0, 0, 25) box.Position = UDim2.new(0.025, 0, 0.45, 0) box.BackgroundTransparency = 1 box.Text = "" box.PlaceholderText = placeholder box.PlaceholderColor3 = Theme.TextSecondary box.TextColor3 = Theme.TextPrimary box.Font = Enum.Font.Gotham box.TextSize = 13 box.TextXAlignment = Enum.TextXAlignment.Left box.Parent = container box.FocusLost:Connect(function(enterPressed) if callback then callback(box.Text) end end) return box end local function createConfirmation(parent, text, onYes) local screen = Instance.new("Frame") screen.Size = UDim2.new(1, 0, 1, 0) screen.BackgroundTransparency = 0.7 screen.BackgroundColor3 = Color3.new(0,0,0) screen.ZIndex = 200 screen.Parent = parent.Parent.Parent local popup = Instance.new("Frame") popup.Size = UDim2.new(0, 300, 0, 150) popup.Position = UDim2.new(0.5, -150, 0.5, -75) popup.BackgroundColor3 = Theme.MainBg popup.Parent = screen Instance.new("UICorner", popup).CornerRadius = UDim.new(0, 10) AddStroke(popup, Theme.Accent, 2) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -20, 0.6, 0) label.Position = UDim2.new(0, 10, 0, 10) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Theme.TextPrimary label.Font = Enum.Font.GothamBold label.TextSize = 14 label.TextWrapped = true label.Parent = popup local yesBtn = Instance.new("TextButton") yesBtn.Size = UDim2.new(0.4, 0, 0, 35) yesBtn.Position = UDim2.new(0.05, 0, 0.7, 0) yesBtn.BackgroundColor3 = Theme.ContentBg yesBtn.Text = "✅ Yes" yesBtn.TextColor3 = Theme.Red yesBtn.Font = Enum.Font.GothamBold yesBtn.Parent = popup Instance.new("UICorner", yesBtn).CornerRadius = UDim.new(0, 6) local noBtn = Instance.new("TextButton") noBtn.Size = UDim2.new(0.4, 0, 0, 35) noBtn.Position = UDim2.new(0.55, 0, 0.7, 0) noBtn.BackgroundColor3 = Theme.ContentBg noBtn.Text = "❌ No" noBtn.TextColor3 = Theme.Green noBtn.Font = Enum.Font.GothamBold noBtn.Parent = popup Instance.new("UICorner", noBtn).CornerRadius = UDim.new(0, 6) yesBtn.MouseButton1Click:Connect(function() onYes() screen:Destroy() end) noBtn.MouseButton1Click:Connect(function() screen:Destroy() end) end local oldScript = _G.NOVA_Cleanup if oldScript then pcall(oldScript) end local Connections = {} local function AddConnection(conn) table.insert(Connections, conn) return conn end local ScreenGui local function Cleanup() _G.NOVA_Cleanup = nil pcall(function() local cam = workspace.CurrentCamera cam.CameraSubject = Player.Character:FindFirstChild("Humanoid") cam.CameraType = Enum.CameraType.Custom Lighting.Ambient = _G.OriginalAmbient or Lighting.Ambient Lighting.Brightness = _G.OriginalBrightness or Lighting.Brightness Lighting.ClockTime = _G.OriginalClockTime or Lighting.ClockTime Lighting.FogStart = _G.OriginalFogStart or Lighting.FogStart Lighting.FogEnd = _G.OriginalFogEnd or Lighting.FogEnd Player.CameraMaxZoomDistance = _G.OriginalMaxZoom or 128 if Player.Character then local hum = Player.Character:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = _G.DefaultWalkSpeed or 16 hum.JumpPower = _G.DefaultJumpPower or 50 hum.PlatformStand = false hum:ChangeState(Enum.HumanoidStateType.GettingUp) end local root = Player.Character:FindFirstChild("HumanoidRootPart") if root then for _, v in pairs(root:GetChildren()) do if v.Name == "NOVA_BodyGyro" or v.Name == "NOVA_BodyVel" or v.Name == "NOVA_Spin" or v.Name == "NOVA_Fling" then v:Destroy() end end end for _, part in ipairs(Player.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true part.Massless = false part.CustomPhysicalProperties = nil end end end end) for _, conn in ipairs(Connections) do if conn and conn.Connected then conn:Disconnect() end end table.clear(Connections) if PlayerGui:FindFirstChild(GUI_NAME) then PlayerGui[GUI_NAME]:Destroy() end end _G.NOVA_Cleanup = Cleanup local function BuildInterface(isReload) if PlayerGui:FindFirstChild(GUI_NAME) then PlayerGui[GUI_NAME]:Destroy() end ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = GUI_NAME ScreenGui.ResetOnSpawn = false ScreenGui.IgnoreGuiInset = true ScreenGui.Parent = PlayerGui local defaultMaxZoom = _G.OriginalMaxZoom or Player.CameraMaxZoomDistance local NotifContainer = Instance.new("Frame") NotifContainer.Size = UDim2.new(1, 0, 1, 0) NotifContainer.Position = UDim2.new(0, 0, 0.05, 0) NotifContainer.BackgroundTransparency = 1 NotifContainer.ZIndex = 20000 NotifContainer.Parent = ScreenGui NotificationLayout = Instance.new("UIListLayout") NotificationLayout.Parent = NotifContainer NotificationLayout.SortOrder = Enum.SortOrder.LayoutOrder NotificationLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right NotificationLayout.VerticalAlignment = Enum.VerticalAlignment.Top NotificationLayout.Padding = UDim.new(0, 5) local ToggleBtn = Instance.new("TextButton") ToggleBtn.Name = "OpenButton" ToggleBtn.Size = UDim2.new(0, 50, 0, 50) ToggleBtn.Position = Settings.ToggleBtnPos and UDim2.new(Settings.ToggleBtnPos.X, Settings.ToggleBtnPos.XOff, Settings.ToggleBtnPos.Y, Settings.ToggleBtnPos.YOff) or UDim2.new(0.01, 0, 0.45, 0) ToggleBtn.BackgroundColor3 = Theme.SidebarBg ToggleBtn.Text = "N" ToggleBtn.TextColor3 = Theme.Accent ToggleBtn.Font = Enum.Font.GothamBlack ToggleBtn.TextSize = 30 ToggleBtn.Draggable = true ToggleBtn.Parent = ScreenGui Instance.new("UICorner", ToggleBtn).CornerRadius = UDim.new(0, 14) AddStroke(ToggleBtn, Theme.Accent, 2) local QuickFlyBtn = Instance.new("TextButton") QuickFlyBtn.Name = "QuickFlyButton" QuickFlyBtn.Size = UDim2.new(0, 50, 0, 50) QuickFlyBtn.Position = Settings.QuickFlyPos and UDim2.new(Settings.QuickFlyPos.X, Settings.QuickFlyPos.XOff, Settings.QuickFlyPos.Y, Settings.QuickFlyPos.YOff) or UDim2.new(0.01, 0, 0.55, 0) QuickFlyBtn.BackgroundColor3 = Theme.SidebarBg QuickFlyBtn.Text = "FLY" QuickFlyBtn.TextColor3 = Theme.Accent QuickFlyBtn.Font = Enum.Font.GothamBlack QuickFlyBtn.TextSize = 16 QuickFlyBtn.Visible = false QuickFlyBtn.Draggable = true QuickFlyBtn.Parent = ScreenGui Instance.new("UICorner", QuickFlyBtn).CornerRadius = UDim.new(0, 14) local QuickFlyStroke = AddStroke(QuickFlyBtn, Theme.Accent, 2) local QuickNoclipBtn = Instance.new("TextButton") QuickNoclipBtn.Name = "QuickNoclipButton" QuickNoclipBtn.Size = UDim2.new(0, 50, 0, 50) QuickNoclipBtn.Position = Settings.QuickNoclipPos and UDim2.new(Settings.QuickNoclipPos.X, Settings.QuickNoclipPos.XOff, Settings.QuickNoclipPos.Y, Settings.QuickNoclipPos.YOff) or UDim2.new(0.01, 0, 0.65, 0) QuickNoclipBtn.BackgroundColor3 = Theme.SidebarBg QuickNoclipBtn.Text = "NoClip" QuickNoclipBtn.TextColor3 = Theme.Accent QuickNoclipBtn.Font = Enum.Font.GothamBlack QuickNoclipBtn.TextSize = 12 QuickNoclipBtn.Visible = false QuickNoclipBtn.Draggable = true QuickNoclipBtn.Parent = ScreenGui Instance.new("UICorner", QuickNoclipBtn).CornerRadius = UDim.new(0, 14) local QuickNoclipStroke = AddStroke(QuickNoclipBtn, Theme.Accent, 2) local QuickSitBtn = Instance.new("TextButton") QuickSitBtn.Name = "QuickSitButton" QuickSitBtn.Size = UDim2.new(0, 50, 0, 50) QuickSitBtn.Position = Settings.QuickSitPos and UDim2.new(Settings.QuickSitPos.X, Settings.QuickSitPos.XOff, Settings.QuickSitPos.Y, Settings.QuickSitPos.YOff) or UDim2.new(0.01, 0, 0.75, 0) QuickSitBtn.BackgroundColor3 = Theme.SidebarBg QuickSitBtn.Text = "SIT" QuickSitBtn.TextColor3 = Theme.Accent QuickSitBtn.Font = Enum.Font.GothamBlack QuickSitBtn.TextSize = 16 QuickSitBtn.Visible = false QuickSitBtn.Draggable = true QuickSitBtn.Parent = ScreenGui Instance.new("UICorner", QuickSitBtn).CornerRadius = UDim.new(0, 14) local QuickSitStroke = AddStroke(QuickSitBtn, Theme.Accent, 2) QuickSitBtn.MouseButton1Click:Connect(function() local char = Player.Character local hum = char and char:FindFirstChild("Humanoid") if hum then hum.Sit = not hum.Sit end end) local function saveBtnPos() Settings.ToggleBtnPos = {X = ToggleBtn.Position.X.Scale, XOff = ToggleBtn.Position.X.Offset, Y = ToggleBtn.Position.Y.Scale, YOff = ToggleBtn.Position.Y.Offset} Settings.QuickFlyPos = {X = QuickFlyBtn.Position.X.Scale, XOff = QuickFlyBtn.Position.X.Offset, Y = QuickFlyBtn.Position.Y.Scale, YOff = QuickFlyBtn.Position.Y.Offset} Settings.QuickNoclipPos = {X = QuickNoclipBtn.Position.X.Scale, XOff = QuickNoclipBtn.Position.X.Offset, Y = QuickNoclipBtn.Position.Y.Scale, YOff = QuickNoclipBtn.Position.Y.Offset} Settings.QuickSitPos = {X = QuickSitBtn.Position.X.Scale, XOff = QuickSitBtn.Position.X.Offset, Y = QuickSitBtn.Position.Y.Scale, YOff = QuickSitBtn.Position.Y.Offset} saveSettings() end AddConnection(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then saveBtnPos() end end)) local BlackScreen = Instance.new("TextButton") BlackScreen.Name = "BlackScreenFrame" BlackScreen.Size = UDim2.new(1, 0, 1, 0) BlackScreen.BackgroundColor3 = Color3.new(0, 0, 0) BlackScreen.ZIndex = 10000 BlackScreen.AutoButtonColor = false BlackScreen.Text = "" BlackScreen.Active = true BlackScreen.Visible = false BlackScreen.Parent = ScreenGui local CloseX = Instance.new("TextButton") CloseX.Name = "CloseButton" CloseX.Size = UDim2.new(0, 30, 0, 30) CloseX.Position = UDim2.new(1, -40, 0, 10) CloseX.BackgroundColor3 = Color3.fromRGB(40, 40, 40) CloseX.Text = "âœ–ī¸" CloseX.TextColor3 = Theme.Red CloseX.Font = Enum.Font.GothamBold CloseX.TextSize = 18 CloseX.ZIndex = 10001 CloseX.Parent = BlackScreen Instance.new("UICorner", CloseX).CornerRadius = UDim.new(0, 5) AddStroke(CloseX, Theme.Red, 1) local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 450, 0, 300) MainFrame.Position = Settings.MainFramePos and UDim2.new(Settings.MainFramePos.X, Settings.MainFramePos.XOff, Settings.MainFramePos.Y, Settings.MainFramePos.YOff) or UDim2.new(0.5, -300, 0.5, -200) MainFrame.BackgroundColor3 = Theme.MainBg MainFrame.Visible = false MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) AddStroke(MainFrame, Theme.Outline, 1.5) local CloseBtn = Instance.new("TextButton") CloseBtn.Name = "CloseButton" CloseBtn.Size = UDim2.new(0, 20, 0, 20) CloseBtn.Position = UDim2.new(1, -21, 0.5, -149) CloseBtn.BackgroundTransparency = 1 CloseBtn.Text = "⛔" CloseBtn.TextColor3 = Theme.Red CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 18 CloseBtn.ZIndex = 11 CloseBtn.Parent = MainFrame Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 5) CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false end) local SideBar = Instance.new("Frame") SideBar.Size = UDim2.new(0.25, 0, 1, 0) SideBar.BackgroundColor3 = Theme.SidebarBg SideBar.Parent = MainFrame Instance.new("UICorner", SideBar).CornerRadius = UDim.new(0, 10) local dragging, dragInput, dragStart, startPos local function updateDrag(input) local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) Settings.MainFramePos = {X = MainFrame.Position.X.Scale, XOff = MainFrame.Position.X.Offset, Y = MainFrame.Position.Y.Scale, YOff = MainFrame.Position.Y.Offset} saveSettings() end SideBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) SideBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then updateDrag(input) end end) local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, 0, 0, 60) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "NOVA" TitleLabel.TextColor3 = Theme.Accent TitleLabel.Font = Enum.Font.GothamBlack TitleLabel.TextSize = 26 TitleLabel.Parent = SideBar local SubTitle = Instance.new("TextLabel") SubTitle.Size = UDim2.new(1, 0, 0, 20) SubTitle.Position = UDim2.new(0,0,0,35) SubTitle.BackgroundTransparency = 1 SubTitle.Text = "🚀 Ultimate V3.9" SubTitle.TextColor3 = Theme.TextSecondary SubTitle.Font = Enum.Font.Gotham SubTitle.TextSize = 10 SubTitle.Parent = TitleLabel local TabButtonsContainer = Instance.new("ScrollingFrame") TabButtonsContainer.Size = UDim2.new(1, 0, 0.8, 0) TabButtonsContainer.Position = UDim2.new(0, 0, 0.2, 0) TabButtonsContainer.BackgroundTransparency = 1 TabButtonsContainer.ScrollBarThickness = 0 TabButtonsContainer.Parent = SideBar local TabListLayout = Instance.new("UIListLayout") TabListLayout.Parent = TabButtonsContainer TabListLayout.SortOrder = Enum.SortOrder.LayoutOrder TabListLayout.Padding = UDim.new(0, 5) TabListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center local ContentArea = Instance.new("Frame") ContentArea.Size = UDim2.new(0.75, 0, 1, 0) ContentArea.Position = UDim2.new(0.25, 0, 0, 0) ContentArea.BackgroundTransparency = 1 ContentArea.Parent = MainFrame local ContentPad = Instance.new("UIPadding") ContentPad.PaddingTop = UDim.new(0, 15) ContentPad.PaddingBottom = UDim.new(0, 15) ContentPad.PaddingLeft = UDim.new(0, 15) ContentPad.PaddingRight = UDim.new(0, 15) ContentPad.Parent = ContentArea local Frames = {} local function CreatePage(name) local page = Instance.new("ScrollingFrame") page.Name = name .. "Frame" page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.Visible = false page.ScrollBarThickness = 3 page.ScrollBarImageColor3 = Theme.Accent page.Parent = ContentArea page.CanvasSize = UDim2.new(0, 0, 0, 0) createLayout(page) Frames[name] = page return page end local MovementFrame = CreatePage("Movement") local VisualsFrame = CreatePage("Visuals") local PlayersFrame = CreatePage("Players") local CombatFrame = CreatePage("Combat") local PositionsFrame = CreatePage("Positions") local AFKFrame = CreatePage("AFK") local ServerFrame = CreatePage("Server") local ChangelogFrame = CreatePage("Changelog") local InfoFrame = CreatePage("Info") local SettingsFrame = CreatePage("Settings") local currentTab = nil local function SwitchTab(btn, frame) if currentTab == btn then return end for _, f in pairs(Frames) do f.Visible = false end frame.Visible = true for _, child in pairs(TabButtonsContainer:GetChildren()) do if child:IsA("TextButton") then TweenService:Create(child, TweenInfo.new(0.2), {BackgroundColor3 = Theme.SidebarBg, TextColor3 = Theme.TextSecondary}):Play() if child:FindFirstChild("Bar") then TweenService:Create(child.Bar, TweenInfo.new(0.2), {Size = UDim2.new(0, 0, 0.8, 0)}):Play() end end end TweenService:Create(btn, TweenInfo.new(0.2), {BackgroundColor3 = Theme.ContentBg, TextColor3 = Theme.TextPrimary}):Play() if btn:FindFirstChild("Bar") then TweenService:Create(btn.Bar, TweenInfo.new(0.2), {Size = UDim2.new(0, 3, 0.8, 0)}):Play() end currentTab = btn end local function CreateTabButton(name, frame) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 35) btn.BackgroundColor3 = Theme.SidebarBg btn.Text = name btn.TextColor3 = Theme.TextSecondary btn.Font = Enum.Font.GothamBold btn.TextSize = 12 btn.AutoButtonColor = false btn.Parent = TabButtonsContainer Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local bar = Instance.new("Frame") bar.Name = "Bar" bar.Size = UDim2.new(0, 0, 0.8, 0) bar.Position = UDim2.new(0, 0, 0.1, 0) bar.BackgroundColor3 = Theme.Accent bar.BorderSizePixel = 0 bar.Parent = btn btn.MouseButton1Click:Connect(function() SwitchTab(btn, frame) end) return btn end local Tab1 = CreateTabButton("📜 Changelog", ChangelogFrame) local Tab2 = CreateTabButton("🏃 Move", MovementFrame) local Tab3 = CreateTabButton("đŸ‘ī¸ Visuals", VisualsFrame) local TabPVP = CreateTabButton("âš”ī¸ Combat", CombatFrame) local Tab4 = CreateTabButton("đŸ‘Ĩ Players", PlayersFrame) local Tab9 = CreateTabButton("📍 Positions", PositionsFrame) local Tab5 = CreateTabButton("💤 AFK", AFKFrame) local Tab6 = CreateTabButton("🌍 Server", ServerFrame) local Tab7 = CreateTabButton("â„šī¸ Info", InfoFrame) local Tab8 = CreateTabButton("âš™ī¸ Config", SettingsFrame) SwitchTab(Tab1, ChangelogFrame) local function addChangeLogItem(text) local label = Instance.new("TextLabel") label.Size = UDim2.new(0.96, 0, 0, 30) label.BackgroundTransparency = 1 label.Text = "â€ĸ " .. text label.TextColor3 = Theme.TextPrimary label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamMedium label.TextSize = 13 label.Parent = ChangelogFrame end local clTitle = Instance.new("TextLabel") clTitle.Text = "Latest Changes" clTitle.Size = UDim2.new(0.96, 0, 0, 30) clTitle.BackgroundTransparency = 1 clTitle.TextColor3 = Theme.Accent clTitle.Font = Enum.Font.GothamBold clTitle.TextSize = 16 clTitle.Parent = ChangelogFrame addChangeLogItem("1. Added descriptions to all features") addChangeLogItem("2. Fixed Fling 'Invisible Wall' Bug") addChangeLogItem("3. Improved Fling Noclip") local flinging = false local Noclipping = nil local function FlingNoclipLoop() if flinging and Player.Character then for _, child in pairs(Player.Character:GetDescendants()) do if child:IsA("BasePart") and child.CanCollide == true then child.CanCollide = false end end end end local function toggleFling(state) flinging = state local char = Player.Character if state then if char then for _, child in pairs(char:GetDescendants()) do if child:IsA("BasePart") then child.CustomPhysicalProperties = PhysicalProperties.new(100, 0.3, 0.5) child.CanCollide = false child.Massless = true child.Velocity = Vector3.new(0, 0, 0) end end if Noclipping then Noclipping:Disconnect() end Noclipping = RunService.Stepped:Connect(FlingNoclipLoop) local root = char:FindFirstChild("HumanoidRootPart") if root then local bambam = Instance.new("BodyAngularVelocity") bambam.Name = "NOVA_Fling" bambam.Parent = root bambam.AngularVelocity = Vector3.new(0, 99999, 0) bambam.MaxTorque = Vector3.new(0, math.huge, 0) bambam.P = math.huge task.spawn(function() while flinging and root and root.Parent do bambam.AngularVelocity = Vector3.new(0, 99999, 0) task.wait(0.2) bambam.AngularVelocity = Vector3.new(0, 0, 0) task.wait(0.1) end if bambam then bambam:Destroy() end end) end end else if Noclipping then Noclipping:Disconnect() Noclipping = nil end if char then local root = char:FindFirstChild("HumanoidRootPart") if root and root:FindFirstChild("NOVA_Fling") then root.NOVA_Fling:Destroy() end if root then root.Velocity = Vector3.new(0,0,0) root.RotVelocity = Vector3.new(0,0,0) end for _, child in pairs(char:GetDescendants()) do if child:IsA("BasePart") then child.CustomPhysicalProperties = nil child.Massless = false end end local hum = char:FindFirstChild("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end end end createToggleSwitch(CombatFrame, "đŸŒĒī¸ Fling", "Spin intensely to launch other players.", toggleFling) local hitboxEnabled = false local hitboxSize = 10 local hitboxTransparency = 0.5 AddConnection(RunService.Stepped:Connect(function() if hitboxEnabled then for _, v in pairs(game.Players:GetPlayers()) do if v ~= Player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then local hrp = v.Character.HumanoidRootPart hrp.Size = Vector3.new(hitboxSize, hitboxSize, hitboxSize) hrp.Transparency = hitboxTransparency hrp.CanCollide = false end end end end)) createToggleSwitch(CombatFrame, "đŸŽ¯ Enable Hitbox Expander", "Enlarges player hitboxes for easier aiming.", function(state) hitboxEnabled = state if not state then for _, v in pairs(game.Players:GetPlayers()) do if v ~= Player and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then local hrp = v.Character.HumanoidRootPart hrp.Size = Vector3.new(2, 2, 1) hrp.Transparency = 1 hrp.CanCollide = true end end end end) createSlider(CombatFrame, "📏 Hitbox Size", "Adjust the radius of the hitbox expansion.", 2, 50, 10, function(val) hitboxSize = val end) createSlider(CombatFrame, "đŸ‘ģ Transparency (Div 10)", "Adjust visual transparency of hitboxes.", 0, 10, 5, function(val) hitboxTransparency = val / 10 end) local flyEnabled = false local flySpeed = Settings.FlightSpeed or 3 local flyBodyGyro, flyBodyVel local MenuFlySwitch local function stopFly() if flyBodyGyro then flyBodyGyro:Destroy() flyBodyGyro = nil end if flyBodyVel then flyBodyVel:Destroy() flyBodyVel = nil end if Player.Character then local root = Player.Character:FindFirstChild("HumanoidRootPart") if root then if root:FindFirstChild("NOVA_BodyGyro") then root.NOVA_BodyGyro:Destroy() end if root:FindFirstChild("NOVA_BodyVel") then root.NOVA_BodyVel:Destroy() end end local hum = Player.Character:FindFirstChild("Humanoid") if hum then hum.PlatformStand = false hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end end local function startFly() stopFly() local char = Player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChild("Humanoid") if not root or not hum then return end hum.PlatformStand = true flyBodyGyro = Instance.new("BodyGyro") flyBodyGyro.Name = "NOVA_BodyGyro" flyBodyGyro.P = 9e4 flyBodyGyro.maxTorque = Vector3.new(9e9, 9e9, 9e9) flyBodyGyro.CFrame = root.CFrame flyBodyGyro.Parent = root flyBodyVel = Instance.new("BodyVelocity") flyBodyVel.Name = "NOVA_BodyVel" flyBodyVel.Velocity = Vector3.new(0, 0, 0) flyBodyVel.MaxForce = Vector3.new(9e9, 9e9, 9e9) flyBodyVel.Parent = root task.spawn(function() while flyEnabled and char and hum.Parent and hum.Health > 0 do local cam = workspace.CurrentCamera local moveDir = hum.MoveDirection flyBodyGyro.CFrame = cam.CFrame if moveDir.Magnitude > 0 then local camCFrame = cam.CFrame local moveRel = camCFrame:VectorToObjectSpace(moveDir) local newVel = (camCFrame.LookVector * -moveRel.Z) + (camCFrame.RightVector * moveRel.X) if newVel.Magnitude > 0 then newVel = newVel.Unit end flyBodyVel.Velocity = newVel * flySpeed * 50 else flyBodyVel.Velocity = Vector3.new(0, 0, 0) end RunService.RenderStepped:Wait() end stopFly() end) end local function toggleFlyFunc(state) flyEnabled = state local targetColor = state and Theme.Green or Theme.Accent QuickFlyBtn.TextColor3 = targetColor QuickFlyStroke.Color = targetColor if MenuFlySwitch then MenuFlySwitch:SetState(state) end if state then startFly() else stopFly() end end QuickFlyBtn.MouseButton1Click:Connect(function() toggleFlyFunc(not flyEnabled) end) local function onCharacterAdded(char) local humanoid = char:WaitForChild("Humanoid") AddConnection(humanoid.Died:Connect(function() if flyEnabled then toggleFlyFunc(false) end end)) end if Player.Character then onCharacterAdded(Player.Character) end AddConnection(Player.CharacterAdded:Connect(onCharacterAdded)) MenuFlySwitch = createToggleSwitch(MovementFrame, "🛸 Enable Fly", "Toggle flight mode to move freely in the air.", function(state) if state ~= flyEnabled then toggleFlyFunc(state) end end, true, false) createSlider(MovementFrame, "⚡ Flight Speed", "Control how fast you fly.", 1, 50, 3, function(val) flySpeed = val Settings.FlightSpeed = val end) createToggleSwitch(MovementFrame, "🔲 Show Quick Fly Button", "Toggle the visibility of the HUD fly button.", function(state) QuickFlyBtn.Visible = state end) local speedEnabled = false local jumpEnabled = false local currentSpeed = Settings["💨 Speed Value"] or 16 local currentJump = Settings["âĢ Jump Value"] or 20 createToggleSwitch(MovementFrame, "👟 Speed Boost", "Enable faster walking speed.", function(state) speedEnabled = state end) createSlider(MovementFrame, "💨 Speed Value", "Adjust your walking speed multiplier.", 16, 250, 16, function(val) currentSpeed = val end) createToggleSwitch(MovementFrame, "đŸĻ— Jump Boost", "Enable higher jumping power.", function(state) jumpEnabled = state end) createSlider(MovementFrame, "âĢ Jump Value", "Adjust your jump height multiplier.", 16, 250, 20, function(val) currentJump = val end) AddConnection(RunService.Stepped:Connect(function() if Player.Character and Player.Character:FindFirstChild("Humanoid") then local hum = Player.Character.Humanoid if speedEnabled then hum.WalkSpeed = currentSpeed else if hum.WalkSpeed ~= _G.DefaultWalkSpeed then hum.WalkSpeed = _G.DefaultWalkSpeed end end if jumpEnabled then hum.UseJumpPower = true hum.JumpPower = currentJump * 5 else if hum.JumpPower ~= _G.DefaultJumpPower then hum.JumpPower = _G.DefaultJumpPower end end end end)) local noclipEnabled = false local MenuNoclipSwitch local NoclipConnection = nil local function NoclipLoop() if Player.Character then for _, child in pairs(Player.Character:GetDescendants()) do if child:IsA("BasePart") and child.CanCollide == true then child.CanCollide = false end end end end local function toggleNoclipFunc(state) noclipEnabled = state local targetColor = state and Theme.Green or Theme.Accent QuickNoclipBtn.TextColor3 = targetColor QuickNoclipStroke.Color = targetColor if MenuNoclipSwitch then MenuNoclipSwitch:SetState(state) end if state then NoclipConnection = RunService.Stepped:Connect(NoclipLoop) else if NoclipConnection then NoclipConnection:Disconnect() end if Player.Character then local hum = Player.Character:FindFirstChild("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end end end QuickNoclipBtn.MouseButton1Click:Connect(function() toggleNoclipFunc(not noclipEnabled) end) MenuNoclipSwitch = createToggleSwitch(MovementFrame, "đŸ‘ģ Noclip (Ghost Mode)", "Walk through walls and obstacles.", function(state) if state ~= noclipEnabled then toggleNoclipFunc(state) end end, true, false) createToggleSwitch(MovementFrame, "🔲 Show Quick Noclip", "Toggle HUD noclip button visibility.", function(state) QuickNoclipBtn.Visible = state end) createToggleSwitch(MovementFrame, "🔲 Show Quick Sit Button", "Toggle HUD sit button visibility.", function(state) QuickSitBtn.Visible = state end) createToggleSwitch(MovementFrame, "â™žī¸ Infinite Jump", "Jump indefinitely in mid-air.", function(state) _G.InfJump = state end) createButton(MovementFrame, "đŸĒ„ TP Tool", "Equips a tool to teleport where you click.", Theme.Purple, function() local toolName = "Teleport Tool" local backpack = Player:FindFirstChildOfClass("Backpack") local char = Player.Character if (backpack and backpack:FindFirstChild(toolName)) or (char and char:FindFirstChild(toolName)) then SendNotification("You already have the TP Tool!", Theme.Red) return end local tool = Instance.new("Tool") tool.Name = toolName tool.RequiresHandle = false tool.Parent = backpack tool.Activated:Connect(function() local char = Player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local mouse = Player:GetMouse() if root and mouse and mouse.Hit then local pos = mouse.Hit root.CFrame = CFrame.new(pos.X, pos.Y + 3, pos.Z, select(4, root.CFrame:components())) local V3 = Vector3.new(0, 0, 0) for _, v in ipairs(char:GetDescendants()) do if v:IsA("BasePart") then v.Velocity = V3 v.RotVelocity = V3 end end end end) SendNotification("TP Tool Added!", Theme.Green) end) AddConnection(UserInputService.JumpRequest:Connect(function() if _G.InfJump and Player.Character then Player.Character:FindFirstChildOfClass('Humanoid'):ChangeState("Jumping") end end)) local selectedPos = nil local posNameBox = createTextBox(PositionsFrame, "Position Name...", "Enter a name for the current location.", function() end) local posLabel = Instance.new("TextLabel") posLabel.Text = "Selected: None" posLabel.Size = UDim2.new(0.96, 0, 0, 30) posLabel.BackgroundColor3 = Theme.ContentBg posLabel.TextColor3 = Theme.Accent posLabel.Parent = PositionsFrame Instance.new("UICorner", posLabel).CornerRadius = UDim.new(0, 6) AddStroke(posLabel, Theme.Outline, 1) local function getGamePositions() local gid = tostring(game.PlaceId) if not PositionsData[gid] then PositionsData[gid] = {} end return PositionsData[gid] end local posDropdownFrame = Instance.new("ScrollingFrame") posDropdownFrame.Size = UDim2.new(0.96, 0, 0, 150) posDropdownFrame.Visible = false posDropdownFrame.Parent = PositionsFrame createLayout(posDropdownFrame) local function refreshPositionList() posDropdownFrame:ClearAllChildren() createLayout(posDropdownFrame) local positions = getGamePositions() for i, pos in ipairs(positions) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 25) btn.Text = pos.Name btn.BackgroundColor3 = Theme.ItemHover btn.TextColor3 = Theme.TextPrimary btn.Parent = posDropdownFrame btn.MouseButton1Click:Connect(function() selectedPos = pos posLabel.Text = "Selected: " .. pos.Name posDropdownFrame.Visible = false end) end end createButton(PositionsFrame, "💾 Save Current Position", "Save your current coordinates to the list.", Theme.Green, function() if posNameBox.Text ~= "" then local char = Player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then local positions = getGamePositions() local newPos = { Name = posNameBox.Text, X = root.Position.X, Y = root.Position.Y, Z = root.Position.Z } table.insert(positions, newPos) PositionsData[tostring(game.PlaceId)] = positions savePositions() posNameBox.Text = "" refreshPositionList() SendNotification("Position Saved!", Theme.Green) end else SendNotification("Enter a name first!", Theme.Red) end end) local posDropdownBtn = createButton(PositionsFrame, "👇 Select Position", "Open the list of saved positions.", Theme.Outline, function() refreshPositionList() posDropdownFrame.Visible = not posDropdownFrame.Visible end) createButton(PositionsFrame, "🌀 Teleport to Position", "Instantly teleport to the selected location.", Theme.Accent, function() if selectedPos and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then Player.Character:SetPrimaryPartCFrame(CFrame.new(selectedPos.X, selectedPos.Y, selectedPos.Z)) else SendNotification("Select a position first!", Theme.Red) end end) createButton(PositionsFrame, "đŸĻ… Tween to Position", "Fly smoothly to the selected location.", Theme.Yellow, function() if selectedPos and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then local root = Player.Character.HumanoidRootPart local targetCFrame = CFrame.new(selectedPos.X, selectedPos.Y, selectedPos.Z) local dist = (root.Position - targetCFrame.Position).Magnitude local speed = Settings.FlightSpeed * 50 local time = dist / speed local tweenInfo = TweenInfo.new(time, Enum.EasingStyle.Linear) local tween = TweenService:Create(root, tweenInfo, {CFrame = targetCFrame}) local oldGrav = workspace.Gravity workspace.Gravity = 0 tween:Play() tween.Completed:Connect(function() workspace.Gravity = oldGrav end) else SendNotification("Select a position first!", Theme.Red) end end) createButton(PositionsFrame, "đŸšļ Walk to Position", "Pathfind/Walk to the selected location.", Theme.Purple, function() if selectedPos and Player.Character and Player.Character:FindFirstChild("Humanoid") then local hum = Player.Character.Humanoid local targetPos = Vector3.new(selectedPos.X, selectedPos.Y, selectedPos.Z) hum:MoveTo(targetPos) else SendNotification("Select a position first!", Theme.Red) end end) createButton(PositionsFrame, "đŸ—‘ī¸ Delete Position", "Remove the selected position from the list.", Theme.Red, function() if selectedPos then local positions = getGamePositions() for i, pos in ipairs(positions) do if pos == selectedPos then table.remove(positions, i) break end end PositionsData[tostring(game.PlaceId)] = positions savePositions() selectedPos = nil posLabel.Text = "Selected: None" refreshPositionList() SendNotification("Position Deleted!", Theme.Red) else SendNotification("Select a position first!", Theme.Red) end end) local espEnabled = false local function createESP(player) if player == Player then return end local folder = Instance.new("Folder") folder.Name = player.Name .. "_ESP" local function updater() local char = player.Character if not char or not espEnabled then folder:ClearAllChildren() return end local root = char:FindFirstChild("HumanoidRootPart") if root then if not folder:FindFirstChild("Highlight") then local hl = Instance.new("Highlight") hl.Name = "Highlight" hl.Adornee = char hl.FillColor = Theme.Red hl.OutlineColor = Color3.new(1,1,1) hl.FillTransparency = 0.5 hl.Parent = folder end local bill = folder:FindFirstChild("BillboardGui") or Instance.new("BillboardGui") bill.Name = "BillboardGui" bill.AlwaysOnTop = true bill.Size = UDim2.new(0, 100, 0, 40) bill.Adornee = root bill.Parent = folder local txt = bill:FindFirstChild("TextLabel") or Instance.new("TextLabel") txt.Size = UDim2.new(1,0,1,0) txt.BackgroundTransparency = 1 txt.TextColor3 = Theme.TextPrimary txt.TextStrokeTransparency = 0 txt.Font = Enum.Font.GothamBold txt.TextSize = 12 txt.Parent = bill local dist = math.floor((Player.Character.HumanoidRootPart.Position - root.Position).Magnitude) txt.Text = player.Name .. "\n[" .. dist .. "m]" if not folder.Parent then folder.Parent = ScreenGui end end end AddConnection(RunService.RenderStepped:Connect(updater)) end createToggleSwitch(VisualsFrame, "🔍 Player ESP", "Highlight players through walls.", function(state) espEnabled = state if state then for _, p in pairs(game.Players:GetPlayers()) do createESP(p) end else for _, child in pairs(ScreenGui:GetChildren()) do if child:IsA("Folder") and string.find(child.Name, "_ESP") then child:Destroy() end end end end) local noFogEnabled = false AddConnection(RunService.Heartbeat:Connect(function() if noFogEnabled then Lighting.FogStart = 1e6 Lighting.FogEnd = 1e6 local atmosphere = Lighting:FindFirstChildOfClass("Atmosphere") if atmosphere then atmosphere.Density = 0 atmosphere.Haze = 0 atmosphere.Glare = 0 end for _, v in pairs(Lighting:GetChildren()) do if v:IsA("Atmosphere") or v:IsA("Clouds") then v:Destroy() end end end end)) createToggleSwitch(VisualsFrame, "đŸŒĢī¸ No Fog", "Removes fog and clouds for clear vision.", function(state) noFogEnabled = state if not state then Lighting.FogStart = _G.OriginalFogStart or 0 Lighting.FogEnd = _G.OriginalFogEnd or 8000 end end) local fullbrightEnabled = false createToggleSwitch(VisualsFrame, "â˜€ī¸ Fullbright (Light)", "Max out brightness to see in the dark.", function(state) fullbrightEnabled = state if state then Lighting.Ambient = Color3.new(1, 1, 1) Lighting.Brightness = 2 Lighting.ClockTime = 14 else Lighting.Ambient = _G.OriginalAmbient Lighting.Brightness = _G.OriginalBrightness Lighting.ClockTime = _G.OriginalClockTime end end) local invisRunning = false local InvisibleCharacter = nil local invisFix = nil local invisDied = nil local realChar = nil local function RespawnReal() if realChar then realChar.Parent = workspace local hum = realChar:FindFirstChild("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Dead) end realChar:BreakJoints() end end local function TurnVisible() if not invisRunning then return end pcall(function() if invisFix then invisFix:Disconnect() invisFix = nil end if invisDied then invisDied:Disconnect() invisDied = nil end local currentCam = workspace.CurrentCamera local storedCF = nil if InvisibleCharacter and InvisibleCharacter.Parent then local root = InvisibleCharacter:FindFirstChild("HumanoidRootPart") if root then storedCF = root.CFrame end InvisibleCharacter:Destroy() InvisibleCharacter = nil end if realChar and realChar.Parent then Player.Character = realChar realChar.Parent = workspace local root = realChar:FindFirstChild("HumanoidRootPart") if root then root.CFrame = storedCF or root.CFrame root.Velocity = Vector3.new(0,0,0) end local hum = realChar:FindFirstChild("Humanoid") if hum then currentCam.CameraSubject = hum end local animate = realChar:FindFirstChild("Animate") if animate then animate.Disabled = true task.wait() animate.Disabled = false end end end) invisRunning = false realChar = nil end local function TurnInvisible() if invisRunning then return end realChar = Player.Character if not realChar then return end local realRoot = realChar:FindFirstChild("HumanoidRootPart") local realHum = realChar:FindFirstChild("Humanoid") if not realRoot or not realHum then return end invisRunning = true realChar.Archivable = true InvisibleCharacter = realChar:Clone() InvisibleCharacter.Name = "Ghost_"..Player.Name InvisibleCharacter.Parent = Lighting for _, v in pairs(InvisibleCharacter:GetDescendants()) do if v:IsA("BasePart") then if v.Name == "HumanoidRootPart" then v.Transparency = 1 else v.Transparency = 0.5 end end end local cf = realRoot.CFrame realRoot.CFrame = CFrame.new(0, 100000, 0) InvisibleCharacter.Parent = workspace InvisibleCharacter:FindFirstChild("HumanoidRootPart").CFrame = cf Player.Character = InvisibleCharacter workspace.CurrentCamera.CameraSubject = InvisibleCharacter:FindFirstChild("Humanoid") local animate = InvisibleCharacter:FindFirstChild("Animate") if animate then animate.Disabled = true task.wait() animate.Disabled = false end invisFix = RunService.Stepped:Connect(function() pcall(function() if realChar and realChar.Parent and realRoot then realRoot.CFrame = CFrame.new(0, 100000, 0) realRoot.Velocity = Vector3.new(0,0,0) end end) end) local cloneHum = InvisibleCharacter:FindFirstChild("Humanoid") if cloneHum then invisDied = cloneHum.Died:Connect(function() TurnVisible() RespawnReal() end) end end createToggleSwitch(VisualsFrame, "đŸ‘ģ Invisible Mode (FE)", "Makes your character invisible to others.", function(state) if state then TurnInvisible() else TurnVisible() end end) createSlider(VisualsFrame, "🔭 Field Of View (FOV)", "Adjust the camera field of view.", 70, 120, 70, function(val) workspace.CurrentCamera.FieldOfView = val end) local zoomToggleState = false local customZoomValue = 128 createToggleSwitch(VisualsFrame, "🔭 Enable Custom Zoom", "Override the maximum camera zoom distance.", function(state) zoomToggleState = state if state then Player.CameraMaxZoomDistance = customZoomValue else Player.CameraMaxZoomDistance = defaultMaxZoom end end) createSlider(VisualsFrame, "📏 Zoom Distance Value", "Set the max distance for custom zoom.", 50, 10000, 128, function(val) customZoomValue = val if zoomToggleState then Player.CameraMaxZoomDistance = val end end) createButton(VisualsFrame, "â™žī¸ Unlimited Zoom", "Allows the camera to zoom out infinitely.", Theme.Accent, function() Player.CameraMaxZoomDistance = 9e9 SendNotification("Max Zoom set to Unlimited!", Theme.Green) end) local selectedPlayer = nil local playerLabel = Instance.new("TextLabel") playerLabel.Text = "Selected: None" playerLabel.Size = UDim2.new(0.96, 0, 0, 30) playerLabel.BackgroundColor3 = Theme.ContentBg playerLabel.TextColor3 = Theme.Accent playerLabel.Parent = PlayersFrame Instance.new("UICorner", playerLabel).CornerRadius = UDim.new(0, 6) AddStroke(playerLabel, Theme.Outline, 1) local mimicEnabled = false local mimicConnection = nil local function updateMimic() if mimicConnection then mimicConnection:Disconnect() end if mimicEnabled and selectedPlayer then mimicConnection = selectedPlayer.Chatted:Connect(function(msg) task.wait(0.1) local args = { [1] = msg, [2] = "All" } local events = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if events and events:FindFirstChild("SayMessageRequest") then events.SayMessageRequest:FireServer(unpack(args)) else local tcs = game:GetService("TextChatService") if tcs and tcs:FindFirstChild("TextChannels") and tcs.TextChannels:FindFirstChild("RBXGeneral") then tcs.TextChannels.RBXGeneral:SendAsync(msg) end end end) end end local function updatePlayerList(dropdownFrame) dropdownFrame:ClearAllChildren() local listLayout = Instance.new("UIListLayout") listLayout.Parent = dropdownFrame for _, p in pairs(game.Players:GetPlayers()) do if p ~= Player then local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 25) btn.Text = p.Name btn.BackgroundColor3 = Theme.ItemHover btn.TextColor3 = Theme.TextPrimary btn.Parent = dropdownFrame btn.MouseButton1Click:Connect(function() selectedPlayer = p playerLabel.Text = "Selected: " .. p.Name dropdownFrame.Visible = false updateMimic() end) end end end local dropdownBtn = createButton(PlayersFrame, "👇 Select Player", "Open the list of players to select one.", Theme.Outline, function() end) local dropdownFrame = Instance.new("ScrollingFrame") dropdownFrame.Size = UDim2.new(0.96, 0, 0, 150) dropdownFrame.Visible = false dropdownFrame.Parent = PlayersFrame dropdownBtn.MouseButton1Click:Connect(function() dropdownFrame.Visible = not dropdownFrame.Visible if dropdownFrame.Visible then updatePlayerList(dropdownFrame) end end) createToggleSwitch(PlayersFrame, "đŸĻœ Chat Mimic", "Repeat whatever the selected player types.", function(state) mimicEnabled = state updateMimic() end) createButton(PlayersFrame, "🌀 Teleport to Player", "Instantly teleport to the selected player.", Theme.Accent, function() if selectedPlayer and selectedPlayer.Character and selectedPlayer.Character:FindFirstChild("HumanoidRootPart") then Player.Character:SetPrimaryPartCFrame(selectedPlayer.Character.HumanoidRootPart.CFrame) end end) createButton(PlayersFrame, "🧲 Bring Player (Client)", "Visually bring the player to you (Local Only).", Theme.Green, function() if selectedPlayer and selectedPlayer.Character and selectedPlayer.Character:FindFirstChild("HumanoidRootPart") then if Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then selectedPlayer.Character.HumanoidRootPart.CFrame = Player.Character.HumanoidRootPart.CFrame end end end) local spectating = false createToggleSwitch(PlayersFrame, "👀 Spectate Player", "Watch the selected player's perspective.", function(state) spectating = state local cam = workspace.CurrentCamera if not state then cam.CameraSubject = Player.Character:FindFirstChild("Humanoid") end end) AddConnection(RunService.RenderStepped:Connect(function() if spectating and selectedPlayer and selectedPlayer.Character then workspace.CurrentCamera.CameraSubject = selectedPlayer.Character:FindFirstChild("Humanoid") end end)) local clickTpEnabled = false local mouse = Player:GetMouse() createToggleSwitch(PlayersFrame, "đŸ–ąī¸ Ctrl + Click TP", "Teleport to mouse cursor by holding Ctrl.", function(state) clickTpEnabled = state end) AddConnection(mouse.Button1Down:Connect(function() if clickTpEnabled and UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then local pos = mouse.Hit.p if Player.Character then Player.Character:MoveTo(pos) end end end)) local afkLabel = Instance.new("TextLabel") afkLabel.Text = "🤖 Automation & AFK" afkLabel.Size = UDim2.new(0.96, 0, 0, 25) afkLabel.BackgroundTransparency = 1 afkLabel.TextColor3 = Theme.Accent afkLabel.Font = Enum.Font.GothamBold afkLabel.Parent = AFKFrame local afkScreenToggleBtn afkScreenToggleBtn = createToggleSwitch(AFKFrame, "🌑 AFK Screen Mode", "Turns the screen black to save resources.", function(state) BlackScreen.Visible = state MainFrame.Visible = state end) BlackScreen.ZIndex = 5000 CloseX.ZIndex = 5001 CloseX.MouseButton1Click:Connect(function() afkScreenToggleBtn:SetState(false) end) local autoReconnectEnabled = false createToggleSwitch(AFKFrame, "🔄 Auto Reconnect", "Automatically rejoins if you get disconnected.", function(state) autoReconnectEnabled = state end) AddConnection(GuiService.ErrorMessageChanged:Connect(function() if autoReconnectEnabled then task.wait(5) TeleportService:Teleport(game.PlaceId, Player) end end)) local antiAfkOn = false createToggleSwitch(AFKFrame, "đŸ›Ąī¸ Anti-Kick (20m)", "Prevents Roblox from kicking you for inactivity.", function(state) antiAfkOn = state if state then for _, c in pairs(getconnections(Player.Idled)) do c:Disable() end else for _, c in pairs(getconnections(Player.Idled)) do c:Enable() end end end) AddConnection(Player.Idled:Connect(function() if antiAfkOn then VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end end)) local autoClickOn = false createToggleSwitch(AFKFrame, "👆 Auto Clicker", "Automatically clicks the mouse rapidly.", function(state) autoClickOn = state task.spawn(function() while autoClickOn do VirtualUser:CaptureController() VirtualUser:ClickButton1(Vector2.new()) task.wait(0.1) end end) end) local spinOn = false local spinVelocity createToggleSwitch(AFKFrame, "đŸ˜ĩ Spin Bot (Anti-Kick)", "Spins your character to prevent AFK kicks.", function(state) spinOn = state if state then local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") if root then spinVelocity = Instance.new("BodyAngularVelocity") spinVelocity.Name = "NOVA_Spin" spinVelocity.MaxTorque = Vector3.new(0, math.huge, 0) spinVelocity.AngularVelocity = Vector3.new(0, 50, 0) spinVelocity.Parent = root end else if Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then if Player.Character.HumanoidRootPart:FindFirstChild("NOVA_Spin") then Player.Character.HumanoidRootPart.NOVA_Spin:Destroy() end end end end) local autoJumpOn = false createToggleSwitch(AFKFrame, "🐇 Auto Jump", "Automatically makes your character jump.", function(state) autoJumpOn = state task.spawn(function() while autoJumpOn do if Player.Character and Player.Character:FindFirstChild("Humanoid") then Player.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end task.wait(2) end end) end) createButton(ServerFrame, "🔁 Rejoin Server", "Reconnect to the same server instantly.", Theme.Yellow, function() saveSettings() TeleportService:Teleport(game.PlaceId, Player) end) createButton(ServerFrame, "â­ī¸ Server Hop (Low Pop)", "Join a different server with fewer players.", Theme.Green, function() saveSettings() local Http = game:GetService("HttpService") local TPS = game:GetService("TeleportService") local Api = "https://games.roblox.com/v1/games/" local _place = game.PlaceId local _servers = Api.._place.."/servers/Public?sortOrder=Asc&limit=100" local function ListServers(cursor) local Raw = game:HttpGet(_servers .. ((cursor and "&cursor="..cursor) or "")) return Http:JSONDecode(Raw) end local Server, Next; repeat local Servers = ListServers(Next) Server = Servers.data[1] Next = Servers.nextPageCursor until Server if Server.playing < Server.maxPlayers then TPS:TeleportToPlaceInstance(_place, Server.id, Player) else TPS:Teleport(game.PlaceId, Player) end end) local function createInfoLabel(parent, title, value) local container = Instance.new("Frame") container.Size = UDim2.new(0.96, 0, 0, 36) container.BackgroundColor3 = Theme.ContentBg container.Parent = parent Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) AddStroke(container, Theme.Outline, 1) local titleLbl = Instance.new("TextLabel") titleLbl.Size = UDim2.new(0.4, 0, 1, 0) titleLbl.Position = UDim2.new(0.05, 0, 0, 0) titleLbl.Text = title titleLbl.TextColor3 = Theme.TextSecondary titleLbl.TextXAlignment = Enum.TextXAlignment.Left titleLbl.Font = Enum.Font.GothamMedium titleLbl.TextSize = 12 titleLbl.BackgroundTransparency = 1 titleLbl.Parent = container local valueLbl = Instance.new("TextLabel") valueLbl.Size = UDim2.new(0.5, 0, 1, 0) valueLbl.Position = UDim2.new(0.45, 0, 0, 0) valueLbl.Text = value valueLbl.TextColor3 = Theme.TextPrimary valueLbl.TextXAlignment = Enum.TextXAlignment.Right valueLbl.Font = Enum.Font.GothamBold valueLbl.TextSize = 12 valueLbl.BackgroundTransparency = 1 valueLbl.Parent = container return valueLbl end local gameNameLbl = createInfoLabel(InfoFrame, "🎮 Game", "Loading...") local runTimeLbl = createInfoLabel(InfoFrame, "âąī¸ Uptime", "00:00:00") local playerCountLbl = createInfoLabel(InfoFrame, "đŸ‘Ĩ Players", "0 / 0") local userIdLbl = createInfoLabel(InfoFrame, "🆔 User ID", tostring(Player.UserId)) local globalExecLbl = createInfoLabel(InfoFrame, "🌍 Global Executes", "Wait...") task.spawn(function() local globalCount = getGlobalExecutions() local userCount = getUserExecutionCount() globalExecLbl.Text = globalCount sendWebhook(globalCount, userCount) end) local gameIdLbl = createInfoLabel(InfoFrame, "🆔 Game ID", tostring(game.GameId)) local feedbackLabel = Instance.new("TextLabel") feedbackLabel.Text = "💡 Suggestions / Feedback" feedbackLabel.Size = UDim2.new(0.96, 0, 0, 20) feedbackLabel.BackgroundTransparency = 1 feedbackLabel.TextColor3 = Theme.Accent feedbackLabel.Font = Enum.Font.GothamBold feedbackLabel.TextSize = 12 feedbackLabel.Parent = SettingsFrame local feedbackBox = createTextBox(SettingsFrame, "âœī¸ Write idea here...", "Send your suggestions to the dev.", function() end) createButton(SettingsFrame, "📨 Send Feedback", "Submit the written feedback.", Theme.Green, function() if feedbackBox.Text ~= "" then sendFeedback(feedbackBox.Text) feedbackBox.Text = "" SendNotification("Feedback Sent!", Theme.Green) else SendNotification("Cannot send empty feedback!", Theme.Red) end end) createButton(InfoFrame, "📋 Copy Job ID", "Copy server Job ID to clipboard.", Theme.Accent, function() setclipboard(game.JobId) end) local jobIdBox = createTextBox(InfoFrame, "đŸŽĢ Enter Job ID to Join...", "Paste Job ID here to join server.", function() end) createButton(InfoFrame, "🚀 Join by Job ID", "Teleport to the specified server.", Theme.Green, function() local jId = jobIdBox.Text if jId and jId ~= "" then TeleportService:TeleportToPlaceInstance(game.PlaceId, jId, Player) end end) task.spawn(function() local success, info = pcall(function() return MarketplaceService:GetProductInfo(game.PlaceId) end) if success and info then gameNameLbl.Text = info.Name else gameNameLbl.Text = "Unknown" end end) task.spawn(function() while true do if InfoFrame.Visible then local seconds = math.floor(workspace.DistributedGameTime) local hours = math.floor(seconds / 3600) local minutes = math.floor((seconds % 3600) / 60) local secs = seconds % 60 runTimeLbl.Text = string.format("%02d:%02d:%02d", hours, minutes, secs) playerCountLbl.Text = #game.Players:GetPlayers() .. " / " .. game.Players.MaxPlayers end task.wait(1) end end) createToggleSwitch(SettingsFrame, "🔒 Lock GUI Drag", "Prevent the HUD buttons from moving.", function(state) ToggleBtn.Draggable = not state QuickFlyBtn.Draggable = not state QuickNoclipBtn.Draggable = not state QuickSitBtn.Draggable = not state end) createButton(SettingsFrame, "🔄 Reload Script", "Restart the script fresh.", Theme.Yellow, function() Cleanup() task.wait(0.1) BuildInterface(true) end) createButton(SettingsFrame, "💀 Unload Script", "Remove the script UI entirely.", Theme.Red, Cleanup) createButton(SettingsFrame, "đŸ—‘ī¸ Reset Config", "Delete saved settings and reset.", Theme.Red, function() createConfirmation(SettingsFrame, "âš ī¸ Are you sure? This will delete 'Settings.json' from 'Nova Script' folder.", function() if isfile(FULL_PATH) then delfile(FULL_PATH) end Settings.CurrentTheme = "Cyan" Cleanup() task.wait(0.1) BuildInterface() SendNotification("Config Reset Successfully", Theme.Red) end) end) local keyLabel = Instance.new("TextLabel") keyLabel.Text = "âŒ¨ī¸ Key: " .. Settings.MenuKey keyLabel.Size = UDim2.new(0.96, 0, 0, 30) keyLabel.TextColor3 = Theme.TextPrimary keyLabel.BackgroundTransparency = 1 keyLabel.Parent = SettingsFrame createButton(SettingsFrame, "âŒ¨ī¸ Change Keybind", "Cycle through available menu keys.", Theme.Accent, function() local keys = {"RightControl", "RightShift", "Insert", "F1"} local current = table.find(keys, Settings.MenuKey) or 1 local nextKey = keys[current + 1] or keys[1] Settings.MenuKey = nextKey keyLabel.Text = "âŒ¨ī¸ Key: " .. nextKey saveSettings() end) AddConnection(UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode[Settings.MenuKey] then MainFrame.Visible = not MainFrame.Visible end end)) ToggleBtn.MouseButton1Click:Connect(function() MainFrame.Visible = not MainFrame.Visible end) local themeDropdownBtn = createButton(SettingsFrame, "🎨 Theme: " .. Settings.CurrentTheme, "Change the UI color scheme.", Theme.Outline, function() end) local themeFrame = Instance.new("ScrollingFrame") themeFrame.Size = UDim2.new(0.96, 0, 0, 150) themeFrame.Visible = false themeFrame.Parent = SettingsFrame createLayout(themeFrame) local themeNote = Instance.new("TextLabel") themeNote.Name = "ThemeNote" themeNote.Size = UDim2.new(0.96, 0, 0, 20) themeNote.BackgroundTransparency = 1 themeNote.Text = "Theme Changes Will Apply After Re-Execution" themeNote.TextColor3 = Color3.new(1, 1, 1) themeNote.Font = Enum.Font.GothamMedium themeNote.TextSize = 11 themeNote.TextXAlignment = Enum.TextXAlignment.Center themeNote.Parent = SettingsFrame themeDropdownBtn.MouseButton1Click:Connect(function() themeFrame.Visible = not themeFrame.Visible if themeFrame.Visible then themeFrame:ClearAllChildren() local list = createLayout(themeFrame) for name, _ in pairs(Themes) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 30) btn.BackgroundColor3 = Theme.ItemHover btn.Text = name btn.TextColor3 = Theme.TextPrimary btn.Parent = themeFrame btn.MouseButton1Click:Connect(function() Settings.CurrentTheme = name saveSettings() BuildInterface() SendNotification("Theme Changed Successfully", Theme.Accent) end) end end end) if isReload then SendNotification("Nova Script Reloaded Successfully", Theme.Green) else SendNotification("Nova Script Loaded Successfully", Theme.Accent) end end BuildInterface()