Advertisement
Bastiasa

Roblox Invisibility script

Apr 8th, 2023 (edited)
2,034
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.56 KB | Gaming | 1 0
  1.  
  2. -- EDITABLE VALUES
  3.  
  4. -- Activation keys -> Enum.KeyCode
  5.  
  6. local InvisibilityKey = Enum.KeyCode.Y
  7. local FlyKey = Enum.KeyCode.T
  8.  
  9.  
  10. -- Motion keys -> Enum.KeyCode
  11.  
  12. local ForwardMoveKey = Enum.KeyCode.W
  13. local BackwardMoveKey = Enum.KeyCode.S
  14.  
  15. local LeftMoveKey = Enum.KeyCode.A
  16. local RightMoveKey = Enum.KeyCode.D
  17.  
  18. local UpMoveKey = Enum.KeyCode.E
  19. local DownMoveKey = Enum.KeyCode.Q
  20.  
  21. local MoreSpeedKey = Enum.KeyCode.LeftShift --> Like the run key from a game
  22.  
  23. -- Speed values -> number
  24.  
  25. local acceleration = 0.6
  26.  
  27. local minSpeed = 30
  28. local maxSpeed = 100
  29.  
  30. -- ONLY TOUCH THE THINGS UNDER THIS COMMENT IF YOU KNOW WHAT ARE YOU DOING
  31.  
  32. local player:Player? = game:GetService("Players").LocalPlayer
  33. local character:Model? = player.Character
  34. local humanoid:Humanoid = character:WaitForChild("Humanoid")
  35.  
  36. local humanoidWalkSpeed = humanoid.WalkSpeed
  37.  
  38. local currentCamera = workspace.CurrentCamera
  39.  
  40. local HumanoidRootPart = character.PrimaryPart
  41.  
  42. local userInputService = game:GetService("UserInputService")
  43.  
  44. local isCamera = false
  45.  
  46. local playerMouse = player:GetMouse()
  47.  
  48. local forwardMove = 0
  49. local backwardMove = 0
  50.  
  51. local upMove = 0
  52. local downMove = 0
  53.  
  54. local rightMove = 0
  55. local leftMove = 0
  56.  
  57. local moveSpeed = minSpeed
  58.  
  59. local aumentSpeed = false
  60.  
  61. local currentCameraRotation = Vector3.new(0,0,0)
  62.  
  63. local function SwitchBoolean(boolValue:boolean):boolean
  64.     if boolValue then
  65.         return false
  66.     else
  67.         return true
  68.     end
  69. end
  70.  
  71. local function SetPartsAnchoredValue(value:boolean)
  72.     for index, child in pairs(character:GetChildren()) do
  73.         if child:IsA("BasePart") then
  74.             child.Anchored = value
  75.         end
  76.     end
  77. end
  78.  
  79. local isAnchored = false
  80.  
  81. local inputBeganSignal = userInputService.InputBegan:Connect(function(input:InputObject, gameP:boolean)
  82.     if not gameP then
  83.  
  84.         if input.KeyCode == FlyKey and not isCamera then
  85.             isAnchored = SwitchBoolean(isAnchored)
  86.             SetPartsAnchoredValue(isAnchored)
  87.         end
  88.  
  89.         if input.KeyCode == InvisibilityKey then
  90.             isCamera = SwitchBoolean(isCamera)
  91.             if isCamera then
  92.  
  93.                 SetPartsAnchoredValue(false)
  94.                 isAnchored = false
  95.  
  96.  
  97.                 userInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
  98.  
  99.                 currentCamera.CameraType = Enum.CameraType.Scriptable
  100.                 currentCamera.CFrame = character.Head.CFrame
  101.  
  102.                 humanoid.WalkSpeed = 0
  103.  
  104.             else
  105.                 SetPartsAnchoredValue(false)
  106.                 isAnchored = false
  107.                 character.PrimaryPart.CFrame = currentCamera.CFrame
  108.  
  109.                 humanoid.WalkSpeed = humanoidWalkSpeed
  110.  
  111.                 userInputService.MouseBehavior = Enum.MouseBehavior.Default
  112.                 currentCamera.CameraType = Enum.CameraType.Custom
  113.  
  114.             end
  115.         end
  116.  
  117.         if input.KeyCode == ForwardMoveKey then
  118.             forwardMove = moveSpeed
  119.             backwardMove = 0
  120.         elseif input.KeyCode == BackwardMoveKey then
  121.             backwardMove = moveSpeed
  122.             forwardMove = 0
  123.         end
  124.  
  125.         if input.KeyCode == LeftMoveKey then
  126.             leftMove = moveSpeed
  127.             rightMove = 0
  128.         elseif input.KeyCode == RightMoveKey then
  129.             rightMove = moveSpeed
  130.             leftMove = 0
  131.         end
  132.  
  133.         if input.KeyCode == UpMoveKey then
  134.             upMove = moveSpeed
  135.             downMove = 0
  136.         elseif input.KeyCode == DownMoveKey then
  137.             downMove = moveSpeed
  138.             upMove = 0
  139.         end
  140.  
  141.         if input.KeyCode == MoreSpeedKey then
  142.             aumentSpeed = true
  143.         end
  144.     end
  145. end)
  146.  
  147. local inputEndedsignal = userInputService.InputEnded:Connect(function(input:InputObject, gameP:boolean)
  148.     if not gameP then
  149.  
  150.         if input.KeyCode == ForwardMoveKey then
  151.             forwardMove = 0
  152.         end
  153.         if input.KeyCode == BackwardMoveKey then
  154.             backwardMove =0
  155.         end
  156.  
  157.         if input.KeyCode == LeftMoveKey then
  158.             leftMove = 0
  159.         end
  160.         if input.KeyCode == RightMoveKey then
  161.             rightMove = 0
  162.         end
  163.  
  164.         if input.KeyCode == UpMoveKey then
  165.             upMove = 0
  166.         end
  167.  
  168.         if input.KeyCode == DownMoveKey then
  169.             downMove = 0
  170.         end
  171.  
  172.         if input.KeyCode == MoreSpeedKey then
  173.             aumentSpeed = false
  174.             moveSpeed = minSpeed
  175.         end
  176.  
  177.     end
  178. end)
  179.  
  180. local runServiceHeartbeatSignal = game:GetService("RunService").Heartbeat:Connect(function(deltaTime:number)
  181.  
  182.     if isCamera then
  183.  
  184.         userInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
  185.         character.PrimaryPart.CFrame = CFrame.new(0,1200,0)
  186.         character.PrimaryPart.AssemblyLinearVelocity = Vector3.new()
  187.  
  188.         local rotationCFrameTarget = CFrame.fromOrientation((currentCameraRotation.X),  (currentCameraRotation.Y), (currentCameraRotation.Z))+currentCamera.CFrame.Position
  189.  
  190.         currentCamera.CFrame = rotationCFrameTarget
  191.  
  192.         currentCamera.CFrame = currentCamera.CFrame + (currentCamera.CFrame.LookVector * forwardMove * deltaTime)
  193.         currentCamera.CFrame = currentCamera.CFrame - (currentCamera.CFrame.LookVector * backwardMove * deltaTime)
  194.  
  195.         currentCamera.CFrame = currentCamera.CFrame + (currentCamera.CFrame.RightVector * rightMove * deltaTime)
  196.         currentCamera.CFrame = currentCamera.CFrame - (currentCamera.CFrame.RightVector * leftMove * deltaTime)
  197.  
  198.         currentCamera.CFrame = currentCamera.CFrame + Vector3.new(0, upMove * deltaTime, 0)
  199.         currentCamera.CFrame = currentCamera.CFrame - Vector3.new(0, downMove * deltaTime, 0)
  200.  
  201.         if forwardMove > 0 then
  202.             forwardMove = moveSpeed
  203.         end
  204.         if backwardMove > 0 then
  205.             backwardMove = moveSpeed
  206.         end
  207.         if rightMove > 0 then
  208.             rightMove = moveSpeed
  209.         end
  210.         if leftMove > 0 then
  211.             leftMove = moveSpeed
  212.         end
  213.         if downMove > 0 then
  214.             downMove = moveSpeed
  215.         end
  216.         if upMove > 0 then
  217.             upMove = moveSpeed
  218.         end
  219.  
  220.         moveSpeed = math.clamp(moveSpeed, minSpeed, maxSpeed)
  221.  
  222.         if aumentSpeed then
  223.             moveSpeed += deltaTime * (acceleration*100)
  224.         end
  225.  
  226.     end
  227.  
  228. end)
  229.  
  230.  
  231.  
  232. local function mouseMoved(actionName, inputState, inputObject:InputObject)
  233.  
  234.     local horizontalSpeed = inputObject.Delta.X*0.5
  235.     local verticalSpeed = inputObject.Delta.Y*0.5
  236.  
  237.     currentCameraRotation += Vector3.new(math.clamp(-math.rad(verticalSpeed) * userInputService.MouseDeltaSensitivity, math.rad(-90), math.rad(90)), 0, 0)
  238.     currentCameraRotation += Vector3.new(0, -math.rad(horizontalSpeed) * userInputService.MouseDeltaSensitivity, 0)
  239.  
  240.     currentCameraRotation = Vector3.new(math.clamp(currentCameraRotation.X, math.rad(-90), math.rad(90)), currentCameraRotation.Y, 0)
  241.  
  242. end
  243.  
  244. game:GetService("ContextActionService"):BindAction("MouseMoved", mouseMoved, false, Enum.UserInputType.MouseMovement)
  245.  
  246. humanoid.Died:Connect(function()
  247.     inputBeganSignal:Disconnect()
  248.     inputEndedsignal:Disconnect()
  249.     runServiceHeartbeatSignal:Disconnect()
  250.  
  251.     SetPartsAnchoredValue(false)
  252.     isAnchored = false
  253.     character.PrimaryPart.CFrame = currentCamera.CFrame
  254.  
  255.     humanoid.WalkSpeed = humanoidWalkSpeed
  256.  
  257.     userInputService.MouseBehavior = Enum.MouseBehavior.Default
  258.     currentCamera.CameraType = Enum.CameraType.Custom
  259. end)
  260.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement