-- Carrega a biblioteca Rayfield UI local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Ear Game (V15 - Fuga a Laser)", LoadingTitle = "Injetando Sensores...", LoadingSubtitle = "Por Delta/Rayfield", ConfigurationSaving = { Enabled = false }, Discord = { Enabled = false }, KeySystem = false, }) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer -- ========================================== -- VARIÁVEIS GERAIS -- ========================================== local VisionLinesEnabled = false local MobileSprintToggle = false local wasMobileSprinting = false local SprintSpeedValue = 35 local AntiSlipEnabled = false local NoKnockbackEnabled = false local AutoFleeEnabled = false local IsAutoFleeing = false local SelectedColor = Color3.fromRGB(255, 0, 0) -- ========================================== -- FUNÇÃO PARA ACHAR MONSTROS -- ========================================== local function GetMonsters() local monsters = {} for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("Model") and obj:FindFirstChild("Humanoid") and obj:FindFirstChild("HumanoidRootPart") then if not Players:GetPlayerFromCharacter(obj) then table.insert(monsters, obj) end end end return monsters end -- ========================================== -- ABA 1: AUTO FUGA (IA COM LASER) -- ========================================== local TabFuga = Window:CreateTab("Auto Fuga", 4483362458) TabFuga:CreateToggle({ Name = "Auto Fugir (Sensor a Laser Antiburra)", CurrentValue = false, Flag = "AutoFleeToggle", Callback = function(Value) AutoFleeEnabled = Value if not Value and IsAutoFleeing then IsAutoFleeing = false if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then LocalPlayer.Character.Humanoid:MoveTo(LocalPlayer.Character.HumanoidRootPart.Position) end end end, }) -- SISTEMA DE FUGA A LASER (RAYCASTING) task.spawn(function() while task.wait(0.1) do -- Roda muito rápido para não bater na parede if AutoFleeEnabled then local char = LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChild("Humanoid") if hrp and hum and hum.Health > 0 then local closestDist = math.huge local closestMonster = nil for _, monster in pairs(GetMonsters()) do local mHrp = monster:FindFirstChild("HumanoidRootPart") if mHrp then local dist = (hrp.Position - mHrp.Position).Magnitude if dist < closestDist then closestDist = dist closestMonster = monster end end end -- ZONA DE PERIGO (O Bicho ta a menos de 75 blocos) if closestMonster and closestDist < 75 then IsAutoFleeing = true local mHrp = closestMonster:FindFirstChild("HumanoidRootPart") -- Calcula a direção oposta exata local dirAway = (hrp.Position - mHrp.Position).Unit dirAway = Vector3.new(dirAway.X, 0, dirAway.Z).Unit -- Prepara os lasers invisíveis para ignorar você e o monstro local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {char, closestMonster} rayParams.FilterType = Enum.RaycastFilterType.Exclude -- As 5 direções de fuga que ele vai tentar local dirs = { dirAway, -- Reto pra trás (CFrame.new(Vector3.zero, dirAway) * CFrame.Angles(0, math.rad(45), 0)).LookVector, -- Diagonal Direita (CFrame.new(Vector3.zero, dirAway) * CFrame.Angles(0, math.rad(-45), 0)).LookVector, -- Diagonal Esquerda (CFrame.new(Vector3.zero, dirAway) * CFrame.Angles(0, math.rad(90), 0)).LookVector, -- 100% Direita (CFrame.new(Vector3.zero, dirAway) * CFrame.Angles(0, math.rad(-90), 0)).LookVector -- 100% Esquerda } local bestDir = dirAway local maxLivre = -1 -- Dispara os 5 lasers para ver qual corredor está livre for _, dir in ipairs(dirs) do local result = workspace:Raycast(hrp.Position, dir * 30, rayParams) local distLivre = result and (result.Position - hrp.Position).Magnitude or 30 if distLivre > maxLivre then maxLivre = distLivre bestDir = dir end end -- Se a parede mais longe estiver a menos de 4 blocos, PULA! if maxLivre < 4 then hum.Jump = true end -- Corre na direção do melhor corredor (10 blocos pra frente) hum:MoveTo(hrp.Position + bestDir * 10) elseif IsAutoFleeing then -- Bicho perdeu o interesse IsAutoFleeing = false hum:MoveTo(hrp.Position) end end end end end) -- ========================================== -- ABA 2: MEU JOGADOR E TROLLAGENS DE COR -- ========================================== local TabPlayer = Window:CreateTab("Meu Jogador", 4483362458) TabPlayer:CreateToggle({ Name = "Ligar Super Sprint (Celular FE)", CurrentValue = false, Flag = "MobileSprintToggle", Callback = function(Value) MobileSprintToggle = Value end, }) TabPlayer:CreateSlider({ Name = "Velocidade do Sprint", Range = {16, 120}, Increment = 1, Suffix = " Speed", CurrentValue = 35, Flag = "SpeedSlider", Callback = function(Value) SprintSpeedValue = Value end }) TabPlayer:CreateToggle({ Name = "Anti-Derrapar (Curvas Perfeitas)", CurrentValue = false, Flag = "AntiSlipToggle", Callback = function(Value) AntiSlipEnabled = Value end }) TabPlayer:CreateToggle({ Name = "Anti-Empurrão (Bloqueia Física)", CurrentValue = false, Flag = "AntiKnockbackToggle", Callback = function(Value) NoKnockbackEnabled = Value end }) TabPlayer:CreateLabel("Hacks de Cor do Servidor:") TabPlayer:CreateColorPicker({ Name = "Cor Desejada", Color = Color3.fromRGB(255, 0, 0), Flag = "RealColorPicker", Callback = function(Value) SelectedColor = Value end }) TabPlayer:CreateButton({ Name = "FORÇAR COR NO SERVIDOR", Callback = function() local achouRemote = false for _, obj in pairs(game:GetService("ReplicatedStorage"):GetDescendants()) do if obj:IsA("RemoteEvent") then local nome = string.lower(obj.Name) if nome:match("color") or nome:match("cor") or nome:match("skin") or nome:match("custom") or nome:match("join") then achouRemote = true pcall(function() obj:FireServer(SelectedColor) end) pcall(function() obj:FireServer("Color", SelectedColor) end) end end end if achouRemote then Rayfield:Notify({Title = "Enviado", Content = "Tentativa enviada.", Duration = 4}) else Rayfield:Notify({Title = "Falha", Content = "Remotes não expostos.", Duration = 4}) end end, }) TabPlayer:CreateButton({ Name = "DELETAR SAVE LOCAL (Reroll)", Callback = function() for _, val in pairs(LocalPlayer:GetChildren()) do if val:IsA("ValueBase") and (val.Name:lower():match("first") or val.Name:lower():match("join") or val.Name:lower():match("color")) then val:Destroy() end end Rayfield:Notify({Title = "Info", Content = "Reset tentado. Resete o personagem.", Duration = 4}) end, }) -- ========================================== -- ABA 3: MONSTROS (VISÃO CORRIGIDA) -- ========================================== local TabMonstros = Window:CreateTab("Monstros", 4483362458) TabMonstros:CreateToggle({ Name = "Mostrar Visão dos Monstros", CurrentValue = false, Flag = "VisionToggle", Callback = function(Value) VisionLinesEnabled = Value end, }) task.spawn(function() while task.wait(0.5) do local monsters = GetMonsters() for _, monster in pairs(monsters) do local head = monster:FindFirstChild("Head") or monster:FindFirstChild("HumanoidRootPart") if head then local vp = head:FindFirstChild("VisionLinePart") if VisionLinesEnabled then if not vp then vp = Instance.new("Part") vp.Name = "VisionLinePart" vp.CanCollide, vp.Anchored, vp.Massless, vp.CastShadow = false, false, true, false vp.Material = Enum.Material.ForceField vp.Transparency = 0.6 local mName = string.lower(monster.Name) if mName:match("4") or mName:match("level 4") or mName:match("sensivel") then vp.Size = Vector3.new(45, 2, 85) vp.Color = Color3.fromRGB(255, 50, 50) elseif mName:match("1") or mName:match("level 1") or mName:match("cego") then vp.Size = Vector3.new(35, 2, 25) vp.Color = Color3.fromRGB(255, 150, 0) else vp.Size = Vector3.new(40, 2, 50) vp.Color = Color3.fromRGB(200, 200, 200) end local w = Instance.new("WeldConstraint") w.Part0, w.Part1, w.Parent = head, vp, vp vp.CFrame = head.CFrame * CFrame.new(0, 0, -vp.Size.Z / 2) vp.Parent = head end else if vp then vp:Destroy() end end end end end end) -- ========================================== -- LOOP PRINCIPAL DO JOGADOR -- ========================================== RunService.Stepped:Connect(function() local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChild("Humanoid") local animator = hum and hum:FindFirstChildOfClass("Animator") if hum and hrp then local isMoving = hum.MoveDirection.Magnitude > 0 -- SPRINT DE CELULAR FE if MobileSprintToggle then wasMobileSprinting = true hum.WalkSpeed = SprintSpeedValue if isMoving and animator then local speedRatio = SprintSpeedValue / 16 for _, track in pairs(animator:GetPlayingAnimationTracks()) do if string.lower(track.Name):find("walk") or string.lower(track.Name):find("run") then if math.abs(track.Speed - speedRatio) > 0.1 then track:AdjustSpeed(speedRatio) end end end end else if wasMobileSprinting then wasMobileSprinting = false hum.WalkSpeed = 16 if animator then for _, track in pairs(animator:GetPlayingAnimationTracks()) do if string.lower(track.Name):find("walk") or string.lower(track.Name):find("run") then track:AdjustSpeed(1) end end end end end -- ANTI DERRAPAR (Agora ignora quando está auto fugindo) if AntiSlipEnabled and not IsAutoFleeing then if isMoving then local targetVel = hum.MoveDirection * hum.WalkSpeed hrp.AssemblyLinearVelocity = Vector3.new(targetVel.X, hrp.AssemblyLinearVelocity.Y, targetVel.Z) else hrp.AssemblyLinearVelocity = Vector3.new(0, hrp.AssemblyLinearVelocity.Y, 0) end end -- ANTI EMPURRÃO if NoKnockbackEnabled then hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) hum:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false) for _, v in pairs(hrp:GetChildren()) do if v:IsA("BodyVelocity") or v:IsA("BodyForce") or v:IsA("LinearVelocity") then v:Destroy() end end local vel = hrp.AssemblyLinearVelocity local maxV = hum.WalkSpeed + 25 if math.abs(vel.X) > maxV or math.abs(vel.Z) > maxV then hrp.AssemblyLinearVelocity = Vector3.new(0, vel.Y, 0) end end end end) Rayfield:LoadConfiguration()