Advertisement
Deyer

Reanimate

Mar 4th, 2023
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.58 KB | None | 0 0
  1. game.Players.LocalPlayer.Character["Hat1"].Handle.Mesh:Destroy()
  2. game.Players.LocalPlayer.Character["Pal Hair"].Handle.Mesh:Destroy() --Pink Hair
  3. game.Players.LocalPlayer.Character["Pink Hair"].Handle.Mesh:Destroy()
  4. game.Players.LocalPlayer.Character["Kate Hair"].Handle.Mesh:Destroy() --LavanderHair
  5. game.Players.LocalPlayer.Character["LavanderHair"].Handle.Mesh:Destroy()
  6. game.Players.LocalPlayer.Character["Robloxclassicred"].Handle.Mesh:Destroy()
  7. --VarietyShades02
  8. --TennisBall
  9.  
  10. local c = game.Players.LocalPlayer.Character
  11. for i, v in pairs({"Right Arm", "Left Arm"}) do
  12. local arm = c[v]
  13. arm.Parent = nil
  14. arm.Transparency = 1
  15. arm.Parent = c
  16. end
  17.  
  18. local c = game.Players.LocalPlayer.Character
  19. for i, v in pairs({"Right Leg", "Left Leg"}) do
  20. local Leg = c[v]
  21. Leg.Parent = nil
  22. Leg.Transparency = 1
  23. Leg.Parent = c
  24. end
  25.  
  26. local v3_net, v3_808 = Vector3.new(0, 25.1, 0), Vector3.new(8, 0, 8)
  27. local function getNetlessVelocity(realPartVelocity)
  28. local mag = realPartVelocity.Magnitude
  29. if mag > 1 then
  30. local unit = realPartVelocity.Unit
  31. if (unit.Y > 0.25) or (unit.Y < -0.75) then
  32. return unit * (25.1 / unit.Y)
  33. end
  34. end
  35. return v3_net + realPartVelocity * v3_808
  36. end
  37. local simradius = "shp" --simulation radius (net bypass) method
  38. --simulation radius (net bypass) method
  39. --"shp" - sethiddenproperty
  40. --"ssr" - setsimulationradius
  41. --false - disable
  42. local antiragdoll = true --removes hingeConstraints and ballSocketConstraints from your character
  43. local newanimate = false --disables the animate script and enables after reanimation
  44. local discharscripts = true --disables all localScripts parented to your character before reanimation
  45. local R15toR6 = true --tries to convert your character to r6 if its r15
  46. local hatcollide = true --makes hats cancollide (only method 0)
  47. local humState16 = true --enables collisions for limbs before the humanoid dies (using hum:ChangeState)
  48. local addtools = false --puts all tools from backpack to character and lets you hold them after reanimation
  49. local hedafterneck = false --disable aligns for head and enable after neck is removed
  50. local loadtime = game:GetService("Players").RespawnTime + 0.5 --anti respawn delay
  51. local method = 0 --reanimation method
  52. --methods:
  53. --0 - breakJoints (takes [loadtime] seconds to laod)
  54. --1 - limbs
  55. --2 - limbs + anti respawn
  56. --3 - limbs + breakJoints after [loadtime] seconds
  57. --4 - remove humanoid + breakJoints
  58. --5 - remove humanoid + limbs
  59. local alignmode = 3 --AlignPosition mode
  60. --modes:
  61. --1 - AlignPosition rigidity enabled true
  62. --2 - 2 AlignPositions rigidity enabled both true and false
  63. --3 - AlignPosition rigidity enabled false
  64.  
  65. healthHide = healthHide and ((method == 0) or (method == 2) or (method == 000)) and gp(c, "Head", "BasePart")
  66.  
  67. local lp = game:GetService("Players").LocalPlayer
  68. local rs = game:GetService("RunService")
  69. local stepped = rs.Stepped
  70. local heartbeat = rs.Heartbeat
  71. local renderstepped = rs.RenderStepped
  72. local sg = game:GetService("StarterGui")
  73. local ws = game:GetService("Workspace")
  74. local cf = CFrame.new
  75. local v3 = Vector3.new
  76. local v3_0 = v3(0, 0, 0)
  77. local inf = math.huge
  78.  
  79. local c = lp.Character
  80.  
  81. if not (c and c.Parent) then
  82. return
  83. end
  84.  
  85. c.Destroying:Connect(function()
  86. c = nil
  87. end)
  88.  
  89. local function gp(parent, name, className)
  90. if typeof(parent) == "Instance" then
  91. for i, v in pairs(parent:GetChildren()) do
  92. if (v.Name == name) and v:IsA(className) then
  93. return v
  94. end
  95. end
  96. end
  97. return nil
  98. end
  99.  
  100. local function align(Part0, Part1)
  101. Part0.CustomPhysicalProperties = PhysicalProperties.new(0.0001, 0.0001, 0.0001, 0.0001, 0.0001)
  102.  
  103. local att0 = Instance.new("Attachment", Part0)
  104. att0.Orientation = v3_0
  105. att0.Position = v3_0
  106. att0.Name = "att0_" .. Part0.Name
  107. local att1 = Instance.new("Attachment", Part1)
  108. att1.Orientation = v3_0
  109. att1.Position = v3_0
  110. att1.Name = "att1_" .. Part1.Name
  111.  
  112. if (alignmode == 1) or (alignmode == 2) then
  113. local ape = Instance.new("AlignPosition", att0)
  114. ape.ApplyAtCenterOfMass = false
  115. ape.MaxForce = inf
  116. ape.MaxVelocity = inf
  117. ape.ReactionForceEnabled = false
  118. ape.Responsiveness = 200
  119. ape.Attachment1 = att1
  120. ape.Attachment0 = att0
  121. ape.Name = "AlignPositionRtrue"
  122. ape.RigidityEnabled = true
  123. end
  124.  
  125. if (alignmode == 2) or (alignmode == 3) then
  126. local apd = Instance.new("AlignPosition", att0)
  127. apd.ApplyAtCenterOfMass = false
  128. apd.MaxForce = inf
  129. apd.MaxVelocity = inf
  130. apd.ReactionForceEnabled = false
  131. apd.Responsiveness = 200
  132. apd.Attachment1 = att1
  133. apd.Attachment0 = att0
  134. apd.Name = "AlignPositionRfalse"
  135. apd.RigidityEnabled = false
  136. end
  137.  
  138. local ao = Instance.new("AlignOrientation", att0)
  139. ao.MaxAngularVelocity = inf
  140. ao.MaxTorque = inf
  141. ao.PrimaryAxisOnly = false
  142. ao.ReactionTorqueEnabled = false
  143. ao.Responsiveness = 200
  144. ao.Attachment1 = att1
  145. ao.Attachment0 = att0
  146. ao.RigidityEnabled = false
  147.  
  148. if type(getNetlessVelocity) == "function" then
  149. local realVelocity = v3_0
  150. local steppedcon = stepped:Connect(function()
  151. Part0.Velocity = realVelocity
  152. end)
  153. local heartbeatcon = heartbeat:Connect(function()
  154. realVelocity = Part0.Velocity
  155. Part0.Velocity = getNetlessVelocity(realVelocity)
  156. end)
  157. Part0.Destroying:Connect(function()
  158. Part0 = nil
  159. steppedcon:Disconnect()
  160. heartbeatcon:Disconnect()
  161. end)
  162. end
  163. end
  164.  
  165. local function respawnrequest()
  166. local ccfr = ws.CurrentCamera.CFrame
  167. local c = lp.Character
  168. lp.Character = nil
  169. lp.Character = c
  170. local con = nil
  171. con = ws.CurrentCamera.Changed:Connect(function(prop)
  172. if (prop ~= "Parent") and (prop ~= "CFrame") then
  173. return
  174. end
  175. ws.CurrentCamera.CFrame = ccfr
  176. con:Disconnect()
  177. end)
  178. end
  179.  
  180. local destroyhum = (method == 4) or (method == 5)
  181. local breakjoints = (method == 0) or (method == 4)
  182. local antirespawn = (method == 0) or (method == 2) or (method == 3)
  183.  
  184. hatcollide = hatcollide and (method == 0)
  185.  
  186. addtools = addtools and gp(lp, "Backpack", "Backpack")
  187.  
  188. local fenv = getfenv()
  189. local shp = fenv.sethiddenproperty or fenv.set_hidden_property or fenv.set_hidden_prop or fenv.sethiddenprop
  190. local ssr = fenv.setsimulationradius or fenv.set_simulation_radius or fenv.set_sim_radius or fenv.setsimradius or fenv.set_simulation_rad or fenv.setsimulationrad
  191.  
  192. if shp and (simradius == "shp") then
  193. spawn(function()
  194. while c and heartbeat:Wait() do
  195. shp(lp, "SimulationRadius", inf)
  196. end
  197. end)
  198. elseif ssr and (simradius == "ssr") then
  199. spawn(function()
  200. while c and heartbeat:Wait() do
  201. ssr(inf)
  202. end
  203. end)
  204. end
  205.  
  206. antiragdoll = antiragdoll and function(v)
  207. if v:IsA("HingeConstraint") or v:IsA("BallSocketConstraint") then
  208. v.Parent = nil
  209. end
  210. end
  211.  
  212. if antiragdoll then
  213. for i, v in pairs(c:GetDescendants()) do
  214. antiragdoll(v)
  215. end
  216. c.DescendantAdded:Connect(antiragdoll)
  217. end
  218.  
  219. if antirespawn then
  220. respawnrequest()
  221. end
  222.  
  223. if method == 0 then
  224. wait(loadtime)
  225. if not c then
  226. return
  227. end
  228. end
  229.  
  230. if discharscripts then
  231. for i, v in pairs(c:GetChildren()) do
  232. if v:IsA("LocalScript") then
  233. v.Disabled = true
  234. end
  235. end
  236. elseif newanimate then
  237. local animate = gp(c, "Animate", "LocalScript")
  238. if animate and (not animate.Disabled) then
  239. animate.Disabled = true
  240. else
  241. newanimate = false
  242. end
  243. end
  244.  
  245. if addtools then
  246. for i, v in pairs(addtools:GetChildren()) do
  247. if v:IsA("Tool") then
  248. v.Parent = c
  249. end
  250. end
  251. end
  252.  
  253. pcall(function()
  254. settings().Physics.AllowSleep = false
  255. settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.Disabled
  256. end)
  257.  
  258. local OLDscripts = {}
  259.  
  260. for i, v in pairs(c:GetDescendants()) do
  261. if v.ClassName == "Script" then
  262. table.insert(OLDscripts, v)
  263. end
  264. end
  265.  
  266. local scriptNames = {}
  267.  
  268. for i, v in pairs(c:GetDescendants()) do
  269. if v:IsA("BasePart") then
  270. local newName = tostring(i)
  271. local exists = true
  272. while exists do
  273. exists = false
  274. for i, v in pairs(OLDscripts) do
  275. if v.Name == newName then
  276. exists = true
  277. end
  278. end
  279. if exists then
  280. newName = newName .. "_"
  281. end
  282. end
  283. table.insert(scriptNames, newName)
  284. Instance.new("Script", v).Name = newName
  285. end
  286. end
  287.  
  288. c.Archivable = true
  289. local hum = c:FindFirstChildOfClass("Humanoid")
  290. if hum then
  291. for i, v in pairs(hum:GetPlayingAnimationTracks()) do
  292. v:Stop()
  293. end
  294. end
  295. local cl = c:Clone()
  296. if hum and humState16 then
  297. hum:ChangeState(Enum.HumanoidStateType.Physics)
  298. if destroyhum then
  299. wait(1.6)
  300. end
  301. end
  302. if hum and hum.Parent and destroyhum then
  303. hum:Destroy()
  304. end
  305.  
  306. if not c then
  307. return
  308. end
  309.  
  310. local head = gp(c, "Head", "BasePart")
  311. local torso = gp(c, "Torso", "BasePart") or gp(c, "UpperTorso", "BasePart")
  312. local root = gp(c, "HumanoidRootPart", "BasePart")
  313. if hatcollide and c:FindFirstChildOfClass("Accessory") then
  314. local anything = c:FindFirstChildOfClass("BodyColors") or gp(c, "Health", "Script")
  315. if not (torso and root and anything) then
  316. return
  317. end
  318. torso:Destroy()
  319. root:Destroy()
  320. if shp then
  321. for i,v in pairs(c:GetChildren()) do
  322. if v:IsA("Accessory") then
  323. shp(v, "BackendAccoutrementState", 0)
  324. end
  325. end
  326. end
  327. anything:Destroy()
  328. if head then
  329. head:Destroy()
  330. end
  331. end
  332.  
  333. for i, v in pairs(cl:GetDescendants()) do
  334. if v:IsA("BasePart") then
  335. v.Transparency = 1
  336. v.Anchored = false
  337. end
  338. end
  339.  
  340. local model = Instance.new("Model", c)
  341. model.Name = model.ClassName
  342.  
  343. model.Destroying:Connect(function()
  344. model = nil
  345. end)
  346.  
  347. for i, v in pairs(c:GetChildren()) do
  348. if v ~= model then
  349. if addtools and v:IsA("Tool") then
  350. for i1, v1 in pairs(v:GetDescendants()) do
  351. if v1 and v1.Parent and v1:IsA("BasePart") then
  352. local bv = Instance.new("BodyVelocity", v1)
  353. bv.Velocity = v3_0
  354. bv.MaxForce = v3(1000, 1000, 1000)
  355. bv.P = 1250
  356. bv.Name = "bv_" .. v.Name
  357. end
  358. end
  359. end
  360. v.Parent = model
  361. end
  362. end
  363.  
  364. if breakjoints then
  365. model:BreakJoints()
  366. else
  367. if head and torso then
  368. for i, v in pairs(model:GetDescendants()) do
  369. if v:IsA("Weld") or v:IsA("Snap") or v:IsA("Glue") or v:IsA("Motor") or v:IsA("Motor6D") then
  370. local save = false
  371. if (v.Part0 == torso) and (v.Part1 == head) then
  372. save = true
  373. end
  374. if (v.Part0 == head) and (v.Part1 == torso) then
  375. save = true
  376. end
  377. if save then
  378. if hedafterneck then
  379. hedafterneck = v
  380. end
  381. else
  382. v:Destroy()
  383. end
  384. end
  385. end
  386. end
  387. if method == 3 then
  388. spawn(function()
  389. wait(loadtime)
  390. if model then
  391. model:BreakJoints()
  392. end
  393. end)
  394. end
  395. end
  396.  
  397. cl.Parent = c
  398. for i, v in pairs(cl:GetChildren()) do
  399. v.Parent = c
  400. end
  401. cl:Destroy()
  402.  
  403. local modelDes = {}
  404. for i, v in pairs(model:GetDescendants()) do
  405. if v:IsA("BasePart") then
  406. i = tostring(i)
  407. v.Destroying:Connect(function()
  408. modelDes[i] = nil
  409. end)
  410. modelDes[i] = v
  411. end
  412. end
  413. local modelcolcon = nil
  414. local function modelcolf()
  415. if model then
  416. for i, v in pairs(modelDes) do
  417. v.CanCollide = false
  418. end
  419. else
  420. modelcolcon:Disconnect()
  421. end
  422. end
  423. modelcolcon = stepped:Connect(modelcolf)
  424. modelcolf()
  425.  
  426. for i, scr in pairs(model:GetDescendants()) do
  427. if (scr.ClassName == "Script") and table.find(scriptNames, scr.Name) then
  428. local Part0 = scr.Parent
  429. if Part0:IsA("BasePart") then
  430. for i1, scr1 in pairs(c:GetDescendants()) do
  431. if (scr1.ClassName == "Script") and (scr1.Name == scr.Name) and (not scr1:IsDescendantOf(model)) then
  432. local Part1 = scr1.Parent
  433. if (Part1.ClassName == Part0.ClassName) and (Part1.Name == Part0.Name) then
  434. align(Part0, Part1)
  435. break
  436. end
  437. end
  438. end
  439. end
  440. end
  441. end
  442.  
  443. if (typeof(hedafterneck) == "Instance") and head then
  444. local aligns = {}
  445. local con = nil
  446. con = hedafterneck.Changed:Connect(function(prop)
  447. if (prop == "Parent") and not hedafterneck.Parent then
  448. con:Disconnect()
  449. for i, v in pairs(aligns) do
  450. v.Enabled = true
  451. end
  452. end
  453. end)
  454. for i, v in pairs(head:GetDescendants()) do
  455. if v:IsA("AlignPosition") or v:IsA("AlignOrientation") then
  456. i = tostring(i)
  457. aligns[i] = v
  458. v.Destroying:Connect(function()
  459. aligns[i] = nil
  460. end)
  461. v.Enabled = false
  462. end
  463. end
  464. end
  465.  
  466. for i, v in pairs(c:GetDescendants()) do
  467. if v and v.Parent then
  468. if v.ClassName == "Script" then
  469. if table.find(scriptNames, v.Name) then
  470. v:Destroy()
  471. end
  472. elseif not v:IsDescendantOf(model) then
  473. if v:IsA("Decal") then
  474. v.Transparency = 1
  475. elseif v:IsA("ForceField") then
  476. v.Visible = false
  477. elseif v:IsA("Sound") then
  478. v.Playing = false
  479. elseif v:IsA("BillboardGui") or v:IsA("SurfaceGui") or v:IsA("ParticleEmitter") or v:IsA("Fire") or v:IsA("Smoke") or v:IsA("Sparkles") then
  480. v.Enabled = false
  481. end
  482. end
  483. end
  484. end
  485.  
  486. if newanimate then
  487. local animate = gp(c, "Animate", "LocalScript")
  488. if animate then
  489. animate.Disabled = false
  490. end
  491. end
  492.  
  493. if addtools then
  494. for i, v in pairs(c:GetChildren()) do
  495. if v:IsA("Tool") then
  496. v.Parent = addtools
  497. end
  498. end
  499. end
  500.  
  501. local hum0 = model:FindFirstChildOfClass("Humanoid")
  502. if hum0 then
  503. hum0.Destroying:Connect(function()
  504. hum0 = nil
  505. end)
  506. end
  507.  
  508. local hum1 = c:FindFirstChildOfClass("Humanoid")
  509. if hum1 then
  510. hum1.Destroying:Connect(function()
  511. hum1 = nil
  512. end)
  513. end
  514.  
  515. if hum1 then
  516. ws.CurrentCamera.CameraSubject = hum1
  517. local camSubCon = nil
  518. local function camSubFunc()
  519. camSubCon:Disconnect()
  520. if c and hum1 then
  521. ws.CurrentCamera.CameraSubject = hum1
  522. end
  523. end
  524. camSubCon = renderstepped:Connect(camSubFunc)
  525. if hum0 then
  526. hum0.Changed:Connect(function(prop)
  527. if hum1 and (prop == "Jump") then
  528. hum1.Jump = hum0.Jump
  529. end
  530. end)
  531. else
  532. respawnrequest()
  533. end
  534. end
  535.  
  536. local rb = Instance.new("BindableEvent", c)
  537. rb.Event:Connect(function()
  538. rb:Destroy()
  539. sg:SetCore("ResetButtonCallback", true)
  540. if destroyhum then
  541. c:BreakJoints()
  542. return
  543. end
  544. if hum0 and (hum0.Health > 0) then
  545. model:BreakJoints()
  546. hum0.Health = 0
  547. end
  548. if antirespawn then
  549. respawnrequest()
  550. end
  551. end)
  552. sg:SetCore("ResetButtonCallback", rb)
  553.  
  554. spawn(function()
  555. while c do
  556. if hum0 and hum1 then
  557. hum1.Jump = hum0.Jump
  558. end
  559. wait()
  560. end
  561. sg:SetCore("ResetButtonCallback", true)
  562. end)
  563.  
  564. R15toR6 = R15toR6 and hum1 and (hum1.RigType == Enum.HumanoidRigType.R15)
  565. if R15toR6 then
  566. local part = gp(c, "HumanoidRootPart", "BasePart") or gp(c, "UpperTorso", "BasePart") or gp(c, "LowerTorso", "BasePart") or gp(c, "Head", "BasePart") or c:FindFirstChildWhichIsA("BasePart")
  567. if part then
  568. local cfr = part.CFrame
  569. local R6parts = {
  570. head = {
  571. Name = "Head",
  572. Size = v3(2, 1, 1),
  573. R15 = {
  574. Head = 0
  575. }
  576. },
  577. torso = {
  578. Name = "Torso",
  579. Size = v3(2, 2, 1),
  580. R15 = {
  581. UpperTorso = 0.2,
  582. LowerTorso = -100
  583. }
  584. },
  585. root = {
  586. Name = "HumanoidRootPart",
  587. Size = v3(2, 2, 1),
  588. R15 = {
  589. HumanoidRootPart = 0
  590. }
  591. },
  592. leftArm = {
  593. Name = "Left Arm",
  594. Size = v3(1, 2, 1),
  595. R15 = {
  596. LeftHand = -0.73,
  597. LeftLowerArm = -0.2,
  598. LeftUpperArm = 0.4
  599. }
  600. },
  601. rightArm = {
  602. Name = "Right Arm",
  603. Size = v3(1, 2, 1),
  604. R15 = {
  605. RightHand = -0.73,
  606. RightLowerArm = -0.2,
  607. RightUpperArm = 0.4
  608. }
  609. },
  610. leftLeg = {
  611. Name = "Left Leg",
  612. Size = v3(1, 2, 1),
  613. R15 = {
  614. LeftFoot = -0.73,
  615. LeftLowerLeg = -0.15,
  616. LeftUpperLeg = 0.6
  617. }
  618. },
  619. rightLeg = {
  620. Name = "Right Leg",
  621. Size = v3(1, 2, 1),
  622. R15 = {
  623. RightFoot = -0.73,
  624. RightLowerLeg = -0.15,
  625. RightUpperLeg = 0.6
  626. }
  627. }
  628. }
  629. for i, v in pairs(c:GetChildren()) do
  630. if v:IsA("BasePart") then
  631. for i1, v1 in pairs(v:GetChildren()) do
  632. if v1:IsA("Motor6D") then
  633. v1.Part0 = nil
  634. end
  635. end
  636. end
  637. end
  638. part.Archivable = true
  639. for i, v in pairs(R6parts) do
  640. local part = part:Clone()
  641. part:ClearAllChildren()
  642. part.Name = v.Name
  643. part.Size = v.Size
  644. part.CFrame = cfr
  645. part.Anchored = false
  646. part.Transparency = 1
  647. part.CanCollide = false
  648. for i1, v1 in pairs(v.R15) do
  649. local R15part = gp(c, i1, "BasePart")
  650. local att = gp(R15part, "att1_" .. i1, "Attachment")
  651. if R15part then
  652. local weld = Instance.new("Weld", R15part)
  653. weld.Name = "Weld_" .. i1
  654. weld.Part0 = part
  655. weld.Part1 = R15part
  656. weld.C0 = cf(0, v1, 0)
  657. weld.C1 = cf(0, 0, 0)
  658. R15part.Massless = true
  659. R15part.Name = "R15_" .. i1
  660. R15part.Parent = part
  661. if att then
  662. att.Parent = part
  663. att.Position = v3(0, v1, 0)
  664. end
  665. end
  666. end
  667. part.Parent = c
  668. R6parts[i] = part
  669. end
  670. local R6joints = {
  671. neck = {
  672. Parent = R6parts.torso,
  673. Name = "Neck",
  674. Part0 = R6parts.torso,
  675. Part1 = R6parts.head,
  676. C0 = cf(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  677. C1 = cf(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  678. },
  679. rootJoint = {
  680. Parent = R6parts.root,
  681. Name = "RootJoint" ,
  682. Part0 = R6parts.root,
  683. Part1 = R6parts.torso,
  684. C0 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  685. C1 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  686. },
  687. rightShoulder = {
  688. Parent = R6parts.torso,
  689. Name = "Right Shoulder",
  690. Part0 = R6parts.torso,
  691. Part1 = R6parts.rightArm,
  692. C0 = cf(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  693. C1 = cf(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  694. },
  695. leftShoulder = {
  696. Parent = R6parts.torso,
  697. Name = "Left Shoulder",
  698. Part0 = R6parts.torso,
  699. Part1 = R6parts.leftArm,
  700. C0 = cf(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  701. C1 = cf(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  702. },
  703. rightHip = {
  704. Parent = R6parts.torso,
  705. Name = "Right Hip",
  706. Part0 = R6parts.torso,
  707. Part1 = R6parts.rightLeg,
  708. C0 = cf(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  709. C1 = cf(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  710. },
  711. leftHip = {
  712. Parent = R6parts.torso,
  713. Name = "Left Hip" ,
  714. Part0 = R6parts.torso,
  715. Part1 = R6parts.leftLeg,
  716. C0 = cf(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  717. C1 = cf(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  718. }
  719. }
  720. for i, v in pairs(R6joints) do
  721. local joint = Instance.new("Motor6D")
  722. for prop, val in pairs(v) do
  723. joint[prop] = val
  724. end
  725. R6joints[i] = joint
  726. end
  727. hum1.RigType = Enum.HumanoidRigType.R6
  728. hum1.HipHeight = 0
  729. end
  730. end
  731.  
  732.  
  733.  
  734. --find rig joints
  735.  
  736. local function fakemotor()
  737. return {C0=cf(), C1=cf()}
  738. end
  739.  
  740. local torso = gp(c, "Torso", "BasePart")
  741. local root = gp(c, "HumanoidRootPart", "BasePart")
  742.  
  743. local neck = gp(torso, "Neck", "Motor6D")
  744. neck = neck or fakemotor()
  745.  
  746. local rootJoint = gp(root, "RootJoint", "Motor6D")
  747. rootJoint = rootJoint or fakemotor()
  748.  
  749. local leftShoulder = gp(torso, "Left Shoulder", "Motor6D")
  750. leftShoulder = leftShoulder or fakemotor()
  751.  
  752. local rightShoulder = gp(torso, "Right Shoulder", "Motor6D")
  753. rightShoulder = rightShoulder or fakemotor()
  754.  
  755. local leftHip = gp(torso, "Left Hip", "Motor6D")
  756. leftHip = leftHip or fakemotor()
  757.  
  758. local rightHip = gp(torso, "Right Hip", "Motor6D")
  759. rightHip = rightHip or fakemotor()
  760.  
  761. --120 fps
  762.  
  763. local fps = 0
  764. local event = Instance.new("BindableEvent", c)
  765. event.Name = "120 fps"
  766. local floor = math.floor
  767. fps = 1 / fps
  768. local tf = 0
  769. local con = nil
  770. con = game:GetService("RunService").RenderStepped:Connect(function(s)
  771. if not c then
  772. con:Disconnect()
  773. return
  774. end
  775. --tf += s
  776. if tf >= fps then
  777. for i=1, floor(tf / fps) do
  778. event:Fire(c)
  779. end
  780. tf = 0
  781. end
  782. end)
  783. local event = event.Event
  784.  
  785. local hedrot = v3(0, 5, 0)
  786.  
  787. local uis = game:GetService("UserInputService")
  788. local function isPressed(key)
  789. return (not uis:GetFocusedTextBox()) and uis:IsKeyDown(Enum.KeyCode[key])
  790. end
  791.  
  792. local biggesthandle = nil
  793. for i, v in pairs(c:GetChildren()) do
  794. if v:IsA("Accessory") then
  795. local handle = gp(v, "Handle", "BasePart")
  796. if biggesthandle then
  797. if biggesthandle.Size.Magnitude < handle.Size.Magnitude then
  798. biggesthandle = handle
  799. end
  800. else
  801. biggesthandle = gp(v, "Handle", "BasePart")
  802. end
  803. end
  804. end
  805.  
  806. if not biggesthandle then
  807. return
  808. end
  809.  
  810. local handle1 = gp(gp(model, biggesthandle.Parent.Name, "Accessory"), "Handle", "BasePart")
  811. if not handle1 then
  812. return
  813. end
  814.  
  815. handle1.Destroying:Connect(function()
  816. handle1 = nil
  817. end)
  818. biggesthandle.Destroying:Connect(function()
  819. biggesthandle = nil
  820. end)
  821.  
  822. biggesthandle:BreakJoints()
  823. biggesthandle.Anchored = true
  824.  
  825. for i, v in pairs(handle1:GetDescendants()) do
  826. if v:IsA("AlignOrientation") then
  827. v.Enabled = false
  828. end
  829. end
  830.  
  831. local mouse = lp:GetMouse()
  832. local fling = false
  833. mouse.Button1Down:Connect(function()
  834. fling = true
  835. end)
  836. mouse.Button1Up:Connect(function()
  837. fling = false
  838. end)
  839. local function doForSignal(signal, vel)
  840. spawn(function()
  841. while signal:Wait() and c and handle1 and biggesthandle do
  842. if fling and mouse.Target then
  843. biggesthandle.Position = mouse.Hit.Position
  844. end
  845. handle1.RotVelocity = vel
  846. end
  847. end)
  848. end
  849. doForSignal(stepped, v3(100, 100, 100))
  850. doForSignal(renderstepped, v3(100, 100, 100))
  851. doForSignal(heartbeat, v3(20000, 20000, 20000)) --https://web.roblox.com/catalog/63690008/Pal-Hair
  852.  
  853. local lp = game:GetService("Players").LocalPlayer
  854. local rs = game:GetService("RunService")
  855. local stepped = rs.Stepped
  856. local heartbeat = rs.Heartbeat
  857. local renderstepped = rs.RenderStepped
  858. local sg = game:GetService("StarterGui")
  859. local ws = game:GetService("Workspace")
  860. local cf = CFrame.new
  861. local v3 = Vector3.new
  862. local v3_0 = Vector3.zero
  863. local inf = math.huge
  864.  
  865. local cplayer = lp.Character
  866.  
  867. local v3 = Vector3.new
  868.  
  869. local function gp(parent, name, className)
  870. if typeof(parent) == "Instance" then
  871. for i, v in pairs(parent:GetChildren()) do
  872. if (v.Name == name) and v:IsA(className) then
  873. return v
  874. end
  875. end
  876. end
  877. return nil
  878. end
  879.  
  880. local hat2 = gp(cplayer, "Hat1", "Accessory")
  881. local handle2 = gp(hat2, "Handle", "BasePart")
  882. local att2 = gp(handle2, "att1_Handle", "Attachment")
  883. att2.Parent = cplayer["Torso"]
  884. att2.Position = Vector3.new(0.5, -0, 0)
  885. att2.Rotation = Vector3.new(90, 0, 0)
  886.  
  887. local hat2 = gp(cplayer, "Pal Hair", "Accessory")
  888. local handle2 = gp(hat2, "Handle", "BasePart")
  889. local att2 = gp(handle2, "att1_Handle", "Attachment")
  890. att2.Parent = cplayer["Torso"]
  891. att2.Position = Vector3.new(-0.5, -0, 0)
  892. att2.Rotation = Vector3.new(90, 0, 0)
  893.  
  894. local hat2 = gp(cplayer, "Pink Hair", "Accessory")
  895. local handle2 = gp(hat2, "Handle", "BasePart")
  896. local att2 = gp(handle2, "att1_Handle", "Attachment")
  897. att2.Parent = cplayer["Left Arm"]
  898. att2.Position = Vector3.new(0, -0, 0)
  899. att2.Rotation = Vector3.new(90, 0, 0)
  900.  
  901. local hat2 = gp(cplayer, "Kate Hair", "Accessory")
  902. local handle2 = gp(hat2, "Handle", "BasePart")
  903. local att2 = gp(handle2, "att1_Handle", "Attachment")
  904. att2.Parent = cplayer["Right Arm"]
  905. att2.Position = Vector3.new(-0, -0, 0)
  906. att2.Rotation = Vector3.new(90, 0, 0) --LavanderHair
  907.  
  908. local hat2 = gp(cplayer, "LavanderHair", "Accessory")
  909. local handle2 = gp(hat2, "Handle", "BasePart")
  910. local att2 = gp(handle2, "att1_Handle", "Attachment")
  911. att2.Parent = cplayer["Right Leg"]
  912. att2.Position = Vector3.new(0, 0, 0) --Robloxclassicred
  913. att2.Rotation = Vector3.new(90, 0, 0)
  914.  
  915. local hat2 = gp(cplayer, "Robloxclassicred", "Accessory")
  916. local handle2 = gp(hat2, "Handle", "BasePart")
  917. local att2 = gp(handle2, "att1_Handle", "Attachment")
  918. att2.Parent = cplayer["Left Leg"]
  919. att2.Position = Vector3.new(-0, 0, 0)
  920. att2.Rotation = Vector3.new(90, 0, 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement