local Services = { UserInputService = game:GetService("UserInputService"), Players = game:GetService("Players"), CoreGui = game:GetService("CoreGui"), TweenService = game:GetService("TweenService"), RunService = game:GetService("RunService"), Lighting = game:GetService("Lighting"), HapticService = game:GetService("HapticService"), VirtualUser = game:GetService("VirtualUser") } local LocalPlayer = Services.Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() local CONFIG = { ImageId = "rbxassetid://106534778176462", ButtonSize = UDim2.new(0, 50, 0, 50), ButtonColor = Color3.fromRGB(40, 40, 40), MenuColor = Color3.fromRGB(25, 25, 25), SidebarColor = Color3.fromRGB(35, 35, 35), GuiName = "LightlyMenu_Fixed_V3" } local State = { Noclip = false, Fullbright = false, ESP = false, HideNames = false, ClickTP = false, AntiAFK = false, NoParticles = false, NoShadows = false, Speed = 16, Jump = 50 } local function GetCamera() return workspace.CurrentCamera end local function TriggerVibration() pcall(function() if Services.HapticService:IsVibrationSupported(Enum.UserInputType.Gamepad1) then Services.HapticService:SetMotor(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 0.5) task.delay(0.1, function() Services.HapticService:SetMotor(Enum.UserInputType.Gamepad1, Enum.VibrationMotor.Small, 0) end) end end) end local function GetSafeParent() if gethui then return gethui() end if Services.RunService:IsStudio() then return LocalPlayer:WaitForChild("PlayerGui") end return LocalPlayer:WaitForChild("PlayerGui") end local parent = GetSafeParent() if parent:FindFirstChild(CONFIG.GuiName) then parent[CONFIG.GuiName]:Destroy() end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = CONFIG.GuiName ScreenGui.Parent = parent ScreenGui.ResetOnSpawn = false if Services.RunService:IsStudio() then ScreenGui.DisplayOrder = 9999 end local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = CONFIG.MenuColor MainFrame.Position = UDim2.new(0.5, -225, 0.5, -150) MainFrame.Size = UDim2.new(0, 450, 0, 300) MainFrame.Visible = false MainFrame.BorderSizePixel = 0 MainFrame.ZIndex = 1 local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 10) MainCorner.Parent = MainFrame local Sidebar = Instance.new("Frame") Sidebar.Name = "Sidebar" Sidebar.Parent = MainFrame Sidebar.BackgroundColor3 = CONFIG.SidebarColor Sidebar.Size = UDim2.new(0, 120, 1, 0) Sidebar.BorderSizePixel = 0 Sidebar.ZIndex = 2 local SidebarCorner = Instance.new("UICorner") SidebarCorner.CornerRadius = UDim.new(0, 10) SidebarCorner.Parent = Sidebar local PagesContainer = Instance.new("Frame") PagesContainer.Parent = MainFrame PagesContainer.BackgroundTransparency = 1 PagesContainer.Position = UDim2.new(0, 130, 0, 10) PagesContainer.Size = UDim2.new(0, 310, 1, -20) PagesContainer.ZIndex = 2 local ToggleButton = Instance.new("ImageButton") ToggleButton.Name = "ToggleButton" ToggleButton.Parent = ScreenGui ToggleButton.BackgroundColor3 = CONFIG.ButtonColor ToggleButton.Position = UDim2.new(0.1, 0, 0.3, 0) ToggleButton.Size = CONFIG.ButtonSize ToggleButton.Image = CONFIG.ImageId ToggleButton.ZIndex = 100 local BtnCorner = Instance.new("UICorner") BtnCorner.CornerRadius = UDim.new(0, 12) BtnCorner.Parent = ToggleButton local BtnStroke = Instance.new("UIStroke") BtnStroke.Parent = ToggleButton BtnStroke.Color = Color3.new(1, 1, 1) BtnStroke.Thickness = 1.5 BtnStroke.Transparency = 0.8 BtnStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border local dragging, dragInput, dragStart, startPos ToggleButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = ToggleButton.Position TriggerVibration() input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) ToggleButton.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) Services.UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart ToggleButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) ToggleButton.MouseButton1Click:Connect(function() MainFrame.Visible = not MainFrame.Visible TriggerVibration() end) local activeTab = nil local function CreateTab(name) local TabBtn = Instance.new("TextButton") TabBtn.Parent = Sidebar TabBtn.BackgroundTransparency = 1 TabBtn.Size = UDim2.new(1, 0, 0, 40) TabBtn.Position = UDim2.new(0, 0, 0, (#Sidebar:GetChildren() - 1) * 40 + 10) TabBtn.Text = name TabBtn.TextColor3 = Color3.new(0.6, 0.6, 0.6) TabBtn.Font = Enum.Font.GothamBold TabBtn.TextSize = 14 TabBtn.ZIndex = 3 local Page = Instance.new("CanvasGroup") Page.Name = name.."Page" Page.Parent = PagesContainer Page.BackgroundTransparency = 1 Page.Size = UDim2.new(1, 0, 1, 0) Page.Visible = false Page.GroupTransparency = 1 local UIListLayout = Instance.new("UIListLayout") UIListLayout.Parent = Page UIListLayout.Padding = UDim.new(0, 10) UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder TabBtn.MouseButton1Click:Connect(function() if activeTab == Page then return end TriggerVibration() for _, btn in pairs(Sidebar:GetChildren()) do if btn:IsA("TextButton") then Services.TweenService:Create(btn, TweenInfo.new(0.2), {TextColor3 = Color3.new(0.6, 0.6, 0.6)}):Play() end end Services.TweenService:Create(TabBtn, TweenInfo.new(0.2), {TextColor3 = Color3.new(1, 1, 1)}):Play() if activeTab then local oldTab = activeTab Services.TweenService:Create(oldTab, TweenInfo.new(0.2), {GroupTransparency = 1}):Play() task.wait(0.2) oldTab.Visible = false end activeTab = Page Page.Visible = true Services.TweenService:Create(Page, TweenInfo.new(0.3), {GroupTransparency = 0}):Play() end) return Page end local function CreateToggle(parent, text, callback) local Frame = Instance.new("Frame") Frame.Parent = parent Frame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) Frame.Size = UDim2.new(1, -5, 0, 40) Frame.BorderSizePixel = 0 local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 6) Corner.Parent = Frame local Label = Instance.new("TextLabel") Label.Parent = Frame Label.BackgroundTransparency = 1 Label.Position = UDim2.new(0, 10, 0, 0) Label.Size = UDim2.new(0.7, 0, 1, 0) Label.Text = text Label.TextColor3 = Color3.new(1, 1, 1) Label.Font = Enum.Font.Gotham Label.TextSize = 14 Label.TextXAlignment = Enum.TextXAlignment.Left local ToggleBtn = Instance.new("TextButton") ToggleBtn.Parent = Frame ToggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) ToggleBtn.Position = UDim2.new(1, -35, 0.5, -10) ToggleBtn.Size = UDim2.new(0, 20, 0, 20) ToggleBtn.Text = "" local ToggleCorner = Instance.new("UICorner") ToggleCorner.CornerRadius = UDim.new(0, 4) ToggleCorner.Parent = ToggleBtn local toggled = false ToggleBtn.MouseButton1Click:Connect(function() toggled = not toggled TriggerVibration() if toggled then Services.TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(100, 255, 100)}):Play() else Services.TweenService:Create(ToggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(30, 30, 30)}):Play() end callback(toggled) end) end local function CreateSlider(parent, text, min, max, default, callback) local Frame = Instance.new("Frame") Frame.Parent = parent Frame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) Frame.Size = UDim2.new(1, -5, 0, 50) Frame.BorderSizePixel = 0 local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0, 6) Corner.Parent = Frame local Label = Instance.new("TextLabel") Label.Parent = Frame Label.BackgroundTransparency = 1 Label.Position = UDim2.new(0, 10, 0, 5) Label.Size = UDim2.new(1, -20, 0, 20) Label.Text = text .. ": " .. default Label.TextColor3 = Color3.new(1, 1, 1) Label.Font = Enum.Font.Gotham Label.TextSize = 14 Label.TextXAlignment = Enum.TextXAlignment.Left local SliderBar = Instance.new("Frame") SliderBar.Parent = Frame SliderBar.BackgroundColor3 = Color3.fromRGB(30, 30, 30) SliderBar.Position = UDim2.new(0, 10, 0, 35) SliderBar.Size = UDim2.new(1, -20, 0, 6) local BarCorner = Instance.new("UICorner") BarCorner.CornerRadius = UDim.new(0, 3) BarCorner.Parent = SliderBar local Fill = Instance.new("Frame") Fill.Parent = SliderBar Fill.BackgroundColor3 = Color3.fromRGB(100, 150, 255) Fill.Size = UDim2.new((default - min)/(max - min), 0, 1, 0) Fill.BorderSizePixel = 0 local FillCorner = Instance.new("UICorner") FillCorner.CornerRadius = UDim.new(0, 3) FillCorner.Parent = Fill local Trigger = Instance.new("TextButton") Trigger.Parent = SliderBar Trigger.BackgroundTransparency = 1 Trigger.Size = UDim2.new(1, 0, 1, 0) Trigger.Text = "" local isSliding = false local function Update(input) local pos = input.Position.X local barPos = SliderBar.AbsolutePosition.X local barSize = SliderBar.AbsoluteSize.X local percent = math.clamp((pos - barPos) / barSize, 0, 1) Fill.Size = UDim2.new(percent, 0, 1, 0) local value = math.floor(min + (max - min) * percent) Label.Text = text .. ": " .. value callback(value) end Trigger.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isSliding = true Update(input) end end) Services.UserInputService.InputChanged:Connect(function(input) if isSliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then Update(input) end end) Services.UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isSliding = false end end) end local PlayerTab = CreateTab("Player") local VisualsTab = CreateTab("Visuals") local ExtrasTab = CreateTab("Extras") CreateToggle(PlayerTab, "Noclip", function(val) State.Noclip = val end) CreateToggle(PlayerTab, "Click TP", function(val) State.ClickTP = val end) CreateSlider(PlayerTab, "WalkSpeed", 0, 500, 16, function(val) State.Speed = val local char = LocalPlayer.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.WalkSpeed = val end end) CreateSlider(PlayerTab, "JumpPower", 10, 1000, 50, function(val) State.Jump = val local char = LocalPlayer.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.JumpPower = val char.Humanoid.UseJumpPower = true end end) CreateToggle(VisualsTab, "Fullbright", function(val) State.Fullbright = val if val then Services.Lighting.Brightness = 2 Services.Lighting.ClockTime = 14 Services.Lighting.GlobalShadows = false Services.Lighting.OutdoorAmbient = Color3.new(1, 1, 1) else Services.Lighting.Brightness = 1 Services.Lighting.GlobalShadows = true Services.Lighting.OutdoorAmbient = Color3.fromRGB(127, 127, 127) end end) CreateToggle(VisualsTab, "ESP Players", function(val) State.ESP = val if not val then for _, p in pairs(Services.Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("LightlyESP") then p.Character.LightlyESP:Destroy() end end end end) CreateToggle(VisualsTab, "Hide Names", function(val) State.HideNames = val end) CreateToggle(VisualsTab, "No Particles", function(val) State.NoParticles = val end) CreateToggle(VisualsTab, "Disable Shadows", function(val) State.NoShadows = val end) CreateToggle(VisualsTab, "Clear Lighting", function(val) if val then for _, v in pairs(Services.Lighting:GetChildren()) do if v:IsA("PostEffect") then v.Enabled = false end end end end) CreateToggle(ExtrasTab, "Anti-AFK", function(val) State.AntiAFK = val if val then local vu = Services.VirtualUser LocalPlayer.Idled:Connect(function() if State.AntiAFK then vu:Button2Down(Vector2.new(0,0), GetCamera().CFrame) task.wait(1) vu:Button2Up(Vector2.new(0,0), GetCamera().CFrame) end end) end end) Services.RunService.Stepped:Connect(function() local char = LocalPlayer.Character if char then if State.Noclip then for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then part.CanCollide = false end end end local hum = char:FindFirstChild("Humanoid") if hum then if hum.WalkSpeed ~= State.Speed then hum.WalkSpeed = State.Speed end if hum.JumpPower ~= State.Jump then hum.JumpPower = State.Jump hum.UseJumpPower = true end end end end) Services.UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if State.ClickTP and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then local targetPos = Mouse.Hit.Position local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then char.HumanoidRootPart.CFrame = CFrame.new(targetPos + Vector3.new(0, 3, 0)) end end end) LocalPlayer.CharacterAdded:Connect(function(newChar) local hum = newChar:WaitForChild("Humanoid", 10) if hum then task.wait(0.5) hum.WalkSpeed = State.Speed hum.JumpPower = State.Jump hum.UseJumpPower = true end end) task.spawn(function() while task.wait(5) do if State.NoShadows then for _, v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") then v.CastShadow = false end end Services.Lighting.GlobalShadows = false end end end) task.spawn(function() while task.wait(5) do if State.NoParticles then for _, v in pairs(workspace:GetDescendants()) do if v:IsA("ParticleEmitter") or v:IsA("Trail") or v:IsA("Smoke") or v:IsA("Fire") or v:IsA("Sparkles") then v.Enabled = false end end end end end) task.spawn(function() while task.wait(1) do if State.ESP then for _, p in pairs(Services.Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then if not p.Character:FindFirstChild("LightlyESP") then local hl = Instance.new("Highlight") hl.Name = "LightlyESP" hl.Parent = p.Character hl.FillColor = Color3.new(1, 0, 0) hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.5 end end end end if State.HideNames then for _, p in pairs(Services.Players:GetPlayers()) do if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("Humanoid") then p.Character.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None end end end end end) Services.TweenService:Create(Sidebar:FindFirstChild("PlayerBtn"), TweenInfo.new(0), {TextColor3 = Color3.new(1, 1, 1)}):Play() local FirstPage = PagesContainer:FindFirstChild("PlayerPage") if FirstPage then FirstPage.Visible = true FirstPage.GroupTransparency = 0 activeTab = FirstPage end game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Lightly Mod"; Text = "Loaded successfully!"; Duration = 5; })