
Loading...
Preview Area
GUI Designer
Designer
Click to Toggle
Script (Mobile Support)
Updated: Mobile & Direction Fix!
Script ini telah diperbaiki agar karakter menghadap ke DEPAN (arah kamera) saat Shift Lock aktif.
Setup Instructions
- Buat ScreenGui di StarterGui (Matikan 'ResetOnSpawn' jika perlu).
- Tambahkan ImageButton (posisi di kanan bawah).
- Paste script di bawah ini ke dalam LocalScript di dalam tombol tersebut.
-- LocalScript (Letakkan di dalam ImageButton)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local button = script.Parent
local uiStroke = button:FindFirstChild("UIStroke")
local isLocked = false
-- Konfigurasi
local COLOR_OFF = Color3.fromRGB(255, 255, 255)
local COLOR_ON = Color3.fromRGB(34, 211, 238) -- Cyan
local function setRotationState(enable)
local char = player.Character
if char and char:FindFirstChild("Humanoid") then
char.Humanoid.AutoRotate = not enable
end
end
local function updateVisuals()
if isLocked then
button.ImageColor3 = COLOR_ON
button.ImageTransparency = 0
button.Rotation = 90
if uiStroke then uiStroke.Color = COLOR_ON end
-- Lock Mouse (PC)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
setRotationState(true)
else
button.ImageColor3 = COLOR_OFF
button.ImageTransparency = 0.3
button.Rotation = 0
if uiStroke then uiStroke.Color = COLOR_OFF end
-- Unlock Mouse
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
setRotationState(false)
end
end
local function toggleLock()
isLocked = not isLocked
updateVisuals()
end
-- Support Touch & Click (Universal)
button.Activated:Connect(toggleLock)
-- Support Keybind "Shift" (PC)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == Enum.KeyCode.LeftShift then
toggleLock()
end
end)
-- Loop Utama: Menjaga state & Rotasi Karakter (PENTING untuk Mobile)
RunService.RenderStepped:Connect(function()
if isLocked then
-- 1. Kunci Mouse (PC)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
-- 2. Putar Karakter mengikuti Kamera (Mobile & PC)
local char = player.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if root then
local cam = workspace.CurrentCamera
local look = cam.CFrame.LookVector
local angle = math.atan2(-look.X, -look.Z)
-- Set Rotasi (Hanya Y-axis)
root.CFrame = CFrame.new(root.Position) * CFrame.Angles(0, angle, 0)
end
end
end)