-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") local Stats = game:GetService("Stats") local Lighting = game:GetService("Lighting") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Config = { ESP = { Enabled = false, Boxes = true, Names = true, HealthBar = true, Distance = true, Tracers = false, TeamCheck = false, MaxDistance = 2000, UseDisplayName = true, ShowBothNames = false, ExfilFlare = false, ExfilFlareColor = Color3.fromRGB(255, 170, 0), BoxColor = Color3.fromRGB(255, 60, 60), NameColor = Color3.fromRGB(255, 255, 255), TracerColor = Color3.fromRGB(255, 60, 60), TracerOrigin = "Bottom" }, Aimbot = { Enabled = false, FOV = 150, Smoothness = 0.15, TargetPart = "Head", TeamCheck = false, VisibleCheck = false, ShowFOV = true, FOVColor = Color3.fromRGB(255, 255, 255), FOVFilled = false, MaxDistance = 2000, Key = Enum.UserInputType.MouseButton2 }, World = { Fullbright = false, ModifyAmbient = false, AmbientColor = Color3.fromRGB(130, 80, 255), ModifyOutdoorAmbient = false, OutdoorAmbientColor = Color3.fromRGB(130, 80, 255), ModifyFog = false, FogColor = Color3.fromRGB(130, 80, 255), FogStart = 0, FogEnd = 1000, ModifyAtmosphere = false, AtmosphereColor = Color3.fromRGB(130, 80, 255), AtmosphereDensity = 0.3, AtmosphereGlare = 0, AtmosphereHaze = 0, ModifyTime = false, TimeOfDay = 14, SkyboxEnabled = false, SkyboxColor = Color3.fromRGB(20, 20, 35) }, Player = { Noclip = false, WalkSpeedEnabled = false, WalkSpeed = 32, WalkSpeedMode = "Safe", JumpPowerEnabled = false, JumpPower = 50, JumpPowerMode = "Safe", FOVEnabled = false, FOV = 70, Spider = false, SpiderSpeed = 16 }, Weapon = { HitSound = false, HitSoundVolume = 0.5, KillSound = false, KillSoundVolume = 0.7, ViewmodelOffset = false, OffsetX = 0, OffsetY = 0, OffsetZ = 0, OffsetRX = 0, OffsetRY = 0, OffsetRZ = 0 }, Utility = { LastConfigName = "default" }, GUI = { Accent = Color3.fromRGB(130, 80, 255) } } local ACCENT = Config.GUI.Accent local BG_DARK = Color3.fromRGB(12, 12, 18) local BG_MED = Color3.fromRGB(16, 16, 24) local BG_ELEM = Color3.fromRGB(20, 20, 30) local BG_ELEM_HOVER = Color3.fromRGB(26, 26, 38) local TXT_MAIN = Color3.fromRGB(220, 220, 235) local TXT_DIM = Color3.fromRGB(130, 130, 155) local TXT_MUTE = Color3.fromRGB(80, 80, 100) local STROKE = Color3.fromRGB(30, 30, 44) local DANGER = Color3.fromRGB(220, 60, 60) local STATUS_ORANGE = Color3.fromRGB(255, 170, 0) local STATUS_RED = Color3.fromRGB(220, 60, 60) local TabStatus = { ESP = 1, Aimbot = 1, Player = 1, UI = 1, Weapon = 3, World = 1, Utility = 1, Settings = 1 } local StatusDots = {} local function RegisterStatusDot(name, dot, glow) StatusDots[name] = { Dot = dot, Glow = glow, Status = TabStatus[name] or 3 } end local function UpdateStatusAnimations() local t = tick() for _, data in pairs(StatusDots) do local blink if data.Status == 1 then blink = 0.35 + 0.35 * math.sin(t * (math.pi * 2 / 3)) data.Dot.BackgroundColor3 = Color3.fromRGB(60, 200, 90) data.Glow.BackgroundColor3 = Color3.fromRGB(60, 200, 90) elseif data.Status == 2 then blink = 0.35 + 0.35 * math.sin(t * (math.pi * 2 / 1.6)) data.Dot.BackgroundColor3 = Color3.fromRGB(255, 170, 0) data.Glow.BackgroundColor3 = Color3.fromRGB(255, 170, 0) elseif data.Status == 3 then blink = 0.35 + 0.35 * math.sin(t * (math.pi * 2 / 0.7)) data.Dot.BackgroundColor3 = Color3.fromRGB(220, 60, 60) data.Glow.BackgroundColor3 = Color3.fromRGB(220, 60, 60) end data.Dot.BackgroundTransparency = math.clamp(blink, 0, 0.7) data.Glow.BackgroundTransparency = math.clamp(blink + 0.3, 0.3, 1) end end local Connections = {} local AllDrawings = {} local Unloaded = false local function Track(conn) table.insert(Connections, conn) return conn end local function DisconnectAll() for _, c in ipairs(Connections) do pcall(function() c:Disconnect() end) end Connections = {} end local function Tween(obj, props, time, style, dir) local t = TweenService:Create(obj, TweenInfo.new(time or 0.2, style or Enum.EasingStyle.Quint, dir or Enum.EasingDirection.Out), props) t:Play() return t end do local old = game:GetService("CoreGui"):FindFirstChild("NyxSuite") if old then old:Destroy() end end local SavedLighting = { Ambient = Lighting.Ambient, OutdoorAmbient = Lighting.OutdoorAmbient, ColorShift_Bottom = Lighting.ColorShift_Bottom, ColorShift_Top = Lighting.ColorShift_Top, FogColor = Lighting.FogColor, FogStart = Lighting.FogStart, FogEnd = Lighting.FogEnd, Brightness = Lighting.Brightness, ClockTime = Lighting.ClockTime } local function GetPlayerName(player) if Config.ESP.ShowBothNames then return player.DisplayName .. " (" .. player.Name .. ")" elseif Config.ESP.UseDisplayName then return player.DisplayName else return player.Name end end local Root = Instance.new("ScreenGui") Root.Name = "NyxSuite" Root.ResetOnSpawn = false Root.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Root.DisplayOrder = 999 Root.Parent = game:GetService("CoreGui") local PopupLayer = Instance.new("Frame") PopupLayer.Name = "PopupLayer" PopupLayer.Size = UDim2.new(1, 0, 1, 0) PopupLayer.BackgroundTransparency = 1 PopupLayer.Visible = false PopupLayer.ZIndex = 100 PopupLayer.Parent = Root local WIN_W, WIN_H, TITLE_H, STATUS_H, SIDEBAR_W = 640, 440, 40, 26, 140 local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.new(0, WIN_W, 0, WIN_H) Main.Position = UDim2.new(0.5, -WIN_W / 2, 0.5, -WIN_H / 2) Main.BackgroundColor3 = BG_DARK Main.BorderSizePixel = 0 Main.Visible = false Main.Parent = Root do Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 8) local s = Instance.new("UIStroke", Main) s.Color = STROKE; s.Thickness = 1 end local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1, 0, 0, TITLE_H) TitleBar.BackgroundColor3 = Color3.fromRGB(9, 9, 14) TitleBar.BorderSizePixel = 0 TitleBar.Parent = Main local TitleDot, TitlePlan do Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 8) local fix = Instance.new("Frame") fix.Size = UDim2.new(1, 0, 0, 12) fix.Position = UDim2.new(0, 0, 1, -12) fix.BackgroundColor3 = Color3.fromRGB(9, 9, 14) fix.BorderSizePixel = 0 fix.Parent = TitleBar TitleDot = Instance.new("Frame") TitleDot.Size = UDim2.new(0, 6, 0, 6) TitleDot.Position = UDim2.new(0, 16, 0.5, -3) TitleDot.BackgroundColor3 = ACCENT TitleDot.BorderSizePixel = 0 TitleDot.Parent = TitleBar Instance.new("UICorner", TitleDot).CornerRadius = UDim.new(1, 0) local title = Instance.new("TextLabel") title.Size = UDim2.new(0, 100, 1, 0) title.Position = UDim2.new(0, 32, 0, 0) title.BackgroundTransparency = 1 title.Text = "nyx.suite" title.TextColor3 = TXT_MAIN title.TextXAlignment = Enum.TextXAlignment.Left title.Font = Enum.Font.GothamBold title.TextSize = 14 title.Parent = TitleBar local ver = Instance.new("TextLabel") ver.Size = UDim2.new(0, 40, 1, 0) ver.Position = UDim2.new(0, 118, 0, 0) ver.BackgroundTransparency = 1 ver.Text = "v5.9" ver.TextColor3 = TXT_MUTE ver.TextXAlignment = Enum.TextXAlignment.Left ver.Font = Enum.Font.Gotham ver.TextSize = 10 ver.Parent = TitleBar TitlePlan = Instance.new("TextLabel") TitlePlan.AnchorPoint = Vector2.new(1, 0) TitlePlan.Size = UDim2.new(0, 56, 1, 0) TitlePlan.Position = UDim2.new(1, -12, 0, 0) TitlePlan.BackgroundTransparency = 1 TitlePlan.Text = "PREMIUM" TitlePlan.TextColor3 = ACCENT TitlePlan.TextXAlignment = Enum.TextXAlignment.Right TitlePlan.Font = Enum.Font.GothamBold TitlePlan.TextSize = 9 TitlePlan.Parent = TitleBar local sep = Instance.new("Frame") sep.AnchorPoint = Vector2.new(1, 0) sep.Size = UDim2.new(0, 1, 0, 12) sep.Position = UDim2.new(1, -76, 0.5, -6) sep.BackgroundColor3 = STROKE sep.BorderSizePixel = 0 sep.Parent = TitleBar local user = Instance.new("TextLabel") user.AnchorPoint = Vector2.new(1, 0) user.Size = UDim2.new(0, 160, 1, 0) user.Position = UDim2.new(1, -88, 0, 0) user.BackgroundTransparency = 1 user.Text = "@" .. LocalPlayer.Name user.TextColor3 = TXT_MUTE user.TextXAlignment = Enum.TextXAlignment.Right user.Font = Enum.Font.GothamMedium user.TextSize = 10 user.Parent = TitleBar local sepLine = Instance.new("Frame") sepLine.Size = UDim2.new(1, 0, 0, 1) sepLine.Position = UDim2.new(0, 0, 1, -1) sepLine.BackgroundColor3 = STROKE sepLine.BorderSizePixel = 0 sepLine.Parent = TitleBar end local Sidebar = Instance.new("Frame") Sidebar.Name = "Sidebar" Sidebar.Size = UDim2.new(0, SIDEBAR_W, 1, -TITLE_H - STATUS_H) Sidebar.Position = UDim2.new(0, 0, 0, TITLE_H) Sidebar.BackgroundColor3 = Color3.fromRGB(10, 10, 16) Sidebar.BorderSizePixel = 0 Sidebar.Parent = Main do local sep = Instance.new("Frame") sep.Size = UDim2.new(0, 1, 1, 0) sep.Position = UDim2.new(1, -1, 0, 0) sep.BackgroundColor3 = STROKE sep.BorderSizePixel = 0 sep.Parent = Sidebar end local SidebarList = Instance.new("Frame") SidebarList.Size = UDim2.new(1, -16, 1, -20) SidebarList.Position = UDim2.new(0, 8, 0, 10) SidebarList.BackgroundTransparency = 1 SidebarList.Parent = Sidebar local SideLayout = Instance.new("UIListLayout") SideLayout.Padding = UDim.new(0, 4) SideLayout.SortOrder = Enum.SortOrder.LayoutOrder SideLayout.Parent = SidebarList local ContentArea = Instance.new("Frame") ContentArea.Name = "ContentArea" ContentArea.Size = UDim2.new(1, -SIDEBAR_W, 1, -TITLE_H - STATUS_H) ContentArea.Position = UDim2.new(0, SIDEBAR_W, 0, TITLE_H) ContentArea.BackgroundColor3 = BG_DARK ContentArea.BorderSizePixel = 0 ContentArea.Parent = Main local StatusBar = Instance.new("Frame") StatusBar.Size = UDim2.new(1, 0, 0, STATUS_H) StatusBar.Position = UDim2.new(0, 0, 1, -STATUS_H) StatusBar.BackgroundColor3 = Color3.fromRGB(9, 9, 14) StatusBar.BorderSizePixel = 0 StatusBar.Parent = Main do local sep = Instance.new("Frame") sep.Size = UDim2.new(1, 0, 0, 1) sep.Position = UDim2.new(0, 0, 0, 0) sep.BackgroundColor3 = STROKE sep.BorderSizePixel = 0 sep.Parent = StatusBar local left = Instance.new("TextLabel") left.Size = UDim2.new(0, 200, 1, 0) left.Position = UDim2.new(0, 12, 0, 0) left.BackgroundTransparency = 1 left.Text = "nyx.suite — build 5.9.0" left.TextColor3 = TXT_MUTE left.TextXAlignment = Enum.TextXAlignment.Left left.Font = Enum.Font.Gotham left.TextSize = 9 left.Parent = StatusBar local right = Instance.new("TextLabel") right.Size = UDim2.new(0, 200, 1, 0) right.Position = UDim2.new(1, -12, 0, 0) right.AnchorPoint = Vector2.new(1, 0) right.BackgroundTransparency = 1 right.Text = "0 fps | 0ms" right.TextColor3 = TXT_MUTE right.TextXAlignment = Enum.TextXAlignment.Right right.Font = Enum.Font.Gotham right.TextSize = 9 right.Parent = StatusBar local frames = 0 local lastTick = tick() Track(RunService.Heartbeat:Connect(function() if Unloaded then return end frames = frames + 1 if tick() - lastTick >= 1 then local fps = frames frames = 0 lastTick = tick() local ping = 0 pcall(function() ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()) end) right.Text = string.format("%d fps | %dms", fps, ping) end end)) end local GUI = {} GUI.Tabs = {} GUI.Open = false GUI.ActivePopup = nil local function ClosePopup() if GUI.ActivePopup then GUI.ActivePopup:Destroy() GUI.ActivePopup = nil end PopupLayer.Visible = false end local Tooltip = Instance.new("Frame") Tooltip.Name = "Tooltip" Tooltip.Size = UDim2.new(0, 200, 0, 0) Tooltip.BackgroundColor3 = Color3.fromRGB(12, 12, 20) Tooltip.BorderSizePixel = 0 Tooltip.Visible = false Tooltip.ZIndex = 200 Tooltip.Parent = Root Instance.new("UICorner", Tooltip).CornerRadius = UDim.new(0, 6) local ttStroke = Instance.new("UIStroke", Tooltip) ttStroke.Color = ACCENT ttStroke.Thickness = 1 ttStroke.Transparency = 0.5 local ttLabel = Instance.new("TextLabel") ttLabel.Name = "TooltipLabel" ttLabel.Size = UDim2.new(1, -16, 1, -8) ttLabel.Position = UDim2.new(0, 8, 0, 4) ttLabel.BackgroundTransparency = 1 ttLabel.TextColor3 = Color3.fromRGB(200, 200, 215) ttLabel.Font = Enum.Font.GothamMedium ttLabel.TextSize = 11 ttLabel.TextXAlignment = Enum.TextXAlignment.Left ttLabel.TextYAlignment = Enum.TextYAlignment.Top ttLabel.TextWrapped = true ttLabel.Text = "" ttLabel.Parent = Tooltip local function ShowTooltip(text, anchorFrame) if not text or text == "" then return end ttLabel.Text = text Tooltip.Visible = true task.defer(function() if not Tooltip.Visible then return end local textHeight = ttLabel.TextBounds.Y local textWidth = ttLabel.TextBounds.X Tooltip.Size = UDim2.new(0, math.max(textWidth + 16, 120), 0, textHeight + 10) local anchorPos = anchorFrame.AbsolutePosition local anchorSize = anchorFrame.AbsoluteSize local tooltipX = anchorPos.X local tooltipY = anchorPos.Y - Tooltip.Size.Y.Offset - 8 if tooltipY < 0 then tooltipY = anchorPos.Y + anchorSize.Y + 8 end Tooltip.Position = UDim2.new(0, tooltipX, 0, tooltipY) end) end local function HideTooltip() Tooltip.Visible = false end UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then HideTooltip() end end) local function ApplyAccent(newAccent) local oldAccent = Config.GUI.Accent ACCENT = newAccent Config.GUI.Accent = newAccent if TitleDot then TitleDot.BackgroundColor3 = newAccent end if TitlePlan then TitlePlan.TextColor3 = newAccent end ttStroke.Color = newAccent for _, tab in ipairs(GUI.Tabs) do if tab.Page then local function ScanElement(elem) if not elem:IsA("GuiObject") then return end if elem:IsA("TextLabel") and elem.TextColor3 == oldAccent then elem.TextColor3 = newAccent end if elem:IsA("Frame") and elem.BackgroundColor3 == oldAccent then elem.BackgroundColor3 = newAccent end for _, child in ipairs(elem:GetChildren()) do if child:IsA("UIStroke") and child.Color == oldAccent then child.Color = newAccent end if child:IsA("UIGradient") then local kp = child.Color.Keypoints if #kp >= 2 and kp[1].Value == oldAccent then child.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, newAccent), ColorSequenceKeypoint.new(1, kp[#kp].Value) } end end ScanElement(child) end end for _, holder in ipairs(tab.Page:GetChildren()) do ScanElement(holder) end end if tab.Btn then local ind = tab.Btn:FindFirstChild("Indicator") if ind and ind.BackgroundColor3 == oldAccent then ind.BackgroundColor3 = newAccent end end end end function GUI:CreateTab(name, icon) local Tab = { Name = name, IsActive = false } local btn = Instance.new("TextButton") btn.Name = name .. "_Tab" btn.Size = UDim2.new(1, 0, 0, 34) btn.BackgroundColor3 = Color3.fromRGB(10, 10, 16) btn.BackgroundTransparency = 1 btn.Text = "" btn.AutoButtonColor = false btn.Parent = SidebarList Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local indicator = Instance.new("Frame") indicator.Name = "Indicator" indicator.Size = UDim2.new(0, 3, 0, 0) indicator.Position = UDim2.new(0, 0, 0.5, 0) indicator.AnchorPoint = Vector2.new(0, 0.5) indicator.BackgroundColor3 = ACCENT indicator.BorderSizePixel = 0 indicator.Parent = btn Instance.new("UICorner", indicator).CornerRadius = UDim.new(1, 0) local statusGlow = Instance.new("Frame") statusGlow.Name = "StatusGlow" statusGlow.Size = UDim2.new(0, 10, 0, 10) statusGlow.Position = UDim2.new(1, -16, 0.5, -5) statusGlow.BackgroundColor3 = ACCENT statusGlow.BackgroundTransparency = 0.7 statusGlow.BorderSizePixel = 0 statusGlow.ZIndex = 1 statusGlow.Parent = btn Instance.new("UICorner", statusGlow).CornerRadius = UDim.new(1, 0) local statusDot = Instance.new("Frame") statusDot.Name = "StatusDot" statusDot.Size = UDim2.new(0, 6, 0, 6) statusDot.Position = UDim2.new(1, -14, 0.5, -3) statusDot.BackgroundColor3 = ACCENT statusDot.BorderSizePixel = 0 statusDot.ZIndex = 2 statusDot.Parent = btn Instance.new("UICorner", statusDot).CornerRadius = UDim.new(1, 0) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -34, 1, 0) lbl.Position = UDim2.new(0, 24, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = (icon or "") .. " " .. name lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = btn function Tab:SetStatus(statusNum) if statusNum >= 1 and statusNum <= 3 then TabStatus[name] = statusNum if StatusDots[name] then StatusDots[name].Status = statusNum end end end local page = Instance.new("ScrollingFrame") page.Name = name .. "_Page" page.Size = UDim2.new(1, -24, 1, -16) page.Position = UDim2.new(0, 12, 0, 8) page.BackgroundTransparency = 1 page.BorderSizePixel = 0 page.ScrollBarThickness = 2 page.ScrollBarImageColor3 = Color3.fromRGB(45, 45, 60) page.CanvasSize = UDim2.new(0, 0, 0, 0) page.Visible = false page.Parent = ContentArea local pl = Instance.new("UIListLayout") pl.Padding = UDim.new(0, 4) pl.SortOrder = Enum.SortOrder.LayoutOrder pl.Parent = page local pp = Instance.new("UIPadding") pp.PaddingRight = UDim.new(0, 6) pp.PaddingBottom = UDim.new(0, 12) pp.Parent = page pl:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() page.CanvasSize = UDim2.new(0, 0, 0, pl.AbsoluteContentSize.Y + 24) end) btn.MouseEnter:Connect(function() if not Tab.IsActive then Tween(btn, {BackgroundTransparency = 0.5}, 0.15) Tween(lbl, {TextColor3 = TXT_MAIN}, 0.15) end end) btn.MouseLeave:Connect(function() if not Tab.IsActive then Tween(btn, {BackgroundTransparency = 1}, 0.15) Tween(lbl, {TextColor3 = TXT_DIM}, 0.15) end end) function Tab:SetActive(active) Tab.IsActive = active if active then Tween(btn, {BackgroundTransparency = 0.3}, 0.2) Tween(lbl, {TextColor3 = Color3.fromRGB(255, 255, 255)}, 0.2) Tween(indicator, {Size = UDim2.new(0, 3, 0, 20)}, 0.25, Enum.EasingStyle.Back) page.Visible = true page.CanvasPosition = Vector2.new(0, 0) else Tween(btn, {BackgroundTransparency = 1}, 0.2) Tween(lbl, {TextColor3 = TXT_DIM}, 0.2) Tween(indicator, {Size = UDim2.new(0, 3, 0, 0)}, 0.2) page.Visible = false end end btn.MouseButton1Click:Connect(function() ClosePopup() for _, t in ipairs(GUI.Tabs) do t:SetActive(false) end Tab:SetActive(true) end) Tab.Page = page Tab.Btn = btn table.insert(GUI.Tabs, Tab) RegisterStatusDot(name, statusDot, statusGlow) return Tab end function GUI:CreateSection(parent, text) local holder = Instance.new("Frame") holder.Size = UDim2.new(1, 0, 0, 30) holder.BackgroundTransparency = 1 holder.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 18) lbl.Position = UDim2.new(0, 0, 0, 4) lbl.BackgroundTransparency = 1 lbl.Text = text:upper() lbl.TextColor3 = ACCENT lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamBold lbl.TextSize = 10 lbl.Parent = holder local line = Instance.new("Frame") line.Size = UDim2.new(1, 0, 0, 1) line.Position = UDim2.new(0, 0, 1, -4) line.BackgroundColor3 = STROKE line.BorderSizePixel = 0 line.Parent = holder local g = Instance.new("UIGradient", line) g.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, ACCENT), ColorSequenceKeypoint.new(1, BG_DARK) } g.Transparency = NumberSequence.new{ NumberSequenceKeypoint.new(0, 0.3), NumberSequenceKeypoint.new(1, 1) } return holder end function GUI:CreateToggle(parent, text, default, callback, tooltip) local Toggle = { Value = default or false, Callback = callback } local frame = Instance.new("TextButton") frame.Size = UDim2.new(1, 0, 0, 36) frame.BackgroundColor3 = BG_ELEM frame.Text = "" frame.AutoButtonColor = false frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local fs = Instance.new("UIStroke", frame) fs.Color = STROKE; fs.Thickness = 1 local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -70, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = frame local swBack = Instance.new("Frame") swBack.Size = UDim2.new(0, 38, 0, 18) swBack.Position = UDim2.new(1, -50, 0.5, -9) swBack.BackgroundColor3 = Color3.fromRGB(25, 25, 35) swBack.BorderSizePixel = 0 swBack.Parent = frame Instance.new("UICorner", swBack).CornerRadius = UDim.new(1, 0) local swStroke = Instance.new("UIStroke", swBack) swStroke.Color = Color3.fromRGB(35, 35, 48); swStroke.Thickness = 1 local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 12, 0, 12) knob.Position = UDim2.new(0, 3, 0.5, -6) knob.BackgroundColor3 = Color3.fromRGB(90, 90, 110) knob.BorderSizePixel = 0 knob.Parent = swBack Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local function Set(value) Toggle.Value = value if value then Tween(swBack, {BackgroundColor3 = ACCENT}, 0.2) Tween(knob, {Position = UDim2.new(0, 23, 0.5, -6), BackgroundColor3 = Color3.fromRGB(255, 255, 255)}, 0.25, Enum.EasingStyle.Back) Tween(fs, {Color = ACCENT}, 0.2) Tween(lbl, {TextColor3 = TXT_MAIN}, 0.15) else Tween(swBack, {BackgroundColor3 = Color3.fromRGB(25, 25, 35)}, 0.2) Tween(knob, {Position = UDim2.new(0, 3, 0.5, -6), BackgroundColor3 = Color3.fromRGB(90, 90, 110)}, 0.25, Enum.EasingStyle.Back) Tween(fs, {Color = STROKE}, 0.2) Tween(lbl, {TextColor3 = TXT_DIM}, 0.15) end if Toggle.Callback then Toggle.Callback(value) end end frame.MouseEnter:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM_HOVER}, 0.12) if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM}, 0.12) HideTooltip() end) frame.MouseButton1Click:Connect(function() Set(not Toggle.Value) end) Set(default or false) Toggle.Set = Set return Toggle end function GUI:CreateSlider(parent, text, min, max, default, callback, decimals, tooltip) local Slider = { Value = default or min, Callback = callback } local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 52) frame.BackgroundColor3 = BG_ELEM frame.BorderSizePixel = 0 frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -70, 0, 18) lbl.Position = UDim2.new(0, 12, 0, 6) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = frame local valLbl = Instance.new("TextLabel") valLbl.Size = UDim2.new(0, 56, 0, 18) valLbl.Position = UDim2.new(1, -68, 0, 6) valLbl.BackgroundTransparency = 1 valLbl.Text = tostring(default or min) valLbl.TextColor3 = ACCENT valLbl.TextXAlignment = Enum.TextXAlignment.Right valLbl.Font = Enum.Font.GothamBold valLbl.TextSize = 12 valLbl.Parent = frame local track = Instance.new("Frame") track.Size = UDim2.new(1, -24, 0, 4) track.Position = UDim2.new(0, 12, 0, 36) track.BackgroundColor3 = Color3.fromRGB(25, 25, 35) track.BorderSizePixel = 0 track.Parent = frame Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0) local fill = Instance.new("Frame") fill.BackgroundColor3 = ACCENT fill.BorderSizePixel = 0 fill.Parent = track Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0) local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 10, 0, 10) knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) knob.BorderSizePixel = 0 knob.Parent = track Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0) local dragging = false local function Set(value) value = math.clamp(value, min, max) Slider.Value = value local alpha = (value - min) / (max - min) fill.Size = UDim2.new(alpha, 0, 1, 0) knob.Position = UDim2.new(alpha, -5, 0.5, -5) if decimals then valLbl.Text = string.format("%." .. decimals .. "f", value) else valLbl.Text = tostring(math.floor(value)) end if Slider.Callback then Slider.Callback(value) end end frame.MouseEnter:Connect(function() if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() HideTooltip() end) track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true local relPos = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) Set(min + (max - min) * relPos) end end) Track(UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local relPos = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) Set(min + (max - min) * relPos) end end)) Track(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)) Set(default or min) Slider.Set = Set return Slider end function GUI:CreateDropdown(parent, text, options, default, callback, tooltip) local Dropdown = { Value = default or options[1], Callback = callback } local isOpen = false local frame = Instance.new("TextButton") frame.Size = UDim2.new(1, 0, 0, 36) frame.BackgroundColor3 = BG_ELEM frame.Text = "" frame.AutoButtonColor = false frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -40, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text .. ": " .. (default or options[1]) lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = frame local arrow = Instance.new("TextLabel") arrow.Size = UDim2.new(0, 16, 1, 0) arrow.Position = UDim2.new(1, -26, 0, 0) arrow.BackgroundTransparency = 1 arrow.Text = "v" arrow.TextColor3 = TXT_MUTE arrow.TextSize = 11 arrow.Font = Enum.Font.GothamBold arrow.Parent = frame frame.MouseEnter:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM_HOVER}, 0.12) if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM}, 0.12) HideTooltip() end) frame.MouseButton1Click:Connect(function() HideTooltip() if isOpen then ClosePopup() isOpen = false return end ClosePopup() isOpen = true PopupLayer.Visible = true local list = Instance.new("Frame") list.Size = UDim2.new(0, frame.AbsoluteSize.X, 0, #options * 30 + 8) list.Position = UDim2.new(0, frame.AbsolutePosition.X, 0, frame.AbsolutePosition.Y + frame.AbsoluteSize.Y + 4) list.BackgroundColor3 = BG_MED list.BorderSizePixel = 0 list.ClipsDescendants = true list.Parent = PopupLayer Instance.new("UICorner", list).CornerRadius = UDim.new(0, 6) local ls = Instance.new("UIStroke", list) ls.Color = ACCENT; ls.Thickness = 1; ls.Transparency = 0.6 GUI.ActivePopup = list for i, option in ipairs(options) do local opt = Instance.new("TextButton") opt.Size = UDim2.new(1, -10, 0, 26) opt.Position = UDim2.new(0, 5, 0, (i - 1) * 30 + 4) opt.BackgroundColor3 = BG_ELEM opt.BackgroundTransparency = 1 opt.Text = "" opt.AutoButtonColor = false opt.Parent = list Instance.new("UICorner", opt).CornerRadius = UDim.new(0, 5) local ol = Instance.new("TextLabel") ol.Size = UDim2.new(1, -16, 1, 0) ol.Position = UDim2.new(0, 10, 0, 0) ol.BackgroundTransparency = 1 ol.Text = option ol.TextColor3 = (option == Dropdown.Value) and ACCENT or TXT_DIM ol.TextXAlignment = Enum.TextXAlignment.Left ol.Font = (option == Dropdown.Value) and Enum.Font.GothamBold or Enum.Font.Gotham ol.TextSize = 11 ol.Parent = opt opt.MouseEnter:Connect(function() Tween(opt, {BackgroundTransparency = 0.4}, 0.08) Tween(ol, {TextColor3 = TXT_MAIN}, 0.08) end) opt.MouseLeave:Connect(function() Tween(opt, {BackgroundTransparency = 1}, 0.08) end) opt.MouseButton1Click:Connect(function() Dropdown.Value = option lbl.Text = text .. ": " .. option if Dropdown.Callback then Dropdown.Callback(option) end ClosePopup() isOpen = false end) end end) return Dropdown end function GUI:CreateColorPicker(parent, text, default, callback, tooltip) local Picker = { Value = default or Color3.fromRGB(255, 255, 255), Callback = callback } local isOpen = false local hue, sat, val = Color3.toHSV(Picker.Value) local frame = Instance.new("TextButton") frame.Size = UDim2.new(1, 0, 0, 36) frame.BackgroundColor3 = BG_ELEM frame.Text = "" frame.AutoButtonColor = false frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -70, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = frame local swatch = Instance.new("Frame") swatch.Size = UDim2.new(0, 34, 0, 14) swatch.Position = UDim2.new(1, -46, 0.5, -7) swatch.BackgroundColor3 = Picker.Value swatch.BorderSizePixel = 0 swatch.Parent = frame Instance.new("UICorner", swatch).CornerRadius = UDim.new(0, 3) local ss = Instance.new("UIStroke", swatch) ss.Color = Color3.fromRGB(40, 40, 55); ss.Thickness = 1 local function Apply() local color = Color3.fromHSV(hue, sat, val) Picker.Value = color swatch.BackgroundColor3 = color if Picker.Callback then Picker.Callback(color) end end frame.MouseEnter:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM_HOVER}, 0.12) if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM}, 0.12) HideTooltip() end) frame.MouseButton1Click:Connect(function() HideTooltip() if isOpen then ClosePopup() isOpen = false return end ClosePopup() isOpen = true PopupLayer.Visible = true local popup = Instance.new("Frame") popup.Size = UDim2.new(0, 170, 0, 140) popup.Position = UDim2.new(0, frame.AbsolutePosition.X + frame.AbsoluteSize.X - 170, 0, frame.AbsolutePosition.Y + frame.AbsoluteSize.Y + 4) popup.BackgroundColor3 = BG_MED popup.BorderSizePixel = 0 popup.Parent = PopupLayer Instance.new("UICorner", popup).CornerRadius = UDim.new(0, 6) local ps = Instance.new("UIStroke", popup) ps.Color = ACCENT; ps.Thickness = 1; ps.Transparency = 0.6 GUI.ActivePopup = popup local sbCanvas = Instance.new("Frame") sbCanvas.Size = UDim2.new(1, -12, 0, 80) sbCanvas.Position = UDim2.new(0, 6, 0, 6) sbCanvas.BackgroundColor3 = Color3.fromHSV(hue, 1, 1) sbCanvas.BorderSizePixel = 0 sbCanvas.Parent = popup Instance.new("UICorner", sbCanvas).CornerRadius = UDim.new(0, 4) local sbg = Instance.new("UIGradient", sbCanvas) sbg.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)) } sbg.Rotation = 90 local sbCursor = Instance.new("Frame") sbCursor.Size = UDim2.new(0, 6, 0, 6) sbCursor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sbCursor.BorderSizePixel = 0 sbCursor.Parent = sbCanvas Instance.new("UICorner", sbCursor).CornerRadius = UDim.new(1, 0) local hueTrack = Instance.new("Frame") hueTrack.Size = UDim2.new(1, -12, 0, 8) hueTrack.Position = UDim2.new(0, 6, 0, 94) hueTrack.BackgroundColor3 = Color3.fromRGB(255, 0, 0) hueTrack.BorderSizePixel = 0 hueTrack.Parent = popup Instance.new("UICorner", hueTrack).CornerRadius = UDim.new(1, 0) local htg = Instance.new("UIGradient", hueTrack) htg.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.17, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.33, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)), ColorSequenceKeypoint.new(0.67, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.83, Color3.fromRGB(255, 0, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)) } local hueCursor = Instance.new("Frame") hueCursor.Size = UDim2.new(0, 4, 0, 12) hueCursor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hueCursor.BorderSizePixel = 0 hueCursor.Parent = hueTrack Instance.new("UICorner", hueCursor).CornerRadius = UDim.new(1, 0) local rgbLbl = Instance.new("TextLabel") rgbLbl.Size = UDim2.new(1, -12, 0, 16) rgbLbl.Position = UDim2.new(0, 6, 0, 112) rgbLbl.BackgroundTransparency = 1 rgbLbl.Text = "" rgbLbl.TextColor3 = TXT_MUTE rgbLbl.Font = Enum.Font.GothamMedium rgbLbl.TextSize = 9 rgbLbl.TextXAlignment = Enum.TextXAlignment.Left rgbLbl.Parent = popup local sbDrag, hueDrag = false, false local conns = {} local function Refresh() local color = Color3.fromHSV(hue, sat, val) sbCanvas.BackgroundColor3 = Color3.fromHSV(hue, 1, 1) sbCursor.Position = UDim2.new(0, math.clamp(sat * sbCanvas.AbsoluteSize.X - 3, 0, sbCanvas.AbsoluteSize.X - 6), 0, math.clamp((1 - val) * sbCanvas.AbsoluteSize.Y - 3, 0, sbCanvas.AbsoluteSize.Y - 6)) hueCursor.Position = UDim2.new(0, math.clamp(hue * hueTrack.AbsoluteSize.X - 2, 0, hueTrack.AbsoluteSize.X - 4), 0.5, -6) rgbLbl.Text = string.format("RGB: %d, %d, %d", math.floor(color.R * 255), math.floor(color.G * 255), math.floor(color.B * 255)) end sbCanvas.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sbDrag = true sat = math.clamp((input.Position.X - sbCanvas.AbsolutePosition.X) / sbCanvas.AbsoluteSize.X, 0, 1) val = 1 - math.clamp((input.Position.Y - sbCanvas.AbsolutePosition.Y) / sbCanvas.AbsoluteSize.Y, 0, 1) Apply(); Refresh() end end) hueTrack.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then hueDrag = true hue = math.clamp((input.Position.X - hueTrack.AbsolutePosition.X) / hueTrack.AbsoluteSize.X, 0, 1) Apply(); Refresh() end end) table.insert(conns, UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then if sbDrag then sat = math.clamp((input.Position.X - sbCanvas.AbsolutePosition.X) / sbCanvas.AbsoluteSize.X, 0, 1) val = 1 - math.clamp((input.Position.Y - sbCanvas.AbsolutePosition.Y) / sbCanvas.AbsoluteSize.Y, 0, 1) Apply(); Refresh() elseif hueDrag then hue = math.clamp((input.Position.X - hueTrack.AbsolutePosition.X) / hueTrack.AbsoluteSize.X, 0, 1) Apply(); Refresh() end end end)) table.insert(conns, UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then sbDrag = false; hueDrag = false end end)) popup.Destroying:Connect(function() for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end end) Refresh() end) return Picker end function GUI:CreateKeybind(parent, text, default, callback, tooltip) local Keybind = { Value = default, Callback = callback, Listening = false } local frame = Instance.new("TextButton") frame.Size = UDim2.new(1, 0, 0, 36) frame.BackgroundColor3 = BG_ELEM frame.Text = "" frame.AutoButtonColor = false frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -100, 1, 0) lbl.Position = UDim2.new(0, 12, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = TXT_DIM lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.GothamMedium lbl.TextSize = 12 lbl.Parent = frame local keyLbl = Instance.new("TextLabel") keyLbl.Size = UDim2.new(0, 70, 0, 20) keyLbl.Position = UDim2.new(1, -82, 0.5, -10) keyLbl.BackgroundColor3 = Color3.fromRGB(22, 22, 32) keyLbl.Text = "" keyLbl.TextColor3 = TXT_MAIN keyLbl.Font = Enum.Font.GothamBold keyLbl.TextSize = 10 keyLbl.Parent = frame Instance.new("UICorner", keyLbl).CornerRadius = UDim.new(0, 4) local ks = Instance.new("UIStroke", keyLbl) ks.Color = Color3.fromRGB(35, 35, 48); ks.Thickness = 1 local function GetKeyName(v) if v == Enum.UserInputType.MouseButton1 then return "LMB" end if v == Enum.UserInputType.MouseButton2 then return "RMB" end if v == Enum.UserInputType.MouseButton3 then return "MMB" end if typeof(v) == "EnumItem" then return v.Name end return "?" end keyLbl.Text = GetKeyName(default) Track(UserInputService.InputBegan:Connect(function(input, processed) if Keybind.Listening then if input.KeyCode ~= Enum.KeyCode.Unknown then Keybind.Value = input.KeyCode else Keybind.Value = input.UserInputType end Keybind.Listening = false keyLbl.Text = GetKeyName(Keybind.Value) keyLbl.TextColor3 = TXT_MAIN if Keybind.Callback then Keybind.Callback(Keybind.Value) end end end)) frame.MouseEnter:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM_HOVER}, 0.12) if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM}, 0.12) HideTooltip() end) frame.MouseButton1Click:Connect(function() Keybind.Listening = true keyLbl.Text = "..." keyLbl.TextColor3 = ACCENT end) return Keybind end function GUI:CreateLabel(parent, text) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 20) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = TXT_MUTE lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.Gotham lbl.TextSize = 10 lbl.Parent = parent return lbl end function GUI:CreateButton(parent, text, callback, color, tooltip) local Button = { Callback = callback } local frame = Instance.new("TextButton") frame.Size = UDim2.new(1, 0, 0, 40) frame.BackgroundColor3 = BG_ELEM frame.Text = "" frame.AutoButtonColor = false frame.Parent = parent Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local fs = Instance.new("UIStroke", frame) fs.Color = color or STROKE; fs.Thickness = 1 local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = color or TXT_MAIN lbl.Font = Enum.Font.GothamBold lbl.TextSize = 12 lbl.Parent = frame frame.MouseEnter:Connect(function() Tween(frame, {BackgroundColor3 = color and Color3.fromRGB(35, 18, 18) or BG_ELEM_HOVER}, 0.12) if color then Tween(fs, {Color = DANGER}, 0.12) end if tooltip then ShowTooltip(tooltip, frame) end end) frame.MouseLeave:Connect(function() Tween(frame, {BackgroundColor3 = BG_ELEM}, 0.12) if color then Tween(fs, {Color = color}, 0.12) end HideTooltip() end) frame.MouseButton1Click:Connect(function() if Button.Callback then Button.Callback() end end) Button.Label = lbl Button.Frame = frame return Button end function GUI:CreateESPPreview(parent) local Preview = {} local PREVIEW_H = 190 local BOX_W, BOX_H = 38, 64 local BOX_TOP = 68 local BOX_BOTTOM = BOX_TOP + BOX_H local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, PREVIEW_H) container.BackgroundColor3 = Color3.fromRGB(7, 7, 12) container.BorderSizePixel = 0 container.ClipsDescendants = true container.Parent = parent Instance.new("UICorner", container).CornerRadius = UDim.new(0, 6) local cst = Instance.new("UIStroke", container) cst.Color = STROKE; cst.Thickness = 1 local tag = Instance.new("TextLabel") tag.Size = UDim2.new(0, 90, 0, 12) tag.Position = UDim2.new(0, 8, 0, 6) tag.BackgroundTransparency = 1 tag.Text = "LIVE PREVIEW" tag.TextColor3 = Color3.fromRGB(38, 38, 52) tag.Font = Enum.Font.GothamBold tag.TextSize = 8 tag.Parent = container local offLabel = Instance.new("TextLabel") offLabel.AnchorPoint = Vector2.new(1, 0) offLabel.Size = UDim2.new(0, 60, 0, 14) offLabel.Position = UDim2.new(1, -8, 0, 6) offLabel.BackgroundTransparency = 1 offLabel.Text = "ESP OFF" offLabel.TextColor3 = Color3.fromRGB(60, 60, 75) offLabel.Font = Enum.Font.GothamBold offLabel.TextSize = 8 offLabel.Parent = container local pulseDot = Instance.new("Frame") pulseDot.Size = UDim2.new(0, 4, 0, 4) pulseDot.Position = UDim2.new(0, 100, 0, 10) pulseDot.BackgroundColor3 = ACCENT pulseDot.BorderSizePixel = 0 pulseDot.Parent = container Instance.new("UICorner", pulseDot).CornerRadius = UDim.new(1, 0) local ground = Instance.new("Frame") ground.Size = UDim2.new(1, -24, 0, 1) ground.Position = UDim2.new(0, 12, 0, PREVIEW_H - 14) ground.BackgroundColor3 = Color3.fromRGB(16, 16, 24) ground.BorderSizePixel = 0 ground.Parent = container for gx = 1, 6 do local gridDot = Instance.new("Frame") gridDot.Size = UDim2.new(0, 2, 0, 2) gridDot.Position = UDim2.new(0, 20 + gx * 55, 0, 30 + (gx % 3) * 35) gridDot.BackgroundColor3 = Color3.fromRGB(14, 14, 22) gridDot.BorderSizePixel = 0 gridDot.Parent = container Instance.new("UICorner", gridDot).CornerRadius = UDim.new(1, 0) end local box = Instance.new("Frame") box.Size = UDim2.new(0, BOX_W, 0, BOX_H) box.Position = UDim2.new(0.5, -BOX_W / 2, 0, BOX_TOP) box.BackgroundTransparency = 1 box.Parent = container local boxStroke = Instance.new("UIStroke") boxStroke.Thickness = 1 boxStroke.Parent = box local bodyFill = Instance.new("Frame") bodyFill.Size = UDim2.new(1, -8, 1, -8) bodyFill.Position = UDim2.new(0, 4, 0, 4) bodyFill.BackgroundColor3 = Color3.fromRGB(255, 255, 255) bodyFill.BackgroundTransparency = 0.94 bodyFill.BorderSizePixel = 0 bodyFill.Parent = box local head = Instance.new("Frame") head.Size = UDim2.new(0, 12, 0, 12) head.Position = UDim2.new(0.5, -6, 0, -8) head.BackgroundColor3 = Color3.fromRGB(255, 255, 255) head.BackgroundTransparency = 0.94 head.BorderSizePixel = 0 head.Parent = box Instance.new("UICorner", head).CornerRadius = UDim.new(1, 0) local nameLabel = Instance.new("TextLabel") nameLabel.AnchorPoint = Vector2.new(0.5, 0) nameLabel.Size = UDim2.new(0, 120, 0, 14) nameLabel.Position = UDim2.new(0.5, 0, 0, BOX_TOP - 20) nameLabel.BackgroundTransparency = 1 nameLabel.Font = Enum.Font.GothamMedium nameLabel.TextSize = 10 nameLabel.Text = LocalPlayer.DisplayName nameLabel.Parent = container local healthBack = Instance.new("Frame") healthBack.Size = UDim2.new(0, 3, 0, BOX_H) healthBack.Position = UDim2.new(0.5, -BOX_W / 2 - 8, 0, BOX_TOP) healthBack.BackgroundColor3 = Color3.fromRGB(30, 30, 42) healthBack.BorderSizePixel = 0 healthBack.Parent = container local healthFill = Instance.new("Frame") healthFill.Size = UDim2.new(0, 3, 0, BOX_H) healthFill.Position = UDim2.new(0.5, -BOX_W / 2 - 8, 0, BOX_TOP) healthFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0) healthFill.BorderSizePixel = 0 healthFill.Parent = container local healthText = Instance.new("TextLabel") healthText.AnchorPoint = Vector2.new(0.5, 0) healthText.Size = UDim2.new(0, 34, 0, 10) healthText.Position = UDim2.new(0.5, -BOX_W / 2 - 8 - 17, 0, BOX_TOP - 14) healthText.BackgroundTransparency = 1 healthText.Font = Enum.Font.Gotham healthText.TextSize = 8 healthText.TextColor3 = Color3.fromRGB(100, 100, 120) healthText.Text = "100" healthText.Parent = container local distanceLabel = Instance.new("TextLabel") distanceLabel.AnchorPoint = Vector2.new(0.5, 0) distanceLabel.Size = UDim2.new(0, 60, 0, 12) distanceLabel.Position = UDim2.new(0.5, 0, 0, BOX_BOTTOM + 4) distanceLabel.BackgroundTransparency = 1 distanceLabel.Text = "[128m]" distanceLabel.TextColor3 = Color3.fromRGB(150, 150, 170) distanceLabel.Font = Enum.Font.Gotham distanceLabel.TextSize = 9 distanceLabel.Parent = container local tracer = Instance.new("Frame") tracer.BackgroundColor3 = Config.ESP.TracerColor tracer.BorderSizePixel = 0 tracer.AnchorPoint = Vector2.new(0.5, 0) tracer.Parent = container local originMarker = Instance.new("TextLabel") originMarker.Size = UDim2.new(0, 12, 0, 12) originMarker.BackgroundTransparency = 1 originMarker.Text = "+" originMarker.TextColor3 = Color3.fromRGB(80, 80, 100) originMarker.Font = Enum.Font.GothamBold originMarker.TextSize = 10 originMarker.AnchorPoint = Vector2.new(0.5, 0.5) originMarker.Parent = container function Preview:Update() if Unloaded then return end local pulse = 0.5 + 0.5 * math.sin(tick() * 3) pulseDot.BackgroundTransparency = 0.3 + pulse * 0.5 pulseDot.BackgroundColor3 = ACCENT offLabel.Visible = not Config.ESP.Enabled box.Visible = Config.ESP.Boxes boxStroke.Color = Config.ESP.BoxColor bodyFill.Visible = Config.ESP.Boxes head.Visible = Config.ESP.Boxes nameLabel.Visible = Config.ESP.Names nameLabel.TextColor3 = Config.ESP.NameColor if Config.ESP.ShowBothNames then nameLabel.Text = LocalPlayer.DisplayName .. " (" .. LocalPlayer.Name .. ")" elseif Config.ESP.UseDisplayName then nameLabel.Text = LocalPlayer.DisplayName else nameLabel.Text = LocalPlayer.Name end healthBack.Visible = Config.ESP.HealthBar healthFill.Visible = Config.ESP.HealthBar healthText.Visible = Config.ESP.HealthBar if Config.ESP.HealthBar then local t = (tick() % 6) / 6 local hp = 0.5 + 0.5 * math.cos(t * math.pi * 2) hp = math.clamp(hp, 0, 1) local fillH = BOX_H * hp healthFill.Size = UDim2.new(0, 3, 0, fillH) healthFill.Position = UDim2.new(0.5, -BOX_W / 2 - 8, 0, BOX_TOP + BOX_H - fillH) healthFill.BackgroundColor3 = Color3.fromRGB(255 - hp * 255, hp * 255, 0) healthText.Text = tostring(math.floor(hp * 100)) healthText.TextColor3 = Color3.fromRGB(120 + hp * 60, 60 + hp * 100, 80) end distanceLabel.Visible = Config.ESP.Distance tracer.Visible = Config.ESP.Tracers originMarker.Visible = false if Config.ESP.Tracers then tracer.BackgroundColor3 = Config.ESP.TracerColor local originY if Config.ESP.TracerOrigin == "Bottom" then originY = PREVIEW_H - 15 elseif Config.ESP.TracerOrigin == "Mouse" then originY = math.floor(PREVIEW_H * 0.45) originMarker.Visible = true originMarker.Position = UDim2.new(0.5, 0, 0, originY) else originY = math.floor(PREVIEW_H * 0.5) originMarker.Visible = true originMarker.Position = UDim2.new(0.5, 0, 0, originY) end tracer.Size = UDim2.new(0, 1, 0, BOX_BOTTOM - originY) tracer.Position = UDim2.new(0.5, 0, 0, originY) end end return Preview end local Notifications = {} function GUI:Notify(title, message, duration) local notif = Instance.new("Frame") notif.Size = UDim2.new(0, 240, 0, 52) notif.Position = UDim2.new(1, 250, 0, 50) notif.BackgroundColor3 = BG_MED notif.BorderSizePixel = 0 notif.ClipsDescendants = true notif.Parent = Root Instance.new("UICorner", notif).CornerRadius = UDim.new(0, 7) local ns = Instance.new("UIStroke", notif) ns.Color = STROKE; ns.Thickness = 1 local acc = Instance.new("Frame") acc.Size = UDim2.new(0, 3, 1, -12) acc.Position = UDim2.new(0, 0, 0, 6) acc.BackgroundColor3 = ACCENT acc.BorderSizePixel = 0 acc.Parent = notif Instance.new("UICorner", acc).CornerRadius = UDim.new(1, 0) local tl = Instance.new("TextLabel") tl.Size = UDim2.new(1, -26, 0, 16) tl.Position = UDim2.new(0, 14, 0, 7) tl.BackgroundTransparency = 1 tl.Text = title tl.TextColor3 = TXT_MAIN tl.TextXAlignment = Enum.TextXAlignment.Left tl.Font = Enum.Font.GothamBold tl.TextSize = 11 tl.Parent = notif local ml = Instance.new("TextLabel") ml.Size = UDim2.new(1, -26, 0, 16) ml.Position = UDim2.new(0, 14, 0, 27) ml.BackgroundTransparency = 1 ml.Text = message ml.TextColor3 = TXT_DIM ml.TextXAlignment = Enum.TextXAlignment.Left ml.Font = Enum.Font.Gotham ml.TextSize = 10 ml.Parent = notif table.insert(Notifications, notif) Tween(notif, {Position = UDim2.new(1, -252, 0, 50 + (#Notifications - 1) * 60)}, 0.4, Enum.EasingStyle.Back) task.delay(duration or 4, function() if Unloaded then return end local idx = table.find(Notifications, notif) if idx then table.remove(Notifications, idx) end local outT = Tween(notif, {Position = UDim2.new(1, 250, 0, notif.Position.Y.Offset)}, 0.25, Enum.EasingStyle.Quint, Enum.EasingDirection.In) outT.Completed:Connect(function() notif:Destroy() for i, n in ipairs(Notifications) do Tween(n, {Position = UDim2.new(1, -252, 0, 50 + (i - 1) * 60)}, 0.25) end end) end) end do local dragging = false local dragStart, startPos TitleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = Main.Position end end) Track(UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart Main.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end)) Track(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end)) end function GUI:Toggle() if Unloaded then return end GUI.Open = not GUI.Open if GUI.Open then ClosePopup() Main.Visible = true Main.Size = UDim2.new(0, WIN_W, 0, 0) Main.BackgroundTransparency = 1 Tween(Main, {Size = UDim2.new(0, WIN_W, 0, WIN_H), BackgroundTransparency = 0}, 0.35, Enum.EasingStyle.Back) else ClosePopup() HideTooltip() local t = Tween(Main, {Size = UDim2.new(0, WIN_W, 0, 0)}, 0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.In) t.Completed:Connect(function() if not GUI.Open and not Unloaded then Main.Visible = false end end) end end Track(UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.RightShift then GUI:Toggle() end end)) Track(UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 and GUI.ActivePopup then local mousePos = UserInputService:GetMouseLocation() local p = GUI.ActivePopup local pos = p.AbsolutePosition local size = p.AbsoluteSize if mousePos.X < pos.X or mousePos.X > pos.X + size.X or mousePos.Y < pos.Y or mousePos.Y > pos.Y + size.Y then ClosePopup() end end end)) local ESP = { Drawings = {} } do local function NewDrawing(class, props) local d = Drawing.new(class) for prop, value in pairs(props) do d[prop] = value end table.insert(AllDrawings, d) return d end local function ClearPlayer(player) if ESP.Drawings[player] then for _, d in pairs(ESP.Drawings[player]) do pcall(function() d.Visible = false end) end end end function ESP:Update() if Unloaded then return end for player, _ in pairs(self.Drawings) do if not player.Parent or not player.Character then ClearPlayer(player) end end if not Config.ESP.Enabled then for player, _ in pairs(self.Drawings) do ClearPlayer(player) end return end Camera = workspace.CurrentCamera for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local char = player.Character local shouldRender = false if char then local hrp = char:FindFirstChild("HumanoidRootPart") local humanoid = char:FindFirstChildOfClass("Humanoid") local head = char:FindFirstChild("Head") if hrp and humanoid and humanoid.Health > 0 and head then local teamBlocked = Config.ESP.TeamCheck and player.Team == LocalPlayer.Team local distance = (Camera.CFrame.Position - hrp.Position).Magnitude if not teamBlocked and distance <= Config.ESP.MaxDistance then local screenPos, onScreen = Camera:WorldToViewportPoint(hrp.Position) if onScreen then shouldRender = true local headPos = Camera:WorldToViewportPoint(head.Position) local legPos = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0)) local height = math.abs(headPos.Y - legPos.Y) local width = height * 0.5 if not self.Drawings[player] then self.Drawings[player] = { Box = NewDrawing("Square", {Thickness = 1, Filled = false, Color = Config.ESP.BoxColor, Transparency = 1}), Name = NewDrawing("Text", {Size = 13, Center = true, Outline = true, Font = 2, Color = Config.ESP.NameColor}), HealthBar = NewDrawing("Square", {Thickness = 1, Filled = false, Color = Color3.fromRGB(50, 50, 50), Transparency = 1}), HealthFill = NewDrawing("Square", {Thickness = 1, Filled = true, Color = Color3.fromRGB(0, 255, 0)}), Distance = NewDrawing("Text", {Size = 11, Center = true, Outline = true, Font = 2, Color = Color3.fromRGB(180, 180, 180)}), Tracer = NewDrawing("Line", {Thickness = 1, Color = Config.ESP.TracerColor, Transparency = 1}) } end local d = self.Drawings[player] if Config.ESP.Boxes then d.Box.Visible = true d.Box.Size = Vector2.new(width, height) d.Box.Position = Vector2.new(screenPos.X - width / 2, headPos.Y) d.Box.Color = Config.ESP.BoxColor else d.Box.Visible = false end if Config.ESP.Names then d.Name.Visible = true d.Name.Text = GetPlayerName(player) d.Name.Position = Vector2.new(screenPos.X, headPos.Y - 16) d.Name.Color = Config.ESP.NameColor else d.Name.Visible = false end if Config.ESP.HealthBar then local hp = math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1) local barHeight = height * hp d.HealthBar.Visible = true d.HealthBar.Size = Vector2.new(3, height) d.HealthBar.Position = Vector2.new(screenPos.X - width / 2 - 8, headPos.Y) d.HealthBar.Color = Color3.fromRGB(50, 50, 50) d.HealthFill.Visible = true d.HealthFill.Size = Vector2.new(3, barHeight) d.HealthFill.Position = Vector2.new(screenPos.X - width / 2 - 8, headPos.Y + (height - barHeight)) d.HealthFill.Color = Color3.fromRGB(255 - hp * 255, hp * 255, 0) else d.HealthBar.Visible = false d.HealthFill.Visible = false end if Config.ESP.Distance then d.Distance.Visible = true d.Distance.Text = "[" .. math.floor(distance) .. "m]" d.Distance.Position = Vector2.new(screenPos.X, legPos.Y + 4) else d.Distance.Visible = false end if Config.ESP.Tracers then d.Tracer.Visible = true local origin if Config.ESP.TracerOrigin == "Bottom" then origin = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) elseif Config.ESP.TracerOrigin == "Mouse" then origin = UserInputService:GetMouseLocation() else origin = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) end d.Tracer.From = origin d.Tracer.To = Vector2.new(screenPos.X, legPos.Y) d.Tracer.Color = Config.ESP.TracerColor else d.Tracer.Visible = false end end end end end if not shouldRender then ClearPlayer(player) end end end end end local ExfilESP = { Objects = {}, Drawings = {} } do local scanTimer = 0 local SCAN_INTERVAL = 2 local lastScanCount = -1 local function IsExfilObject(inst) return string.lower(inst.Name):find("exfil") ~= nil end local function GetObjectPosition(inst) if not inst or not inst.Parent then return nil end if inst:IsA("BasePart") then return inst.Position end if inst:IsA("Model") then if inst.PrimaryPart then return inst.PrimaryPart.Position end local ok, pivot = pcall(function() return inst:GetPivot() end) if ok then return pivot.Position end for _, child in ipairs(inst:GetDescendants()) do if child:IsA("BasePart") then return child.Position end end end local parent = inst:FindFirstAncestorOfClass("BasePart") if parent then return parent.Position end return nil end local function FindExfilObjects() local found = {} pcall(function() for _, desc in ipairs(workspace:GetDescendants()) do if IsExfilObject(desc) then local parentMatched = false local p = desc.Parent while p and p ~= workspace do if IsExfilObject(p) then parentMatched = true break end p = p.Parent end if not parentMatched then local pos = GetObjectPosition(desc) if pos then table.insert(found, { Instance = desc, Position = pos, Name = desc.Name }) end end end end end) return found end function ExfilESP:Update() if Unloaded then return end Camera = workspace.CurrentCamera if tick() - scanTimer >= SCAN_INTERVAL then scanTimer = tick() local found = FindExfilObjects() if #found ~= lastScanCount then lastScanCount = #found if #found > 0 then print("[nyx.suite] Exfil scan: " .. #found .. " objects") end end self.Objects = {} for _, found_obj in ipairs(found) do table.insert(self.Objects, found_obj) end local activeInstances = {} for _, obj in ipairs(self.Objects) do activeInstances[obj.Instance] = true end for inst, drawings in pairs(self.Drawings) do if not activeInstances[inst] then for _, d in pairs(drawings) do pcall(function() d.Visible = false; d:Remove() end) end self.Drawings[inst] = nil end end end local showAll = Config.ESP.ExfilFlare and Config.ESP.Enabled for _, obj in ipairs(self.Objects) do local pos = GetObjectPosition(obj.Instance) if pos then if not self.Drawings[obj.Instance] then local label = Drawing.new("Text") label.Size = 13 label.Center = true label.Outline = true label.Font = 2 label.Color = Config.ESP.ExfilFlareColor local icon = Drawing.new("Text") icon.Size = 16 icon.Center = true icon.Outline = true icon.Font = 2 icon.Color = Config.ESP.ExfilFlareColor table.insert(AllDrawings, label) table.insert(AllDrawings, icon) self.Drawings[obj.Instance] = { Label = label, Icon = icon } end local d = self.Drawings[obj.Instance] local screenPos, onScreen = Camera:WorldToViewportPoint(pos) local distance = (Camera.CFrame.Position - pos).Magnitude if showAll and onScreen and distance <= Config.ESP.MaxDistance then d.Label.Visible = true d.Label.Text = obj.Name .. " [" .. math.floor(distance) .. "m]" d.Label.Position = Vector2.new(screenPos.X, screenPos.Y + 8) d.Label.Color = Config.ESP.ExfilFlareColor d.Icon.Visible = true d.Icon.Text = "!" d.Icon.Position = Vector2.new(screenPos.X, screenPos.Y - 14) d.Icon.Color = Config.ESP.ExfilFlareColor else d.Label.Visible = false d.Icon.Visible = false end else if self.Drawings[obj.Instance] then for _, d in pairs(self.Drawings[obj.Instance]) do pcall(function() d.Visible = false end) end end end end end function ExfilESP:Reset() for inst, drawings in pairs(self.Drawings) do for _, d in pairs(drawings) do pcall(function() d.Visible = false; d:Remove() end) end end self.Drawings = {} self.Objects = {} end end local Aimbot = {} do local FOVCircle = Drawing.new("Circle") FOVCircle.Thickness = 1 FOVCircle.NumSides = 100 FOVCircle.Radius = Config.Aimbot.FOV FOVCircle.Filled = Config.Aimbot.FOVFilled FOVCircle.Color = Config.Aimbot.FOVColor FOVCircle.Transparency = 1 FOVCircle.Visible = false table.insert(AllDrawings, FOVCircle) local aimHeld = false Track(UserInputService.InputBegan:Connect(function(input, processed) if not processed then if input.UserInputType == Config.Aimbot.Key or input.KeyCode == Config.Aimbot.Key then aimHeld = true end end end)) Track(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Config.Aimbot.Key or input.KeyCode == Config.Aimbot.Key then aimHeld = false end end)) local function GetClosestPlayer() local closest = nil local shortestDistance = Config.Aimbot.FOV local mousePos = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local teamBlocked = Config.Aimbot.TeamCheck and player.Team == LocalPlayer.Team if not teamBlocked then local char = player.Character if char then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then local dist = (Camera.CFrame.Position - hrp.Position).Magnitude if dist <= Config.Aimbot.MaxDistance then local targetPart = char:FindFirstChild(Config.Aimbot.TargetPart) if targetPart then local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local isVisible = true if Config.Aimbot.VisibleCheck then local origin = Camera.CFrame.Position local direction = (targetPart.Position - origin) local params = RaycastParams.new() params.FilterDescendantsInstances = {char, LocalPlayer.Character} params.FilterType = Enum.RaycastFilterType.Exclude local result = workspace:Raycast(origin, direction, params) isVisible = (result == nil) end if isVisible then local distance = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if distance < shortestDistance then shortestDistance = distance closest = player end end end end end end end end end end end return closest end function Aimbot:Update() if Unloaded then return end Camera = workspace.CurrentCamera FOVCircle.Radius = Config.Aimbot.FOV FOVCircle.Color = Config.Aimbot.FOVColor FOVCircle.Filled = Config.Aimbot.FOVFilled FOVCircle.Transparency = Config.Aimbot.FOVFilled and 0.7 or 1 FOVCircle.Position = UserInputService:GetMouseLocation() FOVCircle.Visible = Config.Aimbot.Enabled and Config.Aimbot.ShowFOV if not Config.Aimbot.Enabled then return end if not aimHeld then return end local target = GetClosestPlayer() if not target then return end local char = target.Character if not char then return end local targetPart = char:FindFirstChild(Config.Aimbot.TargetPart) if not targetPart then return end local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if not onScreen then return end local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local deltaX = screenPos.X - screenCenter.X local deltaY = screenPos.Y - screenCenter.Y local smooth = math.clamp(Config.Aimbot.Smoothness, 0.05, 1.0) if mousemoverel then mousemoverel(deltaX * smooth, deltaY * smooth) else local currentPos = Camera.CFrame.Position local targetCFrame = CFrame.new(currentPos, targetPart.Position) Camera.CFrame = Camera.CFrame:Lerp(targetCFrame, smooth) end end end local PlayerMod = {} do local origWalkSpeed = 16 local origJumpPower = 50 local origFOV = 70 local fovChanged = false local function OnCharacterAdded(char) local humanoid = nil local retries = 0 while not humanoid and retries < 20 do humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid then task.wait(0.25) retries = retries + 1 end end if humanoid then task.wait(1) origWalkSpeed = humanoid.WalkSpeed if humanoid.UseJumpPower then origJumpPower = humanoid.JumpPower else origJumpPower = humanoid.JumpHeight * 7.2 end end end if LocalPlayer.Character then task.spawn(function() OnCharacterAdded(LocalPlayer.Character) end) end Track(LocalPlayer.CharacterAdded:Connect(function(char) task.spawn(function() OnCharacterAdded(char) end) end)) function PlayerMod:Update() if Unloaded then return end Camera = workspace.CurrentCamera if Config.Player.FOVEnabled then Camera.FieldOfView = Config.Player.FOV fovChanged = true elseif fovChanged then Camera.FieldOfView = origFOV fovChanged = false end local char = LocalPlayer.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if not humanoid or not hrp then return end if Config.Player.Spider then local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {char} rayParams.FilterType = Enum.RaycastFilterType.Exclude local lookDir = Camera.CFrame.LookVector local flatLook = Vector3.new(lookDir.X, 0, lookDir.Z) if flatLook.Magnitude > 0 then flatLook = flatLook.Unit end local result = workspace:Raycast(hrp.Position, flatLook * 2.5, rayParams) local onWall = false if result then if math.abs(result.Normal.Y) < 0.35 then onWall = true end end if not onWall then local dirs = { Vector3.new(0, 0, 1), Vector3.new(0, 0, -1), Vector3.new(1, 0, 0), Vector3.new(-1, 0, 0) } for _, dir in ipairs(dirs) do local r = workspace:Raycast(hrp.Position, dir * 2, rayParams) if r and math.abs(r.Normal.Y) < 0.35 then onWall = true break end end end if onWall then hrp.AssemblyLinearVelocity = Vector3.new(hrp.AssemblyLinearVelocity.X, 0, hrp.AssemblyLinearVelocity.Z) local upDot = lookDir:Dot(Vector3.new(0, 1, 0)) local climbSpeed = Config.Player.SpiderSpeed * 0.02 if upDot > 0.25 then hrp.CFrame = hrp.CFrame * CFrame.new(0, climbSpeed, 0) elseif upDot < -0.25 then hrp.CFrame = hrp.CFrame * CFrame.new(0, -climbSpeed, 0) end end end if Config.Player.WalkSpeedEnabled then if Config.Player.WalkSpeedMode == "Safe" then humanoid.WalkSpeed = math.max(origWalkSpeed, 16) local humanoidMove = humanoid.MoveDirection if humanoidMove.Magnitude > 0 then local speedMultiplier = Config.Player.WalkSpeed / math.max(origWalkSpeed, 1) local moveStep = humanoidMove * (origWalkSpeed * 0.035) * speedMultiplier * 0.4 hrp.CFrame = hrp.CFrame + Vector3.new(moveStep.X, 0, moveStep.Z) end else humanoid.WalkSpeed = Config.Player.WalkSpeed end end if Config.Player.JumpPowerEnabled then humanoid.UseJumpPower = true if Config.Player.JumpPowerMode == "Safe" then humanoid.JumpPower = math.clamp(Config.Player.JumpPower, 20, 120) else humanoid.JumpPower = math.clamp(Config.Player.JumpPower, 20, 150) end end if Config.Player.Noclip then for _, part in ipairs(char:GetChildren()) do if part:IsA("BasePart") then part.CanCollide = false end end else for _, part in ipairs(char:GetChildren()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then part.CanCollide = true end end end function PlayerMod:Reset() Config.Player.Noclip = false Config.Player.WalkSpeedEnabled = false Config.Player.JumpPowerEnabled = false Config.Player.FOVEnabled = false Config.Player.Spider = false local char = LocalPlayer.Character if char then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.WalkSpeed = origWalkSpeed humanoid.UseJumpPower = true humanoid.JumpPower = origJumpPower end for _, part in ipairs(char:GetChildren()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then part.CanCollide = true end end end if fovChanged then Camera = workspace.CurrentCamera Camera.FieldOfView = origFOV fovChanged = false end end end local Weapon = {} Weapon.HitSoundObj = nil Weapon.KillSoundObj = nil Weapon.LastHit = 0 do local HIT_SOUND_ID = "rbxasset://sounds/electronicpingshort.wav" local KILL_SOUND_ID = "rbxasset://sounds/victory.wav" local HIT_COOLDOWN = 0.08 function Weapon:PlayHit() if tick() - self.LastHit < HIT_COOLDOWN then return end self.LastHit = tick() if not self.HitSoundObj then self.HitSoundObj = Instance.new("Sound") self.HitSoundObj.SoundId = HIT_SOUND_ID self.HitSoundObj.Volume = 1 self.HitSoundObj.Parent = workspace end self.HitSoundObj.Volume = Config.Weapon.HitSoundVolume self.HitSoundObj:Play() end function Weapon:PlayKill() if not self.KillSoundObj then self.KillSoundObj = Instance.new("Sound") self.KillSoundObj.SoundId = KILL_SOUND_ID self.KillSoundObj.Volume = 1 self.KillSoundObj.Parent = workspace end self.KillSoundObj.Volume = Config.Weapon.KillSoundVolume self.KillSoundObj:Play() end local originalCFrames = {} local hasSaved = false local function SaveOriginals() if hasSaved then return end local char = LocalPlayer.Character if not char then return end local r15Parts = { "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperArm", "RightLowerArm", "RightHand" } for _, partName in ipairs(r15Parts) do local part = char:FindFirstChild(partName) if part and part:IsA("BasePart") then originalCFrames[partName] = part.CFrame end end local r6Parts = {"Left Arm", "Right Arm"} for _, partName in ipairs(r6Parts) do local part = char:FindFirstChild(partName) if part and part:IsA("BasePart") then originalCFrames[partName] = part.CFrame end end local tool = char:FindFirstChildOfClass("Tool") if tool then local handle = tool:FindFirstChild("Handle") if handle then originalCFrames["ToolHandle"] = handle.CFrame end end hasSaved = true end local function RestoreOriginals() local char = LocalPlayer.Character if not char then return end for partName, cframe in pairs(originalCFrames) do if partName == "ToolHandle" then local tool = char:FindFirstChildOfClass("Tool") if tool then local handle = tool:FindFirstChild("Handle") if handle then handle.CFrame = cframe end end else local part = char:FindFirstChild(partName) if part and part:IsA("BasePart") then part.CFrame = cframe end end end end local function ApplyViewmodelOffset() local char = LocalPlayer.Character if not char then return end SaveOriginals() local offset = CFrame.new( Config.Weapon.OffsetX, Config.Weapon.OffsetY, Config.Weapon.OffsetZ ) * CFrame.Angles( math.rad(Config.Weapon.OffsetRX), math.rad(Config.Weapon.OffsetRY), math.rad(Config.Weapon.OffsetRZ) ) local r15Parts = { "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperArm", "RightLowerArm", "RightHand" } for _, partName in ipairs(r15Parts) do local part = char:FindFirstChild(partName) if part and part:IsA("BasePart") and originalCFrames[partName] then part.CFrame = originalCFrames[partName] * offset end end local r6Parts = {"Left Arm", "Right Arm"} for _, partName in ipairs(r6Parts) do local part = char:FindFirstChild(partName) if part and part:IsA("BasePart") and originalCFrames[partName] then part.CFrame = originalCFrames[partName] * offset end end if originalCFrames["ToolHandle"] then local tool = char:FindFirstChildOfClass("Tool") if tool then local handle = tool:FindFirstChild("Handle") if handle then handle.CFrame = originalCFrames["ToolHandle"] * offset end end end local viewmodel = Camera:FindFirstChild("Viewmodel") or workspace:FindFirstChild("Viewmodel") if viewmodel then local vmParts = viewmodel:FindFirstChild("Arms") or viewmodel:FindFirstChild("Hands") if vmParts then for _, part in ipairs(vmParts:GetDescendants()) do if part:IsA("BasePart") then local key = "VM_" .. part.Name if not originalCFrames[key] then originalCFrames[key] = part.CFrame end part.CFrame = originalCFrames[key] * offset end end end end end local function CheckHit() Camera = workspace.CurrentCamera local char = LocalPlayer.Character if not char then return end local screenCenter = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local mousePos = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local pChar = player.Character if pChar then local head = pChar:FindFirstChild("Head") local hrp = pChar:FindFirstChild("HumanoidRootPart") local torso = pChar:FindFirstChild("Torso") or pChar:FindFirstChild("UpperTorso") local parts = {} if head then table.insert(parts, head) end if torso then table.insert(parts, torso) end if hrp then table.insert(parts, hrp) end local hitDistance = 80 for _, part in ipairs(parts) do local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local distCenter = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude local distMouse = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if distCenter < hitDistance or distMouse < hitDistance then if Config.Weapon.HitSound then Weapon:PlayHit() end if Config.Weapon.KillSound then task.delay(0.3, function() if Unloaded then return end local pChar2 = player.Character local humanoid = pChar2 and pChar2:FindFirstChildOfClass("Humanoid") if not pChar2 or (humanoid and humanoid.Health <= 0) then Weapon:PlayKill() end end) end return end end end end end end end local function HookTool(tool) if tool:IsA("Tool") then tool.Activated:Connect(function() if Unloaded then return end CheckHit() end) end end if LocalPlayer.Character then for _, child in ipairs(LocalPlayer.Character:GetChildren()) do HookTool(child) end end Track(LocalPlayer.CharacterAdded:Connect(function(char) hasSaved = false originalCFrames = {} char.ChildAdded:Connect(function(child) HookTool(child) end) for _, child in ipairs(char:GetChildren()) do HookTool(child) end end)) function Weapon:Update() if Unloaded then return end if Config.Weapon.ViewmodelOffset then ApplyViewmodelOffset() elseif hasSaved then RestoreOriginals() hasSaved = false originalCFrames = {} end end function Weapon:Reset() Config.Weapon.HitSound = false Config.Weapon.KillSound = false Config.Weapon.ViewmodelOffset = false Config.Weapon.OffsetX = 0 Config.Weapon.OffsetY = 0 Config.Weapon.OffsetZ = 0 Config.Weapon.OffsetRX = 0 Config.Weapon.OffsetRY = 0 Config.Weapon.OffsetRZ = 0 if hasSaved then RestoreOriginals() hasSaved = false originalCFrames = {} end if self.HitSoundObj then self.HitSoundObj:Stop() self.HitSoundObj:Destroy() self.HitSoundObj = nil end if self.KillSoundObj then self.KillSoundObj:Stop() self.KillSoundObj:Destroy() self.KillSoundObj = nil end end end local World = {} do local function GetAtmosphere() local atmo = Lighting:FindFirstChildOfClass("Atmosphere") if not atmo then atmo = Instance.new("Atmosphere") atmo.Name = "NyxAtmosphere" atmo.Parent = Lighting end return atmo end local function RemoveNyxAtmosphere() local atmo = Lighting:FindFirstChild("NyxAtmosphere") if atmo then atmo:Destroy() end end local originalSky = nil local originalCloudsEnabled = nil local function ApplySkybox() pcall(function() local existing = Lighting:FindFirstChild("NyxSkybox") if existing then existing:Destroy() end end) if not originalSky then pcall(function() for _, child in ipairs(Lighting:GetChildren()) do if child:IsA("Sky") and child.Name ~= "NyxSkybox" then originalSky = child break end end end) end pcall(function() if originalSky and originalSky.Parent then originalSky.Parent = nil end end) pcall(function() local sky = Instance.new("Sky") sky.Name = "NyxSkybox" sky.SunAngularSize = 0 sky.MoonAngularSize = 0 sky.StarCount = 0 sky.Parent = Lighting end) pcall(function() local terrain = workspace:FindFirstChildOfClass("Terrain") if terrain then local clouds = terrain:FindFirstChildOfClass("Clouds") if clouds then if originalCloudsEnabled == nil then originalCloudsEnabled = clouds.Enabled end clouds.Enabled = false end end end) pcall(function() local cc = Lighting:FindFirstChild("NyxSkyboxCC") if not cc then cc = Instance.new("ColorCorrectionEffect") cc.Name = "NyxSkyboxCC" cc.Parent = Lighting end cc.TintColor = Config.World.SkyboxColor cc.Saturation = 0 cc.Contrast = 0 end) end local function RemoveSkybox() pcall(function() local nyxSky = Lighting:FindFirstChild("NyxSkybox") if nyxSky then nyxSky:Destroy() end end) pcall(function() local cc = Lighting:FindFirstChild("NyxSkyboxCC") if cc then cc:Destroy() end end) pcall(function() if originalCloudsEnabled ~= nil then local terrain = workspace:FindFirstChildOfClass("Terrain") if terrain then local clouds = terrain:FindFirstChildOfClass("Clouds") if clouds then clouds.Enabled = originalCloudsEnabled end end end end) pcall(function() if originalSky then originalSky.Parent = Lighting else if not Lighting:FindFirstChildOfClass("Sky") then Instance.new("Sky").Parent = Lighting end end end) end function World:Update() if Unloaded then return end local c = Config.World if c.Fullbright then Lighting.Brightness = 3 Lighting.Ambient = Color3.fromRGB(178, 178, 178) Lighting.OutdoorAmbient = Color3.fromRGB(178, 178, 178) Lighting.FogEnd = 100000 RemoveNyxAtmosphere() else if c.ModifyAmbient then Lighting.Ambient = c.AmbientColor end if c.ModifyOutdoorAmbient then Lighting.OutdoorAmbient = c.OutdoorAmbientColor end if c.ModifyFog then Lighting.FogColor = c.FogColor Lighting.FogStart = c.FogStart Lighting.FogEnd = c.FogEnd end if c.ModifyAtmosphere then local atmo = GetAtmosphere() atmo.Color = c.AtmosphereColor atmo.Density = c.AtmosphereDensity atmo.Glare = c.AtmosphereGlare atmo.Haze = c.AtmosphereHaze end if c.ModifyTime then Lighting.ClockTime = c.TimeOfDay end end if c.SkyboxEnabled then if not Lighting:FindFirstChild("NyxSkybox") then ApplySkybox() else pcall(function() local cc = Lighting:FindFirstChild("NyxSkyboxCC") if cc then cc.TintColor = c.SkyboxColor end end) end else if Lighting:FindFirstChild("NyxSkybox") then RemoveSkybox() end end end function World:Reset() Lighting.Ambient = SavedLighting.Ambient Lighting.OutdoorAmbient = SavedLighting.OutdoorAmbient Lighting.ColorShift_Bottom = SavedLighting.ColorShift_Bottom Lighting.ColorShift_Top = SavedLighting.ColorShift_Top Lighting.FogColor = SavedLighting.FogColor Lighting.FogStart = SavedLighting.FogStart Lighting.FogEnd = SavedLighting.FogEnd Lighting.Brightness = SavedLighting.Brightness Lighting.ClockTime = SavedLighting.ClockTime RemoveNyxAtmosphere() RemoveSkybox() Config.World.Fullbright = false Config.World.ModifyAmbient = false Config.World.ModifyOutdoorAmbient = false Config.World.ModifyFog = false Config.World.ModifyAtmosphere = false Config.World.ModifyTime = false Config.World.SkyboxEnabled = false end function World:ApplyPreset(preset) local c = Config.World c.Fullbright = false if preset == "Sunset" then c.ModifyTime = true; c.TimeOfDay = 17.5 c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(120, 60, 30) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(200, 100, 50) c.ModifyFog = true; c.FogColor = Color3.fromRGB(180, 90, 40); c.FogStart = 50; c.FogEnd = 800 c.ModifyAtmosphere = true; c.AtmosphereColor = Color3.fromRGB(255, 120, 40); c.AtmosphereDensity = 0.4; c.AtmosphereGlare = 0.5; c.AtmosphereHaze = 1.5 elseif preset == "Midnight" then c.ModifyTime = true; c.TimeOfDay = 0 c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(5, 5, 15) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(10, 10, 25) c.ModifyFog = true; c.FogColor = Color3.fromRGB(5, 5, 20); c.FogStart = 0; c.FogEnd = 400 c.ModifyAtmosphere = true; c.AtmosphereColor = Color3.fromRGB(10, 10, 30); c.AtmosphereDensity = 0.5; c.AtmosphereGlare = 0; c.AtmosphereHaze = 2 elseif preset == "Neon" then c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(100, 0, 255) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(50, 0, 120) c.ModifyFog = true; c.FogColor = Color3.fromRGB(80, 0, 200); c.FogStart = 20; c.FogEnd = 600 c.ModifyAtmosphere = true; c.AtmosphereColor = Color3.fromRGB(130, 0, 255); c.AtmosphereDensity = 0.6; c.AtmosphereGlare = 1; c.AtmosphereHaze = 2 elseif preset == "Toxic" then c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(20, 60, 10) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(40, 120, 20) c.ModifyFog = true; c.FogColor = Color3.fromRGB(60, 150, 30); c.FogStart = 0; c.FogEnd = 300 c.ModifyAtmosphere = true; c.AtmosphereColor = Color3.fromRGB(80, 200, 40); c.AtmosphereDensity = 0.7; c.AtmosphereGlare = 0.3; c.AtmosphereHaze = 3 elseif preset == "Blood" then c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(80, 10, 10) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(120, 20, 20) c.ModifyFog = true; c.FogColor = Color3.fromRGB(100, 15, 15); c.FogStart = 0; c.FogEnd = 350 c.ModifyAtmosphere = true; c.AtmosphereColor = Color3.fromRGB(150, 20, 20); c.AtmosphereDensity = 0.6; c.AtmosphereGlare = 0.4; c.AtmosphereHaze = 2.5 elseif preset == "Golden" then c.ModifyTime = true; c.TimeOfDay = 6.5 c.ModifyAmbient = true; c.AmbientColor = Color3.fromRGB(120, 100, 50) c.ModifyOutdoorAmbient = true; c.OutdoorAmbientColor = Color3.fromRGB(200, 170, 80) c.ModifyFog = true; c.