View difference between Paste ID: GbrPvGit and S4wvWzka
SHOW: | | - or go back to the newest paste.
1
--[[
2
re-released by discord.gg/dogpower & modified by https://discord.gg/Hbq3TgAJbB
3
4
       ____________         __             ____________             ___  ___     ____________
5
      / __________/        / /            / __________ \           /  / /  /    /  _______  /
6
     / /                  / /            / /          \ \         /  / /  /    /  /      / /
7
    / /                  / /            / /            \ \       /  / /  /    /  /______/ /
8
   / /                  / /            / /              \ \     /  / /  /    /      _____/
9
  / /                  / /             \ \              / /    /  / /  /    /       \
10
 / /                  / /               \ \            / /    /  / /  /    /    /\   \
11
/ /____________      / /___________      \ \__________/ /    /   \/  /    /    /  \   \
12
\_____________/     /_____________/       \____________/     \______/    /____/    \___\
13
----------------------------------------------------------------------------------------
14
15
]]
16
17
--[[---------Settings---------]]--
18
local bodyTransparency = 0 --Change the transparency of your character (0 - 1)
19
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.
20
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.
21
--Velocity is not recommended to be (-17.7, 0, -17.7) in R15 since body parts often fall in R15.
22
--[[--------------------------]]--
23
24
local player1 = game.Players.LocalPlayer
25
local character1 = player1.Character
26
27
--Fake Character--
28
--Create Attachment Function
29
local function CreateAttachment(parent, position, orientation, axis, secondaryAxis, name)
30
    local newAttchment = Instance.new("Attachment", parent)
31
    newAttchment.Position = position
32
    newAttchment.Orientation = orientation
33
    newAttchment.Axis = axis
34
    newAttchment.SecondaryAxis = secondaryAxis
35
    newAttchment.Name = name
36
end
37
38
--Variables
39
local player1 = game:GetService("Players").LocalPlayer
40
local character1 = player1.Character
41
local hrp = character1.HumanoidRootPart
42
43
for i,v in pairs(character1:GetChildren()) do
44
    if v:IsA("LocalScript") then
45
        v:Destroy()
46
    end
47
end
48
49
local camera = workspace.CurrentCamera
50
51
local reanimFolder = Instance.new("Folder", character1)
52
reanimFolder.Name = "FakeCharacter"
53
54
local model = Instance.new("Model", reanimFolder)
55
model.Name = "Reanimation"
56
57
local userInputService = game:GetService("UserInputService")
58
local movingW, movingA, movingS, movingD, jumping = false
59
60
--Body Parts--
61
--Head
62
local cHead = Instance.new("Part", model)
63
cHead.Size = Vector3.new(2, 1, 1)
64
cHead.Name = "Head"
65
66
--Torso
67
local cTorso = Instance.new("Part", model)
68
cTorso.Size = Vector3.new(2, 2, 1)
69
cTorso.Name = "Torso"
70
71
--Left Arm
72
local cLArm = Instance.new("Part", model)
73
cLArm.Size = Vector3.new(1, 2, 1)
74
cLArm.Name = "Left Arm"
75
76
--Right Arm
77
local cRArm = Instance.new("Part", model)
78
cRArm.Size = Vector3.new(1, 2, 1)
79
cRArm.Name = "Right Arm"
80
81
--Left Leg
82
local cLLeg = Instance.new("Part", model)
83
cLLeg.Size = Vector3.new(1, 2, 1)
84
cLLeg.Name = "Left Leg"
85
86
--Right Leg
87
local cRLeg = Instance.new("Part", model)
88
cRLeg.Size = Vector3.new(1, 2, 1)
89
cRLeg.Name = "Right Leg"
90
91
--HumanoidRootPart
92
local cHRP = Instance.new("Part", model)
93
cHRP.Size = Vector3.new(2, 2, 1)
94
cHRP.Name = "HumanoidRootPart"
95
cHRP.Transparency = 1
96
cHRP.CanCollide = false
97
98
--Transparency
99
for i,v in pairs(model:GetChildren()) do
100
    if v:IsA("Part") and v.Name ~= "HumanoidRootPart" then
101
        v.Transparency = 1--0.5
102
    end
103
end
104
105
--Joints--
106
--Right Shoulder
107
local rShoulder = Instance.new("Motor6D", cTorso)
108
rShoulder.Part0 = cTorso
109
rShoulder.Part1 = cRArm
110
rShoulder.Name = "Right Shoulder"
111
rShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
112
rShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
113
114
--Left Shoulder
115
local lShoulder = Instance.new("Motor6D", cTorso)
116
lShoulder.Part0 = cTorso
117
lShoulder.Part1 = cLArm
118
lShoulder.Name = "Left Shoulder"
119
lShoulder.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
120
lShoulder.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
121
122
--Right Hip
123
local rHip = Instance.new("Motor6D", cTorso)
124
rHip.Part0 = cTorso
125
rHip.Part1 = cRLeg
126
rHip.Name = "Right Hip"
127
rHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
128
rHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
129
130
--Left Hip
131
local lHip = Instance.new("Motor6D", cTorso)
132
lHip.Part0 = cTorso
133
lHip.Part1 = cLLeg
134
lHip.Name = "Left Hip"
135
lHip.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
136
lHip.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
137
138
--Neck
139
local neck = Instance.new("Motor6D", cTorso)
140
neck.Part0 = cTorso
141
neck.Part1 = cHead
142
neck.Name = "Neck"
143
neck.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
144
neck.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
145
146
--RootJoint
147
local rootJoint = Instance.new("Motor6D", cHRP)
148
rootJoint.Part0 = cHRP
149
rootJoint.Part1 = cTorso
150
rootJoint.Name = "RootJoint"
151
rootJoint.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
152
rootJoint.C1 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
153
154
--Humanoid--
155
local cHumanoid = Instance.new("Humanoid", model)
156
cHumanoid.DisplayDistanceType = "None"
157
158
--Head Mesh--
159
local headMesh = Instance.new("SpecialMesh", cHead)
160
headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
161
162
local reanimation = model
163
164
--Creating Attachments
165
CreateAttachment(cHead, Vector3.new(0,0.60000002384186,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "HairAttachment")
166
CreateAttachment(cHead, Vector3.new(0,0.60000002384186,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "HatAttachment")
167
CreateAttachment(cHead, Vector3.new(0,0,-0.60000002384186), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "FaceFrontAttachment")
168
CreateAttachment(cHead, Vector3.new(0,0,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "FaceCenterAttachment")
169
CreateAttachment(cTorso, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "NeckAttachment")
170
CreateAttachment(cTorso, Vector3.new(0,0,-0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "BodyFrontAttachment")
171
CreateAttachment(cTorso, Vector3.new(0,0,0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "BodyBackAttachment")
172
CreateAttachment(cTorso, Vector3.new(-1,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftCollarAttachment")
173
CreateAttachment(cTorso, Vector3.new(1,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightCollarAttachment")
174
CreateAttachment(cTorso, Vector3.new(0,-1,-0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistFrontAttachment")
175
CreateAttachment(cTorso, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistCenterAttachment")
176
CreateAttachment(cTorso, Vector3.new(0,-1,0.5), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "WaistBackAttachment")
177
CreateAttachment(cLArm, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftShoulderAttachment")
178
CreateAttachment(cLArm, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftGripAttachment")
179
CreateAttachment(cRArm, Vector3.new(0,1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightShoulderAttachment")
180
CreateAttachment(cRArm, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightGripAttachment")
181
CreateAttachment(cLLeg, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "LeftFootAttachment")
182
CreateAttachment(cRLeg, Vector3.new(0,-1,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RightFootAttachment")
183
CreateAttachment(cHRP, Vector3.new(0,0,0), Vector3.new(-0,0,0), Vector3.new(1,0,0), Vector3.new(0,1,0), "RootAttachment")
184
185
--Cloning Hats (For Netless)
186
for i,v in pairs(character1:GetChildren()) do
187
    if v:IsA("Accessory") then
188
        local clone = v:Clone()
189
        local weld = v.Handle:FindFirstChildWhichIsA("Weld")
190
        local weldPart1 = weld.Part1
191
        local newWeld = Instance.new("Weld", clone.Handle)
192
        local CFrame0 = v.Handle.AccessoryWeld.C0
193
        local CFrame1 = v.Handle.AccessoryWeld.C1
194
        
195
        clone.Handle:FindFirstChild("AccessoryWeld"):Destroy()
196
        clone.Parent = reanimation
197
        newWeld.Name = "AccessoryWeld"
198
        newWeld.C0 = CFrame0
199
        newWeld.C1 = CFrame1
200
        newWeld.Part0 = clone.Handle
201
        newWeld.Part1 = character1:FindFirstChild(weldPart1.Name)
202
        clone.Handle.Transparency = 1
203
    end
204
end
205
206
cHRP.CFrame = hrp.CFrame
207
208
-- CLOVR - FE FULL-BODY VR SCRIPT
209
210
-- April 21st Update - TOOL HOLDING ADDED
211
212
-- | made by 0866 and Abacaxl
213
-- | tysm unverified
214
215
--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
216
217
--|| Settings:
218
local StudsOffset = 0 -- Character height (negative if you're too high)
219
local Smoothness = .5 -- Character interpolation (0.1 - 1 = smooth - rigid)
220
local AnchorCharacter = false -- Prevent physics from causing inconsistencies
221
local HideCharacter = false -- Hide character on a platform
222
local NoCollision = false-- Disable player collision
223
local ChatEnabled = true -- See chat on your left hand in-game
224
local ChatLocalRange = 75 -- Local chat range
225
local ViewportEnabled = true -- View nearby players in a frame
226
local ViewportRange = 30 -- Maximum distance players are updated
227
local RagdollEnabled = true -- Use your character instead of hats (NetworkOwner vulnerability)
228
local RagdollHeadMovement = true -- Move your head separately from your body (+9 second wait)
229
local AutoRun = false -- Run script on respawn
230
local AutoRespawn = true -- Kill your real body when your virtual body dies
231
local WearAllAccessories = true -- Use all leftover hats for the head
232
local AccurateHandPosition = true -- Move your Roblox hands according to your real hands
233
local AccessorySettings = {
234
    LeftArm = "",
235
    RightArm = "",
236
    LeftLeg = "",
237
    RightLeg = "",
238
    Torso = "",
239
    Head = true,
240
    BlockArms = true,
241
    BlockLegs = true,
242
    BlockTorso = true,
243
    LimbOffset = CFrame.Angles(math.rad(90), 0, 0)
244
}
245
local FootPlacementSettings = {
246
    RightOffset = Vector3.new(.5, 0, 0),
247
    LeftOffset = Vector3.new(-.5, 0, 0)
248
}
249
--|| Script:
250
local Script = nil
251
Script = function()
252
    --[[
253
 Variables
254
--]]
255
    local Players = game:GetService("Players")
256
    local Client = Players.LocalPlayer
257
    local Character = Client.Character or Client.CharacterAdded:Wait()
258
    local WeldBase = Character:WaitForChild("HumanoidRootPart")
259
    local ArmBase = Character:FindFirstChild("RightHand") or Character:FindFirstChild("Right Arm") or WeldBase
260
    local Backpack = Client:WaitForChild("Backpack")
261
    local Mouse = Client:GetMouse()
262
    local Camera = workspace.CurrentCamera
263
    local VRService = game:GetService("VRService")
264
    local VRReady = VRService.VREnabled
265
    local UserInputService = game:GetService("UserInputService")
266
    local RunService = game:GetService("RunService")
267
    local HttpService = game:GetService("HttpService")
268
    local StarterGui = game:GetService("StarterGui")
269
    local HeadAccessories = {}
270
    local UsedAccessories = {}
271
    local Pointer = false
272
    local Point1 = false
273
    local Point2 = false
274
    local VirtualRig = game:GetObjects("rbxassetid://4468539481")[1]
275
    local VirtualBody = game:GetObjects("rbxassetid://4464983829")[1]
276
    local Anchor = Instance.new("Part")
277
    Anchor.Anchored = true
278
    Anchor.Transparency = 1
279
    Anchor.CanCollide = false
280
    Anchor.Parent = workspace
281
    --[[
282
    if RagdollEnabled then
283
        print("RagdollEnabled, thank you for using CLOVR!")
284
        local NetworkAccess =
285
            coroutine.create(
286
            function()
287
                settings().Physics.AllowSleep = false
288
                while true do
289
                    game:GetService("RunService").RenderStepped:Wait()
290
                    for _, Players in next, game:GetService("Players"):GetChildren() do
291
                        if Players ~= game:GetService("Players").LocalPlayer then
292
                            Players.MaximumSimulationRadius = 0.1
293
                            Players.SimulationRadius = 0
294
                        end
295
                    end
296
                    game:GetService("Players").LocalPlayer.MaximumSimulationRadius = math.pow(math.huge, math.huge)
297
                    game:GetService("Players").LocalPlayer.SimulationRadius = math.huge * math.huge
298
                end
299
            end
300
        )
301
        coroutine.resume(NetworkAccess)
302
    end
303
    ]]
304
    StarterGui:SetCore("VRLaserPointerMode", 3)
305
    --[[
306
 Character Protection
307
--]]
308
    local CharacterCFrame = WeldBase.CFrame
309
    if not RagdollEnabled then
310
        Character.Humanoid.AnimationPlayed:Connect(
311
            function(Animation)
312
                Animation:Stop()
313
            end
314
        )
315
        for _, Track in next, Character.Humanoid:GetPlayingAnimationTracks() do
316
            Track:Stop()
317
        end
318
        if HideCharacter then
319
            local Platform = Instance.new("Part")
320
            Platform.Anchored = true
321
            Platform.Size = Vector3.new(100, 5, 100)
322
            Platform.CFrame = CFrame.new(0, 10000, 0)
323
            Platform.Transparency = 1
324
            Platform.Parent = workspace
325
            Character:MoveTo(Platform.Position + Vector3.new(0, 5, 0))
326
            wait(.5)
327
        end
328
        if AnchorCharacter then
329
            for _, Part in pairs(Character:GetChildren()) do
330
                if Part:IsA("BasePart") then
331
                    Part.Anchored = true
332
                end
333
            end
334
        end
335
    end
336
    --[[
337
 Functions
338
--]]
339
    function Tween(Object, Style, Direction, Time, Goal)
340
        local tweenInfo = TweenInfo.new(Time, Enum.EasingStyle[Style], Enum.EasingDirection[Direction])
341
        local tween = game:GetService("TweenService"):Create(Object, tweenInfo, Goal)
342
        tween.Completed:Connect(
343
            function()
344
                tween:Destroy()
345
            end
346
        )
347
        tween:Play()
348
        return tween
349
    end
350
    local function GetMotorForLimb(Limb)
351
        for _, Motor in next, Character:GetDescendants() do
352
            if Motor:IsA("Motor6D") and Motor.Part1 == Limb then
353
                return Motor
354
            end
355
        end
356
    end
357
    local function CreateAlignment(Limb, Part0)
358
        local Attachment0 = Instance.new("Attachment", Part0 or Anchor)
359
        local Attachment1 = Instance.new("Attachment", Limb)
360
        local Orientation = Instance.new("AlignOrientation")
361
        local Position = Instance.new("AlignPosition")
362
        Orientation.Attachment0 = Attachment1
363
        Orientation.Attachment1 = Attachment0
364
        Orientation.RigidityEnabled = false
365
        Orientation.MaxTorque = 20000
366
        Orientation.Responsiveness = 40
367
        Orientation.Parent = reanimation["HumanoidRootPart"]
368
        
369
        Orientation.Name = Limb.Name.."'s AlignRot"
370
        Orientation.MaxAngularVelocity = 100
371
        
372
        Position.Attachment0 = Attachment1
373
        Position.Attachment1 = Attachment0
374
        Position.RigidityEnabled = false
375
        Position.MaxForce = 40000
376
        Position.Responsiveness = 40
377
        Position.Parent = reanimation["HumanoidRootPart"]
378
        
379
        Position.Name = Limb.Name.."'s AlignPos"
380
        Position.MaxVelocity = 100
381
        
382
        Limb.Massless = false
383
        local Motor = GetMotorForLimb(Limb)
384
        if Motor then
385
            Motor:Destroy()
386
        end
387
        return function(CF, Local)
388
            if Local then
389
                Attachment0.CFrame = CF
390
            else
391
                Attachment0.WorldCFrame = CF
392
            end
393
        end
394
    end
395
    local function GetExtraTool()
396
        for _, Tool in next, Character:GetChildren() do
397
            if Tool:IsA("Tool") and not Tool.Name:match("LIMB_TOOL") then
398
                return Tool
399
            end
400
        end
401
    end
402
    local function GetGripForHandle(Handle)
403
        for _, Weld in next, Character:GetDescendants() do
404
            if Weld:IsA("Weld") and (Weld.Part0 == Handle or Weld.Part1 == Handle) then
405
                return Weld
406
            end
407
        end
408
        wait(.2)
409
        for _, Weld in next, Character:GetDescendants() do
410
            if Weld:IsA("Weld") and (Weld.Part0 == Handle or Weld.Part1 == Handle) then
411
                return Weld
412
            end
413
        end
414
    end
415
    local function CreateRightGrip(Handle)
416
        local RightGrip = Instance.new("Weld")
417
        RightGrip.Name = "RightGrip"
418
        RightGrip.Part1 = Handle
419
        RightGrip.Part0 = WeldBase
420
        RightGrip.Parent = WeldBase
421
        return RightGrip
422
    end
423
    local function CreateAccessory(Accessory, DeleteMeshes)
424
        if not Accessory then
425
            return
426
        end
427
        local HatAttachment = Accessory.Handle:FindFirstChildWhichIsA("Attachment")
428
        local HeadAttachment = VirtualRig:FindFirstChild(HatAttachment.Name, true)
429
        local BasePart = HeadAttachment.Parent
430
        local HatAtt = HatAttachment.CFrame
431
        local HeadAtt = HeadAttachment.CFrame
432
        if DeleteMeshes then
433
            if Accessory.Handle:FindFirstChild("Mesh") then
434
                Accessory.Handle.Mesh:Destroy()
435
            end
436
        end
437
        wait()
438
        local Handle = Accessory:WaitForChild("Handle")
439
        if Handle:FindFirstChildWhichIsA("Weld", true) then
440
            Handle:FindFirstChildWhichIsA("Weld", true):Destroy()
441
            Handle:BreakJoints()
442
        else
443
            Handle:BreakJoints()
444
        end
445
        Handle.Massless = true
446
        Handle.Transparency = 0.5
447
        UsedAccessories[Accessory] = true
448
        local RightGrip = CreateRightGrip(Handle)
449
        wait()
450
        for _, Object in pairs(Handle:GetDescendants()) do
451
            if not Object:IsA("BasePart") then
452
                pcall(
453
                    function()
454
                        Object.Transparency = 1
455
                    end
456
                )
457
                pcall(
458
                    function()
459
                        Object.Enabled = false
460
                    end
461
                )
462
            end
463
        end
464
        return Handle, RightGrip, HatAtt, HeadAtt, BasePart
465
    end
466
    local function GetHeadAccessories()
467
        for _, Accessory in next, Character:GetChildren() do
468
            if Accessory:IsA("Accessory") and not UsedAccessories[Accessory] then
469
                local Handle, RightGrip, HatAtt, HeadAtt, BasePart = CreateAccessory(Accessory)
470
                table.insert(HeadAccessories, {Handle, RightGrip, HatAtt, HeadAtt, BasePart})
471
                do
472
                    Handle.Transparency = 1
473
                end
474
                if not WearAllAccessories then
475
                    break
476
                end
477
            end
478
        end
479
    end
480
    --[[
481
 VR Replication Setup
482
--]]
483
    if not RagdollEnabled then
484
        LeftHandle, LeftHandGrip =
485
            CreateAccessory(Character:FindFirstChild(AccessorySettings.LeftArm), AccessorySettings.BlockArms)
486
        RightHandle, RightHandGrip =
487
            CreateAccessory(Character:FindFirstChild(AccessorySettings.RightArm), AccessorySettings.BlockArms)
488
        LeftHipHandle, LeftLegGrip =
489
            CreateAccessory(Character:FindFirstChild(AccessorySettings.LeftLeg), AccessorySettings.BlockLegs)
490
        RightHipHandle, RightLegGrip =
491
            CreateAccessory(Character:FindFirstChild(AccessorySettings.RightLeg), AccessorySettings.BlockLegs)
492
        TorsoHandle, TorsoGrip =
493
            CreateAccessory(Character:FindFirstChild(AccessorySettings.Torso), AccessorySettings.BlockTorso)
494
        GetHeadAccessories()
495
    elseif RagdollEnabled then
496
        if RagdollHeadMovement then
497
            Permadeath()
498
            MoveHead = CreateAlignment(reanimation["Head"])
499
        end
500
        MoveRightArm = CreateAlignment(reanimation["Right Arm"])
501
        MoveLeftArm = CreateAlignment(reanimation["Left Arm"])
502
        MoveRightLeg = CreateAlignment(reanimation["Right Leg"])
503
        MoveLeftLeg = CreateAlignment(reanimation["Left Leg"])
504
        MoveTorso = CreateAlignment(reanimation["Torso"])
505
        MoveRoot = CreateAlignment(reanimation["HumanoidRootPart"])
506
        --
507
        if RagdollHeadMovement then
508
            for _, Accessory in next, reanimation:GetChildren() do
509
                if Accessory:IsA("Accessory") and Accessory:FindFirstChild("Handle") then
510
                    local Attachment1 = Accessory.Handle:FindFirstChildWhichIsA("Attachment")
511
                    local Attachment0 = reanimation:FindFirstChild(tostring(Attachment1), true)
512
                    local Orientation = Instance.new("AlignOrientation")
513
                    local Position = Instance.new("AlignPosition")
514
                    print(Attachment1, Attachment0, Accessory)
515
                    
516
                    Orientation.Attachment0 = Attachment1
517
                    Orientation.Attachment1 = Attachment0
518
                    Orientation.RigidityEnabled = false
519
                    Orientation.ReactionTorqueEnabled = true
520
                    Orientation.MaxTorque = 20000
521
                    Orientation.Responsiveness = 40
522
                    Orientation.Parent = reanimation["Head"]
523
                    
524
                    Position.Attachment0 = Attachment1
525
                    Position.Attachment1 = Attachment0
526
                    Position.RigidityEnabled = false
527
                    Position.ReactionForceEnabled = true
528
                    Position.MaxForce = 40000
529
                    Position.Responsiveness = 40
530
                    Position.Parent = reanimation["Head"]
531
                end
532
            end
533
        end
534
        
535
    end
536
    --[[
537
 Movement
538
--]]
539
    VirtualRig.Name = "VirtualRig"
540
    VirtualRig.RightFoot.BodyPosition.Position = CharacterCFrame.p
541
    VirtualRig.LeftFoot.BodyPosition.Position = CharacterCFrame.p
542
    VirtualRig.Parent = workspace
543
    VirtualRig:SetPrimaryPartCFrame(CharacterCFrame)
544
    VirtualRig.Humanoid.Health = 0
545
    --VirtualRig:FindFirstChild("HumanoidRootPart").CFrame = character1.HumanoidRootPart.CFrame
546
    VirtualRig:BreakJoints()
547
    for i,v in pairs(VirtualRig:GetChildren()) do
548
        if v:IsA("BasePart") then
549
            v.CFrame = character1.HumanoidRootPart.CFrame
550
        end
551
    end
552
    --
553
    VirtualBody.Parent = workspace
554
    VirtualBody.Name = "VirtualBody"
555
    VirtualBody.Humanoid.WalkSpeed = 8
556
    VirtualBody.Humanoid.CameraOffset = Vector3.new(0, StudsOffset, 0)
557
    VirtualBody:SetPrimaryPartCFrame(CharacterCFrame)
558
    VirtualBody.Humanoid.Died:Connect(
559
        function()
560
            print("Virtual death")
561
            if AutoRespawn then
562
                Character:BreakJoints()
563
                if RagdollHeadMovement and RagdollEnabled then
564
                    --Network:Unclaim()
565
                    Respawn()
566
                end
567
            end
568
        end
569
    )
570
    --
571
    Camera.CameraSubject = VirtualBody.Humanoid
572
    Character.Humanoid.WalkSpeed = 0
573
    Character.Humanoid.JumpPower = 1
574
    for _, Part in next, VirtualBody:GetChildren() do
575
        if Part:IsA("BasePart") then
576
            Part.Transparency = 1
577
        end
578
    end
579
    for _, Part in next, VirtualRig:GetChildren() do
580
        if Part:IsA("BasePart") then
581
            Part.Transparency = 1
582
        end
583
    end
584
    if not VRReady then
585
        VirtualRig.RightUpperArm.ShoulderConstraint.RigidityEnabled = true
586
        VirtualRig.LeftUpperArm.ShoulderConstraint.RigidityEnabled = true
587
    end
588
    local OnMoving =
589
        RunService.Stepped:Connect(
590
        function()
591
            local Direction = Character.Humanoid.MoveDirection
592
            local Start = VirtualBody.HumanoidRootPart.Position
593
            local Point = Start + Direction * 6
594
            VirtualBody.Humanoid:MoveTo(Point)
595
        end
596
    )
597
    Character.Humanoid.Jumping:Connect(
598
        function()
599
            VirtualBody.Humanoid.Jump = true
600
        end
601
    )
602
    UserInputService.JumpRequest:Connect(
603
        function()
604
            VirtualBody.Humanoid.Jump = true
605
        end
606
    )
607
    --[[
608
 VR Replication
609
--]]
610
    if RagdollEnabled then
611
        for _, Part in pairs(Character:GetDescendants()) do
612
            if Part:IsA("BasePart") and Part.Name == "Handle" and Part.Parent:IsA("Accessory") then
613
                Part.LocalTransparencyModifier = 1
614
            elseif Part:IsA("BasePart") and Part.Transparency < 0.5 and Part.Name ~= "Head" then
615
                Part.LocalTransparencyModifier = bodyTransparency
616
            elseif Part:IsA("BasePart") and Part.Name == "Head" then
617
                Part.LocalTransparencyModifier = 1
618
            end
619
            if not Part:IsA("BasePart") and not Part:IsA("AlignPosition") and not Part:IsA("AlignOrientation") then
620
                pcall(
621
                    function()
622
                        Part.Transparency = 1
623
                    end
624
                )
625
                pcall(
626
                    function()
627
                        Part.Enabled = false
628
                    end
629
                )
630
            end
631
        end
632
    end
633
    local FootUpdateDebounce = tick()
634
    local function FloorRay(Part, Distance)
635
        local Position = Part.CFrame.p
636
        local Target = Position - Vector3.new(0, Distance, 0)
637
        local Line = Ray.new(Position, (Target - Position).Unit * Distance)
638
        local FloorPart, FloorPosition, FloorNormal =
639
            workspace:FindPartOnRayWithIgnoreList(Line, {VirtualRig, VirtualBody, Character})
640
        if FloorPart then
641
            return FloorPart, FloorPosition, FloorNormal, (FloorPosition - Position).Magnitude
642
        else
643
            return nil, Target, Vector3.new(), Distance
644
        end
645
    end
646
    local function Flatten(CF)
647
        local X, Y, Z = CF.X, CF.Y, CF.Z
648
        local LX, LZ = CF.lookVector.X, CF.lookVector.Z
649
        return CFrame.new(X, Y, Z) * CFrame.Angles(0, math.atan2(LX, LZ), 0)
650
    end
651
    local FootTurn = 1
652
    local function FootReady(Foot, Target)
653
        local MaxDist
654
        if Character.Humanoid.MoveDirection.Magnitude > 0 then
655
            MaxDist = .5
656
        else
657
            MaxDist = 1
658
        end
659
        local PastThreshold = (Foot.Position - Target.Position).Magnitude > MaxDist
660
        local PastTick = tick() - FootUpdateDebounce >= 2
661
        if PastThreshold or PastTick then
662
            FootUpdateDebounce = tick()
663
        end
664
        return PastThreshold or PastTick
665
    end
666
    local function FootYield()
667
        local RightFooting = VirtualRig.RightFoot.BodyPosition
668
        local LeftFooting = VirtualRig.LeftFoot.BodyPosition
669
        local LowerTorso = VirtualRig.LowerTorso
670
        local Yield = tick()
671
        repeat
672
            RunService.Stepped:Wait()
673
            if
674
                (LowerTorso.Position - RightFooting.Position).Y > 4 or
675
                    (LowerTorso.Position - LeftFooting.Position).Y > 4 or
676
                    ((LowerTorso.Position - RightFooting.Position) * Vector3.new(1, 0, 1)).Magnitude > 4 or
677
                    ((LowerTorso.Position - LeftFooting.Position) * Vector3.new(1, 0, 1)).Magnitude > 4
678
             then
679
                break
680
            end
681
        until tick() - Yield >= .17
682
    end
683
    local function UpdateFooting()
684
        if not VirtualRig:FindFirstChild("LowerTorso") then
685
            wait()
686
            return
687
        end
688
        local Floor, FloorPosition, FloorNormal, Dist = FloorRay(VirtualRig.LowerTorso, 3)
689
        Dist = math.clamp(Dist, 0, 5)
690
        local FootTarget =
691
            VirtualRig.LowerTorso.CFrame * CFrame.new(FootPlacementSettings.RightOffset) - Vector3.new(0, Dist, 0) +
692
            Character.Humanoid.MoveDirection * (VirtualBody.Humanoid.WalkSpeed / 8) * 2
693
        if FootReady(VirtualRig.RightFoot, FootTarget) then
694
            VirtualRig.RightFoot.BodyPosition.Position = FootTarget.p
695
            VirtualRig.RightFoot.BodyGyro.CFrame = Flatten(VirtualRig.LowerTorso.CFrame)
696
        end
697
        FootYield()
698
        local FootTarget =
699
            VirtualRig.LowerTorso.CFrame * CFrame.new(FootPlacementSettings.LeftOffset) - Vector3.new(0, Dist, 0) +
700
            Character.Humanoid.MoveDirection * (VirtualBody.Humanoid.WalkSpeed / 8) * 2
701
        if FootReady(VirtualRig.LeftFoot, FootTarget) then
702
            VirtualRig.LeftFoot.BodyPosition.Position = FootTarget.p
703
            VirtualRig.LeftFoot.BodyGyro.CFrame = Flatten(VirtualRig.LowerTorso.CFrame)
704
        end
705
    end
706
    local function UpdateTorsoPosition()
707
        if not RagdollEnabled then
708
            if TorsoHandle then
709
                local Positioning = VirtualRig.UpperTorso.CFrame
710
                if not TorsoGrip or not TorsoGrip.Parent then
711
                    TorsoGrip = CreateRightGrip(TorsoHandle)
712
                end
713
                local Parent = TorsoGrip.Parent
714
                TorsoGrip.C1 = CFrame.new()
715
                TorsoGrip.C0 =
716
                    TorsoGrip.C0:Lerp(
717
                    WeldBase.CFrame:ToObjectSpace(Positioning * CFrame.new(0, -0.25, 0) * AccessorySettings.LimbOffset),
718
                    Smoothness
719
                )
720
                TorsoGrip.Parent = nil
721
                TorsoGrip.Parent = Parent
722
            end
723
        else
724
            local Positioning = VirtualRig.UpperTorso.CFrame
725
            MoveTorso(Positioning * CFrame.new(0, -0.25, 0))
726
            MoveRoot(Positioning * CFrame.new(0, -0.25, 0))
727
        end
728
    end
729
    local function UpdateLegPosition()
730
        if not RagdollEnabled then
731
            if RightHipHandle then
732
                local Positioning =
733
                    VirtualRig.RightLowerLeg.CFrame:Lerp(VirtualRig.RightFoot.CFrame, 0.5) + Vector3.new(0, 0.5, 0)
734
                if not RightHipHandle or not RightHipHandle.Parent then
735
                    RightLegGrip = CreateRightGrip(RightHipHandle)
736
                end
737
                local Parent = RightLegGrip.Parent
738
                RightLegGrip.C1 = CFrame.new()
739
                RightLegGrip.C0 =
740
                    RightLegGrip.C0:Lerp(
741
                    WeldBase.CFrame:ToObjectSpace(Positioning * AccessorySettings.LimbOffset),
742
                    Smoothness
743
                )
744
                RightLegGrip.Parent = nil
745
                RightLegGrip.Parent = Parent
746
            end
747
            if LeftHipHandle then
748
                local Positioning =
749
                    VirtualRig.LeftLowerLeg.CFrame:Lerp(VirtualRig.LeftFoot.CFrame, 0.5) + Vector3.new(0, 0.5, 0)
750
                if not LeftLegGrip or not LeftLegGrip.Parent then
751
                    LeftLegGrip = CreateRightGrip(LeftHipHandle)
752
                end
753
                local Parent = LeftLegGrip.Parent
754
                LeftLegGrip.C1 = CFrame.new()
755
                LeftLegGrip.C0 =
756
                    LeftLegGrip.C0:Lerp(
757
                    WeldBase.CFrame:ToObjectSpace(Positioning * AccessorySettings.LimbOffset),
758
                    Smoothness
759
                )
760
                LeftLegGrip.Parent = nil
761
                LeftLegGrip.Parent = Parent
762
            end
763
        else
764
            do
765
                local Positioning =
766
                    VirtualRig.RightLowerLeg.CFrame:Lerp(VirtualRig.RightFoot.CFrame, 0.5) *
767
                    CFrame.Angles(0, math.rad(180), 0) +
768
                    Vector3.new(0, 0.5, 0)
769
                MoveRightLeg(Positioning)
770
            end
771
            do
772
                local Positioning =
773
                    VirtualRig.LeftLowerLeg.CFrame:Lerp(VirtualRig.LeftFoot.CFrame, 0.5) *
774
                    CFrame.Angles(0, math.rad(180), 0) +
775
                    Vector3.new(0, 0.5, 0)
776
                MoveLeftLeg(Positioning)
777
            end
778
        end
779
    end
780
    warn("VRReady is", VRReady)
781
    local function OnUserCFrameChanged(UserCFrame, Positioning, IgnoreTorso)
782
        local Positioning = Camera.CFrame * Positioning
783
        if not IgnoreTorso then
784
            UpdateTorsoPosition()
785
            UpdateLegPosition()
786
        end
787
        if not RagdollEnabled then
788
            if UserCFrame == Enum.UserCFrame.Head and AccessorySettings.Head then
789
                for _, Table in next, HeadAccessories do
790
                    local Handle, RightGrip, HatAtt, HeadAtt, BasePart = unpack(Table)
791
                    local LocalPositioning = Positioning
792
                    if not RightGrip or not RightGrip.Parent then
793
                        RightGrip = CreateRightGrip(Handle)
794
                        Table[2] = RightGrip
795
                    end
796
                    local Parent = RightGrip.Parent
797
                    if BasePart then
798
                        LocalPositioning = BasePart.CFrame * HeadAtt
799
                    end
800
                    RightGrip.C1 = HatAtt
801
                    RightGrip.C0 = RightGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(LocalPositioning), Smoothness)
802
                    RightGrip.Parent = nil
803
                    RightGrip.Parent = Parent
804
                end
805
            elseif RightHandle and UserCFrame == Enum.UserCFrame.RightHand and AccessorySettings.RightArm then
806
                local HandPosition = Positioning
807
                local LocalPositioning = Positioning
808
                if not RightHandGrip or not RightHandGrip.Parent then
809
                    RightHandGrip = CreateRightGrip(RightHandle)
810
                end
811
                if AccurateHandPosition then
812
                    HandPosition = HandPosition * CFrame.new(0, 0, 1)
813
                end
814
                if not VRReady then
815
                    local HeadRotation = Camera.CFrame - Camera.CFrame.p
816
                    HandPosition =
817
                        VirtualRig.RightUpperArm.CFrame:Lerp(VirtualRig.RightLowerArm.CFrame, 0.5) *
818
                        AccessorySettings.LimbOffset
819
                    --LocalPositioning = (HeadRotation + (HandPosition * CFrame.new(0, 0, 1)).p) * CFrame.Angles(math.rad(-45), 0, 0)
820
                    LocalPositioning = HandPosition * CFrame.new(0, 0, 1) * CFrame.Angles(math.rad(-180), 0, 0)
821
                    if Point2 then
822
                        VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
823
                        VirtualRig.RightUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset
824
                    elseif VirtualRig.RightUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then
825
                        VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)
826
                    end
827
                elseif AccurateHandPosition then
828
                    LocalPositioning = HandPosition
829
                end
830
                local Parent = RightHandGrip.Parent
831
                RightHandGrip.C1 = CFrame.new()
832
                RightHandGrip.C0 = RightHandGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(HandPosition), Smoothness)
833
                RightHandGrip.Parent = nil
834
                RightHandGrip.Parent = Parent
835
                --
836
                local EquippedTool = GetExtraTool()
837
                if EquippedTool and EquippedTool:FindFirstChild("Handle") then
838
                    local EquippedGrip = GetGripForHandle(EquippedTool.Handle)
839
                    local Parent = EquippedGrip.Parent
840
                    local ArmBaseCFrame = ArmBase.CFrame
841
                    if ArmBase.Name == "Right Arm" then
842
                        ArmBaseCFrame = ArmBaseCFrame
843
                    end
844
                    EquippedGrip.C1 = EquippedTool.Grip
845
                    EquippedGrip.C0 = EquippedGrip.C0:Lerp(ArmBaseCFrame:ToObjectSpace(LocalPositioning), Smoothness)
846
                    EquippedGrip.Parent = nil
847
                    EquippedGrip.Parent = Parent
848
                end
849
            elseif LeftHandle and UserCFrame == Enum.UserCFrame.LeftHand and AccessorySettings.LeftArm then
850
                local HandPosition = Positioning
851
                if not LeftHandGrip or not LeftHandGrip.Parent then
852
                    LeftHandGrip = CreateRightGrip(LeftHandle)
853
                end
854
                if AccurateHandPosition then
855
                    HandPosition = HandPosition * CFrame.new(0, 0, 1)
856
                end
857
                if not VRReady then
858
                    HandPosition =
859
                        VirtualRig.LeftUpperArm.CFrame:Lerp(VirtualRig.LeftLowerArm.CFrame, 0.5) *
860
                        AccessorySettings.LimbOffset
861
                    --warn("Setting HandPosition to hands")
862
                    if Point1 then
863
                        VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
864
                        VirtualRig.LeftUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset
865
                    elseif VirtualRig.LeftUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then
866
                        VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)
867
                    end
868
                end
869
                local Parent = LeftHandGrip.Parent
870
                LeftHandGrip.C1 = CFrame.new()
871
                LeftHandGrip.C0 = LeftHandGrip.C0:Lerp(WeldBase.CFrame:ToObjectSpace(HandPosition), Smoothness)
872
                LeftHandGrip.Parent = nil
873
                LeftHandGrip.Parent = Parent
874
            end
875
        end
876
        if RagdollEnabled then
877
            if UserCFrame == Enum.UserCFrame.Head and RagdollHeadMovement then
878
                MoveHead(Positioning)
879
            elseif UserCFrame == Enum.UserCFrame.RightHand then
880
                local Positioning = Positioning
881
                if not VRReady then
882
                    Positioning = VirtualRig.RightUpperArm.CFrame:Lerp(VirtualRig.RightLowerArm.CFrame, 0.5)
883
                elseif AccurateHandPosition then
884
                    Positioning = Positioning * CFrame.new(0, 0, 1)
885
                end
886
                if VRReady then
887
                    Positioning = Positioning * AccessorySettings.LimbOffset
888
                end
889
                MoveRightArm(Positioning)
890
                if Point2 then
891
                    VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
892
                    VirtualRig.RightUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset
893
                elseif VirtualRig.RightUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then
894
                    VirtualRig.RightUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)
895
                end
896
            elseif UserCFrame == Enum.UserCFrame.LeftHand then
897
                local Positioning = Positioning
898
                if not VRReady then
899
                    Positioning = VirtualRig.LeftUpperArm.CFrame:Lerp(VirtualRig.LeftLowerArm.CFrame, 0.5)
900
                elseif AccurateHandPosition then
901
                    Positioning = Positioning * CFrame.new(0, 0, 1)
902
                end
903
                if VRReady then
904
                    Positioning = Positioning * AccessorySettings.LimbOffset
905
                end
906
                MoveLeftArm(Positioning)
907
                if Point1 then
908
                    VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
909
                    VirtualRig.LeftUpperArm.Aim.CFrame = Camera.CFrame * AccessorySettings.LimbOffset
910
                elseif VirtualRig.LeftUpperArm.Aim.MaxTorque ~= Vector3.new(0, 0, 0) then
911
                    VirtualRig.LeftUpperArm.Aim.MaxTorque = Vector3.new(0, 0, 0)
912
                end
913
            end
914
        end
915
        if UserCFrame == Enum.UserCFrame.Head then
916
            VirtualRig.Head.CFrame = Positioning
917
        elseif UserCFrame == Enum.UserCFrame.RightHand and VRReady then
918
            VirtualRig.RightHand.CFrame = Positioning
919
        elseif UserCFrame == Enum.UserCFrame.LeftHand and VRReady then
920
            VirtualRig.LeftHand.CFrame = Positioning
921
        end
922
        if not VRReady and VirtualRig.LeftHand.Anchored then
923
            VirtualRig.RightHand.Anchored = false
924
            VirtualRig.LeftHand.Anchored = false
925
        elseif VRReady and not VirtualRig.LeftHand.Anchored then
926
            VirtualRig.RightHand.Anchored = true
927
            VirtualRig.LeftHand.Anchored = true
928
        end
929
    end
930
    local CFrameChanged = VRService.UserCFrameChanged:Connect(OnUserCFrameChanged)
931
    local OnStepped =
932
        RunService.Stepped:Connect(
933
        function()
934
            for _, Part in pairs(VirtualRig:GetChildren()) do
935
                if Part:IsA("BasePart") then
936
                    Part.CanCollide = false
937
                end
938
            end
939
            if RagdollEnabled then
940
                for _, Part in pairs(Character:GetChildren()) do
941
                    if Part:IsA("BasePart") then
942
                        Part.CanCollide = false
943
                    end
944
                end
945
            end
946
            if NoCollision then
947
                for _, Player in pairs(Players:GetPlayers()) do
948
                    if Player ~= Client and Player.Character then
949
                        local Descendants = Player.Character:GetDescendants()
950
                        for i = 1, #Descendants do
951
                            local Part = Descendants[i]
952
                            if Part:IsA("BasePart") then
953
                                Part.CanCollide = false
954
                                Part.Velocity = Vector3.new()
955
                                Part.RotVelocity = Vector3.new()
956
                            end
957
                        end
958
                    end
959
                end
960
            end
961
        end
962
    )
963
    local OnRenderStepped =
964
        RunService.Stepped:Connect(
965
        function()
966
            Camera.CameraSubject = VirtualBody.Humanoid
967
            if RagdollEnabled then
968
                Character.HumanoidRootPart.CFrame = VirtualRig.UpperTorso.CFrame
969
                --Character.HumanoidRootPart.Velocity = Vector3.new(0, 0, 0)
970
            end
971
            if not VRReady then
972
                OnUserCFrameChanged(Enum.UserCFrame.Head, CFrame.new(0, 0, 0))
973
                OnUserCFrameChanged(Enum.UserCFrame.RightHand, CFrame.new(0, 0, 0), true)
974
                OnUserCFrameChanged(Enum.UserCFrame.LeftHand, CFrame.new(0, 0, 0), true)
975
            end
976
        end
977
    )
978
    spawn(
979
        function()
980
            while Character and Character.Parent do
981
                FootYield()
982
                UpdateFooting()
983
            end
984
        end
985
    )
986
    --[[
987
 Non-VR Support + VR Mechanics
988
--]]
989
    local OnInput =
990
        UserInputService.InputBegan:Connect(
991
        function(Input, Processed)
992
            if not Processed then
993
                if Input.KeyCode == Enum.KeyCode.LeftControl or Input.KeyCode == Enum.KeyCode.ButtonL2 then
994
                    Tween(
995
                        VirtualBody.Humanoid,
996
                        "Elastic",
997
                        "Out",
998
                        1,
999
                        {
1000
                            CameraOffset = Vector3.new(0, StudsOffset - 1.5, 0)
1001
                        }
1002
                    )
1003
                end
1004
                if Input.KeyCode == Enum.KeyCode.X then
1005
                    if RagdollEnabled and RagdollHeadMovement then
1006
                        --Network:Unclaim()
1007
                        Respawn()
1008
                    end
1009
                end
1010
                if Input.KeyCode == Enum.KeyCode.C then
1011
                    VirtualBody:MoveTo(Mouse.Hit.p)
1012
                    VirtualRig:MoveTo(Mouse.Hit.p)
1013
                end
1014
            end
1015
            if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.ButtonR2 then
1016
                Tween(
1017
                    VirtualBody.Humanoid,
1018
                    "Sine",
1019
                    "Out",
1020
                    1,
1021
                    {
1022
                        WalkSpeed = 16
1023
                    }
1024
                )
1025
            end
1026
            if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton1 then
1027
                Point1 = true
1028
            end
1029
            if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton2 then
1030
                Point2 = true
1031
            end
1032
            if VRReady and Input.KeyCode == Enum.KeyCode.ButtonY then
1033
                Character:BreakJoints()
1034
                if RagdollEnabled and RagdollHeadMovement then
1035
                    --Network:Unclaim()
1036
                    Respawn()
1037
                end
1038
            end
1039
        end
1040
    )
1041
    local OnInputEnded =
1042
        UserInputService.InputEnded:Connect(
1043
        function(Input, Processed)
1044
            if not Processed then
1045
                if Input.KeyCode == Enum.KeyCode.LeftControl or Input.KeyCode == Enum.KeyCode.ButtonL2 then
1046
                    Tween(
1047
                        VirtualBody.Humanoid,
1048
                        "Elastic",
1049
                        "Out",
1050
                        1,
1051
                        {
1052
                            CameraOffset = Vector3.new(0, StudsOffset, 0)
1053
                        }
1054
                    )
1055
                end
1056
            end
1057
            if Input.KeyCode == Enum.KeyCode.LeftShift or Input.KeyCode == Enum.KeyCode.ButtonR2 then
1058
                Tween(
1059
                    VirtualBody.Humanoid,
1060
                    "Sine",
1061
                    "Out",
1062
                    1,
1063
                    {
1064
                        WalkSpeed = 8
1065
                    }
1066
                )
1067
            end
1068
            if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton1 then
1069
                Point1 = false
1070
            end
1071
            if not VRReady and Input.UserInputType == Enum.UserInputType.MouseButton2 then
1072
                Point2 = false
1073
            end
1074
        end
1075
    )
1076
    --[[
1077
 Proper Cleanup
1078
--]]
1079
    local OnReset
1080
    OnReset =
1081
        Client.CharacterAdded:Connect(
1082
        function()
1083
            OnReset:Disconnect()
1084
            CFrameChanged:Disconnect()
1085
            OnStepped:Disconnect()
1086
            OnRenderStepped:Disconnect()
1087
            OnMoving:Disconnect()
1088
            OnInput:Disconnect()
1089
            OnInputEnded:Disconnect()
1090
            VirtualRig:Destroy()
1091
            VirtualBody:Destroy()
1092
            if RagdollEnabled then
1093
                --Network:Unclaim()
1094
            end
1095
            if AutoRun then
1096
                delay(
1097
                    2,
1098
                    function()
1099
                        Script()
1100
                    end
1101
                )
1102
            end
1103
        end
1104
    )
1105
    if ChatEnabled then
1106
        spawn(ChatHUDFunc)
1107
    end
1108
    if ViewportEnabled then
1109
        spawn(ViewHUDFunc)
1110
    end
1111
    do
1112
        --[[
1113
 Functions
1114
 --]]
1115
        local Players = game:GetService("Players")
1116
        local Client = Players.LocalPlayer
1117
        local VRService = game:GetService("VRService")
1118
        local VRReady = VRService.VREnabled
1119
        local UserInputService = game:GetService("UserInputService")
1120
        local RunService = game:GetService("RunService")
1121
        local Camera = workspace.CurrentCamera
1122
        --[[
1123
 Code
1124
 --]]
1125
        if VRReady then
1126
            local Pointer = game:GetObjects("rbxassetid://4476173280")[1]
1127
            Pointer.Parent = workspace
1128
            Pointer.Beam.Enabled = false
1129
            Pointer.Target.ParticleEmitter.Enabled = false
1130
            local RenderStepped =
1131
                RunService.RenderStepped:Connect(
1132
                function()
1133
                    if Pointer.Beam.Enabled then
1134
                        local RightHand = Camera.CFrame * VRService:GetUserCFrame(Enum.UserCFrame.RightHand)
1135
                        local Target = RightHand * CFrame.new(0, 0, -10)
1136
                        local Line = Ray.new(RightHand.p, (Target.p - RightHand.p).Unit * 128)
1137
                        local Part, Position =
1138
                            workspace:FindPartOnRayWithIgnoreList(Line, {VirtualRig, VirtualBody, Character, Pointer})
1139
                        local Distance = (Position - RightHand.p).Magnitude
1140
                        Pointer.Target.Position = Vector3.new(0, 0, -Distance)
1141
                        Pointer.CFrame = RightHand
1142
                    end
1143
                end
1144
            )
1145
            local Input =
1146
                UserInputService.InputBegan:Connect(
1147
                function(Input)
1148
                    if Input.KeyCode == Enum.KeyCode.ButtonB then
1149
                        Pointer.Beam.Enabled = not Pointer.Beam.Enabled
1150
                        Pointer.Target.ParticleEmitter.Enabled = not Pointer.Target.ParticleEmitter.Enabled
1151
                    end
1152
                end
1153
            )
1154
            --
1155
            local CharacterAdded
1156
            CharacterAdded =
1157
                Client.CharacterAdded:Connect(
1158
                function()
1159
                    RenderStepped:Disconnect()
1160
                    Input:Disconnect()
1161
                    CharacterAdded:Disconnect()
1162
                    Pointer:Destroy()
1163
                    Pointer = nil
1164
                end
1165
            )
1166
        else
1167
            return
1168
        end
1169
    end
1170
end
1171
Permadeath = function()
1172
    local ch = game.Players.LocalPlayer.Character
1173
    local prt = Instance.new("Model", workspace)
1174
    local z1 = Instance.new("Part", prt)
1175
    z1.Name = "Torso"
1176
    z1.CanCollide = false
1177
    z1.Anchored = true
1178
    local z2 = Instance.new("Part", prt)
1179
    z2.Name = "Head"
1180
    z2.Anchored = true
1181
    z2.CanCollide = false
1182
    local z3 = Instance.new("Humanoid", prt)
1183
    z3.Name = "Humanoid"
1184
    z1.Position = Vector3.new(0, 9999, 0)
1185
    z2.Position = Vector3.new(0, 9991, 0)
1186
    game.Players.LocalPlayer.Character = prt
1187
    wait(game.Players.RespawnTime/2)
1188
    warn("50%")
1189
    game.Players.LocalPlayer.Character = ch
1190
    wait(game.Players.RespawnTime/2 + 0.5)
1191
    warn("100%")
1192
end
1193
Respawn = function()
1194
    local ch = game.Players.LocalPlayer.Character
1195
    local prt = Instance.new("Model", workspace)
1196
    local z1 = Instance.new("Part", prt)
1197
    z1.Name = "Torso"
1198
    z1.CanCollide = false
1199
    z1.Anchored = true
1200
    local z2 = Instance.new("Part", prt)
1201
    z2.Name = "Head"
1202
    z2.Anchored = true
1203
    z2.CanCollide = false
1204
    local z3 = Instance.new("Humanoid", prt)
1205
    z3.Name = "Humanoid"
1206
    z1.Position = Vector3.new(0, 9999, 0)
1207
    z2.Position = Vector3.new(0, 9991, 0)
1208
    game.Players.LocalPlayer.Character = prt
1209
    wait(game.Players.RespawnTime)
1210
    game.Players.LocalPlayer.Character = ch
1211
end
1212
ChatHUDFunc = function()
1213
    --[[
1214
 Variables
1215
 --]]
1216
    local UserInputService = game:GetService("UserInputService")
1217
    local RunService = game:GetService("RunService")
1218
    local VRService = game:GetService("VRService")
1219
    local VRReady = VRService.VREnabled
1220
    local Players = game:GetService("Players")
1221
    local Client = Players.LocalPlayer
1222
    local ChatHUD = game:GetObjects("rbxassetid://4476067885")[1]
1223
    local GlobalFrame = ChatHUD.GlobalFrame
1224
    local Template = GlobalFrame.Template
1225
    local LocalFrame = ChatHUD.LocalFrame
1226
    local Global = ChatHUD.Global
1227
    local Local = ChatHUD.Local
1228
    local Camera = workspace.CurrentCamera
1229
    Template.Parent = nil
1230
    ChatHUD.Parent = game:GetService("CoreGui")
1231
    --[[
1232
 Code
1233
 --]]
1234
    local Highlight = Global.Frame.BackgroundColor3
1235
    local Deselected = Local.Frame.BackgroundColor3
1236
    local OpenGlobalTab = function()
1237
        Global.Frame.BackgroundColor3 = Highlight
1238
        Local.Frame.BackgroundColor3 = Deselected
1239
        Global.Font = Enum.Font.SourceSansBold
1240
        Local.Font = Enum.Font.SourceSans
1241
        GlobalFrame.Visible = true
1242
        LocalFrame.Visible = false
1243
    end
1244
    local OpenLocalTab = function()
1245
        Global.Frame.BackgroundColor3 = Deselected
1246
        Local.Frame.BackgroundColor3 = Highlight
1247
        Global.Font = Enum.Font.SourceSans
1248
        Local.Font = Enum.Font.SourceSansBold
1249
        GlobalFrame.Visible = false
1250
        LocalFrame.Visible = true
1251
    end
1252
    Global.MouseButton1Down:Connect(OpenGlobalTab)
1253
    Local.MouseButton1Down:Connect(OpenLocalTab)
1254
    Global.MouseButton1Click:Connect(OpenGlobalTab)
1255
    Local.MouseButton1Click:Connect(OpenLocalTab)
1256
    OpenLocalTab()
1257
    --
1258
    local function GetPlayerDistance(Sender)
1259
        if Sender.Character and Sender.Character:FindFirstChild("Head") then
1260
            return math.floor((Sender.Character.Head.Position - Camera:GetRenderCFrame().p).Magnitude + 0.5)
1261
        end
1262
    end
1263
    local function NewGlobal(Message, Sender, Color)
1264
        local Frame = Template:Clone()
1265
        Frame.Text = ("[%s]: %s"):format(Sender.Name, Message)
1266
        Frame.User.Text = ("[%s]:"):format(Sender.Name)
1267
        Frame.User.TextColor3 = Color
1268
        Frame.BackgroundColor3 = Color
1269
        Frame.Parent = GlobalFrame
1270
        delay(
1271
            60,
1272
            function()
1273
                Frame:Destroy()
1274
            end
1275
        )
1276
    end
1277
    local function NewLocal(Message, Sender, Color, Dist)
1278
        local Frame = Template:Clone()
1279
        Frame.Text = ("(%s) [%s]: %s"):format(tostring(Dist), Sender.Name, Message)
1280
        Frame.User.Text = ("(%s) [%s]:"):format(tostring(Dist), Sender.Name)
1281
        Frame.User.TextColor3 = Color
1282
        Frame.BackgroundColor3 = Color
1283
        Frame.Parent = LocalFrame
1284
        delay(
1285
            60,
1286
            function()
1287
                Frame:Destroy()
1288
            end
1289
        )
1290
    end
1291
    local function OnNewChat(Message, Sender, Color)
1292
        if not ChatHUD or not ChatHUD.Parent then
1293
            return
1294
        end
1295
        NewGlobal(Message, Sender, Color)
1296
        local Distance = GetPlayerDistance(Sender)
1297
        if Distance and Distance <= ChatLocalRange then
1298
            NewLocal(Message, Sender, Color, Distance)
1299
        end
1300
    end
1301
    local function OnPlayerAdded(Player)
1302
        if not ChatHUD or not ChatHUD.Parent then
1303
            return
1304
        end
1305
        local Color = BrickColor.Random().Color
1306
        Player.Chatted:Connect(
1307
            function(Message)
1308
                OnNewChat(Message, Player, Color)
1309
            end
1310
        )
1311
    end
1312
    Players.PlayerAdded:Connect(OnPlayerAdded)
1313
    for _, Player in pairs(Players:GetPlayers()) do
1314
        OnPlayerAdded(Player)
1315
    end
1316
    --
1317
    local ChatPart = ChatHUD.Part
1318
    ChatHUD.Adornee = ChatPart
1319
    if VRReady then
1320
        ChatHUD.Parent = game:GetService("CoreGui")
1321
        ChatHUD.Enabled = true
1322
        ChatHUD.AlwaysOnTop = true
1323
        local OnInput =
1324
            UserInputService.InputBegan:Connect(
1325
            function(Input, Processed)
1326
                if not Processed then
1327
                    if Input.KeyCode == Enum.KeyCode.ButtonX then
1328
                        ChatHUD.Enabled = not ChatHUD.Enabled
1329
                    end
1330
                end
1331
            end
1332
        )
1333
        local RenderStepped =
1334
            RunService.RenderStepped:Connect(
1335
            function()
1336
                local LeftHand = VRService:GetUserCFrame(Enum.UserCFrame.LeftHand)
1337
                ChatPart.CFrame = Camera.CFrame * LeftHand
1338
            end
1339
        )
1340
        local CharacterAdded
1341
        CharacterAdded =
1342
            Client.CharacterAdded:Connect(
1343
            function()
1344
                OnInput:Disconnect()
1345
                RenderStepped:Disconnect()
1346
                CharacterAdded:Disconnect()
1347
                ChatHUD:Destroy()
1348
                ChatHUD = nil
1349
            end
1350
        )
1351
    end
1352
    wait(9e9)
1353
end
1354
ViewHUDFunc = function()
1355
    --[[
1356
 Variables
1357
 --]]
1358
    local ViewportRange = ViewportRange or 32
1359
    local UserInputService = game:GetService("UserInputService")
1360
    local RunService = game:GetService("RunService")
1361
    local VRService = game:GetService("VRService")
1362
    local VRReady = VRService.VREnabled
1363
    local Players = game:GetService("Players")
1364
    local Client = Players.LocalPlayer
1365
    local Mouse = Client:GetMouse()
1366
    local Camera = workspace.CurrentCamera
1367
    local CameraPort = Camera.CFrame
1368
    local ViewHUD = script:FindFirstChild("ViewHUD") or game:GetObjects("rbxassetid://4480405425")[1]
1369
    local Viewport = ViewHUD.Viewport
1370
    local Viewcam = Instance.new("Camera")
1371
    local ViewPart = ViewHUD.Part
1372
    ViewHUD.Parent = game:GetService("CoreGui")
1373
    Viewcam.Parent = Viewport
1374
    Viewcam.CameraType = Enum.CameraType.Scriptable
1375
    Viewport.CurrentCamera = Viewcam
1376
    Viewport.BackgroundTransparency = 1
1377
    --[[
1378
 Code
1379
 --]]
1380
    local function Clone(Character)
1381
        local Arc = Character.Archivable
1382
        local Clone
1383
        Character.Archivable = true
1384
        Clone = Character:Clone()
1385
        Character.Archivable = Arc
1386
        return Clone
1387
    end
1388
    local function GetPart(Name, Parent, Descendants)
1389
        for i = 1, #Descendants do
1390
            local Part = Descendants[i]
1391
            if Part.Name == Name and Part.Parent.Name == Parent then
1392
                return Part
1393
            end
1394
        end
1395
    end
1396
    local function OnPlayerAdded(Player)
1397
        if not ViewHUD or not ViewHUD.Parent then
1398
            return
1399
        end
1400
        local function CharacterAdded(Character)
1401
            if not ViewHUD or not ViewHUD.Parent then
1402
                return
1403
            end
1404
            Character:WaitForChild("Head")
1405
            Character:WaitForChild("Humanoid")
1406
            wait(3)
1407
            local FakeChar = Clone(Character)
1408
            local Root = FakeChar:FindFirstChild("HumanoidRootPart") or FakeChar:FindFirstChild("Head")
1409
            local RenderConnection
1410
            local Descendants = FakeChar:GetDescendants()
1411
            local RealDescendants = Character:GetDescendants()
1412
            local Correspondents = {}
1413
            FakeChar.Humanoid.DisplayDistanceType = "None"
1414
            for i = 1, #Descendants do
1415
                local Part = Descendants[i]
1416
                local Real = Part:IsA("BasePart") and GetPart(Part.Name, Part.Parent.Name, RealDescendants)
1417
                if Part:IsA("BasePart") and Real then
1418
                    Part.Anchored = true
1419
                    Part:BreakJoints()
1420
                    if Part.Parent:IsA("Accessory") then
1421
                        Part.Transparency = 0
1422
                    end
1423
                    table.insert(Correspondents, {Part, Real})
1424
                end
1425
            end
1426
            RenderConnection =
1427
                RunService.RenderStepped:Connect(
1428
                function()
1429
                    if not Character or not Character.Parent then
1430
                        RenderConnection:Disconnect()
1431
                        FakeChar:Destroy()
1432
                        return
1433
                    end
1434
                    if
1435
                        (Root and (Root.Position - Camera.CFrame.p).Magnitude <= ViewportRange) or Player == Client or
1436
                            not Root
1437
                     then
1438
                        for i = 1, #Correspondents do
1439
                            local Part, Real = unpack(Correspondents[i])
1440
                            if Part and Real and Part.Parent and Real.Parent then
1441
                                Part.CFrame = Real.CFrame
1442
                            elseif Part.Parent and not Real.Parent then
1443
                                Part:Destroy()
1444
                            end
1445
                        end
1446
                    end
1447
                end
1448
            )
1449
            FakeChar.Parent = Viewcam
1450
        end
1451
        Player.CharacterAdded:Connect(CharacterAdded)
1452
        if Player.Character then
1453
            spawn(
1454
                function()
1455
                    CharacterAdded(Player.Character)
1456
                end
1457
            )
1458
        end
1459
    end
1460
    local PlayerAdded = Players.PlayerAdded:Connect(OnPlayerAdded)
1461
    for _, Player in pairs(Players:GetPlayers()) do
1462
        OnPlayerAdded(Player)
1463
    end
1464
    ViewPart.Size = Vector3.new()
1465
    if VRReady then
1466
        Viewport.Position = UDim2.new(.62, 0, .89, 0)
1467
        Viewport.Size = UDim2.new(.3, 0, .3, 0)
1468
        Viewport.AnchorPoint = Vector2.new(.5, 1)
1469
    else
1470
        Viewport.Size = UDim2.new(0.3, 0, 0.3, 0)
1471
    end
1472
    local RenderStepped =
1473
        RunService.RenderStepped:Connect(
1474
        function()
1475
            local Render = Camera.CFrame
1476
            local Scale = Camera.ViewportSize
1477
            if VRReady then
1478
                Render = Render * VRService:GetUserCFrame(Enum.UserCFrame.Head)
1479
            end
1480
            CameraPort = CFrame.new(Render.p + Vector3.new(5, 2, 0), Render.p)
1481
            Viewport.Camera.CFrame = CameraPort
1482
            ViewPart.CFrame = Render * CFrame.new(0, 0, -16)
1483
            ViewHUD.Size = UDim2.new(0, Scale.X - 6, 0, Scale.Y - 6)
1484
        end
1485
    )
1486
    --
1487
    local CharacterAdded
1488
    CharacterAdded =
1489
        Client.CharacterAdded:Connect(
1490
        function()
1491
            RenderStepped:Disconnect()
1492
            CharacterAdded:Disconnect()
1493
            PlayerAdded:Disconnect()
1494
            ViewHUD:Destroy()
1495
            ViewHUD = nil
1496
        end
1497
    )
1498
    
1499
    ------------------------Part of modification------------------------
1500
    for i,v in pairs(character1:GetDescendants()) do
1501
        if v:IsA("Motor6D") then
1502
            v:Destroy()
1503
        end
1504
    end
1505
    
1506
    if character1.Humanoid.RigType == Enum.HumanoidRigType.R15 then
1507
        character1:BreakJoints()
1508
    end
1509
    
1510
    for i,v in pairs(reanimation:GetChildren()) do
1511
        if v:IsA("BasePart") then
1512
            v.Anchored = false
1513
        end
1514
    end
1515
    
1516
    game:GetService("RunService").Heartbeat:Connect(function()
1517
        for i,v in pairs(character1:GetChildren()) do
1518
            if v:IsA("BasePart") then
1519
                v.Velocity = Vector3.new(bodyVelocity[1], bodyVelocity[2], bodyVelocity[3])
1520
                if character1.Humanoid.RigType == Enum.HumanoidRigType.R6 then
1521
                    v.CFrame = reanimation:FindFirstChild(v.Name).CFrame
1522
                else
1523
                    --Head
1524
                    if character1:FindFirstChild("Head") then
1525
                        character1.Head.CFrame = reanimation.Head.CFrame
1526
                    end
1527
                    
1528
                    --Torso
1529
                    if character1:FindFirstChild("UpperTorso") then
1530
                        character1.UpperTorso.CFrame = reanimation.Torso.CFrame * CFrame.new(0, 0.185, 0)
1531
                    end
1532
                    if character1:FindFirstChild("LowerTorso") then
1533
                        character1.LowerTorso.CFrame = reanimation.Torso.CFrame * CFrame.new(0, -0.8, 0)
1534
                    end
1535
                    
1536
                    --HumanoidRootPart
1537
                    if character1:FindFirstChild("HumanoidRootPart") then
1538
                        character1.HumanoidRootPart.CFrame = cHRP.CFrame
1539
                    end
1540
                    
1541
                    --Left Arm
1542
                    if character1:FindFirstChild("LeftUpperArm") then
1543
                        character1.LeftUpperArm.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, 0.4, 0)
1544
                    end
1545
                    if character1:FindFirstChild("LeftLowerArm") then
1546
                        character1.LeftLowerArm.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, -0.19, 0)
1547
                    end
1548
                    if character1:FindFirstChild("LeftHand") then
1549
                        character1.LeftHand.CFrame = reanimation["Left Arm"].CFrame * CFrame.new(0, -0.84, 0)
1550
                    end
1551
                    
1552
                    --Right Arm
1553
                    if character1:FindFirstChild("RightUpperArm") then
1554
                        character1.RightUpperArm.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, 0.4, 0)
1555
                    end
1556
                    if character1:FindFirstChild("RightLowerArm") then
1557
                        character1.RightLowerArm.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, -0.19, 0)
1558
                    end
1559
                    if character1:FindFirstChild("RightHand") then
1560
                        character1.RightHand.CFrame = reanimation["Right Arm"].CFrame * CFrame.new(0, -0.84, 0)
1561
                    end
1562
                    
1563
                    --Left Leg
1564
                    if character1:FindFirstChild("LeftUpperLeg") then
1565
                        character1.LeftUpperLeg.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, 0.55, 0)
1566
                    end
1567
                    if character1:FindFirstChild("LeftLowerLeg") then
1568
                        character1.LeftLowerLeg.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, -0.19, 0)
1569
                    end
1570
                    if character1:FindFirstChild("LeftFoot") then
1571
                        character1.LeftFoot.CFrame = reanimation["Left Leg"].CFrame * CFrame.new(0, -0.85, 0)
1572
                    end
1573
                    
1574
                    --Right Leg
1575
                    if character1:FindFirstChild("RightUpperLeg") then
1576
                        character1.RightUpperLeg.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, 0.55, 0)
1577
                    end
1578
                    if character1:FindFirstChild("RightLowerLeg") then
1579
                        character1.RightLowerLeg.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, -0.19, 0)
1580
                    end
1581
                    if character1:FindFirstChild("RightFoot") then
1582
                        character1.RightFoot.CFrame = reanimation["Right Leg"].CFrame * CFrame.new(0, -0.85, 0)
1583
                    end
1584
                end
1585
            end
1586
            
1587
            if v:IsA("Accessory") then
1588
                v.Handle.Velocity = Vector3.new(hatVelocity[1], hatVelocity[2], hatVelocity[3])
1589
                v.Handle.CFrame = reanimation:FindFirstChild(v.Name).Handle.CFrame
1590
            end
1591
        end
1592
    end)
1593
    
1594
    game:GetService("RunService").Stepped:Connect(function()
1595
        for i,v in pairs(reanimation:GetChildren()) do
1596
            if v:IsA("BasePart") then
1597
                v.CanCollide = false
1598
            end
1599
        end
1600
    end)
1601
    
1602
    
1603
    --------------------------------------------------------------------
1604
    
1605
    wait(9e9)
1606
end
1607
Script()
1608
wait(2)
1609
local Players = game:GetService("Players")
1610
local lp = Players.LocalPlayer
1611
local character = reanimation--lp.Character
1612
local A0LL = Instance.new("Attachment", character["Left Leg"])
1613
A0LL.Position = Vector3.new(0, 1, 0)
1614
local A1LL = Instance.new("Attachment", character["Torso"])
1615
A1LL.Position = Vector3.new(-0.5, -1, 0)
1616
local socket1 = Instance.new("BallSocketConstraint", character["Left Leg"])
1617
socket1.Attachment0 = A0LL
1618
socket1.Attachment1 = A1LL
1619
local A0RL = Instance.new("Attachment", character["Right Leg"])
1620
A0RL.Position = Vector3.new(0, 1, 0)
1621
local A1RL = Instance.new("Attachment", character["Torso"])
1622
A1RL.Position = Vector3.new(0.5, -1, 0)
1623
local socket2 = Instance.new("BallSocketConstraint", character["Right Leg"])
1624
socket2.Attachment0 = A0RL
1625
socket2.Attachment1 = A1RL
1626
local A0H = Instance.new("Attachment", character["Head"])
1627
A0H.Position = Vector3.new(0, -0.5, 0)
1628
local A1H = Instance.new("Attachment", character["Torso"])
1629
A1H.Position = Vector3.new(0, 1, 0)
1630
local socket5 = Instance.new("BallSocketConstraint", character["Head"])
1631
socket5.Attachment0 = A0H
1632
socket5.Attachment1 = A1H
1633
--loadstring(game:HttpGet("https://ghostbin.co/paste/krmyf/raw", true))()
1634
-----------------------------------------------------------
1635
wait(9e9)