Ear script OP
Key Required

Ear script OP

Ear Game (Update)TonicostaTonicosta 2.7K views 1.5K executesUpdated Apr 29, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•319 lines (13594 chars)
-- 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()

Features & Information

-Change color -Super sprint speed - Anti drift - escape automatically (Pathfinding - Vision of the monsters

Community Comments (0)

No comments yet for this script.

More Scripts for Ear Game (Update)