
KeylessUniversal

--// SETTINGS
local NORMAL_SPEED = 7
local BLOCK_SPEED = 0.1
local ANIM_ID = "rbxassetid://139933859877956"
--// REFERENCES
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
--// CLEANUP
if playerGui:FindFirstChild("BlockButtonUI") then
playerGui.BlockButtonUI:Destroy()
end
--// GUI
local gui = Instance.new("ScreenGui")
gui.Name = "BlockButtonUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 120, 0, 60)
button.Position = UDim2.new(0, 100, 0, 200)
button.Text = "BLOCK"
button.TextScaled = true
button.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
button.TextColor3 = Color3.new(1,1,1)
button.Parent = gui
Instance.new("UICorner", button)
--// DRAG
local dragging = false
local dragStart, startPos
button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = button.Position
end
end)
button.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
button.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
--// CHARACTER
local humanoid, animator
local function setupCharacter(char)
humanoid = char:WaitForChild("Humanoid")
-- ensure Animator exists
animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then
animator = Instance.new("Animator")
animator.Parent = humanoid
end
humanoid.WalkSpeed = NORMAL_SPEED
end
if player.Character then
setupCharacter(player.Character)
end
player.CharacterAdded:Connect(setupCharacter)
--// BLOCK
local busy = false
button.MouseButton1Click:Connect(function()
if not humanoid or not animator or busy then return end
busy = true
humanoid.WalkSpeed = BLOCK_SPEED
local anim = Instance.new("Animation")
anim.AnimationId = ANIM_ID
local track = animator:LoadAnimation(anim)
track.Priority = Enum.AnimationPriority.Action
track.Looped = false
track:Play()
-- failsafe (some executors don't fire Stopped properly)
task.delay(track.Length > 0 and track.Length or 1.5, function()
if humanoid then
humanoid.WalkSpeed = NORMAL_SPEED
end
busy = false
end)
end)No comments yet for this script.

![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)

