-- Configurações do clone local Transparency = true -- Variáveis globais local Player = game.Players.LocalPlayer local RealCharacter = Player.Character or Player.CharacterAdded:Wait() local IsInvisible = false local player = game.Players.LocalPlayer local character = player.Character local humanoid = character:FindFirstChildOfClass("Humanoid") RealCharacter.Archivable = true local FakeCharacter -- Função para criar o clone local function CreateClone() -- Certifique-se de estar no Studio com "Explorer" e "Properties" abertos. local b = game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart"):FindFirstChild("BodyVelocity") if b then b.P = 0 b.MaxForce = Vector3.new(0, 0, 0) end FakeCharacter = RealCharacter:Clone() -- Remover propriedades indesejadas do clone for _, v in pairs(FakeCharacter:GetDescendants()) do if v:IsA("BodyVelocity") or v:IsA("BodyGyro") or v:IsA("BodyPosition") then v:Destroy() -- Remove as propriedades indesejadas end end bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.MaxForce = Vector3.new(500000, 500000, 500000) -- Força para impedir a gravidade bodyVelocity.Velocity = Vector3.new(0, 0, 0) -- Sem movimento inicial bodyVelocity.Parent = FakeCharacter.HumanoidRootPart -- Posiciona o clone no mesmo lugar que o personagem real FakeCharacter.Parent = workspace FakeCharacter.HumanoidRootPart.CFrame = RealCharacter.HumanoidRootPart.CFrame FakeCharacter.HumanoidRootPart.Anchored = false -- Define a velocidade do clone para ser o dobro da velocidade do personagem real FakeCharacter.Humanoid.WalkSpeed = RealCharacter.Humanoid.WalkSpeed * 2 -- Aplica a transparência ao clone if Transparency then for _, v in pairs(FakeCharacter:GetDescendants()) do if v:IsA("BasePart") and v.Transparency < 1 then v.Transparency = 0.85 end end end -- Copia o Animator do personagem real para o clone local RealAnimator = RealCharacter:FindFirstChildOfClass("Animator") if RealAnimator then local CloneAnimator = RealAnimator:Clone() CloneAnimator.Parent = FakeCharacter end -- Desativa scripts locais no clone for _, v in pairs(RealCharacter:GetChildren()) do if v:IsA("LocalScript") then local clone = v:Clone() clone.Disabled = true clone.Parent = FakeCharacter end end -- Sincroniza a câmera com o clone workspace.CurrentCamera.CameraSubject = FakeCharacter.Humanoid -- Leva o personagem real para uma posição muito distante local x = RealCharacter.HumanoidRootPart.CFrame + Vector3.new(0, 1e8, 0) IsInvisible = true spawn( function() for i = 1, 90 do if IsInvisible then RealCharacter.HumanoidRootPart.CFrame = x task.wait(0.1) end end end ) task.wait(0.1) -- Sincroniza o movimento e o voo do clone com a direção da câmera game:GetService("RunService").RenderStepped:Connect( function() local moveDirection2 = humanoid.MoveDirection if IsInvisible and moveDirection2.Magnitude > 0 then bodyVelocity.Parent = nil -- Move o clone na direção da câmera local camera = workspace.CurrentCamera local moveDirection = camera.CFrame.LookVector -- Determinar se está indo para trás local isMovingBackward = moveDirection:Dot(moveDirection2) < 0 -- Ajustar o valor de y local adjustedY = isMovingBackward and (moveDirection.Y * -1.4) or (moveDirection.Y * 1.8) local adjustedV = isMovingBackward and (1.4) or (1.6) FakeCharacter.HumanoidRootPart.Velocity = Vector3.new(moveDirection2.X, adjustedY + 0.35, moveDirection2.Z).Unit * (FakeCharacter.Humanoid.WalkSpeed * adjustedV) elseif (moveDirection2.Magnitude == 0) and IsInvisible then bodyVelocity.Parent = FakeCharacter.HumanoidRootPart end end ) end -- Função para teleportar o personagem real para a posição do clone e apagar o clone local function TeleportAndRemoveClone() if IsInvisible then RealCharacter.HumanoidRootPart.Velocity = Vector3.new(0, 0, 0) for _, v in pairs(FakeCharacter:GetDescendants()) do if v:IsA("BasePart") and v.Transparency < 1 then v.Transparency = 1 end end IsInvisible = false for i = 1, 5 do if not IsInvisible then RealCharacter.HumanoidRootPart.CFrame = FakeCharacter.HumanoidRootPart.CFrame task.wait() end end -- Remove o clone e foca a câmera de volta no personagem real FakeCharacter:Destroy() workspace.CurrentCamera.CameraSubject = RealCharacter.Humanoid end end -- Adiciona o item no inventário e configura a ativação do script InvisibilityCloak = Instance.new("Tool") InvisibilityCloak.Name = "Invisibility Cloak" InvisibilityCloak.RequiresHandle = false InvisibilityCloak.Parent = Player.Backpack -- Adiciona o item no inventário e configura a ativação do script InvisibilityCloak.Equipped:Connect( function() if not IsInvisible then CreateClone() end end ) InvisibilityCloak.Unequipped:Connect( function() if IsInvisible then TeleportAndRemoveClone() end end ) -- Som opcional e notificação local Sound = Instance.new("Sound", game:GetService("SoundService")) Sound.SoundId = "rbxassetid://232127604" Sound:Play() game:GetService("StarterGui"):SetCore( "SendNotification", { Title = "Invisibility Cloak Ready", Text = "Clique para ativar a invisibilidade", Duration = 20, Button1 = "Okay." } )