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