Advertisement
xaviersvt

ViewPortFrame

Sep 14th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. local RunService = game:GetService('RunService')
  2. local UserInputService = game:GetService("UserInputService")
  3.  
  4. local instance,newRay = Instance.new,Ray.new
  5. local v2,v3,cf,udim2 = Vector2.new,Vector3.new,CFrame.new,UDim2.new
  6. local insert,random,abs = table.insert,math.random,math.abs
  7.  
  8.  
  9. local Player = game.Players.LocalPlayer
  10. local Character = Player.Character or Player.CharacterAdded:Wait()
  11.  
  12. local ViewPort = script.Parent
  13.  
  14.  
  15. local Offset = cf(0,1,-6)
  16.  
  17.  
  18. local Camera = instance("Camera")
  19. ViewPort.CurrentCamera = Camera
  20. Camera.FieldOfView = 60
  21.  
  22. local ValidClasses = {
  23. ["MeshPart"] = true; ["Part"] = true; ["Accoutrement"] = true;
  24. ["Pants"] = true; ["Shirt"] = true;
  25. ["Humanoid"] = true;
  26. }
  27.  
  28. local function RenderHumanoid(Model, Parent, MainModel)
  29. local ModelParts = Model:GetDescendants()
  30. for i=1, #ModelParts do
  31. local Part = ModelParts[i]
  32.  
  33. if ValidClasses[Part.ClassName] then
  34.  
  35. local a = Part.Archivable
  36. Part.Archivable = true
  37.  
  38. local RenderClone = Part:Clone()
  39. Part.Archivable = a
  40.  
  41. if Part.ClassName == "MeshPart" or Part.ClassName == "Part" then
  42. PartUpdater = RunService.Heartbeat:Connect(function()
  43. if Part then
  44. RenderClone.CFrame = Part.CFrame
  45. else
  46. RenderClone:Destroy()
  47. PartUpdater:Disconnect()
  48. end
  49. end)
  50. elseif Part:IsA("Accoutrement") then
  51. PartUpdater = RunService.Heartbeat:Connect(function()
  52. if Part then
  53. if RenderClone.Handle then
  54. RenderClone.Handle.CFrame = Part.Handle.CFrame
  55. end
  56. else
  57. RenderClone:Destroy()
  58. PartUpdater:Disconnect()
  59. end
  60. end)
  61. elseif Part.ClassName == "Humanoid" then
  62.  
  63. RenderClone:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
  64. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Running, false)
  65. RenderClone:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics, false)
  66. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Climbing, false)
  67. RenderClone:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics, false)
  68. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
  69. RenderClone:SetStateEnabled(Enum.HumanoidStateType.GettingUp, false)
  70. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
  71. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Landed, false)
  72. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Flying, false)
  73. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Freefall, false)
  74. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Seated, false)
  75. RenderClone:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
  76. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
  77. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Swimming, false)
  78. RenderClone:SetStateEnabled(Enum.HumanoidStateType.Physics, false)
  79. end
  80.  
  81. RenderClone.Parent = Parent
  82. end
  83. end
  84. end
  85.  
  86.  
  87. wait(1)
  88.  
  89.  
  90. local function Render()
  91. ViewPort:ClearAllChildren()
  92.  
  93. local Char = instance("Model")
  94. Char.Name = ""
  95. Char.Parent = ViewPort
  96. RenderHumanoid(Character,Char)
  97. end
  98.  
  99. Character.DescendantAdded:Connect(Render)
  100. Character.DescendantRemoving:Connect(Render)
  101.  
  102. Render()
  103.  
  104. CameraUpdater = RunService.Heartbeat:Connect(function()
  105. if Character.HumanoidRootPart then
  106. Camera.CFrame = cf(Character.HumanoidRootPart.CFrame:toWorldSpace(Offset).p, Character.HumanoidRootPart.CFrame.p)
  107. end
  108. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement