
Keyless

-- 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()No comments yet for this script.