Fixed Clovr Vr Full Body - Pastebin.com (2024)

  1. --[[

  2. re-released by discord.gg/dogpower & modified by https://discord.gg/Hbq3TgAJbB

  3. publish in public by cia and many other youtuber

  4. ]]

  5. --[[---------Settings---------]]--

  6. local bodyTransparency = 0 --Change the transparency of your character (0 - 1)

  7. local bodyVelocity = {-17.7, 0, -17.7} --Change your body parts velocity. First number value is the X value. Second number value is the Y value. Third number value is the Z value.

  8. local hatVelocity = {-17.7, 0, -17.7} --Change your accessory's velocity. First number value is the X value. Second number value is the Y value. Third number value is the Z value.

  9. --Velocity is not recommended to be (-17.7, 0, -17.7) in R15 since body parts often fall in R15.

  10. --[[--------------------------]]--

  11. local player1 = game.Players.LocalPlayer

  12. local character1 = player1.Character

  13. --Fake Character--

  14. --Create Attachment Function

  15. local function CreateAttachment(parent, position, orientation, axis, secondaryAxis, name)

  16. local newAttchment = Instance.new("Attachment", parent)

  17. newAttchment.Position = position

  18. newAttchment.Orientation = orientation

  19. newAttchment.Axis = axis

  20. newAttchment.SecondaryAxis = secondaryAxis

  21. newAttchment.Name = name

  22. end

  23. --Variables

  24. local player1 = game:GetService("Players").LocalPlayer

  25. local character1 = player1.Character

  26. local hrp = character1.HumanoidRootPart

  27. for i,v in pairs(character1:GetChildren()) do

  28. if v:IsA("LocalScript") then

  29. v:Destroy()

  30. end

  31. end

  32. local camera = workspace.CurrentCamera

  33. local reanimFolder = Instance.new("Folder", character1)

  34. reanimFolder.Name = "FakeCharacter"

  35. local model = Instance.new("Model", reanimFolder)

  36. model.Name = "Reanimation"

  37. local userInputService = game:GetService("UserInputService")

  38. local movingW, movingA, movingS, movingD, jumping = false

  39. --Body Parts--

  40. --Head

  41. local cHead = Instance.new("Part", model)

  42. cHead.Size = Vector3.new(2, 1, 1)

  43. cHead.Name = "Head"

  44. --Torso

  45. local cTorso = Instance.new("Part", model)

  46. cTorso.Size = Vector3.new(2, 2, 1)

  47. cTorso.Name = "Torso"

  48. --Left Arm

  49. local cLArm = Instance.new("Part", model)

  50. cLArm.Size = Vector3.new(1, 2, 1)

  51. cLArm.Name = "Left Arm"

  52. --Right Arm

  53. local cRArm = Instance.new("Part", model)

  54. cRArm.Size = Vector3.new(1, 2, 1)

  55. cRArm.Name = "Right Arm"

  56. --Left Leg

  57. local cLLeg = Instance.new("Part", model)

  58. cLLeg.Size = Vector3.new(1, 2, 1)

  59. cLLeg.Name = "Left Leg"

  60. --Right Leg

  61. local cRLeg = Instance.new("Part", model)

  62. cRLeg.Size = Vector3.new(1, 2, 1)

  63. cRLeg.Name = "Right Leg"

  64. --HumanoidRootPart

  65. local cHRP = Instance.new("Part", model)

  66. cHRP.Size = Vector3.new(2, 2, 1)

  67. cHRP.Name = "HumanoidRootPart"

  68. cHRP.Transparency = 1

  69. cHRP.CanCollide = false

  70. --Transparency

  71. for i,v in pairs(model:GetChildren()) do

  72. if v:IsA("Part") and v.Name ~= "HumanoidRootPart" then

  73. v.Transparency = 1--0.5

  74. end

  75. end

  76. --Joints--

  77. --Right Shoulder

  78. local rShoulder = Instance.new("Motor6D", cTorso)

  79. rShoulder.Part0 = cTorso

  80. rShoulder.Part1 = cRArm

  81. rShoulder.Name = "Right Shoulder"

  82. rShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)

  83. rShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)

  84. --Left Shoulder

  85. local lShoulder = Instance.new("Motor6D", cTorso)

  86. lShoulder.Part0 = cTorso

  87. lShoulder.Part1 = cLArm

  88. lShoulder.Name = "Left Shoulder"

  89. lShoulder.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)

  90. lShoulder.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)

  91. --Right Hip

  92. local rHip = Instance.new("Motor6D", cTorso)

  93. rHip.Part0 = cTorso

  94. rHip.Part1 = cRLeg

  95. rHip.Name = "Right Hip"

  96. rHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)

  97. rHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)

  98. --Left Hip

  99. local lHip = Instance.new("Motor6D", cTorso)

  100. lHip.Part0 = cTorso

  101. lHip.Part1 = cLLeg

  102. lHip.Name = "Left Hip"

  103. lHip.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)

  104. lHip.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)

  105. --Neck

  106. local neck = Instance.new("Motor6D", cTorso)

  107. neck.Part0 = cTorso

  108. neck.Part1 = cHead

  109. neck.Name = "Neck"

  110. neck.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)

  111. neck.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)

  112. --RootJoint

  113. local rootJoint = Instance.new("Motor6D", cHRP)

  114. rootJoint.Part0 = cHRP

  115. rootJoint.Part1 = cTorso

  116. rootJoint.Name = "RootJoint"

  117. rootJoint.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)

  118. rootJoint.C1 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)

  119. --Humanoid--

  120. local cHumanoid = Instance.new("Humanoid", model)

  121. cHumanoid.DisplayDistanceType = "None"

  122. --Head Mesh--

  123. local headMesh = Instance.new("SpecialMesh", cHead)

  124. headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)

  125. local reanimation = model

  126. --Creating Attachments

  127. CreateAttachment(cHead, Vector3.new(0,0.60000002384186,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "HairAttachment")

  128. CreateAttachment(cHead, Vector3.new(0,0.60000002384186,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "HatAttachment")

  129. CreateAttachment(cHead, Vector3.new(0,0,-0.60000002384186), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "FaceFrontAttachment")

  130. CreateAttachment(cHead, Vector3.new(0,0,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "FaceCenterAttachment")

  131. CreateAttachment(cTorso, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "NeckAttachment")

  132. CreateAttachment(cTorso, Vector3.new(0,0,-0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "BodyFrontAttachment")

  133. CreateAttachment(cTorso, Vector3.new(0,0,0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "BodyBackAttachment")

  134. CreateAttachment(cTorso, Vector3.new(-1,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftCollarAttachment")

  135. CreateAttachment(cTorso, Vector3.new(1,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightCollarAttachment")

  136. CreateAttachment(cTorso, Vector3.new(0,-1,-0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistFrontAttachment")

  137. CreateAttachment(cTorso, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistCenterAttachment")

  138. CreateAttachment(cTorso, Vector3.new(0,-1,0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistBackAttachment")

  139. CreateAttachment(cLArm, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftShoulderAttachment")

  140. CreateAttachment(cLArm, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftGripAttachment")

  141. CreateAttachment(cRArm, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightShoulderAttachment")

  142. CreateAttachment(cRArm, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightGripAttachment")

  143. CreateAttachment(cLLeg, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftFootAttachment")

  144. CreateAttachment(cRLeg, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightFootAttachment")

  145. CreateAttachment(cHRP, Vector3.new(0,0,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RootAttachment")

  146. --Cloning Hats (For Netless)

  147. for i,v in pairs(character1:GetChildren()) do

  148. if v:IsA("Accessory") then

  149. local clone = v:Clone()

  150. local weld = v.Handle:FindFirstChildWhichIsA("Weld")

  151. local weldPart1 = weld.Part1

  152. local newWeld = Instance.new("Weld", clone.Handle)

  153. local CFrame0 = v.Handle.AccessoryWeld.C0

  154. local CFrame1 = v.Handle.AccessoryWeld.C1

  155. clone.Handle:FindFirstChild("AccessoryWeld"):Destroy()

  156. clone.Parent = reanimation

  157. newWeld.Name = "AccessoryWeld"

  158. newWeld.C0 = CFrame0

  159. newWeld.C1 = CFrame1

  160. newWeld.Part0 = clone.Handle

  161. newWeld.Part1 = character1:FindFirstChild(weldPart1.Name)

  162. clone.Handle.Transparency = 1

  163. end

  164. end

  165. cHRP.CFrame = hrp.CFrame

  166. -- CLOVR - FE FULL-BODY VR SCRIPT

  167. -- April 21st Update - TOOL HOLDING ADDED

  168. -- | made by 0866 and Abacaxl

  169. -- | tysm unverified

  170. --RagDollEnabled is set to true, DON'T set it to false or CLOVR won't work. Feel free to change the other settings though. -Abacaxl

  171. --|| Settings:

  172. local StudsOffset = 0 -- Character height (negative if you're too high)

  173. local Smoothness = .5 -- Character interpolation (0.1 - 1 = smooth - rigid)

  174. local AnchorCharacter = false -- Prevent physics from causing inconsistencies

  175. local HideCharacter = false -- Hide character on a platform

  176. local NoCollision = false-- Disable player collision

  177. local ChatEnabled = true -- See chat on your left hand in-game

  178. local ChatLocalRange = 75 -- Local chat range

  179. local ViewportEnabled = true -- View nearby players in a frame

  180. local ViewportRange = 30 -- Maximum distance players are updated

  181. local RagdollEnabled = true -- Use your character instead of hats (NetworkOwner vulnerability)

  182. local RagdollHeadMovement = true -- Move your head separately from your body (+9 second wait)

  183. local AutoRun = false -- Run script on respawn

  184. local AutoRespawn = true -- Kill your real body when your virtual body dies

  185. local WearAllAccessories = true -- Use all leftover hats for the head

  186. local AccurateHandPosition = true -- Move your Roblox hands according to your real hands

  187. local AccessorySettings = {

  188. LeftArm = "",

  189. RightArm = "",

  190. LeftLeg = "",

  191. RightLeg = "",

  192. Torso = "",

  193. Head = true,

  194. BlockArms = true,

  195. BlockLegs = true,

  196. BlockTorso = true,

  197. LimbOffset = CFrame.Angles(math.rad(90), 0, 0)

  198. }

  199. local FootPlacementSettings = {

  200. RightOffset = Vector3.new(.5, 0, 0),

  201. LeftOffset = Vector3.new(-.5, 0, 0)

  202. }

  203. --|| Script:

  204. local Script = nil

  205. Script = function()

  206. --[[

  207. Variables

  208. --]]

  209. local Players = game:GetService("Players")

  210. local Client = Players.LocalPlayer

  211. local Character = Client.Character or Client.CharacterAdded:Wait()

  212. local WeldBase = Character:WaitForChild("HumanoidRootPart")

  213. local ArmBase = Character:FindFirstChild("RightHand") or Character:FindFirstChild("Right Arm") or WeldBase

  214. local Backpack = Client:WaitForChild("Backpack")

  215. local Mouse = Client:GetMouse()

  216. local Camera = workspace.CurrentCamera

  217. local VRService = game:GetService("VRService")

  218. local VRReady = VRService.VREnabled

  219. local UserInputService = game:GetService("UserInputService")

  220. local RunService = game:GetService("RunService")

  221. local HttpService = game:GetService("HttpService")

  222. local StarterGui = game:GetService("StarterGui")

  223. local HeadAccessories = {}

  224. local UsedAccessories = {}

  225. local Pointer = false

  226. local Point1 = false

  227. local Point2 = false

  228. local VirtualRig = game:GetObjects("rbxassetid://4468539481")[1]

  229. local VirtualBody = game:GetObjects("rbxassetid://4464983829")[1]

  230. local Anchor = Instance.new("Part")

  231. Anchor.Anchored = true

  232. Anchor.Transparency = 1

  233. Anchor.CanCollide = false

  234. Anchor.Parent = workspace

  235. --[[

  236. if RagdollEnabled then

  237. print("RagdollEnabled, thank you for using CLOVR!")

  238. local NetworkAccess =

  239. coroutine.create(

  240. function()

  241. settings().Physics.AllowSleep = false

  242. while true do

  243. game:GetService("RunService").RenderStepped:Wait()

  244. for _, Players in next, game:GetService("Players"):GetChildren() do

  245. if Players ~= game:GetService("Players").LocalPlayer then

  246. Players.MaximumSimulationRadius = 0.1

  247. Players.SimulationRadius = 0

  248. end

  249. end

  250. game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge, math.huge)

  251. game:GetService("Players").LocalPlayer.SimulationRadius = math.huge * math.huge

  252. end

  253. end

  254. )

  255. coroutine.resume(NetworkAccess)

  256. end

  257. ]]

  258. StarterGui:SetCore("VRLaserPointerMode", 3)

  259. --[[

  260. Character Protection

  261. --]]

  262. local CharacterCFrame = WeldBase.CFrame

  263. if not RagdollEnabled then

  264. Character.Humanoid.AnimationPlayed:Connect(

  265. function(Animation)

  266. Animation:Stop()

  267. end

  268. )

  269. for _, Track in next, Character.Humanoid:GetPlayingAnimationTracks() do

  270. Track:Stop()

  271. end

  272. if HideCharacter then

  273. local Platform = Instance.new("Part")

  274. Platform.Anchored = true

  275. Platform.Size = Vector3.new(100, 5, 100)

  276. Platform.CFrame = CFrame.new(0, 10000, 0)

  277. Platform.Transparency = 1

  278. Platform.Parent = workspace

  279. Character:MoveTo(Platform.Position + Vector3.new(0, 5, 0))

  280. wait(.5)

  281. end

  282. if AnchorCharacter then

  283. for _, Part in pairs(Character:GetChildren()) do

  284. if Part:IsA("BasePart") then

  285. Part.Anchored = true

  286. end

  287. end

  288. end

  289. end

  290. --[[

  291. Functions

  292. --]]

  293. function Tween(Object, Style, Direction, Time, Goal)

  294. local tweenInfo = TweenInfo.new(Time, Enum.EasingStyle[Style], Enum.EasingDirection[Direction])

  295. local tween = game:GetService("TweenService"):Create(Object, tweenInfo, Goal)

  296. tween.Completed:Connect(

  297. function()

  298. tween:Destroy()

  299. end

  300. )

  301. tween:Play()

  302. return tween

  303. end

  304. local function GetMotorForLimb(Limb)

  305. for _, Motor in next, Character:GetDescendants() do

  306. if Motor:IsA("Motor6D") and Motor.Part1 == Limb then

  307. return Motor

  308. end

  309. end

  310. end

  311. local function CreateAlignment(Limb, Part0)

  312. local Attachment0 = Instance.new("Attachment", Part0 or Anchor)

  313. local Attachment1 = Instance.new("Attachment", Limb)

  314. local Orientation = Instance.new("AlignOrientation")

  315. local Position = Instance.new("AlignPosition")

  316. Orientation.Attachment0 = Attachment1

  317. Orientation.Attachment1 = Attachment0

  318. Orientation.RigidityEnabled = false

  319. Orientation.MaxTorque = 20000

  320. Orientation.Responsiveness = 40

  321. Orientation.Parent = reanimation["HumanoidRootPart"]

  322. Orientation.Name = Limb.Name.."'s AlignRot"

  323. Orientation.MaxAngularVelocity = 100

  324. Position.Attachment0 = Attachment1

  325. Position.Attachment1 = Attachment0

  326. Position.RigidityEnabled = false

  327. Position.MaxForce = 40000

  328. Position.Responsiveness = 40

  329. Position.Parent = reanimation["HumanoidRootPart"]

  330. Position.Name = Limb.Name.."'s AlignPos"

  331. Position.MaxVelocity = 100

  332. Limb.Massless = false

  333. local Motor = GetMotorForLimb(Limb)

  334. if Motor then

  335. Motor:Destroy()

  336. end

  337. return function(CF, Local)

  338. if Local then

  339. Attachment0.CFrame = CF

  340. else

  341. Attachment0.WorldCFrame = CF

  342. end

  343. end

  344. end

  345. local function GetExtraTool()

  346. for _, Tool in next, Character:GetChildren() do

  347. if Tool:IsA("Tool") and not Tool.Name:match("LIMB_TOOL") then

  348. return Tool

  349. end

  350. end

  351. end

  352. local function GetGripForHandle(Handle)

  353. for _, Weld in next, Character:GetDescendants() do

  354. if Weld:IsA("Weld") and (Weld.Part0 == Handle or Weld.Part1 == Handle) then

  355. return Weld

  356. end

  357. end

  358. wait(.2)

  359. for _, Weld in next, Character:GetDescendants() do

  360. if Weld:IsA("Weld") and (Weld.Part0 == Handle or Weld.Part1 == Handle) then

  361. return Weld

  362. end

  363. end

  364. end

  365. local function CreateRightGrip(Handle)

  366. local RightGrip = Instance.new("Weld")

  367. RightGrip.Name = "RightGrip"

  368. RightGrip.Part1 = Handle

  369. RightGrip.Part0 = WeldBase

  370. RightGrip.Parent = WeldBase

  371. return RightGrip

  372. end

  373. local function CreateAccessory(Accessory, DeleteMeshes)

  374. if not Accessory then

  375. return

  376. end

  377. local HatAttachment = Accessory.Handle:FindFirstChildWhichIsA("Attachment")

  378. local HeadAttachment = VirtualRig:FindFirstChild(HatAttachment.Name, true)

  379. local BasePart = HeadAttachment.Parent

  380. local HatAtt = HatAttachment.CFrame

  381. local HeadAtt = HeadAttachment.CFrame

  382. if DeleteMeshes then

  383. if Accessory.Handle:FindFirstChild("Mesh") then

  384. Accessory.Handle.Mesh:Destroy()

  385. end

  386. end

  387. wait()

  388. local Handle = Accessory:WaitForChild("Handle")

  389. if Handle:FindFirstChildWhichIsA("Weld", true) then

  390. Handle:FindFirstChildWhichIsA("Weld", true):Destroy()

  391. Handle:BreakJoints()

  392. else

  393. Handle:BreakJoints()

  394. end

  395. Handle.Massless = true

  396. Handle.Transparency = 0.5

  397. UsedAccessories[Accessory] = true

  398. local RightGrip = CreateRightGrip(Handle)

  399. wait()

  400. for _, Object in pairs(Handle:GetDescendants()) do

  401. if not Object:IsA("BasePart") then

  402. pcall(

  403. function()

  404. Object.Transparency = 1

  405. end

  406. )

  407. pcall(

  408. function()

  409. Object.Enabled = false

  410. end

  411. )

  412. end

  413. end

  414. return Handle, RightGrip, HatAtt, HeadAtt, BasePart

  415. end

  416. local function GetHeadAccessories()

  417. for _, Accessory in next, Character:GetChildren() do

  418. if Accessory:IsA("Accessory") and not UsedAccessories[Accessory] then

  419. local Handle, RightGrip, HatAtt, HeadAtt, BasePart = CreateAccessory(Accessory)

  420. table.insert(HeadAccessories, {Handle, RightGrip, HatAtt, HeadAtt, BasePart})

  421. do

  422. Handle.Transparency = 1

  423. end

  424. if not WearAllAccessories then

  425. break

  426. end

  427. end

  428. end

  429. end

  430. --[[

  431. VR Replication Setup

  432. --]]

  433. if not RagdollEnabled then

  434. LeftHandle, LeftHandGrip =

  435. CreateAccessory(Character:FindFirstChild(AccessorySettings.LeftArm), AccessorySettings.BlockArms)

  436. RightHandle, RightHandGrip =

  437. CreateAccessory(Character:FindFirstChild(AccessorySettings.RightArm), AccessorySettings.BlockArms)

  438. LeftHipHandle, LeftLegGrip =

  439. CreateAccessory(Character:FindFirstChild(AccessorySettings.LeftLeg), AccessorySettings.BlockLegs)

  440. RightHipHandle, RightLegGrip =

  441. CreateAccessory(Character:FindFirstChild(AccessorySettings.RightLeg), AccessorySettings.BlockLegs)

  442. TorsoHandle, TorsoGrip =

  443. CreateAccessory(Character:FindFirstChild(AccessorySettings.Torso), AccessorySettings.BlockTorso)

  444. GetHeadAccessories()

  445. elseif RagdollEnabled then

  446. if RagdollHeadMovement then

  447. Permadeath()

  448. MoveHead = CreateAlignment(reanimation["Head"])

  449. end

  450. MoveRightArm = CreateAlignment(reanimation["Right Arm"])

  451. MoveLeftArm = CreateAlignment(reanimation["Left Arm"])

  452. MoveRightLeg = CreateAlignment(reanimation["Right Leg"])

  453. MoveLeftLeg = CreateAlignment(reanimation["Left Leg"])

  454. MoveTorso = CreateAlignment(reanimation["Torso"])

  455. MoveRoot = CreateAlignment(reanimation["HumanoidRootPart"])

  456. --

  457. if RagdollHeadMovement then

  458. for _, Accessory in next, reanimation:GetChildren() do

  459. if Accessory:IsA("Accessory") and Accessory:FindFirstChild("Handle") then

  460. local Attachment1 = Accessory.Handle:FindFirstChildWhichIsA("Attachment")

  461. local Attachment0 = reanimation:FindFirstChild(tostring(Attachment1), true)

  462. local Orientation = Instance.new("AlignOrientation")

  463. local Position = Instance.new("AlignPosition")

  464. print(Attachment1, Attachment0, Accessory)

  465. Orientation.Attachment0 = Attachment1

  466. Orientation.Attachment1 = Attachment0

  467. Orientation.RigidityEnabled = false

  468. Orientation.ReactionTorqueEnabled = true

  469. Orientation.MaxTorque = 20000

  470. Orientation.Responsiveness = 40

  471. Orientation.Parent = reanimation["Head"]

  472. Position.Attachment0 = Attachment1

  473. Position.Attachment1 = Attachment0

  474. Position.RigidityEnabled = false

  475. Position.ReactionForceEnabled = true

  476. Position.MaxForce = 40000

  477. Position.Responsiveness = 40

  478. Position.Parent = reanimation["Head"]

  479. end

  480. end

  481. end

  482. end

  483. --[[

  484. Movement

  485. --]]

  486. VirtualRig.Name = "VirtualRig"

  487. VirtualRig.RightFoot.BodyPosition.Position = CharacterCFrame.p

  488. VirtualRig.LeftFoot.BodyPosition.Position = CharacterCFrame.p

  489. VirtualRig.Parent = workspace

  490. VirtualRig:SetPrimaryPartCFrame(CharacterCFrame)

  491. VirtualRig.Humanoid.Health = 0

  492. --VirtualRig:FindFirstChild("HumanoidRootPart").CFrame = character1.HumanoidRootPart.CFrame

  493. VirtualRig:BreakJoints()

  494. for i,v in pairs(VirtualRig:GetChildren()) do

  495. if v:IsA("BasePart") then

  496. v.CFrame = character1.HumanoidRootPart.CFrame

  497. end

  498. end

  499. --

  500. VirtualBody.Parent = workspace

  501. VirtualBody.Name = "VirtualBody"

  502. VirtualBody.Humanoid.WalkSpeed = 8

  503. VirtualBody.Humanoid.CameraOffset = Vector3.new(0, StudsOffset, 0)

  504. VirtualBody:SetPrimaryPartCFrame(CharacterCFrame)

  505. VirtualBody.Humanoid.Died:Connect(

  506. function()

  507. print("Virtual death")

  508. if AutoRespawn then

  509. Character:BreakJoints()

  510. if RagdollHeadMovement and RagdollEnabled then

  511. --Network:Unclaim()

  512. Respawn()

  513. end

  514. end

  515. end

  516. )

  517. --

  518. Camera.CameraSubject = VirtualBody.Humanoid

  519. Character.Humanoid.WalkSpeed = 0

  520. Character.Humanoid.JumpPower = 1

  521. for _, Part in next, VirtualBody:GetChildren() do

  522. if Part:IsA("BasePart") then

  523. Part.Transparency = 1

  524. end

  525. end

  526. for _, Part in next, VirtualRig:GetChildren() do

  527. if Part:IsA("BasePart") then

  528. Part.Transparency = 1

  529. end

  530. end

  531. if not VRReady then

  532. VirtualRig.RightUpperArm.ShoulderConstraint.RigidityEnabled = true

  533. VirtualRig.LeftUpperArm.ShoulderConstraint.RigidityEnabled = true

  534. end

  535. local OnMoving =

  536. RunService.Stepped:Connect(

  537. function()

  538. local Direction = Character.Humanoid.MoveDirection

  539. local Start = VirtualBody.HumanoidRootPart.Position

  540. local Point = Start + Direction * 6

  541. VirtualBody.Humanoid:MoveTo(Point)

  542. end

  543. )

  544. Character.Humanoid.Jumping:Connect(

  545. function()

  546. VirtualBody.Humanoid.Jump = true

  547. end

  548. )

  549. UserInputService.JumpRequest:Connect(

  550. function()

  551. VirtualBody.Humanoid.Jump = true

  552. end

  553. )

  554. --[[

  555. VR Replication

  556. --]]

  557. if RagdollEnabled then

  558. for _, Part in pairs(Character:GetDescendants()) do

  559. if Part:IsA("BasePart") and Part.Name == "Handle" and Part.Parent:IsA("Accessory") then

  560. Part.LocalTransparencyModifier = 1

  561. elseif Part:IsA("BasePart") and Part.Transparency < 0.5 and Part.Name ~= "Head" then

  562. Part.LocalTransparencyModifier = bodyTransparency

  563. elseif Part:IsA("BasePart") and Part.Name == "Head" then

  564. Part.LocalTransparencyModifier = 1

  565. end

  566. if not Part:IsA("BasePart") and not Part:IsA("AlignPosition") and not Part:IsA("AlignOrientation") then

  567. pcall(

  568. function()

  569. Part.Transparency = 1

  570. end

  571. )

  572. pcall(

  573. function()

  574. Part.Enabled = false

  575. end

  576. )

  577. end

  578. end

  579. end

  580. local FootUpdateDebounce = tick()

  581. local function FloorRay(Part, Distance)

  582. local Position = Part.CFrame.p

  583. local Target = Position - Vector3.new(0, Distance, 0)

  584. local Line = Ray.new(Position, (Target - Position).Unit * Distance)

  585. local FloorPart, FloorPosition, FloorNormal =

  586. workspace:FindPartOnRayWithIgnoreList(Line, {VirtualRig, VirtualBody, Character})

  587. if FloorPart then

  588. return FloorPart, FloorPosition, FloorNormal, (FloorPosition - Position).Magnitude

  589. else

  590. return nil, Target, Vector3.new(), Distance

  591. end

  592. end

  593. local function Flatten(CF)

  594. local X, Y, Z = CF.X, CF.Y, CF.Z

  595. local LX, LZ = CF.lookVector.X, CF.lookVector.Z

  596. return CFrame.new(X, Y, Z) * CFrame.Angles(0, math.atan2(LX, LZ), 0)

  597. end

  598. local FootTurn = 1

  599. local function FootReady(Foot, Target)

  600. local MaxDist

  601. if Character.Humanoid.MoveDirection.Magnitude > 0 then

  602. MaxDist = .5

  603. else

  604. MaxDist = 1

  605. end

  606. local PastThreshold = (Foot.Position - Target.Position).Magnitude > MaxDist

  607. local PastTick = tick() - FootUpdateDebounce >= 2

  608. if PastThreshold or PastTick then

  609. FootUpdateDebounce = tick()

  610. end

  611. return PastThreshold or PastTick

  612. end

  613. local function FootYield()

  614. local RightFooting = VirtualRig.RightFoot.BodyPosition

  615. local LeftFooting = VirtualRig.LeftFoot.BodyPosition

  616. local LowerTorso = VirtualRig.LowerTorso

  617. local Yield = tick()

  618. repeat

  619. RunService.Stepped:Wait()

  620. if

  621. (LowerTorso.Position - RightFooting.Position).Y > 4 or

  622. (LowerTorso.Position - LeftFooting.Position).Y > 4 or

  623. ((LowerTorso.Position - RightFooting.Position) * Vector3.new(1, 0, 1)).Magnitude > 4 or

  624. ((LowerTorso.Position - LeftFooting.Position) * Vector3.new(1, 0, 1)).Magnitude > 4

  625. then

  626. break

  627. end

  628. until tick() - Yield >= .17

  629. end

  630. local function UpdateFooting()

  631. if not VirtualRig:FindFirstChild("LowerTorso") then

  632. wait()

  633. return

  634. end

  635. local Floor, FloorPosition, FloorNormal, Dist = FloorRay(VirtualRig.LowerTorso, 3)

  636. Dist = math.clamp(Dist, 0, 5)

  637. local FootTarget =

  638. VirtualRig.LowerTorso.CFrame * CFrame.new(FootPlacementSettings.RightOffset) - Vector3.new(0, Dist, 0) +

  639. Character.Humanoid.MoveDirection * (VirtualBody.Humanoid.WalkSpeed / 8) * 2

  640. if FootReady(VirtualRig.RightFoot, FootTarget) then

  641. VirtualRig.RightFoot.BodyPosition.Position = FootTarget.p

  642. VirtualRig.RightFoot.BodyGyro.CFrame = Flatten(VirtualRig.LowerTorso.CFrame)

  643. end

  644. FootYield()

  645. local FootTarget =

  646. VirtualRig.LowerTorso.CFrame * CFrame.new(FootPlacementSettings.LeftOffset) - Vector3.new(0, Dist, 0) +

  647. Character.Humanoid.MoveDirection * (VirtualBody.Humanoid.WalkSpeed / 8) * 2

  648. if FootReady(VirtualRig.LeftFoot, FootTarget) then

  649. VirtualRig.LeftFoot.BodyPosition.Position = FootTarget.p

  650. VirtualRig.LeftFoot.BodyGyro.CFrame = Flatten(VirtualRig.LowerTorso.CFrame)

  651. end

  652. end

  653. local function UpdateTorsoPosition()

  654. if not RagdollEnabled then

  655. if TorsoHandle then

  656. local Positioning = VirtualRig.UpperTorso.CFrame

  657. if not TorsoGrip or not TorsoGrip.Parent then

  658. TorsoGrip = CreateRightGrip(TorsoHandle)

  659. end

  660. local Parent = TorsoGrip.Parent

  661. TorsoGrip.C1 = CFrame.new()

  662. TorsoGrip.C0 =

  663. TorsoGrip.C0:Lerp(

  664. WeldBase.CFrame:ToObjectSpace(Positioning * CFrame.new(0, -0.25, 0) * AccessorySettings.LimbOffset),

  665. Smoothness

  666. )

  667. TorsoGrip.Parent = nil

  668. TorsoGrip.Parent = Parent

  669. end

  670. else

  671. local Positioning = VirtualRig.UpperTorso.CFrame

  672. MoveTorso(Positioning * CFrame.new(0, -0.25, 0))

  673. MoveRoot(Positioning * CFrame.new(0, -0.25, 0))

  674. end

  675. end

  676. local function UpdateLegPosition()

  677. if not RagdollEnabled then

  678. if RightHipHandle then

  679. local Positioning =

  680. VirtualRig.RightLowerLeg.CFrame:Lerp(VirtualRig.RightFoot.CFrame, 0.5) + Vector3.new(0, 0.5, 0)

  681. if not RightHipHandle or not RightHipHandle.Parent then

  682. RightLegGrip = CreateRightGrip(RightHipHandle)

  683. end

  684. local Parent = RightLegGrip.Parent

  685. RightLegGrip.C1 = CFrame.new()

  686. RightLegGrip.C0 =

  687. RightLegGrip.C0:Lerp(

  688. WeldBase.CFrame:ToObjectSpace(Positioning * AccessorySettings.LimbOffset),

  689. Smoothness

  690. )

  691. RightLegGrip.Parent = nil

  692. RightLegGrip.Parent = Parent

  693. end

  694. if LeftHipHandle then

  695. local Positioning =

  696. VirtualRig.LeftLowerLeg.CFrame:Lerp(VirtualRig.LeftFoot.CFrame, 0.5) + Vector3.new(0, 0.5, 0)

  697. if not LeftLegGrip or not LeftLegGrip.Parent then

  698. LeftLegGrip = CreateRightGrip(LeftHipHandle)

  699. end

  700. local Parent = LeftLegGrip.Parent

  701. LeftLegGrip.C1 = CFrame.new()

  702. LeftLegGrip.C0 =

  703. LeftLegGrip.C0:Lerp(

  704. WeldBase.CFrame:ToObjectSpace(Positioning * AccessorySettings.LimbOffset),

  705. Smoothness

  706. )

  707. LeftLegGrip.Parent = nil

  708. LeftLegGrip.Parent = Parent

  709. end

  710. else

  711. do

  712. local Positioning =

  713. VirtualRig.RightLowerLeg.CFrame:Lerp(VirtualRig.RightFoot.CFrame, 0.5) *

  714. CFrame.Angles(0, math.rad(180), 0) +

  715. Vector3.new(0, 0.5, 0)

  716. MoveRightLeg(Positioning)

  717. end

  718. do

  719. local Positioning =

  720. VirtualRig.LeftLowerLeg.CFrame:Lerp(VirtualRig.LeftFoot.CFrame, 0.5) *

  721. CFrame.Angles(0, math.rad(180), 0) +

  722. Vector3.new(0, 0.5, 0)

  723. MoveLeftLeg(Positioning)

  724. end

  725. end

  726. end

  727. warn("VRReady is", VRReady)

  728. local function OnUserCFrameChanged(UserCFrame, Positioning, IgnoreTorso)

  729. local Positioning = Camera.CFrame * Positioning

  730. if not IgnoreTorso then

  731. UpdateTorsoPosition()

  732. UpdateLegPosition()

  733. end

  734. if not RagdollEnabled then

  735. if UserCFrame == Enum.UserCFrame.Head and AccessorySettings.Head then

  736. for _, Table in next, HeadAccessories do

  737. local Handle, RightGrip, HatAtt, HeadAtt, BasePart = unpack(Table)

  738. local LocalPositioning = Positioning

  739. if not RightGrip or not RightGrip.Parent then

  740. RightGrip = CreateRightGrip(Handle)

  741. Table[2] = RightGrip

  742. end

  743. local Parent = RightGrip.Parent

  744. if BasePart then

  745. LocalPositioning = BasePart.CFrame * HeadAtt

  746. end

  747. RightGrip.C1 = HatAtt

  748. RightGrip.C0 = RightGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(LocalPositioning), Smoothness)

  749. RightGrip.Parent = nil

  750. RightGrip.Parent = Parent

  751. end

  752. elseif RightHandle and UserCFrame == Enum.UserCFrame.RightHand and AccessorySettings.RightArm then

  753. local HandPosition = Positioning

  754. local LocalPositioning = Positioning

  755. if not RightHandGrip or not RightHandGrip.Parent then

  756. RightHandGrip = CreateRightGrip(RightHandle)

  757. end

  758. if AccurateHandPosition then

  759. HandPosition = HandPosition * CFrame.new(0, 0, 1)

  760. end

  761. if not VRReady then

  762. local HeadRotation = Camera.CFrame - Camera.CFrame.p

  763. HandPosition =

  764. VirtualRig.RightUpperArm.CFrame:Lerp(VirtualRig.RightLowerArm.CFrame, 0.5) *

  765. AccessorySettings.LimbOffset

  766. --LocalPositioning = (HeadRotation + (HandPosition * CFrame.new(0, 0, 1)).p) * CFrame.Angles(math.rad(-45), 0, 0)

  767. LocalPositioning = HandPosition * CFrame.new(0, 0, 1) * CFrame.Angles(math.rad(-180), 0, 0)

  768. if Point2 then

  769. VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)

  770. VirtualRig.RightUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset

  771. elseif VirtualRig.RightUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then

  772. VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)

  773. end

  774. elseif AccurateHandPosition then

  775. LocalPositioning = HandPosition

  776. end

  777. local Parent = RightHandGrip.Parent

  778. RightHandGrip.C1 = CFrame.new()

  779. RightHandGrip.C0 = RightHandGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(HandPosition), Smoothness)

  780. RightHandGrip.Parent = nil

  781. RightHandGrip.Parent = Parent

  782. --

  783. local EquippedTool = GetExtraTool()

  784. if EquippedTool and EquippedTool:FindFirstChild("Handle") then

  785. local EquippedGrip = GetGripForHandle(EquippedTool.Handle)

  786. local Parent = EquippedGrip.Parent

  787. local ArmBaseCFrame = ArmBase.CFrame

  788. if ArmBase.Name == "Right Arm" then

  789. ArmBaseCFrame = ArmBaseCFrame

  790. end

  791. EquippedGrip.C1 = EquippedTool.Grip

  792. EquippedGrip.C0 = EquippedGrip.C0:Lerp(ArmBaseCFrame:ToObjectSpace(LocalPositioning), Smoothness)

  793. EquippedGrip.Parent = nil

  794. EquippedGrip.Parent = Parent

  795. end

  796. elseif LeftHandle and UserCFrame == Enum.UserCFrame.LeftHand and AccessorySettings.LeftArm then

  797. local HandPosition = Positioning

  798. if not LeftHandGrip or not LeftHandGrip.Parent then

  799. LeftHandGrip = CreateRightGrip(LeftHandle)

  800. end

  801. if AccurateHandPosition then

  802. HandPosition = HandPosition * CFrame.new(0, 0, 1)

  803. end

  804. if not VRReady then

  805. HandPosition =

  806. VirtualRig.LeftUpperArm.CFrame:Lerp(VirtualRig.LeftLowerArm.CFrame, 0.5) *

  807. AccessorySettings.LimbOffset

  808. --warn("Setting HandPosition to hands")

  809. if Point1 then

  810. VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)

  811. VirtualRig.LeftUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset

  812. elseif VirtualRig.LeftUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then

  813. VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)

  814. end

  815. end

  816. local Parent = LeftHandGrip.Parent

  817. LeftHandGrip.C1 = CFrame.new()

  818. LeftHandGrip.C0 = LeftHandGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(HandPosition), Smoothness)

  819. LeftHandGrip.Parent = nil

  820. LeftHandGrip.Parent = Parent

  821. end

  822. end

  823. if RagdollEnabled then

  824. if UserCFrame == Enum.UserCFrame.Head and RagdollHeadMovement then

  825. MoveHead(Positioning)

  826. elseif UserCFrame == Enum.UserCFrame.RightHand then

  827. local Positioning = Positioning

  828. if not VRReady then

  829. Positioning = VirtualRig.RightUpperArm.CFrame:Lerp(VirtualRig.RightLowerArm.CFrame, 0.5)

  830. elseif AccurateHandPosition then

  831. Positioning = Positioning * CFrame.new(0, 0, 1)

  832. end

  833. if VRReady then

  834. Positioning = Positioning * AccessorySettings.LimbOffset

  835. end

  836. MoveRightArm(Positioning)

  837. if Point2 then

  838. VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)

  839. VirtualRig.RightUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset

  840. elseif VirtualRig.RightUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then

  841. VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)

  842. end

  843. elseif UserCFrame == Enum.UserCFrame.LeftHand then

  844. local Positioning = Positioning

  845. if not VRReady then

  846. Positioning = VirtualRig.LeftUpperArm.CFrame:Lerp(VirtualRig.LeftLowerArm.CFrame, 0.5)

  847. elseif AccurateHandPosition then

  848. Positioning = Positioning * CFrame.new(0, 0, 1)

  849. end

  850. if VRReady then

  851. Positioning = Positioning * AccessorySettings.LimbOffset

  852. end

  853. MoveLeftArm(Positioning)

  854. if Point1 then

  855. VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)

  856. VirtualRig.LeftUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset

  857. elseif VirtualRig.LeftUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then

  858. VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)

  859. end

  860. end

  861. end

  862. if UserCFrame == Enum.UserCFrame.Head then

  863. VirtualRig.Head.CFrame = Positioning

  864. elseif UserCFrame == Enum.UserCFrame.RightHand and VRReady then

  865. VirtualRig.RightHand.CFrame = Positioning

  866. elseif UserCFrame == Enum.UserCFrame.LeftHand and VRReady then

  867. VirtualRig.LeftHand.CFrame = Positioning

  868. end

  869. if not VRReady and VirtualRig.LeftHand.Anchored then

  870. VirtualRig.RightHand.Anchored = false

  871. VirtualRig.LeftHand.Anchored = false

  872. elseif VRReady and not VirtualRig.LeftHand.Anchored then

  873. VirtualRig.RightHand.Anchored = true

  874. VirtualRig.LeftHand.Anchored = true

  875. end

  876. end

  877. local CFrameChanged = VRService.UserCFrameChanged:Connect(OnUserCFrameChanged)

  878. local OnStepped =

  879. RunService.Stepped:Connect(

  880. function()

  881. for _, Part in pairs(VirtualRig:GetChildren()) do

  882. if Part:IsA("BasePart") then

  883. Part.CanCollide = false

  884. end

  885. end

  886. if RagdollEnabled then

  887. for _, Part in pairs(Character:GetChildren()) do

  888. if Part:IsA("BasePart") then

  889. Part.CanCollide = false

  890. end

  891. end

  892. end

  893. if NoCollision then

  894. for _, Player in pairs(Players:GetPlayers()) do

  895. if Player ~= Client and Player.Character then

  896. local Descendants = Player.Character:GetDescendants()

  897. for i = 1, #Descendants do

  898. local Part = Descendants[i]

  899. if Part:IsA("BasePart") then

  900. Part.CanCollide = false

  901. Part.Velocity = Vector3.new()

  902. Part.RotVelocity = Vector3.new()

  903. end

  904. end

  905. end

  906. end

  907. end

  908. end

  909. )

  910. local OnRenderStepped =

  911. RunService.Stepped:Connect(

  912. function()

  913. Camera.CameraSubject = VirtualBody.Humanoid

  914. if RagdollEnabled then

  915. Character.HumanoidRootPart.CFrame = VirtualRig.UpperTorso.CFrame

  916. --Character.HumanoidRootPart.Velocity = Vector3.new(0, 0, 0)

  917. end

  918. if not VRReady then

  919. OnUserCFrameChanged(Enum.UserCFrame.Head, CFrame.new(0, 0, 0))

  920. OnUserCFrameChanged(Enum.UserCFrame.RightHand, CFrame.new(0, 0, 0), true)

  921. OnUserCFrameChanged(Enum.UserCFrame.LeftHand, CFrame.new(0, 0, 0), true)

  922. end

  923. end

  924. )

  925. spawn(

  926. function()

  927. while Character and Character.Parent do

  928. FootYield()

  929. UpdateFooting()

  930. end

  931. end

  932. )

  933. --[[

  934. Non-VR Support + VR Mechanics

  935. --]]

  936. local OnInput =

  937. UserInputService.InputBegan:Connect(

  938. function(Input, Processed)

  939. if not Processed then

  940. if Input.KeyCode == Enum.KeyCode.LeftControl or Input.KeyCode == Enum.KeyCode.ButtonL2 then

  941. Tween(

  942. VirtualBody.Humanoid,

  943. "Elastic",

  944. "Out",

  945. 1,

  946. {

  947. CameraOffset = Vector3.new(0, StudsOffset - 1.5, 0)

  948. }

  949. )

  950. end

  951. if Input.KeyCode == Enum.KeyCode.X then

  952. if RagdollEnabled and RagdollHeadMovement then

  953. --Network:Unclaim()

  954. Respawn()

  955. end

  956. end

  957. if Input.KeyCode == Enum.KeyCode.C then

  958. VirtualBody:MoveTo(Mouse.Hit.p)

  959. VirtualRig:MoveTo(Mouse.Hit.p)

  960. end

  961. end

  962. if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.ButtonR2 then

  963. Tween(

  964. VirtualBody.Humanoid,

  965. "Sine",

  966. "Out",

  967. 1,

  968. {

  969. WalkSpeed = 16

  970. }

  971. )

  972. end

  973. if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton1 then

  974. Point1 = true

  975. end

  976. if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton2 then

  977. Point2 = true

  978. end

  979. if VRReady and Input.KeyCode == Enum.KeyCode.ButtonY then

  980. Character:BreakJoints()

  981. if RagdollEnabled and RagdollHeadMovement then

  982. --Network:Unclaim()

  983. Respawn()

  984. end

  985. end

  986. end

  987. )

  988. local OnInputEnded =

  989. UserInputService.InputEnded:Connect(

  990. function(Input, Processed)

  991. if not Processed then

  992. if Input.KeyCode == Enum.KeyCode.LeftControl or Input.KeyCode == Enum.KeyCode.ButtonL2 then

  993. Tween(

  994. VirtualBody.Humanoid,

  995. "Elastic",

  996. "Out",

  997. 1,

  998. {

  999. CameraOffset = Vector3.new(0, StudsOffset, 0)

  1000. }

  1001. )

  1002. end

  1003. end

  1004. if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.ButtonR2 then

  1005. Tween(

  1006. VirtualBody.Humanoid,

  1007. "Sine",

  1008. "Out",

  1009. 1,

  1010. {

  1011. WalkSpeed = 8

  1012. }

  1013. )

  1014. end

  1015. if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton1 then

  1016. Point1 = false

  1017. end

  1018. if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton2 then

  1019. Point2 = false

  1020. end

  1021. end

  1022. )

  1023. --[[

  1024. Proper Cleanup

  1025. --]]

  1026. local OnReset

  1027. OnReset =

  1028. Client.CharacterAdded:Connect(

  1029. function()

  1030. OnReset:Disconnect()

  1031. CFrameChanged:Disconnect()

  1032. OnStepped:Disconnect()

  1033. OnRenderStepped:Disconnect()

  1034. OnMoving:Disconnect()

  1035. OnInput:Disconnect()

  1036. OnInputEnded:Disconnect()

  1037. VirtualRig:Destroy()

  1038. VirtualBody:Destroy()

  1039. if RagdollEnabled then

  1040. --Network:Unclaim()

  1041. end

  1042. if AutoRun then

  1043. delay(

  1044. 2,

  1045. function()

  1046. Script()

  1047. end

  1048. )

  1049. end

  1050. end

  1051. )

  1052. if ChatEnabled then

  1053. spawn(ChatHUDFunc)

  1054. end

  1055. if ViewportEnabled then

  1056. spawn(ViewHUDFunc)

  1057. end

  1058. do

  1059. --[[

  1060. Functions

  1061. --]]

  1062. local Players = game:GetService("Players")

  1063. local Client = Players.LocalPlayer

  1064. local VRService = game:GetService("VRService")

  1065. local VRReady = VRService.VREnabled

  1066. local UserInputService = game:GetService("UserInputService")

  1067. local RunService = game:GetService("RunService")

  1068. local Camera = workspace.CurrentCamera

  1069. --[[

  1070. Code

  1071. --]]

  1072. if VRReady then

  1073. local Pointer = game:GetObjects("rbxassetid://4476173280")[1]

  1074. Pointer.Parent = workspace

  1075. Pointer.Beam.Enabled = false

  1076. Pointer.Target.ParticleEmitter.Enabled = false

  1077. local RenderStepped =

  1078. RunService.RenderStepped:Connect(

  1079. function()

  1080. if Pointer.Beam.Enabled then

  1081. local RightHand = Camera.CFrame * VRService:GetUserCFrame(Enum.UserCFrame.RightHand)

  1082. local Target = RightHand * CFrame.new(0, 0, -10)

  1083. local Line = Ray.new(RightHand.p, (Target.p - RightHand.p).Unit * 128)

  1084. local Part, Position =

  1085. workspace:FindPartOnRayWithIgnoreList(Line, {VirtualRig, VirtualBody, Character, Pointer})

  1086. local Distance = (Position - RightHand.p).Magnitude

  1087. Pointer.Target.Position = Vector3.new(0, 0, -Distance)

  1088. Pointer.CFrame = RightHand

  1089. end

  1090. end

  1091. )

  1092. local Input =

  1093. UserInputService.InputBegan:Connect(

  1094. function(Input)

  1095. if Input.KeyCode == Enum.KeyCode.ButtonB then

  1096. Pointer.Beam.Enabled = not Pointer.Beam.Enabled

  1097. Pointer.Target.ParticleEmitter.Enabled = not Pointer.Target.ParticleEmitter.Enabled

  1098. end

  1099. end

  1100. )

  1101. --

  1102. local CharacterAdded

  1103. CharacterAdded =

  1104. Client.CharacterAdded:Connect(

  1105. function()

  1106. RenderStepped:Disconnect()

  1107. Input:Disconnect()

  1108. CharacterAdded:Disconnect()

  1109. Pointer:Destroy()

  1110. Pointer = nil

  1111. end

  1112. )

  1113. else

  1114. return

  1115. end

  1116. end

  1117. end

  1118. Permadeath = function()

  1119. local ch = game.Players.LocalPlayer.Character

  1120. local prt = Instance.new("Model", workspace)

  1121. local z1 = Instance.new("Part", prt)

  1122. z1.Name = "Torso"

  1123. z1.CanCollide = false

  1124. z1.Anchored = true

  1125. local z2 = Instance.new("Part", prt)

  1126. z2.Name = "Head"

  1127. z2.Anchored = true

  1128. z2.CanCollide = false

  1129. local z3 = Instance.new("Humanoid", prt)

  1130. z3.Name = "Humanoid"

  1131. z1.Position = Vector3.new(0, 9999, 0)

  1132. z2.Position = Vector3.new(0, 9991, 0)

  1133. game.Players.LocalPlayer.Character = prt

  1134. wait(game.Players.RespawnTime/2)

  1135. warn("50%")

  1136. game.Players.LocalPlayer.Character = ch

  1137. wait(game.Players.RespawnTime/2 + 0.5)

  1138. warn("100%")

  1139. end

  1140. Respawn = function()

  1141. local ch = game.Players.LocalPlayer.Character

  1142. local prt = Instance.new("Model", workspace)

  1143. local z1 = Instance.new("Part", prt)

  1144. z1.Name = "Torso"

  1145. z1.CanCollide = false

  1146. z1.Anchored = true

  1147. local z2 = Instance.new("Part", prt)

  1148. z2.Name = "Head"

  1149. z2.Anchored = true

  1150. z2.CanCollide = false

  1151. local z3 = Instance.new("Humanoid", prt)

  1152. z3.Name = "Humanoid"

  1153. z1.Position = Vector3.new(0, 9999, 0)

  1154. z2.Position = Vector3.new(0, 9991, 0)

  1155. game.Players.LocalPlayer.Character = prt

  1156. wait(game.Players.RespawnTime)

  1157. game.Players.LocalPlayer.Character = ch

  1158. end

  1159. ChatHUDFunc = function()

  1160. --[[

  1161. Variables

  1162. --]]

  1163. local UserInputService = game:GetService("UserInputService")

  1164. local RunService = game:GetService("RunService")

  1165. local VRService = game:GetService("VRService")

  1166. local VRReady = VRService.VREnabled

  1167. local Players = game:GetService("Players")

  1168. local Client = Players.LocalPlayer

  1169. local ChatHUD = game:GetObjects("rbxassetid://4476067885")[1]

  1170. local GlobalFrame = ChatHUD.GlobalFrame

  1171. local Template = GlobalFrame.Template

  1172. local LocalFrame = ChatHUD.LocalFrame

  1173. local Global = ChatHUD.Global

  1174. local Local = ChatHUD.Local

  1175. local Camera = workspace.CurrentCamera

  1176. Template.Parent = nil

  1177. ChatHUD.Parent = game:GetService("CoreGui")

  1178. --[[

  1179. Code

  1180. --]]

  1181. local Highlight = Global.Frame.BackgroundColor3

  1182. local Deselected = Local.Frame.BackgroundColor3

  1183. local OpenGlobalTab = function()

  1184. Global.Frame.BackgroundColor3 = Highlight

  1185. Local.Frame.BackgroundColor3 = Deselected

  1186. Global.Font = Enum.Font.SourceSansBold

  1187. Local.Font = Enum.Font.SourceSans

  1188. GlobalFrame.Visible = true

  1189. LocalFrame.Visible = false

  1190. end

  1191. local OpenLocalTab = function()

  1192. Global.Frame.BackgroundColor3 = Deselected

  1193. Local.Frame.BackgroundColor3 = Highlight

  1194. Global.Font = Enum.Font.SourceSans

  1195. Local.Font = Enum.Font.SourceSansBold

  1196. GlobalFrame.Visible = false

  1197. LocalFrame.Visible = true

  1198. end

  1199. Global.MouseButton1Down:Connect(OpenGlobalTab)

  1200. Local.MouseButton1Down:Connect(OpenLocalTab)

  1201. Global.MouseButton1Click:Connect(OpenGlobalTab)

  1202. Local.MouseButton1Click:Connect(OpenLocalTab)

  1203. OpenLocalTab()

  1204. --

  1205. local function GetPlayerDistance(Sender)

  1206. if Sender.Character and Sender.Character:FindFirstChild("Head") then

  1207. return math.floor((Sender.Character.Head.Position - Camera:GetRenderCFrame().p).Magnitude + 0.5)

  1208. end

  1209. end

  1210. local function NewGlobal(Message, Sender, Color)

  1211. local Frame = Template:Clone()

  1212. Frame.Text = ("[%s]: %s"):format(Sender.Name, Message)

  1213. Frame.User.Text = ("[%s]:"):format(Sender.Name)

  1214. Frame.User.TextColor3 = Color

  1215. Frame.BackgroundColor3 = Color

  1216. Frame.Parent = GlobalFrame

  1217. delay(

  1218. 60,

  1219. function()

  1220. Frame:Destroy()

  1221. end

  1222. )

  1223. end

  1224. local function NewLocal(Message, Sender, Color, Dist)

  1225. local Frame = Template:Clone()

  1226. Frame.Text = ("(%s) [%s]: %s"):format(tostring(Dist), Sender.Name, Message)

  1227. Frame.User.Text = ("(%s) [%s]:"):format(tostring(Dist), Sender.Name)

  1228. Frame.User.TextColor3 = Color

  1229. Frame.BackgroundColor3 = Color

  1230. Frame.Parent = LocalFrame

  1231. delay(

  1232. 60,

  1233. function()

  1234. Frame:Destroy()

  1235. end

  1236. )

  1237. end

  1238. local function OnNewChat(Message, Sender, Color)

  1239. if not ChatHUD or not ChatHUD.Parent then

  1240. return

  1241. end

  1242. NewGlobal(Message, Sender, Color)

  1243. local Distance = GetPlayerDistance(Sender)

  1244. if Distance and Distance <= ChatLocalRange then

  1245. NewLocal(Message, Sender, Color, Distance)

  1246. end

  1247. end

  1248. local function OnPlayerAdded(Player)

  1249. if not ChatHUD or not ChatHUD.Parent then

  1250. return

  1251. end

  1252. local Color = BrickColor.Random().Color

  1253. Player.Chatted:Connect(

  1254. function(Message)

  1255. OnNewChat(Message, Player, Color)

  1256. end

  1257. )

  1258. end

  1259. Players.PlayerAdded:Connect(OnPlayerAdded)

  1260. for _, Player in pairs(Players:GetPlayers()) do

  1261. OnPlayerAdded(Player)

  1262. end

  1263. --

  1264. local ChatPart = ChatHUD.Part

  1265. ChatHUD.Adornee = ChatPart

  1266. if VRReady then

  1267. ChatHUD.Parent = game:GetService("CoreGui")

  1268. ChatHUD.Enabled = true

  1269. ChatHUD.AlwaysOnTop = true

  1270. local OnInput =

  1271. UserInputService.InputBegan:Connect(

  1272. function(Input, Processed)

  1273. if not Processed then

  1274. if Input.KeyCode == Enum.KeyCode.ButtonX then

  1275. ChatHUD.Enabled = not ChatHUD.Enabled

  1276. end

  1277. end

  1278. end

  1279. )

  1280. local RenderStepped =

  1281. RunService.RenderStepped:Connect(

  1282. function()

  1283. local LeftHand = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)

  1284. ChatPart.CFrame = Camera.CFrame * LeftHand

  1285. end

  1286. )

  1287. local CharacterAdded

  1288. CharacterAdded =

  1289. Client.CharacterAdded:Connect(

  1290. function()

  1291. OnInput:Disconnect()

  1292. RenderStepped:Disconnect()

  1293. CharacterAdded:Disconnect()

  1294. ChatHUD:Destroy()

  1295. ChatHUD = nil

  1296. end

  1297. )

  1298. end

  1299. wait(9e9)

  1300. end

  1301. ViewHUDFunc = function()

  1302. --[[

  1303. Variables

  1304. --]]

  1305. local ViewportRange = ViewportRange or 32

  1306. local UserInputService = game:GetService("UserInputService")

  1307. local RunService = game:GetService("RunService")

  1308. local VRService = game:GetService("VRService")

  1309. local VRReady = VRService.VREnabled

  1310. local Players = game:GetService("Players")

  1311. local Client = Players.LocalPlayer

  1312. local Mouse = Client:GetMouse()

  1313. local Camera = workspace.CurrentCamera

  1314. local CameraPort = Camera.CFrame

  1315. local ViewHUD = script:FindFirstChild("ViewHUD") or game:GetObjects("rbxassetid://4480405425")[1]

  1316. local Viewport = ViewHUD.Viewport

  1317. local Viewcam = Instance.new("Camera")

  1318. local ViewPart = ViewHUD.Part

  1319. ViewHUD.Parent = game:GetService("CoreGui")

  1320. Viewcam.Parent = Viewport

  1321. Viewcam.CameraType = Enum.CameraType.Scriptable

  1322. Viewport.CurrentCamera = Viewcam

  1323. Viewport.BackgroundTransparency = 1

  1324. --[[

  1325. Code

  1326. --]]

  1327. local function Clone(Character)

  1328. local Arc = Character.Archivable

  1329. local Clone

  1330. Character.Archivable = true

  1331. Clone = Character:Clone()

  1332. Character.Archivable = Arc

  1333. return Clone

  1334. end

  1335. local function GetPart(Name, Parent, Descendants)

  1336. for i = 1, #Descendants do

  1337. local Part = Descendants[i]

  1338. if Part.Name == Name and Part.Parent.Name == Parent then

  1339. return Part

  1340. end

  1341. end

  1342. end

  1343. local function OnPlayerAdded(Player)

  1344. if not ViewHUD or not ViewHUD.Parent then

  1345. return

  1346. end

  1347. local function CharacterAdded(Character)

  1348. if not ViewHUD or not ViewHUD.Parent then

  1349. return

  1350. end

  1351. Character:WaitForChild("Head")

  1352. Character:WaitForChild("Humanoid")

  1353. wait(3)

  1354. local FakeChar = Clone(Character)

  1355. local Root = FakeChar:FindFirstChild("HumanoidRootPart") or FakeChar:FindFirstChild("Head")

  1356. local RenderConnection

  1357. local Descendants = FakeChar:GetDescendants()

  1358. local RealDescendants = Character:GetDescendants()

  1359. local Correspondents = {}

  1360. FakeChar.Humanoid.DisplayDistanceType = "None"

  1361. for i = 1, #Descendants do

  1362. local Part = Descendants[i]

  1363. local Real = Part:IsA("BasePart") and GetPart(Part.Name, Part.Parent.Name, RealDescendants)

  1364. if Part:IsA("BasePart") and Real then

  1365. Part.Anchored = true

  1366. Part:BreakJoints()

  1367. if Part.Parent:IsA("Accessory") then

  1368. Part.Transparency = 0

  1369. end

  1370. table.insert(Correspondents, {Part, Real})

  1371. end

  1372. end

  1373. RenderConnection =

  1374. RunService.RenderStepped:Connect(

  1375. function()

  1376. if not Character or not Character.Parent then

  1377. RenderConnection:Disconnect()

  1378. FakeChar:Destroy()

  1379. return

  1380. end

  1381. if

  1382. (Root and (Root.Position - Camera.CFrame.p).Magnitude <= ViewportRange) or Player == Client or

  1383. not Root

  1384. then

  1385. for i = 1, #Correspondents do

  1386. local Part, Real = unpack(Correspondents[i])

  1387. if Part and Real and Part.Parent and Real.Parent then

  1388. Part.CFrame = Real.CFrame

  1389. elseif Part.Parent and not Real.Parent then

  1390. Part:Destroy()

  1391. end

  1392. end

  1393. end

  1394. end

  1395. )

  1396. FakeChar.Parent = Viewcam

  1397. end

  1398. Player.CharacterAdded:Connect(CharacterAdded)

  1399. if Player.Character then

  1400. spawn(

  1401. function()

  1402. CharacterAdded(Player.Character)

  1403. end

  1404. )

  1405. end

  1406. end

  1407. local PlayerAdded = Players.PlayerAdded:Connect(OnPlayerAdded)

  1408. for _, Player in pairs(Players:GetPlayers()) do

  1409. OnPlayerAdded(Player)

  1410. end

  1411. ViewPart.Size = Vector3.new()

  1412. if VRReady then

  1413. Viewport.Position = UDim2.new(.62, 0, .89, 0)

  1414. Viewport.Size = UDim2.new(.3, 0, .3, 0)

  1415. Viewport.AnchorPoint = Vector2.new(.5, 1)

  1416. else

  1417. Viewport.Size = UDim2.new(0.3, 0, 0.3, 0)

  1418. end

  1419. local RenderStepped =

  1420. RunService.RenderStepped:Connect(

  1421. function()

  1422. local Render = Camera.CFrame

  1423. local Scale = Camera.ViewportSize

  1424. if VRReady then

  1425. Render = Render * VRService:GetUserCFrame(Enum.UserCFrame.Head)

  1426. end

  1427. CameraPort = CFrame.new(Render.p + Vector3.new(5, 2, 0), Render.p)

  1428. Viewport.Camera.CFrame = CameraPort

  1429. ViewPart.CFrame = Render * CFrame.new(0, 0, -16)

  1430. ViewHUD.Size = UDim2.new(0, Scale.X - 6, 0, Scale.Y - 6)

  1431. end

  1432. )

  1433. --

  1434. local CharacterAdded

  1435. CharacterAdded =

  1436. Client.CharacterAdded:Connect(

  1437. function()

  1438. RenderStepped:Disconnect()

  1439. CharacterAdded:Disconnect()

  1440. PlayerAdded:Disconnect()

  1441. ViewHUD:Destroy()

  1442. ViewHUD = nil

  1443. end

  1444. )

  1445. ------------------------Part of modification------------------------

  1446. for i,v in pairs(character1:GetDescendants()) do

  1447. if v:IsA("Motor6D") then

  1448. v:Destroy()

  1449. end

  1450. end

  1451. if character1.Humanoid.RigType == Enum.HumanoidRigType.R15 then

  1452. character1:BreakJoints()

  1453. end

  1454. for i,v in pairs(reanimation:GetChildren()) do

  1455. if v:IsA("BasePart") then

  1456. v.Anchored = false

  1457. end

  1458. end

  1459. game:GetService("RunService").Heartbeat:Connect(function()

  1460. for i,v in pairs(character1:GetChildren()) do

  1461. if v:IsA("BasePart") then

  1462. v.Velocity = Vector3.new(bodyVelocity[1], bodyVelocity[2], bodyVelocity[3])

  1463. if character1.Humanoid.RigType == Enum.HumanoidRigType.R6 then

  1464. v.CFrame = reanimation:FindFirstChild(v.Name).CFrame

  1465. else

  1466. --Head

  1467. if character1:FindFirstChild("Head") then

  1468. character1.Head.CFrame = reanimation.Head.CFrame

  1469. end

  1470. --Torso

  1471. if character1:FindFirstChild("UpperTorso") then

  1472. character1.UpperTorso.CFrame = reanimation.Torso.CFrame * CFrame.new(0, 0.185, 0)

  1473. end

  1474. if character1:FindFirstChild("LowerTorso") then

  1475. character1.LowerTorso.CFrame = reanimation.Torso.CFrame * CFrame.new(0, -0.8, 0)

  1476. end

  1477. --HumanoidRootPart

  1478. if character1:FindFirstChild("HumanoidRootPart") then

  1479. character1.HumanoidRootPart.CFrame = cHRP.CFrame

  1480. end

  1481. --Left Arm

  1482. if character1:FindFirstChild("LeftUpperArm") then

  1483. character1.LeftUpperArm.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, 0.4, 0)

  1484. end

  1485. if character1:FindFirstChild("LeftLowerArm") then

  1486. character1.LeftLowerArm.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, -0.19, 0)

  1487. end

  1488. if character1:FindFirstChild("LeftHand") then

  1489. character1.LeftHand.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, -0.84, 0)

  1490. end

  1491. --Right Arm

  1492. if character1:FindFirstChild("RightUpperArm") then

  1493. character1.RightUpperArm.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, 0.4, 0)

  1494. end

  1495. if character1:FindFirstChild("RightLowerArm") then

  1496. character1.RightLowerArm.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, -0.19, 0)

  1497. end

  1498. if character1:FindFirstChild("RightHand") then

  1499. character1.RightHand.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, -0.84, 0)

  1500. end

  1501. --Left Leg

  1502. if character1:FindFirstChild("LeftUpperLeg") then

  1503. character1.LeftUpperLeg.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, 0.55, 0)

  1504. end

  1505. if character1:FindFirstChild("LeftLowerLeg") then

  1506. character1.LeftLowerLeg.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, -0.19, 0)

  1507. end

  1508. if character1:FindFirstChild("LeftFoot") then

  1509. character1.LeftFoot.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, -0.85, 0)

  1510. end

  1511. --Right Leg

  1512. if character1:FindFirstChild("RightUpperLeg") then

  1513. character1.RightUpperLeg.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, 0.55, 0)

  1514. end

  1515. if character1:FindFirstChild("RightLowerLeg") then

  1516. character1.RightLowerLeg.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, -0.19, 0)

  1517. end

  1518. if character1:FindFirstChild("RightFoot") then

  1519. character1.RightFoot.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, -0.85, 0)

  1520. end

  1521. end

  1522. end

  1523. if v:IsA("Accessory") then

  1524. v.Handle.Velocity = Vector3.new(hatVelocity[1], hatVelocity[2], hatVelocity[3])

  1525. v.Handle.CFrame = reanimation:FindFirstChild(v.Name).Handle.CFrame

  1526. end

  1527. end

  1528. end)

  1529. game:GetService("RunService").Stepped:Connect(function()

  1530. for i,v in pairs(reanimation:GetChildren()) do

  1531. if v:IsA("BasePart") then

  1532. v.CanCollide = false

  1533. end

  1534. end

  1535. end)

  1536. --------------------------------------------------------------------

  1537. wait(9e9)

  1538. end

  1539. Script()

  1540. wait(2)

  1541. local Players = game:GetService("Players")

  1542. local lp = Players.LocalPlayer

  1543. local character = reanimation--lp.Character

  1544. local A0LL = Instance.new("Attachment", character["Left Leg"])

  1545. A0LL.Position = Vector3.new(0, 1, 0)

  1546. local A1LL = Instance.new("Attachment", character["Torso"])

  1547. A1LL.Position = Vector3.new(-0.5, -1, 0)

  1548. local socket1 = Instance.new("BallSocketConstraint", character["Left Leg"])

  1549. socket1.Attachment0 = A0LL

  1550. socket1.Attachment1 = A1LL

  1551. local A0RL = Instance.new("Attachment", character["Right Leg"])

  1552. A0RL.Position = Vector3.new(0, 1, 0)

  1553. local A1RL = Instance.new("Attachment", character["Torso"])

  1554. A1RL.Position = Vector3.new(0.5, -1, 0)

  1555. local socket2 = Instance.new("BallSocketConstraint", character["Right Leg"])

  1556. socket2.Attachment0 = A0RL

  1557. socket2.Attachment1 = A1RL

  1558. local A0H = Instance.new("Attachment", character["Head"])

  1559. A0H.Position = Vector3.new(0, -0.5, 0)

  1560. local A1H = Instance.new("Attachment", character["Torso"])

  1561. A1H.Position = Vector3.new(0, 1, 0)

  1562. local socket5 = Instance.new("BallSocketConstraint", character["Head"])

  1563. socket5.Attachment0 = A0H

  1564. socket5.Attachment1 = A1H

  1565. --loadstring(game:HttpGet("https://ghostbin.co/paste/krmyf/raw", true))()

  1566. -----------------------------------------------------------

  1567. wait(9e9)

Fixed Clovr Vr Full Body - Pastebin.com (2024)

References

Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated:

Views: 5818

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.