
KeylessUniversal

-- LocalScript (StarterPlayerScripts)
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart")
local taunts = {"Is that your best?", "Learn to aim bro..", "Too slow!", "Missed me!"}
local DODGE_FORCE = 80 -- magnitud de la impulsión (ajusta)
local DODGE_TIME = 0.12 -- tiempo que aplicamos la fuerza (segundos)
local COOLDOWN = 0.8
local last = 0
local function applyImpulse(direction)
if tick() - last < COOLDOWN then return end
last = tick()
-- asegurar que direction es unit vector
direction = direction.Unit
-- Crear BodyVelocity para empujar (se quita después)
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)
bv.Velocity = direction * DODGE_FORCE
bv.P = 1250
bv.Parent = hrp
-- Opcional: reproducir animación de roll aquí
-- quitar BodyVelocity después de DODGE_TIME
task.delay(DODGE_TIME, function()
if bv and bv.Parent then bv:Destroy() end
end)
-- mensaje local (si tienes RemoteEvent para server, pide que lo muestre ahí)
local msg = taunts[math.random(1,#taunts)]
-- si existe un RemoteEvent "RequestDodge" en ReplicatedStorage, lo disparamos para que el server lo muestre
local rs = game:GetService("ReplicatedStorage")
local remote = rs:FindFirstChild("RequestDodge")
if remote and remote:IsA("RemoteEvent") then
-- enviamos solo el texto, servidor decide si muestra y cómo
remote:FireServer(msg)
else
-- fallback: mensaje local en consola o en pantalla para test
pcall(function()
game.StarterGui:SetCore("ChatMakeSystemMessage", {
Text = msg;
Color = Color3.fromRGB(255,100,100);
Font = Enum.Font.SourceSansBold;
TextSize = 20;
})
end)
end
end
-- Ejemplo simple de detector (tú puedes reemplazar por tu predictor)
RunService.Heartbeat:Connect(function()
-- ejemplo mínimo: si una parte llamada "HitboxTest" está cerca, dodge
local hb = workspace:FindFirstChild("HitboxTest")
if hb and (hb.Position - hrp.Position).Magnitude < 4 then
-- elegir aleatorio: izquierda/derecha/atrás relativo a HRP
local choices = {
-hrp.CFrame.RightVector,
hrp.CFrame.RightVector,
-hrp.CFrame.LookVector
}
local dir = choices[math.random(1,#choices)]
applyImpulse(dir)
end
end)



Guys just dont try it i just wanted to have saved on some place