
Key RequiredUniversal

local player = game.Players.LocalPlayer
local camera = workspace.CurrentCamera
local runService = game:GetService("RunService")
local cameraFrozen = false
local lastCameraCFrame = camera.CFrame
local dragged = false -- Variable para saber si fue arrastrado
-- Crear la interfaz y asegurarse de que persista después de la muerte
local screenGui = Instance.new("ScreenGui")
screenGui.ResetOnSpawn = false -- Esto asegura que no se reinicie la interfaz
screenGui.Parent = player:WaitForChild("PlayerGui")
-- Crear el botón "Stop Camera"
local stopButton = Instance.new("TextButton")
stopButton.Size = UDim2.new(0, 60, 0, 25) -- Tamaño reducido del botón
stopButton.Position = UDim2.new(0.5, -30, 0.5, -12.5) -- Centrado en la pantalla
stopButton.Text = "Stop Camera"
stopButton.BackgroundColor3 = Color3.new(1, 0, 0)
stopButton.TextColor3 = Color3.new(1, 1, 1)
stopButton.BackgroundTransparency = 0.48 -- 48% transparente
stopButton.Parent = screenGui
-- Crear el pequeño botón de borrar en la esquina superior derecha del botón "Stop Camera"
local deleteButton = Instance.new("TextButton")
deleteButton.Size = UDim2.new(0, 15, 0, 15) -- Tamaño pequeño del botón de borrar
deleteButton.Position = UDim2.new(1, -15, 0, 0) -- Colocarlo en la esquina superior derecha
deleteButton.Text = "X"
deleteButton.BackgroundColor3 = Color3.new(0.8, 0, 0)
deleteButton.TextColor3 = Color3.new(1, 1, 1)
deleteButton.BackgroundTransparency = 0.48 -- 48% transparente
deleteButton.Parent = stopButton
-- Función para fijar la cámara y cambiar el texto del botón
local function freezeCamera()
if not dragged then -- Solo ejecuta si no fue arrastrado
cameraFrozen = not cameraFrozen
if cameraFrozen then
lastCameraCFrame = camera.CFrame
stopButton.Text = "Don't Stop" -- Cambiar el texto cuando la cámara se congela
else
stopButton.Text = "Stop Camera" -- Cambiar de nuevo cuando la cámara se descongela
end
end
dragged = false -- Reiniciar el estado de arrastre
end
-- Función para eliminar el botón "Stop Camera" al presionar el botón de borrar
deleteButton.MouseButton1Click:Connect(function()
stopButton:Destroy()
end)
-- Actualizar la cámara cada frame
runService.RenderStepped:Connect(function()
if cameraFrozen then
camera.CFrame = lastCameraCFrame
end
end)
-- Funcionalidad para arrastrar el botón
local UIS = game:GetService("UserInputService")
local dragging = false
local dragInput, dragStart, startPos
-- Comienza a arrastrar el botón al presionar
stopButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = stopButton.Position
dragged = false -- Reiniciar el estado de arrastre
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
-- Detecta el movimiento mientras arrastras
stopButton.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
-- Movimiento del botón mientras se arrastra
UIS.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
stopButton.Position = UDim2.new(
startPos.X.Scale, startPos.X.Offset + delta.X,
startPos.Y.Scale, startPos.Y.Offset + delta.Y
)
dragged = true -- Marcar como arrastrado
end
end)
-- Conectar el evento del botón para congelar la cámara
stopButton.MouseButton1Click:Connect(freezeCamera)No comments yet for this script.



