local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local VirtualUser = game:GetService("VirtualUser") local Camera = workspace.CurrentCamera local Mouse = Players.LocalPlayer:GetMouse() local player = Players.LocalPlayer -- ========== ANTI-DETECTION AUTOMATIQUE ========== local function protect() pcall(function() for _, v in pairs(game:GetService("CoreGui"):GetChildren()) do if typeof(v.Name) == "string" and (v.Name:find("YM") or v.Name:find("Core") or v.Name:find("Password")) then v.Name = "Core" .. math.random(100000, 999999) end end end) end protect() ------------------------------------------------- -- MOT DE PASSE ------------------------------------------------- local PassGui = Instance.new("ScreenGui") PassGui.Name = "Core" .. math.random(100000, 999999) PassGui.ResetOnSpawn = false PassGui.Parent = player:WaitForChild("PlayerGui") local PassFrame = Instance.new("Frame") PassFrame.Size = UDim2.new(0, 340, 0, 200) PassFrame.Position = UDim2.new(0.5, -170, 0.5, -100) PassFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10) PassFrame.Parent = PassGui Instance.new("UICorner", PassFrame).CornerRadius = UDim.new(0, 12) Instance.new("UIStroke", PassFrame).Color = Color3.fromRGB(160, 0, 0) local PassTitle = Instance.new("TextLabel") PassTitle.Size = UDim2.new(1, 0, 0, 50) PassTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0) PassTitle.Text = "YM TOOL" PassTitle.TextColor3 = Color3.fromRGB(220, 20, 20) PassTitle.Font = Enum.Font.GothamBlack PassTitle.TextSize = 26 PassTitle.Parent = PassFrame Instance.new("UICorner", PassTitle).CornerRadius = UDim.new(0, 12) local PassLabel = Instance.new("TextLabel") PassLabel.Size = UDim2.new(1, -40, 0, 25) PassLabel.Position = UDim2.new(0, 20, 0, 60) PassLabel.BackgroundTransparency = 1 PassLabel.Text = "Entre le mot de passe :" PassLabel.TextColor3 = Color3.fromRGB(200, 160, 160) PassLabel.Font = Enum.Font.Gotham PassLabel.TextSize = 14 PassLabel.TextXAlignment = Enum.TextXAlignment.Left PassLabel.Parent = PassFrame local PassBox = Instance.new("TextBox") PassBox.Size = UDim2.new(1, -40, 0, 36) PassBox.Position = UDim2.new(0, 20, 0, 90) PassBox.BackgroundColor3 = Color3.fromRGB(25, 8, 8) PassBox.PlaceholderText = "Mot de passe..." PassBox.Text = "" PassBox.TextColor3 = Color3.fromRGB(255, 220, 220) PassBox.Font = Enum.Font.GothamBold PassBox.TextSize = 16 PassBox.Parent = PassFrame Instance.new("UICorner", PassBox).CornerRadius = UDim.new(0, 6) local PassBtn = Instance.new("TextButton") PassBtn.Size = UDim2.new(1, -40, 0, 38) PassBtn.Position = UDim2.new(0, 20, 0, 140) PassBtn.BackgroundColor3 = Color3.fromRGB(140, 0, 0) PassBtn.Text = "ENTRER" PassBtn.TextColor3 = Color3.fromRGB(255, 255, 255) PassBtn.Font = Enum.Font.GothamBold PassBtn.TextSize = 16 PassBtn.Parent = PassFrame Instance.new("UICorner", PassBtn).CornerRadius = UDim.new(0, 6) local ErrorLabel = Instance.new("TextLabel") ErrorLabel.Size = UDim2.new(1, -20, 0, 20) ErrorLabel.Position = UDim2.new(0, 10, 1, -25) ErrorLabel.BackgroundTransparency = 1 ErrorLabel.Text = "" ErrorLabel.TextColor3 = Color3.fromRGB(255, 60, 60) ErrorLabel.Font = Enum.Font.Gotham ErrorLabel.TextSize = 13 ErrorLabel.Parent = PassFrame local correctPassword = "ymclxn" local scriptLoaded = false local function loadMainScript() if scriptLoaded then return end scriptLoaded = true PassGui:Destroy() protect() -- Variables local flying, flySpeed, walkSpeed = false, 50, 16 local godmode, invisible, noclip, rgb = false, false, false, false local glue, aimbot, esp = false, false, false local aimScope = false local aiming = false local spinning, spinSpeed = false, 50 local spinning90, spinSpeed90 = false, 5000 local moveObjects = false local clickTP, killAura, bringAll = false, false, false local infiniteJump, noFallDamage, antiAFK, ragdoll = false, false, false, false local skeletonESP, nameGlitch = false, false local fakeLagTP, fakeLagAngles = false, false local superForce = false local forcePower = 2800 local jumpPower = 50 local fpsCap = 0 local fpsCounterEnabled = true local crosshairEnabled = true -- FPS COUNTER + FPS UNLOCKER local FPSGui = Instance.new("ScreenGui") FPSGui.Name = "YM_FPS_COUNTER" FPSGui.ResetOnSpawn = false FPSGui.Parent = player:WaitForChild("PlayerGui") local FPSLabel = Instance.new("TextLabel") FPSLabel.Name = "FPSCounter" FPSLabel.Size = UDim2.new(0, 100, 0, 28) FPSLabel.Position = UDim2.new(0, 8, 0, 70) FPSLabel.BackgroundTransparency = 1 FPSLabel.Text = "0 FPS" FPSLabel.TextColor3 = Color3.fromRGB(255, 255, 255) FPSLabel.Font = Enum.Font.GothamBold FPSLabel.TextSize = 16 FPSLabel.TextXAlignment = Enum.TextXAlignment.Left FPSLabel.Active = true FPSLabel.Parent = FPSGui local fpsDragging, fpsDragStart, fpsStartPos FPSLabel.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then fpsDragging = true fpsDragStart = input.Position fpsStartPos = FPSLabel.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then fpsDragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if fpsDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - fpsDragStart FPSLabel.Position = UDim2.new(fpsStartPos.X.Scale, fpsStartPos.X.Offset + delta.X, fpsStartPos.Y.Scale, fpsStartPos.Y.Offset + delta.Y) end end) local function applyFPSCap() if type(setfpscap) == "function" then pcall(function() setfpscap(fpsCap) end) end end applyFPSCap() task.spawn(function() local last = tick() local frames = 0 while FPSGui.Parent do RunService.RenderStepped:Wait() frames += 1 local now = tick() if now - last >= 0.5 then FPSLabel.Text = math.floor(frames / (now - last) + 0.5) .. " FPS" frames = 0 last = now end end end) local bodyGyro, bodyVelocity local rgbConnection, glueConnection, spinConnection, spin90Connection local moveConnection, clickTPConnection, killAuraConnection local bringConnection, jumpConnection, fallConnection, antiAFKConnection local skeletonConnection, nameGlitchConnection local fakeLagTPConnection, fakeLagAnglesConnection local forceConnections = {} local gluedTarget, selectedPart local guiVisible = true local highlights = {} local ragdollConstraints = {} local skeletonDrawings = {} local nameGlitchBillboard = nil local boxESP = false local boxESPConnection = nil local boxESPObjects = {} local teamCheckEnabled = false local visibilityCheckEnabled = false local fovEnabled = false local fovRadius = 150 local debugVisible = false -- Crosshair centrale RGB local CrosshairGui = Instance.new("ScreenGui") CrosshairGui.Name = "YM_Crosshair" CrosshairGui.ResetOnSpawn = false CrosshairGui.IgnoreGuiInset = true CrosshairGui.Parent = player:WaitForChild("PlayerGui") local CrosshairDot = Instance.new("Frame") CrosshairDot.Name = "RGBDot" CrosshairDot.Size = UDim2.fromOffset(5, 5) CrosshairDot.AnchorPoint = Vector2.new(0.5, 0.5) CrosshairDot.Position = UDim2.new(0.5, 0, 0.5, 0) CrosshairDot.BorderSizePixel = 0 CrosshairDot.ZIndex = 100 CrosshairDot.Visible = crosshairEnabled CrosshairDot.Parent = CrosshairGui Instance.new("UICorner", CrosshairDot).CornerRadius = UDim.new(1, 0) task.spawn(function() while CrosshairGui.Parent do CrosshairDot.Visible = crosshairEnabled if crosshairEnabled then CrosshairDot.BackgroundColor3 = Color3.fromHSV((tick() * 0.25) % 1, 1, 1) end RunService.RenderStepped:Wait() end end) -- VISIBILITY CHECK séparé : même calcul de box que le vrai ESP BOX. -- La seule différence : la box passe rouge derrière un obstacle et verte si visible. local VisibilityESP = {} local isTeammate local isVisibleFromCamera local function removeVisibilityESP(plr) local obj = VisibilityESP[plr] if obj then if obj.box then pcall(function() obj.box:Remove() end) end VisibilityESP[plr] = nil end end local function createVisibilityESP(plr) if plr == player or VisibilityESP[plr] then return end local char = plr.Character if not char then return end -- Chams : le personnage entier est rempli, sans carré autour. local highlight = Instance.new("Highlight") highlight.Name = "YM_VisibilityHighlight" highlight.Adornee = char highlight.FillTransparency = 0.35 highlight.OutlineTransparency = 1 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Enabled = visibilityCheckEnabled highlight.Parent = char VisibilityESP[plr] = {highlight = highlight} end local function updateVisibilityESP() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character and not isTeammate(plr) then local char = plr.Character local root = char:FindFirstChild("HumanoidRootPart") local head = char:FindFirstChild("Head") local hum = char:FindFirstChildOfClass("Humanoid") if root and head and hum and hum.Health > 0 then createVisibilityESP(plr) local d = VisibilityESP[plr] if d and d.highlight then -- Vert = le joueur est visible ; rouge = il est derrière un obstacle. local visible = isVisibleFromCamera(root, char) d.highlight.FillColor = visible and Color3.fromRGB(40, 255, 80) or Color3.fromRGB(255, 40, 40) d.highlight.Enabled = visibilityCheckEnabled end else removeVisibilityESP(plr) end else removeVisibilityESP(plr) end end end Players.PlayerRemoving:Connect(removeVisibilityESP) RunService.RenderStepped:Connect(function() if visibilityCheckEnabled then updateVisibilityESP() else for _, obj in pairs(VisibilityESP) do if obj.highlight then obj.highlight.Enabled = false end end end end) -- FOV CIRCLE réglable local FOVGui = Instance.new("ScreenGui") FOVGui.Name = "YM_FOV" FOVGui.IgnoreGuiInset = true FOVGui.ResetOnSpawn = false FOVGui.Parent = player:WaitForChild("PlayerGui") local FOVCircle = Instance.new("Frame") FOVCircle.Name = "FOVCircle" FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.Position = UDim2.fromScale(0.5, 0.5) FOVCircle.Size = UDim2.fromOffset(fovRadius * 2, fovRadius * 2) FOVCircle.BackgroundTransparency = 1 FOVCircle.Visible = fovEnabled FOVCircle.ZIndex = 90 FOVCircle.Parent = FOVGui local fovCorner = Instance.new("UICorner") fovCorner.CornerRadius = UDim.new(1, 0) fovCorner.Parent = FOVCircle local fovStroke = Instance.new("UIStroke") fovStroke.Thickness = 1.5 fovStroke.Parent = FOVCircle task.spawn(function() while FOVGui.Parent do FOVCircle.Visible = fovEnabled FOVCircle.Size = UDim2.fromOffset(fovRadius * 2, fovRadius * 2) if fovEnabled then fovStroke.Color = Color3.fromHSV((tick() * 0.25) % 1, 1, 1) end RunService.RenderStepped:Wait() end end) local function getChar() return player.Character end local function getHumanoid() local c = getChar() return c and c:FindFirstChildOfClass("Humanoid") end local function getRoot() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") end isTeammate = function(plr) if not teamCheckEnabled then return false end if player.Team ~= nil and plr.Team ~= nil then return player.Team == plr.Team end return false end isVisibleFromCamera = function(part, char) if not visibilityCheckEnabled then return true end local currentCamera = workspace.CurrentCamera if not currentCamera or not char then return false end local origin = currentCamera.CFrame.Position local points = {} -- Plusieurs points évitent les faux rouges quand seule la tête est derrière un petit obstacle. local head = char:FindFirstChild("Head") local root = char:FindFirstChild("HumanoidRootPart") local upper = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") local lower = char:FindFirstChild("LowerTorso") local leftArm = char:FindFirstChild("LeftUpperArm") or char:FindFirstChild("Left Arm") local rightArm = char:FindFirstChild("RightUpperArm") or char:FindFirstChild("Right Arm") for _, obj in ipairs({head, upper, lower, root, leftArm, rightArm, part}) do if obj and obj:IsA("BasePart") then table.insert(points, obj.Position) end end local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {player.Character, char} params.IgnoreWater = true -- Un seul rayon libre suffit : la cible est considérée visible. for _, targetPosition in ipairs(points) do local direction = targetPosition - origin if direction.Magnitude <= 0.01 then return true end local result = workspace:Raycast(origin, direction, params) if result == nil then return true end end return false end local function setWalkSpeed(v) walkSpeed = v local h = getHumanoid() if h then h.WalkSpeed = v h:SetStateEnabled(Enum.HumanoidStateType.Running, true) end end -- Le jeu peut avoir son propre sprint (ex: 16 -> 24/26). -- On mémorise une éventuelle vitesse supérieure pour ne pas l'écraser. local gameSprintSpeed = nil -- ========== FONCTIONS DE BASE ========== local function startFly() if flying then return end flying = true local root, hum = getRoot(), getHumanoid() if not root or not hum then return end bodyGyro = Instance.new("BodyGyro") bodyGyro.P = 9e4 bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9) bodyGyro.CFrame = root.CFrame bodyGyro.Parent = root bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9) bodyVelocity.Parent = root hum.PlatformStand = true end local function stopFly() if not flying then return end flying = false if bodyGyro then bodyGyro:Destroy() end if bodyVelocity then bodyVelocity:Destroy() end local hum = getHumanoid() if hum then hum.PlatformStand = false end end local function setInvisible(state) local char = getChar() if not char then return end for _, v in pairs(char:GetDescendants()) do if v:IsA("BasePart") then v.Transparency = state and 1 or 0 if state then v.CanCollide = false end elseif v:IsA("Decal") or v:IsA("Texture") then v.Transparency = state and 1 or 0 elseif v:IsA("ParticleEmitter") or v:IsA("Trail") or v:IsA("Beam") then v.Enabled = not state end end end local function startRGB() if rgbConnection then rgbConnection:Disconnect() end rgbConnection = RunService.Heartbeat:Connect(function() if not rgb then return end local char = getChar() if not char then return end local color = Color3.fromHSV((tick() % 5)/5, 1, 1) for _, p in pairs(char:GetDescendants()) do if p:IsA("BasePart") and p.Name ~= "HumanoidRootPart" and p.Transparency < 0.1 then p.Color = color end end end) end local function stopRGB() if rgbConnection then rgbConnection:Disconnect() rgbConnection = nil end end local function getClosestPlayer() local closest, shortest, myRoot = nil, math.huge, getRoot() if not myRoot then return end for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local d = (myRoot.Position - plr.Character.HumanoidRootPart.Position).Magnitude if d < shortest then shortest = d closest = plr end end end return closest end local function startGlue() if glueConnection then return end local t = getClosestPlayer() if not t then return end gluedTarget = t glueConnection = RunService.Heartbeat:Connect(function() if not glue or not gluedTarget then return end local myRoot = getRoot() local tr = gluedTarget.Character and gluedTarget.Character:FindFirstChild("HumanoidRootPart") if myRoot and tr then myRoot.CFrame = tr.CFrame * CFrame.new(0, 0, 1.5) else stopGlue() if glue then task.wait(0.2) startGlue() end end end) end local function stopGlue() if glueConnection then glueConnection:Disconnect() glueConnection = nil end gluedTarget = nil end local function startSpin() if spinConnection then return end spinConnection = RunService.Heartbeat:Connect(function() if not spinning then return end local r = getRoot() if r then r.CFrame = r.CFrame * CFrame.Angles(0, math.rad(spinSpeed), 0) end end) end local function stopSpin() if spinConnection then spinConnection:Disconnect() spinConnection = nil end end local function startSpin90() if spin90Connection then return end spin90Connection = RunService.Heartbeat:Connect(function() if not spinning90 then return end local r = getRoot() if r then r.CFrame = CFrame.new(r.Position) * CFrame.Angles(math.rad(90), math.rad(tick() * spinSpeed90), 0) end end) end local function stopSpin90() if spin90Connection then spin90Connection:Disconnect() spin90Connection = nil end end local function startMoveObjects() if moveConnection then return end moveConnection = Mouse.Button1Down:Connect(function() if not moveObjects then return end local t = Mouse.Target if t and t:IsA("BasePart") and not t:IsDescendantOf(player.Character) then selectedPart = t if selectedPart:FindFirstChild("YM_Select") then selectedPart.YM_Select:Destroy() end local s = Instance.new("SelectionBox") s.Name = "YM_Select" s.Adornee = selectedPart s.Color3 = Color3.fromRGB(255, 50, 50) s.Parent = selectedPart end end) RunService.Heartbeat:Connect(function() if moveObjects and selectedPart and selectedPart.Parent and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then selectedPart.CFrame = CFrame.new(Mouse.Hit.Position) end end) end local function stopMoveObjects() if selectedPart and selectedPart:FindFirstChild("YM_Select") then selectedPart.YM_Select:Destroy() end selectedPart = nil if moveConnection then moveConnection:Disconnect() moveConnection = nil end end local function startClickTP() if clickTPConnection then return end clickTPConnection = Mouse.Button1Down:Connect(function() if not clickTP then return end local r = getRoot() if r then r.CFrame = CFrame.new(Mouse.Hit.Position + Vector3.new(0, 3, 0)) end end) end local function stopClickTP() if clickTPConnection then clickTPConnection:Disconnect() clickTPConnection = nil end end local function startKillAura() if killAuraConnection then return end killAuraConnection = RunService.Heartbeat:Connect(function() if not killAura then return end local myRoot = getRoot() if not myRoot then return end for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and not isTeammate(plr) and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") local root = plr.Character:FindFirstChild("HumanoidRootPart") if hum and root and hum.Health > 0 and (myRoot.Position - root.Position).Magnitude < 15 then pcall(function() hum.Health = 0 end) end end end end) end local function stopKillAura() if killAuraConnection then killAuraConnection:Disconnect() killAuraConnection = nil end end local function startBringAll() if bringConnection then return end bringConnection = RunService.Heartbeat:Connect(function() if not bringAll then return end local myRoot = getRoot() if not myRoot then return end for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and plr.Character then local root = plr.Character:FindFirstChild("HumanoidRootPart") if root then root.CFrame = myRoot.CFrame * CFrame.new(0, 0, 5) end end end end) end local function stopBringAll() if bringConnection then bringConnection:Disconnect() bringConnection = nil end end local function startInfiniteJump() if jumpConnection then return end jumpConnection = UserInputService.JumpRequest:Connect(function() if not infiniteJump then return end local h = getHumanoid() if h then h:ChangeState(Enum.HumanoidStateType.Jumping) end end) end local function stopInfiniteJump() if jumpConnection then jumpConnection:Disconnect() jumpConnection = nil end end local function startNoFallDamage() if fallConnection then return end fallConnection = RunService.Heartbeat:Connect(function() if not noFallDamage then return end local h = getHumanoid() if h and h:GetState() == Enum.HumanoidStateType.Freefall then h:ChangeState(Enum.HumanoidStateType.GettingUp) end end) end local function stopNoFallDamage() if fallConnection then fallConnection:Disconnect() fallConnection = nil end end local function startAntiAFK() if antiAFKConnection then return end antiAFKConnection = player.Idled:Connect(function() VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end) end local function stopAntiAFK() if antiAFKConnection then antiAFKConnection:Disconnect() antiAFKConnection = nil end end local function startRagdoll() local char = getChar() local hum = getHumanoid() if not char or not hum then return end hum.PlatformStand = true hum:ChangeState(Enum.HumanoidStateType.Physics) for _, v in pairs(char:GetDescendants()) do if v:IsA("Motor6D") and v.Part0 and v.Part1 then local att0 = Instance.new("Attachment") att0.Name = "YM_RagA0" att0.CFrame = v.C0 att0.Parent = v.Part0 local att1 = Instance.new("Attachment") att1.Name = "YM_RagA1" att1.CFrame = v.C1 att1.Parent = v.Part1 local ball = Instance.new("BallSocketConstraint") ball.Name = "YM_Ragdoll" ball.Attachment0 = att0 ball.Attachment1 = att1 ball.LimitsEnabled = false ball.Parent = v.Part0 table.insert(ragdollConstraints, {motor = v, ball = ball, att0 = att0, att1 = att1}) v.Enabled = false end end end local function stopRagdoll() local hum = getHumanoid() if hum then hum.PlatformStand = false hum:ChangeState(Enum.HumanoidStateType.GettingUp) end for _, data in pairs(ragdollConstraints) do if data.motor then data.motor.Enabled = true end if data.ball then data.ball:Destroy() end if data.att0 then data.att0:Destroy() end if data.att1 then data.att1:Destroy() end end table.clear(ragdollConstraints) end -- ========== FORCE x1000 CORRIGÉE ========== local function setupSuperForce(char) for _, conn in pairs(forceConnections) do conn:Disconnect() end table.clear(forceConnections) if not superForce or not char then return end for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then local conn = part.Touched:Connect(function(hit) if not superForce then return end local enemyChar = hit:FindFirstAncestorOfClass("Model") if not enemyChar or enemyChar == char then return end local enemyHum = enemyChar:FindFirstChildOfClass("Humanoid") local enemyRoot = enemyChar:FindFirstChild("HumanoidRootPart") local myRoot = getRoot() if enemyHum and enemyRoot and myRoot and enemyHum.Health > 0 then local direction = (enemyRoot.Position - myRoot.Position) if direction.Magnitude < 0.8 then direction = myRoot.CFrame.LookVector else direction = direction.Unit end local power = forcePower enemyRoot.AssemblyLinearVelocity = direction * power + Vector3.new(0, power * 0.55, 0) local bv = Instance.new("BodyVelocity") bv.Velocity = direction * power + Vector3.new(0, power * 0.5, 0) bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Parent = enemyRoot game:GetService("Debris"):AddItem(bv, 0.45) end end) table.insert(forceConnections, conn) end end end -- ESP Squelette local function clearSkeleton() for _, drawings in pairs(skeletonDrawings) do for _, d in pairs(drawings) do if d and d.Remove then d:Remove() end end end table.clear(skeletonDrawings) end local function startSkeletonESP() if skeletonConnection then return end skeletonConnection = RunService.RenderStepped:Connect(function() if not skeletonESP then return end clearSkeleton() for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and not isTeammate(plr) and plr.Character then local char = plr.Character local bones = { {"Head","UpperTorso"},{"UpperTorso","LowerTorso"}, {"UpperTorso","LeftUpperArm"},{"LeftUpperArm","LeftLowerArm"},{"LeftLowerArm","LeftHand"}, {"UpperTorso","RightUpperArm"},{"RightUpperArm","RightLowerArm"},{"RightLowerArm","RightHand"}, {"LowerTorso","LeftUpperLeg"},{"LeftUpperLeg","LeftLowerLeg"},{"LeftLowerLeg","LeftFoot"}, {"LowerTorso","RightUpperLeg"},{"RightUpperLeg","RightLowerLeg"},{"RightLowerLeg","RightFoot"} } if not char:FindFirstChild("UpperTorso") then bones = {{"Head","Torso"},{"Torso","Left Arm"},{"Torso","Right Arm"},{"Torso","Left Leg"},{"Torso","Right Leg"}} end local drawings = {} for _, pair in pairs(bones) do local p1 = char:FindFirstChild(pair[1]) local p2 = char:FindFirstChild(pair[2]) if p1 and p2 then local pos1, on1 = Camera:WorldToViewportPoint(p1.Position) local pos2, on2 = Camera:WorldToViewportPoint(p2.Position) if on1 or on2 then local line = Drawing.new("Line") line.From = Vector2.new(pos1.X, pos1.Y) line.To = Vector2.new(pos2.X, pos2.Y) line.Color = Color3.fromRGB(255, 50, 50) line.Thickness = 1.5 line.Visible = true table.insert(drawings, line) end end end skeletonDrawings[plr] = drawings end end end) end local function stopSkeletonESP() if skeletonConnection then skeletonConnection:Disconnect() skeletonConnection = nil end clearSkeleton() end local function clearNameHealth() for _, bb in pairs(nameHealthBillboards) do if bb then bb:Destroy() end end table.clear(nameHealthBillboards) end local function startNameGlitch() if nameGlitchConnection then return end local char = getChar() if not char then return end local head = char:FindFirstChild("Head") if not head then return end if nameGlitchBillboard then nameGlitchBillboard:Destroy() end local bb = Instance.new("BillboardGui") bb.Name = "YM_NameGlitch" bb.Adornee = head bb.Size = UDim2.new(0, 260, 0, 40) bb.StudsOffset = Vector3.new(0, 3.3, 0) bb.AlwaysOnTop = true bb.Parent = head local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Font = Enum.Font.GothamBlack label.TextSize = 18 label.TextStrokeTransparency = 0.3 label.Parent = bb nameGlitchBillboard = bb local chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%&*!?" nameGlitchConnection = RunService.Heartbeat:Connect(function() if not nameGlitch or not label or not label.Parent then return end local glitchText = "" for i = 1, 14 do glitchText = glitchText .. string.sub(chars, math.random(1, #chars), math.random(1, #chars)) end label.Text = glitchText label.TextColor3 = Color3.fromHSV((tick() * 3) % 1, 1, 1) end) end local function stopNameGlitch() if nameGlitchConnection then nameGlitchConnection:Disconnect() nameGlitchConnection = nil end if nameGlitchBillboard then nameGlitchBillboard:Destroy() nameGlitchBillboard = nil end end local function startFakeLagTP() if fakeLagTPConnection then return end fakeLagTPConnection = RunService.Heartbeat:Connect(function() if not fakeLagTP then return end local root = getRoot() if root and math.random(1, 8) == 1 then local offset = Vector3.new(math.random(-4, 4), 0, math.random(-4, 4)) root.CFrame = root.CFrame + offset task.wait(0.05) root.CFrame = root.CFrame - offset end end) end local function stopFakeLagTP() if fakeLagTPConnection then fakeLagTPConnection:Disconnect() fakeLagTPConnection = nil end end local function startFakeLagAngles() if fakeLagAnglesConnection then return end fakeLagAnglesConnection = RunService.Heartbeat:Connect(function() if not fakeLagAngles then return end local root = getRoot() if root then root.CFrame = CFrame.new(root.Position) * CFrame.Angles( math.rad(math.random(-60, 60)), math.rad(math.random(0, 360)), math.rad(math.random(-40, 40)) ) end end) end local function stopFakeLagAngles() if fakeLagAnglesConnection then fakeLagAnglesConnection:Disconnect() fakeLagAnglesConnection = nil end end -- ========== ESP BOX RGB + LIGNE CENTRALE + VIE + NOM + DISTANCE ========== local function removeBoxESP(plr) local data = boxESPObjects[plr] if data then for _, obj in pairs(data) do if obj and obj.Remove then pcall(function() obj:Remove() end) end end boxESPObjects[plr] = nil end end local function clearBoxESP() for plr in pairs(boxESPObjects) do removeBoxESP(plr) end end local function startBoxESP() if boxESPConnection then return end boxESPConnection = RunService.RenderStepped:Connect(function() if not boxESP then return end local rgbColor = Color3.fromHSV((tick() * 0.25) % 1, 1, 1) local currentCamera = workspace.CurrentCamera or Camera if not currentCamera then return end Camera = currentCamera local viewport = currentCamera.ViewportSize local screenCenter = Vector2.new(viewport.X / 2, viewport.Y / 2) for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and not isTeammate(plr) and plr.Character then local char = plr.Character local root, head = char:FindFirstChild("HumanoidRootPart"), char:FindFirstChild("Head") local hum = char:FindFirstChildOfClass("Humanoid") if root and head and hum and hum.Health > 0 then local top3, topOn = currentCamera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.35, 0)) local bot3, botOn = currentCamera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0)) if (topOn or botOn) and top3.Z > 0 and bot3.Z > 0 then local h = math.max(12, math.abs(bot3.Y - top3.Y)); local w = math.max(8, h * 0.55) local x, y = top3.X - w/2, top3.Y local d = boxESPObjects[plr] if not d then d = {box=Drawing.new("Square"), line=Drawing.new("Line"), healthBG=Drawing.new("Square"), health=Drawing.new("Square"), name=Drawing.new("Text"), distance=Drawing.new("Text")} d.box.Filled=false; d.box.Thickness=2; d.line.Thickness=1.5; d.healthBG.Filled=true; d.health.Filled=true d.name.Center=true; d.name.Outline=true; d.name.Size=13; d.name.Font=2 d.distance.Center=true; d.distance.Outline=true; d.distance.Size=11; d.distance.Font=2 boxESPObjects[plr]=d end d.box.Position=Vector2.new(x,y); d.box.Size=Vector2.new(w,h) d.box.Color = rgbColor d.box.Visible=true d.line.From=screenCenter; d.line.To=Vector2.new(x+w/2,y+h/2) d.line.Color = rgbColor d.line.Visible = boxESP d.healthBG.Visible=true d.health.Visible=true d.name.Visible=true d.distance.Visible=true local ratio=math.clamp(hum.Health/math.max(hum.MaxHealth,1),0,1); local bx=x+w+4 d.healthBG.Position=Vector2.new(bx,y); d.healthBG.Size=Vector2.new(4,h); d.healthBG.Color=Color3.fromRGB(25,25,25); d.healthBG.Visible=true d.health.Position=Vector2.new(bx,y+h*(1-ratio)); d.health.Size=Vector2.new(4,h*ratio); d.health.Color=Color3.fromHSV(math.clamp(ratio*.33,0,.33),1,1); d.health.Visible=true d.name.Position=Vector2.new(top3.X, y-16); d.name.Text=plr.DisplayName; d.name.Color=rgbColor; d.name.Visible=true local myRoot=getRoot(); local dist=myRoot and (myRoot.Position-root.Position).Magnitude or 0 d.distance.Position=Vector2.new(top3.X, y+h+3); d.distance.Text=string.format("%dm", math.floor(dist+0.5)); d.distance.Color=rgbColor; d.distance.Visible=true else removeBoxESP(plr) end else removeBoxESP(plr) end end end end) end local function stopBoxESP() if boxESPConnection then boxESPConnection:Disconnect(); boxESPConnection=nil end; clearBoxESP() end local function createESP(plr) if plr == player or highlights[plr] or isTeammate(plr) then return end local char = plr.Character if not char then return end local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(180, 0, 0) h.OutlineColor = Color3.fromRGB(255, 40, 40) h.FillTransparency = 0.45 h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop h.Parent = char highlights[plr] = h end local function removeESP(plr) if highlights[plr] then highlights[plr]:Destroy() highlights[plr] = nil end end local function updateESP() for _, plr in pairs(Players:GetPlayers()) do if esp and plr.Character and not isTeammate(plr) then createESP(plr) else removeESP(plr) end end end local function getClosestHead() local closest, shortest = nil, math.huge local currentCamera = workspace.CurrentCamera if not currentCamera then return end local screenCenter = currentCamera.ViewportSize * 0.5 for _, plr in pairs(Players:GetPlayers()) do if plr ~= player and plr.Character then local head = plr.Character:FindFirstChild("Head") local hum = plr.Character:FindFirstChildOfClass("Humanoid") if head and hum and hum.Health > 0 then local pos, onScreen = currentCamera:WorldToViewportPoint(head.Position) if onScreen and pos.Z > 0 then local d = (Vector2.new(pos.X, pos.Y) - screenCenter).Magnitude if d < shortest then shortest = d closest = head end end end end end return closest end local function teleportToPlayer(target) if not target or target == player then return end local myRoot = getRoot() local tr = target.Character and target.Character:FindFirstChild("HumanoidRootPart") if myRoot and tr then myRoot.CFrame = tr.CFrame * CFrame.new(0, 0, 3.5) end end local function spectatePlayer(target) if not target or not target.Character then return end local hum = target.Character:FindFirstChildOfClass("Humanoid") if hum then Camera.CameraSubject = hum end end local function stopSpectate() local hum = getHumanoid() if hum then Camera.CameraSubject = hum end end ------------------------------------------------- -- INTERFACE ------------------------------------------------- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "Core" .. math.random(100000, 999999) ScreenGui.ResetOnSpawn = false ScreenGui.Parent = player:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Size = UDim2.new(0, 310, 0, 520) Main.Position = UDim2.new(0.5, -155, 0.12, 0) Main.BackgroundColor3 = Color3.fromRGB(8, 8, 10) Main.Active = true Main.Draggable = true Main.Parent = ScreenGui Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", Main).Color = Color3.fromRGB(160, 0, 0) -- Fenêtre DEBUG séparée (créée après ScreenGui/Main pour garantir son affichage) local DebugFrame = Instance.new("Frame") DebugFrame.Name = "YM_DEBUG" DebugFrame.Size = UDim2.fromOffset(300, 360) DebugFrame.AnchorPoint = Vector2.new(0, 0.5) DebugFrame.Position = UDim2.new(0.5, 165, 0.5, 0) DebugFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10) DebugFrame.Visible = false DebugFrame.Active = true DebugFrame.Draggable = true DebugFrame.Parent = ScreenGui Instance.new("UICorner", DebugFrame).CornerRadius = UDim.new(0, 10) local debugStroke = Instance.new("UIStroke") debugStroke.Color = Color3.fromRGB(160, 0, 0) debugStroke.Parent = DebugFrame local DebugTitle = Instance.new("TextLabel") DebugTitle.Size = UDim2.new(1, -40, 0, 40) DebugTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0) DebugTitle.Text = "YM TOOL | DEBUG" DebugTitle.TextColor3 = Color3.fromRGB(220, 20, 20) DebugTitle.Font = Enum.Font.GothamBlack DebugTitle.TextSize = 16 DebugTitle.Parent = DebugFrame Instance.new("UICorner", DebugTitle).CornerRadius = UDim.new(0, 10) local DebugClose = Instance.new("TextButton") DebugClose.Size = UDim2.fromOffset(40, 40) DebugClose.Position = UDim2.new(1, -38, 0, 0) DebugClose.BackgroundColor3 = Color3.fromRGB(140, 0, 0) DebugClose.Text = "X" DebugClose.TextColor3 = Color3.fromRGB(255,255,255) DebugClose.Font = Enum.Font.GothamBlack DebugClose.TextSize = 17 DebugClose.Parent = DebugFrame Instance.new("UICorner", DebugClose).CornerRadius = UDim.new(0, 10) DebugClose.MouseButton1Click:Connect(function() DebugFrame.Visible = false debugVisible = false end) DebugFrame.Visible = false DebugFrame.ZIndex = 100 local DebugStatus = Instance.new("TextLabel") DebugStatus.Size = UDim2.new(1, -20, 0, 22) DebugStatus.Position = UDim2.fromOffset(10, 42) DebugStatus.BackgroundTransparency = 1 DebugStatus.Text = "● LIVE DEBUG" DebugStatus.TextColor3 = Color3.fromRGB(0, 255, 100) DebugStatus.Font = Enum.Font.GothamBold DebugStatus.TextSize = 12 DebugStatus.TextXAlignment = Enum.TextXAlignment.Left DebugStatus.Parent = DebugFrame local DebugLabel = Instance.new("TextLabel") DebugLabel.Size = UDim2.new(1, -20, 1, -60) DebugLabel.Position = UDim2.fromOffset(10, 54) DebugLabel.BackgroundTransparency = 1 DebugLabel.TextColor3 = Color3.fromRGB(220,220,220) DebugLabel.Font = Enum.Font.Code DebugLabel.TextSize = 13 DebugLabel.TextXAlignment = Enum.TextXAlignment.Left DebugLabel.TextYAlignment = Enum.TextYAlignment.Top DebugLabel.TextWrapped = false DebugLabel.Text = "FPS : ...\nPing : ...\nPosition : ...\nVelocity : ...\nHumanoid : ...\nCamera FOV : ...\nServer : ...\nClient : LocalScript" DebugLabel.Parent = DebugFrame -- Tous les éléments DEBUG restent au-dessus de la fenêtre DebugTitle.ZIndex = 101 DebugClose.ZIndex = 102 DebugStatus.ZIndex = 101 DebugLabel.ZIndex = 101 task.spawn(function() local last = tick() local frames = 0 local shownFPS = 0 while DebugFrame.Parent do RunService.RenderStepped:Wait() frames += 1 local now = tick() if now - last >= 0.5 then shownFPS = math.floor(frames / (now-last) + 0.5) frames = 0 last = now end if debugVisible then local currentCamera = workspace.CurrentCamera local root = getRoot() local hum = getHumanoid() local pos = root and root.Position or Vector3.zero local vel = root and root.AssemblyLinearVelocity or Vector3.zero local state = hum and hum:GetState().Name or "N/A" local ping = "N/A" pcall(function() local stats = game:GetService("Stats") local network = stats:FindFirstChild("Network") local serverStats = network and network:FindFirstChild("ServerStatsItem") local item = serverStats and serverStats:FindFirstChild("Data Ping") if item then ping = tostring(math.floor(item:GetValue())) .. " ms" end end) DebugLabel.Text = string.format( "FPS : %d\nPing : %s\nPosition : %.1f, %.1f, %.1f\nVelocity : %.1f, %.1f, %.1f\nHumanoid : %s\nCamera FOV : %.1f\nServer : %s\nClient : %s", shownFPS, ping, pos.X, pos.Y, pos.Z, vel.X, vel.Y, vel.Z, state, currentCamera and currentCamera.FieldOfView or 0, game.JobId ~= "" and game.JobId or "N/A", "LocalScript" ) end end end) local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 48) Title.BackgroundColor3 = Color3.fromRGB(18, 0, 0) Title.Text = "YM TOOL | P pour cacher" Title.TextColor3 = Color3.fromRGB(220, 20, 20) Title.Font = Enum.Font.GothamBlack Title.TextSize = 20 Title.Parent = Main Instance.new("UICorner", Title).CornerRadius = UDim.new(0, 10) local Scroll = Instance.new("ScrollingFrame") Scroll.Size = UDim2.new(1, -12, 1, -56) Scroll.Position = UDim2.new(0, 6, 0, 52) Scroll.BackgroundTransparency = 1 Scroll.ScrollBarThickness = 5 Scroll.ScrollBarImageColor3 = Color3.fromRGB(180, 0, 0) Scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y Scroll.Parent = Main local UIList = Instance.new("UIListLayout") UIList.Padding = UDim.new(0, 6) UIList.Parent = Scroll local UIPad = Instance.new("UIPadding") UIPad.PaddingTop = UDim.new(0, 6) UIPad.PaddingBottom = UDim.new(0, 10) UIPad.PaddingLeft = UDim.new(0, 4) UIPad.PaddingRight = UDim.new(0, 4) UIPad.Parent = Scroll local function createToggle(text, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -8, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(25, 8, 8) btn.Text = text .. " | OFF" btn.TextColor3 = Color3.fromRGB(255, 80, 80) btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.Parent = Scroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(90, 0, 0) stroke.Parent = btn local on = false btn.MouseButton1Click:Connect(function() on = not on if on then btn.Text = text .. " | ON" btn.TextColor3 = Color3.fromRGB(0, 255, 100) btn.BackgroundColor3 = Color3.fromRGB(10, 35, 15) stroke.Color = Color3.fromRGB(0, 120, 40) else btn.Text = text .. " | OFF" btn.TextColor3 = Color3.fromRGB(255, 80, 80) btn.BackgroundColor3 = Color3.fromRGB(25, 8, 8) stroke.Color = Color3.fromRGB(90, 0, 0) end callback(on) end) end createToggle("Fly", function(s) if s then startFly() else stopFly() end end) createToggle("Invincible", function(s) godmode = s end) createToggle("Invisible", function(s) invisible = s setInvisible(s) end) createToggle("Noclip", function(s) noclip = s end) createToggle("Skin RGB", function(s) rgb = s if s then startRGB() else stopRGB() end end) createToggle("Glue", function(s) glue = s if s then startGlue() else stopGlue() end end) createToggle("Aimbot", function(s) aimbot = s end) createToggle("AIMSCOPE", function(s) aimScope = s end) createToggle("Crosshair RGB", function(s) crosshairEnabled = s CrosshairDot.Visible = s end) createToggle("Team Check", function(s) teamCheckEnabled = s if s then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and isTeammate(plr) then removeVisibilityESP(plr) end end end end) createToggle("Visibility Check", function(s) visibilityCheckEnabled = s for _, obj in pairs(VisibilityESP) do if obj.highlight then obj.highlight.Enabled = s end end if s then updateVisibilityESP() end end) createToggle("FOV Circle", function(s) fovEnabled = s FOVCircle.Visible = s end) createToggle("ESP Rouge", function(s) esp = s updateESP() end) createToggle("ESP Box RGB + Ligne + Vie", function(s) boxESP=s if s then startBoxESP() else stopBoxESP() end end) createToggle("ESP Squelette", function(s) skeletonESP = s if s then startSkeletonESP() else stopSkeletonESP() end end) createToggle("Pseudo Glitch", function(s) nameGlitch = s if s then startNameGlitch() else stopNameGlitch() end end) createToggle("Toupie", function(s) spinning = s if s then startSpin() else stopSpin() end end) createToggle("Toupie 90°", function(s) spinning90 = s if s then startSpin90() else stopSpin90() end end) createToggle("Move Objects", function(s) moveObjects = s if s then startMoveObjects() else stopMoveObjects() end end) createToggle("Click TP", function(s) clickTP = s if s then startClickTP() else stopClickTP() end end) createToggle("Fake Lag TP", function(s) fakeLagTP = s if s then startFakeLagTP() else stopFakeLagTP() end end) createToggle("Fake Lag Angles", function(s) fakeLagAngles = s if s then startFakeLagAngles() else stopFakeLagAngles() end end) createToggle("Kill Aura", function(s) killAura = s if s then startKillAura() else stopKillAura() end end) createToggle("Bring All", function(s) bringAll = s if s then startBringAll() else stopBringAll() end end) createToggle("Infinite Jump", function(s) infiniteJump = s if s then startInfiniteJump() else stopInfiniteJump() end end) createToggle("No Fall Damage", function(s) noFallDamage = s if s then startNoFallDamage() else stopNoFallDamage() end end) createToggle("Anti-AFK", function(s) antiAFK = s if s then startAntiAFK() else stopAntiAFK() end end) createToggle("Ragdoll", function(s) ragdoll = s if s then startRagdoll() else stopRagdoll() end end) createToggle("Force x1000", function(s) superForce = s local char = getChar() if char then setupSuperForce(char) end end) local function createBigBtn(text, color, callback) local b = Instance.new("TextButton") b.Size = UDim2.new(1, -8, 0, 34) b.BackgroundColor3 = color b.Text = text b.TextColor3 = Color3.fromRGB(255, 220, 220) b.Font = Enum.Font.GothamBold b.TextSize = 13 b.Parent = Scroll Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) b.MouseButton1Click:Connect(callback) end -- Fenêtres Liste / TP / Spectate local ListFrame = Instance.new("Frame") ListFrame.Size = UDim2.new(0, 300, 0, 380) ListFrame.Position = UDim2.new(0.5, -460, 0.2, 0) ListFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10) ListFrame.Visible = false ListFrame.Active = true ListFrame.Draggable = true ListFrame.Parent = ScreenGui Instance.new("UICorner", ListFrame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", ListFrame).Color = Color3.fromRGB(160, 0, 0) local ListTitle = Instance.new("TextLabel") ListTitle.Size = UDim2.new(1, -40, 0, 40) ListTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0) ListTitle.Text = "YM TOOL | JOUEURS" ListTitle.TextColor3 = Color3.fromRGB(220, 20, 20) ListTitle.Font = Enum.Font.GothamBlack ListTitle.TextSize = 15 ListTitle.Parent = ListFrame Instance.new("UICorner", ListTitle).CornerRadius = UDim.new(0, 10) local CloseList = Instance.new("TextButton") CloseList.Size = UDim2.new(0, 40, 0, 40) CloseList.Position = UDim2.new(1, -40, 0, 0) CloseList.BackgroundColor3 = Color3.fromRGB(140, 0, 0) CloseList.Text = "X" CloseList.TextColor3 = Color3.fromRGB(255, 255, 255) CloseList.Font = Enum.Font.GothamBlack CloseList.TextSize = 18 CloseList.Parent = ListFrame Instance.new("UICorner", CloseList).CornerRadius = UDim.new(0, 10) CloseList.MouseButton1Click:Connect(function() ListFrame.Visible = false end) local RefreshList = Instance.new("TextButton") RefreshList.Size = UDim2.new(0.9, 0, 0, 28) RefreshList.Position = UDim2.new(0.05, 0, 0, 48) RefreshList.BackgroundColor3 = Color3.fromRGB(90, 0, 0) RefreshList.Text = "🔄 Actualiser" RefreshList.TextColor3 = Color3.fromRGB(255, 220, 220) RefreshList.Font = Enum.Font.GothamBold RefreshList.TextSize = 13 RefreshList.Parent = ListFrame Instance.new("UICorner", RefreshList).CornerRadius = UDim.new(0, 5) local ListScroll = Instance.new("ScrollingFrame") ListScroll.Size = UDim2.new(0.9, 0, 0, 290) ListScroll.Position = UDim2.new(0.05, 0, 0, 85) ListScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5) ListScroll.ScrollBarThickness = 5 ListScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y ListScroll.Parent = ListFrame Instance.new("UICorner", ListScroll).CornerRadius = UDim.new(0, 6) Instance.new("UIListLayout", ListScroll).Padding = UDim.new(0, 5) local function refreshPlayerList() for _, c in pairs(ListScroll:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end for _, plr in ipairs(Players:GetPlayers()) do local row = Instance.new("Frame") row.Size = UDim2.new(1, -8, 0, 48) row.BackgroundColor3 = Color3.fromRGB(25, 8, 8) row.Parent = ListScroll Instance.new("UICorner", row).CornerRadius = UDim.new(0, 5) local nameL = Instance.new("TextLabel") nameL.Size = UDim2.new(1, -10, 0, 22) nameL.Position = UDim2.new(0, 6, 0, 3) nameL.BackgroundTransparency = 1 nameL.Text = plr.DisplayName .. " (@" .. plr.Name .. ")" nameL.TextColor3 = Color3.fromRGB(255, 200, 200) nameL.Font = Enum.Font.GothamBold nameL.TextSize = 13 nameL.TextXAlignment = Enum.TextXAlignment.Left nameL.Parent = row local infoL = Instance.new("TextLabel") infoL.Size = UDim2.new(1, -10, 0, 18) infoL.Position = UDim2.new(0, 6, 0, 26) infoL.BackgroundTransparency = 1 infoL.Text = "ID: " .. plr.UserId .. " | Âge: " .. plr.AccountAge .. "j" infoL.TextColor3 = Color3.fromRGB(180, 120, 120) infoL.Font = Enum.Font.Gotham infoL.TextSize = 12 infoL.TextXAlignment = Enum.TextXAlignment.Left infoL.Parent = row end end RefreshList.MouseButton1Click:Connect(refreshPlayerList) local TPFrame = Instance.new("Frame") TPFrame.Size = UDim2.new(0, 280, 0, 360) TPFrame.Position = UDim2.new(0.5, 170, 0.2, 0) TPFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10) TPFrame.Visible = false TPFrame.Active = true TPFrame.Draggable = true TPFrame.Parent = ScreenGui Instance.new("UICorner", TPFrame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", TPFrame).Color = Color3.fromRGB(160, 0, 0) local TPTitle = Instance.new("TextLabel") TPTitle.Size = UDim2.new(1, -40, 0, 40) TPTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0) TPTitle.Text = "YM TOOL | TP" TPTitle.TextColor3 = Color3.fromRGB(220, 20, 20) TPTitle.Font = Enum.Font.GothamBlack TPTitle.TextSize = 15 TPTitle.Parent = TPFrame Instance.new("UICorner", TPTitle).CornerRadius = UDim.new(0, 10) local CloseTP = Instance.new("TextButton") CloseTP.Size = UDim2.new(0, 40, 0, 40) CloseTP.Position = UDim2.new(1, -40, 0, 0) CloseTP.BackgroundColor3 = Color3.fromRGB(140, 0, 0) CloseTP.Text = "X" CloseTP.TextColor3 = Color3.fromRGB(255, 255, 255) CloseTP.Font = Enum.Font.GothamBlack CloseTP.TextSize = 18 CloseTP.Parent = TPFrame Instance.new("UICorner", CloseTP).CornerRadius = UDim.new(0, 10) CloseTP.MouseButton1Click:Connect(function() TPFrame.Visible = false end) local RefreshTP = Instance.new("TextButton") RefreshTP.Size = UDim2.new(0.9, 0, 0, 28) RefreshTP.Position = UDim2.new(0.05, 0, 0, 48) RefreshTP.BackgroundColor3 = Color3.fromRGB(90, 0, 0) RefreshTP.Text = "🔄 Actualiser" RefreshTP.TextColor3 = Color3.fromRGB(255, 220, 220) RefreshTP.Font = Enum.Font.GothamBold RefreshTP.TextSize = 13 RefreshTP.Parent = TPFrame Instance.new("UICorner", RefreshTP).CornerRadius = UDim.new(0, 5) local TPScroll = Instance.new("ScrollingFrame") TPScroll.Size = UDim2.new(0.9, 0, 0, 270) TPScroll.Position = UDim2.new(0.05, 0, 0, 85) TPScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5) TPScroll.ScrollBarThickness = 5 TPScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y TPScroll.Parent = TPFrame Instance.new("UICorner", TPScroll).CornerRadius = UDim.new(0, 6) Instance.new("UIListLayout", TPScroll).Padding = UDim.new(0, 4) local function refreshTPList() for _, c in pairs(TPScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -8, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(30, 8, 8) btn.Text = plr.DisplayName .. " (@" .. plr.Name .. ")" btn.TextColor3 = Color3.fromRGB(255, 200, 200) btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.Parent = TPScroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5) btn.MouseButton1Click:Connect(function() teleportToPlayer(plr) end) end end end RefreshTP.MouseButton1Click:Connect(refreshTPList) local SpecFrame = Instance.new("Frame") SpecFrame.Size = UDim2.new(0, 280, 0, 400) SpecFrame.Position = UDim2.new(0.5, 170, 0.18, 0) SpecFrame.BackgroundColor3 = Color3.fromRGB(8, 8, 10) SpecFrame.Visible = false SpecFrame.Active = true SpecFrame.Draggable = true SpecFrame.Parent = ScreenGui Instance.new("UICorner", SpecFrame).CornerRadius = UDim.new(0, 10) Instance.new("UIStroke", SpecFrame).Color = Color3.fromRGB(160, 0, 0) local SpecTitle = Instance.new("TextLabel") SpecTitle.Size = UDim2.new(1, -40, 0, 40) SpecTitle.BackgroundColor3 = Color3.fromRGB(18, 0, 0) SpecTitle.Text = "YM TOOL | SPECTATE" SpecTitle.TextColor3 = Color3.fromRGB(220, 20, 20) SpecTitle.Font = Enum.Font.GothamBlack SpecTitle.TextSize = 15 SpecTitle.Parent = SpecFrame Instance.new("UICorner", SpecTitle).CornerRadius = UDim.new(0, 10) local CloseSpec = Instance.new("TextButton") CloseSpec.Size = UDim2.new(0, 40, 0, 40) CloseSpec.Position = UDim2.new(1, -40, 0, 0) CloseSpec.BackgroundColor3 = Color3.fromRGB(140, 0, 0) CloseSpec.Text = "X" CloseSpec.TextColor3 = Color3.fromRGB(255, 255, 255) CloseSpec.Font = Enum.Font.GothamBlack CloseSpec.TextSize = 18 CloseSpec.Parent = SpecFrame Instance.new("UICorner", CloseSpec).CornerRadius = UDim.new(0, 10) CloseSpec.MouseButton1Click:Connect(function() SpecFrame.Visible = false end) local StopSpecBtn = Instance.new("TextButton") StopSpecBtn.Size = UDim2.new(0.9, 0, 0, 32) StopSpecBtn.Position = UDim2.new(0.05, 0, 0, 48) StopSpecBtn.BackgroundColor3 = Color3.fromRGB(160, 40, 40) StopSpecBtn.Text = "⏹ ARRÊTER SPECTATE" StopSpecBtn.TextColor3 = Color3.fromRGB(255, 255, 255) StopSpecBtn.Font = Enum.Font.GothamBold StopSpecBtn.TextSize = 13 StopSpecBtn.Parent = SpecFrame Instance.new("UICorner", StopSpecBtn).CornerRadius = UDim.new(0, 6) StopSpecBtn.MouseButton1Click:Connect(stopSpectate) local RefreshSpec = Instance.new("TextButton") RefreshSpec.Size = UDim2.new(0.9, 0, 0, 28) RefreshSpec.Position = UDim2.new(0.05, 0, 0, 88) RefreshSpec.BackgroundColor3 = Color3.fromRGB(90, 0, 0) RefreshSpec.Text = "🔄 Actualiser" RefreshSpec.TextColor3 = Color3.fromRGB(255, 220, 220) RefreshSpec.Font = Enum.Font.GothamBold RefreshSpec.TextSize = 13 RefreshSpec.Parent = SpecFrame Instance.new("UICorner", RefreshSpec).CornerRadius = UDim.new(0, 5) local SpecScroll = Instance.new("ScrollingFrame") SpecScroll.Size = UDim2.new(0.9, 0, 0, 265) SpecScroll.Position = UDim2.new(0.05, 0, 0, 125) SpecScroll.BackgroundColor3 = Color3.fromRGB(15, 5, 5) SpecScroll.ScrollBarThickness = 5 SpecScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y SpecScroll.Parent = SpecFrame Instance.new("UICorner", SpecScroll).CornerRadius = UDim.new(0, 6) Instance.new("UIListLayout", SpecScroll).Padding = UDim.new(0, 4) local function refreshSpecList() for _, c in pairs(SpecScroll:GetChildren()) do if c:IsA("TextButton") then c:Destroy() end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -8, 0, 32) btn.BackgroundColor3 = Color3.fromRGB(30, 8, 8) btn.Text = plr.DisplayName .. " (@" .. plr.Name .. ")" btn.TextColor3 = Color3.fromRGB(255, 200, 200) btn.Font = Enum.Font.GothamBold btn.TextSize = 13 btn.Parent = SpecScroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 5) btn.MouseButton1Click:Connect(function() spectatePlayer(plr) end) end end end RefreshSpec.MouseButton1Click:Connect(refreshSpecList) createBigBtn("📋 LISTE DES JOUEURS", Color3.fromRGB(90, 0, 0), function() ListFrame.Visible = not ListFrame.Visible if ListFrame.Visible then refreshPlayerList() end end) createBigBtn("📍 TP SUR UN JOUEUR", Color3.fromRGB(110, 0, 0), function() TPFrame.Visible = not TPFrame.Visible if TPFrame.Visible then refreshTPList() end end) createBigBtn("👁 SPECTATE JOUEUR", Color3.fromRGB(80, 20, 120), function() SpecFrame.Visible = not SpecFrame.Visible if SpecFrame.Visible then refreshSpecList() end end) createBigBtn("🛠 DEBUG", Color3.fromRGB(90, 0, 0), function() DebugFrame.Visible = not DebugFrame.Visible debugVisible = DebugFrame.Visible end) local function createSpeed(label, default, cb) local f = Instance.new("Frame") f.Size = UDim2.new(1, -8, 0, 48) f.BackgroundTransparency = 1 f.Parent = Scroll local l = Instance.new("TextLabel") l.Size = UDim2.new(1, 0, 0, 16) l.BackgroundTransparency = 1 l.Text = label l.TextColor3 = Color3.fromRGB(200, 160, 160) l.Font = Enum.Font.Gotham l.TextSize = 12 l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = f local box = Instance.new("TextBox") box.Size = UDim2.new(0.55, 0, 0, 26) box.Position = UDim2.new(0, 0, 0, 18) box.BackgroundColor3 = Color3.fromRGB(20, 5, 5) box.Text = tostring(default) box.TextColor3 = Color3.fromRGB(255, 200, 200) box.Font = Enum.Font.GothamBold box.TextSize = 13 box.Parent = f Instance.new("UICorner", box).CornerRadius = UDim.new(0, 5) local ok = Instance.new("TextButton") ok.Size = UDim2.new(0.35, 0, 0, 26) ok.Position = UDim2.new(0.6, 0, 0, 18) ok.BackgroundColor3 = Color3.fromRGB(140, 0, 0) ok.Text = "OK" ok.TextColor3 = Color3.fromRGB(255, 255, 255) ok.Font = Enum.Font.GothamBold ok.TextSize = 12 ok.Parent = f Instance.new("UICorner", ok).CornerRadius = UDim.new(0, 5) ok.MouseButton1Click:Connect(function() local v = tonumber(box.Text) if v then cb(v) end end) end createSpeed("Taille Crosshair", 5, function(v) CrosshairDot.Size = UDim2.fromOffset(math.clamp(math.floor(v), 1, 30), math.clamp(math.floor(v), 1, 30)) end) createSpeed("Rayon FOV", 150, function(v) fovRadius = math.clamp(math.floor(v), 20, 600) end) createSpeed("Vitesse de marche", 16, setWalkSpeed) createSpeed("Vitesse de vol", 50, function(v) flySpeed = v end) createSpeed("Vitesse Toupie", 50, function(v) spinSpeed = v end) createSpeed("Vitesse Toupie 90°", 5000, function(v) spinSpeed90 = v end) createSpeed("Force Power (x1000)", 2800, function(v) forcePower = v end) createSpeed("Force de saut", 50, function(v) jumpPower = math.max(0, v) end) createSpeed("FPS COUNTER (0 = débride les FPS)", 0, function(v) fpsCap = math.max(0, math.floor(v)) applyFPSCap() end) local disc = Instance.new("TextButton") disc.Size = UDim2.new(1, -8, 0, 30) disc.BackgroundColor3 = Color3.fromRGB(60, 20, 100) disc.Text = "Discord : discord.gg/cKPHdt99WG" disc.TextColor3 = Color3.fromRGB(200, 180, 255) disc.Font = Enum.Font.GothamBold disc.TextSize = 12 disc.Parent = Scroll Instance.new("UICorner", disc).CornerRadius = UDim.new(0, 6) disc.MouseButton1Click:Connect(function() if setclipboard then setclipboard("https://discord.gg/cKPHdt99WG") disc.Text = "✅ Lien copié !" task.wait(1.5) disc.Text = "Discord : discord.gg/cKPHdt99WG" end end) UserInputService.InputBegan:Connect(function(i, g) if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = true end if g then return end if i.KeyCode == Enum.KeyCode.P then guiVisible = not guiVisible Main.Visible = guiVisible end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false end end) RunService:BindToRenderStep("YM_Aimbot", Enum.RenderPriority.Camera.Value + 1, function() local currentCamera = workspace.CurrentCamera if currentCamera then Camera = currentCamera end if (aimbot or (aimScope and aiming)) and currentCamera then local h = getClosestHead() if h then local cameraPos = currentCamera.CFrame.Position currentCamera.CFrame = CFrame.lookAt(cameraPos, h.Position) local root = getRoot() local flatTarget = Vector3.new(h.Position.X, root and root.Position.Y or cameraPos.Y, h.Position.Z) if root and (flatTarget - root.Position).Magnitude > 0.01 then root.CFrame = CFrame.lookAt(root.Position, flatTarget) end end end end) RunService.RenderStepped:Connect(function() if flying and bodyVelocity and bodyGyro then local m = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then m += Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then m -= Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then m -= Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then m += Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then m += Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then m -= Vector3.new(0, 1, 0) end bodyVelocity.Velocity = m.Magnitude > 0 and m.Unit * flySpeed or Vector3.zero bodyGyro.CFrame = Camera.CFrame end end) RunService.Heartbeat:Connect(function() local hum, char = getHumanoid(), getChar() if not hum or not char then return end -- Ne pas casser le sprint natif du jeu : si le jeu augmente la vitesse -- au-dessus de notre vitesse de base, on la laisse active. Quand le sprint -- s'arrête et que la vitesse revient à la normale, on reprend walkSpeed. if hum.WalkSpeed > walkSpeed then gameSprintSpeed = hum.WalkSpeed elseif hum.WalkSpeed < walkSpeed then gameSprintSpeed = nil hum.WalkSpeed = walkSpeed end -- Si un script du jeu a changé la vitesse pendant le sprint, on ne la force pas. if gameSprintSpeed and hum.WalkSpeed >= gameSprintSpeed then gameSprintSpeed = hum.WalkSpeed end if hum.UseJumpPower then if hum.JumpPower ~= jumpPower then hum.JumpPower = jumpPower end else if hum.JumpHeight ~= jumpPower / 7 then hum.JumpHeight = jumpPower / 7 end end if godmode then hum.MaxHealth = math.huge hum.Health = math.huge end if noclip then for _, p in pairs(char:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(1) if esp then createESP(plr) end end) end) Players.PlayerRemoving:Connect(function(plr) removeESP(plr) if skeletonDrawings[plr] then for _, d in pairs(skeletonDrawings[plr]) do if d.Remove then d:Remove() end end skeletonDrawings[plr] = nil end end) for _, plr in pairs(Players:GetPlayers()) do plr.CharacterAdded:Connect(function() task.wait(1) if esp then createESP(plr) end end) end player.CharacterAdded:Connect(function(char) task.wait(0.8) protect() setWalkSpeed(walkSpeed) setupSuperForce(char) if godmode then local h = char:WaitForChild("Humanoid") h.MaxHealth = math.huge h.Health = math.huge end if invisible then task.wait(0.3) setInvisible(true) end if rgb then startRGB() end if flying then stopFly() task.wait(0.3) startFly() end if spinning90 then stopSpin90() task.wait(0.3) startSpin90() end if ragdoll then stopRagdoll() task.wait(0.5) startRagdoll() end if nameGlitch then stopNameGlitch() task.wait(0.5) startNameGlitch() end end) if player.Character then setupSuperForce(player.Character) end print("✅ YM TOOL PC complet + Anti-Detection") end PassBtn.MouseButton1Click:Connect(function() if PassBox.Text == correctPassword then loadMainScript() else ErrorLabel.Text = "Mot de passe incorrect !" PassBox.Text = "" task.wait(1.5) ErrorLabel.Text = "" end end) PassBox.FocusLost:Connect(function(enter) if enter then if PassBox.Text == correctPassword then loadMainScript() else ErrorLabel.Text = "Mot de passe incorrect !" PassBox.Text = "" task.wait(1.5) ErrorLabel.Text = "" end end end) -- FREE CURSOR : touche * local UserInputService = game:GetService("UserInputService") local freeCursor = false local function setFreeCursor(state) freeCursor = state UserInputService.MouseBehavior = state and Enum.MouseBehavior.Default or Enum.MouseBehavior.LockCenter UserInputService.MouseIconEnabled = state end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.KeypadMultiply then setFreeCursor(not freeCursor) end end)