shared.InvisToggleBind = 'T'; repeat task.wait() until game:IsLoaded(); local cloneref = cloneref or function(obj) return obj end; local Services = setmetatable({}, { __index = function(_, k) return cloneref(game:GetService(k)); end }); local Players = Services.Players; local RunService = Services.RunService; local UserInputService = Services.UserInputService; local Player = Players.LocalPlayer; local Camera = workspace.CurrentCamera; local Character = Player.Character or Player.CharacterAdded:Wait(); local Humanoid = Character:WaitForChild("Humanoid"); local HRP = Character:WaitForChild("HumanoidRootPart"); -- R6 Check (silent fail) if not Character:FindFirstChild("Torso") then return; end Player.CharacterAdded:Connect(function(newChar) Character = newChar; Humanoid = newChar:WaitForChild("Humanoid"); HRP = newChar:WaitForChild("HumanoidRootPart"); end); local InvisEnabled = false; local AnimationTrack = nil; local Connection = nil; -- Reusable animation local Anim = Instance.new("Animation"); Anim.AnimationId = "rbxassetid://215384594"; local function SetupAnimation() if AnimationTrack then AnimationTrack:Destroy(); end AnimationTrack = Humanoid:LoadAnimation(Anim); AnimationTrack.Priority = Enum.AnimationPriority.Action4; end -- Toggle (silent) UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return; end local success, key = pcall(function() return Enum.KeyCode[shared.InvisToggleBind:upper()]; end); if success and input.KeyCode == key then InvisEnabled = not InvisEnabled; if InvisEnabled then SetupAnimation(); Camera.CameraSubject = HRP; else if AnimationTrack then AnimationTrack:Stop(); end Camera.CameraSubject = Humanoid; end end end); -- Main Loop Connection = RunService.Heartbeat:Connect(function() if not InvisEnabled or not Character or not HRP then -- Reset transparency when disabled for _, v in ipairs(Character:GetDescendants()) do if v:IsA("BasePart") and v.Transparency == 0.5 then v.Transparency = 0; end end return; end -- Face camera direction local _, camY, _ = Camera.CFrame:ToOrientation(); HRP.CFrame = CFrame.new(HRP.Position) * CFrame.fromOrientation(0, camY, 0); -- Animation trick HRP.CFrame = HRP.CFrame * CFrame.Angles(math.rad(90), 0, 0); Humanoid.CameraOffset = Vector3.new(0, 1.44, 0); if AnimationTrack then AnimationTrack:Play(); AnimationTrack:AdjustSpeed(0); AnimationTrack.TimePosition = 0.3; end RunService.RenderStepped:Wait(); if AnimationTrack then AnimationTrack:Stop(); end -- Restore facing direction local look = Camera.CFrame.LookVector; local horizontalLook = Vector3.new(look.X, 0, look.Z).Unit; HRP.CFrame = CFrame.lookAt(HRP.Position, HRP.Position + horizontalLook); -- Semi-transparent for _, v in ipairs(Character:GetDescendants()) do if v:IsA("BasePart") and v.Transparency < 1 then v.Transparency = 0.5; end end end);