
KeylessUniversal

-- LocalScript (StarterPlayerScripts)
local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
-- configurações de "descongelamento" padrão (ajuste se quiser)
local DEFAULT_WALKSPEED = 16
local DEFAULT_JUMPPOWER = 50
local function blockControls()
-- impede inputs de movimento e pulo
ContextActionService:BindAction("FreezeControls", function()
return Enum.ContextActionResult.Sink
end, false,
Enum.PlayerActions.CharacterForward,
Enum.PlayerActions.CharacterBackward,
Enum.PlayerActions.CharacterLeft,
Enum.PlayerActions.CharacterRight,
Enum.PlayerActions.Jump)
end
local function unblockControls()
pcall(function() ContextActionService:UnbindAction("FreezeControls") end)
end
local function freezeCharacter(char)
local humanoid = char and char:FindFirstChildOfClass("Humanoid")
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if humanoid then
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
humanoid.PlatformStand = true -- evita animações físicas de movimento
end
if hrp then
hrp.Velocity = Vector3.new(0,0,0)
hrp.RotVelocity = Vector3.new(0,0,0)
end
blockControls()
end
local function unfreezeCharacter(char)
local humanoid = char and char:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = DEFAULT_WALKSPEED
humanoid.JumpPower = DEFAULT_JUMPPOWER
humanoid.PlatformStand = false
end
unblockControls()
end
player.CharacterAdded:Connect(function(char)
-- espera humanoid para configurar
local humanoid = char:WaitForChild("Humanoid", 5)
if humanoid then
freezeCharacter(char)
-- se quiser descongelar automaticamente depois de X segundos, usa um delay aqui
-- delay(5, function() unfreezeCharacter(char) end)
end
end)
-- se já tiver personagem ao executar
if player.Character then
freezeCharacter(player.Character)
endNo comments yet for this script.



