--// SERVIÇOS local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local TweenService = game:GetService("TweenService") local SoundService = game:GetService("SoundService") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera --// CONFIGURAÇÕES local Settings = { -- IMAGEM PERSONALIZADA (rbxassetid://1234567890) ImageUrl = "rbxassetid://108597538356810", -- COPIE O ID DA SUA IMAGEM DO ROBLOX E COLE AQUI Aimbot = true, AimPart = "Head", FOV = 150, AimSpeed = 0.6, TeamCheck = true, MaxDistance = 1000, RGB_Mode = false, ESP_Lines = true, ESP_Box = true, ESP_Skeleton = true, ESP_Health = true, Fly = false, FlySpeed = 50, Noclip = false, Safe = false, ThemeColor = Color3.fromRGB(0, 255, 150), DefaultColor = Color3.fromRGB(0, 255, 150) } --// PROTEÇÃO E LIMPEZA if CoreGui:FindFirstChild("JN_Cheats_V17") then CoreGui:FindFirstChild("JN_Cheats_V17"):Destroy() end RunService:UnbindFromRenderStep("JN_Cheats_Loop_V17") --// SISTEMA DE SOM local SoundOn = Instance.new("Sound") SoundOn.SoundId = "rbxassetid://2865227271" SoundOn.Volume = 5 SoundOn.Parent = workspace local SoundOff = Instance.new("Sound") SoundOff.SoundId = "rbxassetid://2865228021" SoundOff.Volume = 5 SoundOff.Parent = workspace local function PlaySound(state) if state then SoundOn:Play() else SoundOff:Play() end end --// CACHE DE DESENHOS local PlayerDrawings = {} local function CreateDrawing(class, props) local obj = Drawing.new(class) for i, v in pairs(props) do obj[i] = v end return obj end local function AddDrawings(p) if PlayerDrawings[p] then return end PlayerDrawings[p] = { Line = CreateDrawing("Line", {Thickness = 1.5, Color = Settings.ThemeColor, Visible = false}), Box = CreateDrawing("Square", {Thickness = 1.5, Color = Settings.ThemeColor, Filled = false, Visible = false}), HealthBar = CreateDrawing("Line", {Thickness = 2, Color = Color3.fromRGB(0, 255, 0), Visible = false}), Skeleton = { Spine = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}), ArmL = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}), ArmR = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}), LegL = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}), LegR = CreateDrawing("Line", {Thickness = 1.5, Color = Color3.fromRGB(255,255,255), Visible = false}) } } end local function RemoveDrawings(p) if PlayerDrawings[p] then PlayerDrawings[p].Line:Remove() PlayerDrawings[p].Box:Remove() PlayerDrawings[p].HealthBar:Remove() for _, bone in pairs(PlayerDrawings[p].Skeleton) do bone:Remove() end PlayerDrawings[p] = nil end end Players.PlayerRemoving:Connect(RemoveDrawings) --// INTERFACE GRÁFICA (GUI COM IMAGENS & BOTÃO MÓVEL) local ScreenGui = Instance.new("ScreenGui", CoreGui) ScreenGui.Name = "JN_Cheats_V17" ScreenGui.ResetOnSpawn = false -- Botão de Abrir (Logo Móvel) local OpenBtn = Instance.new("TextButton", ScreenGui) OpenBtn.Size = UDim2.new(0, 60, 0, 60) OpenBtn.Position = UDim2.new(0.5, -30, 0.05, 0) OpenBtn.BackgroundColor3 = Color3.fromRGB(15, 15, 15) OpenBtn.Text = "" OpenBtn.TextColor3 = Settings.ThemeColor OpenBtn.Font = Enum.Font.GothamBold OpenBtn.TextSize = 18 OpenBtn.BorderSizePixel = 2 OpenBtn.BorderColor3 = Settings.ThemeColor Instance.new("UICorner", OpenBtn).CornerRadius = UDim.new(1, 0) -- TORNA O BOTÃO MÓVEL (Arrastável) OpenBtn.Active = true OpenBtn.Draggable = true -- Coloca a Imagem no Botão local OpenBtnImage = Instance.new("ImageLabel", OpenBtn) OpenBtnImage.Size = UDim2.new(0.8, 0, 0.8, 0) OpenBtnImage.Position = UDim2.new(0.1, 0, 0.1, 0) OpenBtnImage.BackgroundTransparency = 1 OpenBtnImage.ImageColor3 = Color3.new(1, 1, 1) -- Garante cor original OpenBtnImage.Image = Settings.ImageUrl OpenBtnImage.ScaleType = Enum.ScaleType.Fit -- Painel Principal local Main = Instance.new("Frame", ScreenGui) Main.Size = UDim2.new(0, 420, 0, 310) Main.Position = UDim2.new(0.5, -210, 1.5, 0) Main.BackgroundColor3 = Color3.fromRGB(15, 15, 15) Main.BorderSizePixel = 0 Main.Active = true Main.Draggable = true Instance.new("UICorner", Main) -- Animação do Painel local MenuOpen = false OpenBtn.MouseButton1Click:Connect(function() MenuOpen = not MenuOpen local TargetPos = MenuOpen and UDim2.new(0.5, -210, 0.5, -155) or UDim2.new(0.5, -210, 1.5, 0) TweenService:Create(Main, TweenInfo.new(0.5, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = TargetPos}):Play() PlaySound(MenuOpen) end) -- Sidebar local SideBar = Instance.new("Frame", Main) SideBar.Size = UDim2.new(0, 110, 1, 0) SideBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20) Instance.new("UICorner", SideBar) -- Coloca a Imagem no Painel local SideBarImage = Instance.new("ImageLabel", SideBar) SideBarImage.Size = UDim2.new(0.8, 0, 0, 40) SideBarImage.Position = UDim2.new(0.1, 0, 0, 5) SideBarImage.BackgroundTransparency = 1 SideBarImage.ImageColor3 = Color3.new(1, 1, 1) -- Garante cor original SideBarImage.Image = Settings.ImageUrl SideBarImage.ScaleType = Enum.ScaleType.Fit local PageContainer = Instance.new("Frame", Main) PageContainer.Position = UDim2.new(0, 120, 0, 10) PageContainer.Size = UDim2.new(1, -130, 1, -20) PageContainer.BackgroundTransparency = 1 local Pages = {} local function NewPage(name, order) local p = Instance.new("ScrollingFrame", PageContainer) p.Size = UDim2.new(1, 0, 1, 0) p.BackgroundTransparency = 1 p.Visible = false p.ScrollBarThickness = 0 Instance.new("UIListLayout", p).Padding = UDim.new(0, 5) local btn = Instance.new("TextButton", SideBar) btn.Size = UDim2.new(0.9, 0, 0, 35) btn.Position = UDim2.new(0.05, 0, 0, 50 + (order * 40)) btn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) btn.Text = name btn.TextColor3 = Color3.fromRGB(200, 200, 200) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 Instance.new("UICorner", btn) btn.MouseButton1Click:Connect(function() for _, pg in pairs(Pages) do pg.Visible = false end p.Visible = true PlaySound(true) end) Pages[name] = p return p end local PageAim = NewPage("HEADTRICK", 0) local PageVis = NewPage("VISUALS", 1) local PageExt = NewPage("ESTREME", 2) local PageInf = NewPage("INFO", 3) PageAim.Visible = true local InfoText = Instance.new("TextLabel", PageInf) InfoText.Size = UDim2.new(1, 0, 0, 200) InfoText.BackgroundTransparency = 1 InfoText.Text = "Criado por:\nJN Xit\n\nVersão: 17.0 Ultimate\n(Correção de Cores da Logo)" InfoText.TextColor3 = Color3.fromRGB(255, 255, 255) InfoText.Font = Enum.Font.GothamBold InfoText.TextSize = 16 local UI_Elements = {} local function NewToggle(parent, text, setting, callback) local btn = Instance.new("TextButton", parent) btn.Size = UDim2.new(1, 0, 0, 35) btn.BackgroundColor3 = Color3.fromRGB(25, 25, 25) btn.Text = text .. (Settings[setting] and ": ON" or ": OFF") btn.TextColor3 = Settings[setting] and Settings.ThemeColor or Color3.fromRGB(200, 200, 200) btn.Font = Enum.Font.Gotham Instance.new("UICorner", btn) table.insert(UI_Elements, {Btn = btn, Setting = setting}) btn.MouseButton1Click:Connect(function() Settings[setting] = not Settings[setting] btn.Text = text .. (Settings[setting] and ": ON" or ": OFF") btn.TextColor3 = Settings[setting] and Settings.ThemeColor or Color3.fromRGB(200, 200, 200) PlaySound(Settings[setting]) if callback then callback(Settings[setting]) end end) end -- Botões NewToggle(PageAim, "Aimlock (Mouse1)", "Aimbot") NewToggle(PageAim, "Team Checker", "TeamCheck") NewToggle(PageVis, "Modo RGB (Chroma)", "RGB_Mode") NewToggle(PageVis, "ESP Lines", "ESP_Lines") NewToggle(PageVis, "ESP Box", "ESP_Box") NewToggle(PageVis, "ESP Health", "ESP_Health") NewToggle(PageVis, "ESP Skeleton", "ESP_Skeleton") -- Lógica Safe e Estreme local SafePlatform local LastSafePos NewToggle(PageExt, "Safe (Zona Segura)", "Safe", function(state) local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if state then if not SafePlatform then SafePlatform = Instance.new("Part", workspace) SafePlatform.Size = Vector3.new(30, 2, 30) SafePlatform.Position = Vector3.new(0, 50000, 0) SafePlatform.Anchored = true SafePlatform.Transparency = 0.9 SafePlatform.BrickColor = BrickColor.new("Lime green") end if root then LastSafePos = root.CFrame root.CFrame = SafePlatform.CFrame + Vector3.new(0, 5, 0) end else if root and LastSafePos then root.CFrame = LastSafePos end end end) NewToggle(PageExt, "Fly (Voar)", "Fly") NewToggle(PageExt, "No Clip (Atravessar)", "Noclip") --// NOCLIP LOGIC RunService.Stepped:Connect(function() if Settings.Noclip and LocalPlayer.Character then for _, part in pairs(LocalPlayer.Character:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end end) --// FUNÇÕES CORE E ULTRA TEAM CHECKER local function GetParts(char) local R15 = char:FindFirstChild("UpperTorso") if R15 then return char:FindFirstChild("Head"), char:FindFirstChild("UpperTorso"), char:FindFirstChild("LeftUpperArm"), char:FindFirstChild("RightUpperArm"), char:FindFirstChild("LeftUpperLeg"), char:FindFirstChild("RightUpperLeg") else return char:FindFirstChild("Head"), char:FindFirstChild("Torso"), char:FindFirstChild("Left Arm"), char:FindFirstChild("Right Arm"), char:FindFirstChild("Left Leg"), char:FindFirstChild("Right Leg") end end local function IsEnemy(p) if p == LocalPlayer then return false end if not p.Character or not p.Character.Parent then return false end if not p.Character:FindFirstChild("Humanoid") or p.Character.Humanoid.Health <= 0 then return false end if Settings.TeamCheck then if p.Team and LocalPlayer.Team and p.Team == LocalPlayer.Team then return false end if p.TeamColor and LocalPlayer.TeamColor and p.TeamColor == LocalPlayer.TeamColor then return false end end return true end --// LOOP PRINCIPAL (RGB, ESP, AIM) local FOVCircle = Drawing.new("Circle") FOVCircle.Thickness = 1.5 FOVCircle.Transparency = 0.8 FOVCircle.Visible = false RunService:BindToRenderStep("JN_Cheats_Loop_V17", Enum.RenderPriority.Camera.Value + 1, function() if Settings.RGB_Mode then Settings.ThemeColor = Color3.fromHSV(tick() % 5 / 5, 1, 1) else Settings.ThemeColor = Settings.DefaultColor end -- Removi a linha que forçava a imagem a ficar da cor do tema -- Agora a imagem manterá suas cores originais! OpenBtn.BorderColor3 = Settings.ThemeColor FOVCircle.Color = Settings.ThemeColor for _, ui in pairs(UI_Elements) do if Settings[ui.Setting] then ui.Btn.TextColor3 = Settings.ThemeColor end end FOVCircle.Visible = Settings.Aimbot FOVCircle.Radius = Settings.FOV FOVCircle.Position = UserInputService:GetMouseLocation() if Settings.Fly then local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root and char:FindFirstChild("Humanoid").Health > 0 then if not root:FindFirstChild("JNFlyVelocity") then local bv = Instance.new("BodyVelocity", root) bv.Name = "JNFlyVelocity" bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Velocity = Vector3.new(0, 0, 0) local bg = Instance.new("BodyGyro", root) bg.Name = "JNFlyGyro" bg.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bg.CFrame = Camera.CFrame end local bv = root:FindFirstChild("JNFlyVelocity") local bg = root:FindFirstChild("JNFlyGyro") if bv and bg then bg.CFrame = Camera.CFrame local dir = Vector3.new(0,0,0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + Camera.CFrame.RightVector end bv.Velocity = dir * Settings.FlySpeed end end else local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if root then if root:FindFirstChild("JNFlyVelocity") then root.JNFlyVelocity:Destroy() end if root:FindFirstChild("JNFlyGyro") then root.JNFlyGyro:Destroy() end end end local TargetHead = nil local MinDist = Settings.FOV for _, d in pairs(PlayerDrawings) do d.Line.Visible = false; d.Box.Visible = false; d.HealthBar.Visible = false d.Line.Color = Settings.ThemeColor d.Box.Color = Settings.ThemeColor for _, bone in pairs(d.Skeleton) do bone.Visible = false end end for _, p in pairs(Players:GetPlayers()) do if IsEnemy(p) then if not PlayerDrawings[p] then AddDrawings(p) end local d = PlayerDrawings[p] local char = p.Character local Head, Torso, LArm, RArm, LLeg, RLeg = GetParts(char) if Head and Torso then local Distance3D = (Camera.CFrame.Position - Head.Position).Magnitude if Distance3D <= Settings.MaxDistance then local HeadPos, OnScreen = Camera:WorldToViewportPoint(Head.Position) if OnScreen and HeadPos.Z > 0 then local MousePos = UserInputService:GetMouseLocation() local Dist2D = (Vector2.new(HeadPos.X, HeadPos.Y) - MousePos).Magnitude if Dist2D < MinDist then MinDist = Dist2D TargetHead = Head end local RootPos = Camera:WorldToViewportPoint(Torso.Position) if RootPos.Z > 0 then if Settings.ESP_Box then local Size = Vector2.new(2000/HeadPos.Z, 2500/HeadPos.Z) d.Box.Size = Size d.Box.Position = Vector2.new(HeadPos.X - Size.X/2, HeadPos.Y - Size.Y/2) d.Box.Visible = true end if Settings.ESP_Lines then d.Line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) d.Line.To = Vector2.new(HeadPos.X, HeadPos.Y) d.Line.Visible = true end if Settings.ESP_Health then local H = char.Humanoid.Health / char.Humanoid.MaxHealth d.HealthBar.From = Vector2.new(HeadPos.X - (2000/HeadPos.Z)/2 - 5, HeadPos.Y + (2500/HeadPos.Z)/2) d.HealthBar.To = Vector2.new(HeadPos.X - (2000/HeadPos.Z)/2 - 5, (HeadPos.Y + (2500/HeadPos.Z)/2) - (H * (2500/HeadPos.Z))) d.HealthBar.Visible = true end if Settings.ESP_Skeleton and LArm and RArm and LLeg and RLeg then local pLA = Camera:WorldToViewportPoint(LArm.Position) local pRA = Camera:WorldToViewportPoint(RArm.Position) local pLL = Camera:WorldToViewportPoint(LLeg.Position) local pRL = Camera:WorldToViewportPoint(RLeg.Position) if pLA.Z > 0 and pRA.Z > 0 and pLL.Z > 0 and pRL.Z > 0 then d.Skeleton.Spine.From = Vector2.new(HeadPos.X, HeadPos.Y); d.Skeleton.Spine.To = Vector2.new(RootPos.X, RootPos.Y) d.Skeleton.ArmL.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.ArmL.To = Vector2.new(pLA.X, pLA.Y) d.Skeleton.ArmR.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.ArmR.To = Vector2.new(pRA.X, pRA.Y) d.Skeleton.LegL.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.LegL.To = Vector2.new(pLL.X, pLL.Y) d.Skeleton.LegR.From = Vector2.new(RootPos.X, RootPos.Y); d.Skeleton.LegR.To = Vector2.new(pRL.X, pRL.Y) for _, bone in pairs(d.Skeleton) do bone.Visible = true end end end end end end end end end if Settings.Aimbot and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) and TargetHead then local HeadPos = Camera:WorldToViewportPoint(TargetHead.Position) local MouseLocation = UserInputService:GetMouseLocation() local MoveX = (HeadPos.X - MouseLocation.X) * Settings.AimSpeed local MoveY = (HeadPos.Y - MouseLocation.Y) * Settings.AimSpeed if mousemoverel then mousemoverel(MoveX, MoveY) else local TargetCFrame = CFrame.lookAt(Camera.CFrame.Position, TargetHead.Position) Camera.CFrame = Camera.CFrame:Lerp(TargetCFrame, Settings.AimSpeed + 0.2) end end end)