View difference between Paste ID: VYa2v7hj and YBMWtriH
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)