View difference between Paste ID: djbB0E3P and xgvQnXuD
SHOW: | | - or go back to the newest paste.
1
local plr = game.Players.LocalPlayer
2
local char = plr.Character
3
local larm = char["Left Arm"]
4
local rarm = char["Right Arm"]
5
local lleg = char["Left Leg"]
6
local rleg = char["Right Leg"]
7
local head = char.Head
8
local torso = char.Torso
9
10
for i,v in pairs(char:children()) do
11
    if v:IsA("Hat") then
12
        v:Destroy()
13
    end
14
end
15
16
for i,v in pairs (head:GetChildren()) do
17
    if v:IsA("Sound") then
18
        v:Destroy()
19
    end
20
end
21
22
larm.Transparency = 1
23
rarm.Transparency = 1
24
lleg.Transparency = 1
25
rleg.Transparency = 1
26
torso.Transparency = 1
27
head.Transparency = 1
28
head.face.Transparency = 1
29
30
larm.CanCollide = false
31
rarm.CanCollide = false
32
lleg.CanCollide = false
33
rleg.CanCollide = false
34
head.CanCollide = false
35
torso.CanCollide = false
36
37
38
39
40
41
42
43
44
45
46
--[[
47
    Shadow V1
48
    By:LuaLlama
49
--]]
50
local Player = game.Players.LocalPlayer
51
local Character = Player.Character or Player.CharacterAdded:wait()
52
local Mouse = Player:GetMouse()
53
local Spread = 20
54
local Activate = false
55
local Holder = Instance.new('Model', Character)
56
local Color = BrickColor.new('Institutional white') -- Institutional white
57
local run
58
local wall = false
59
local fire = false
60
local Blocks = {}
61
62
function Boomeffect()
63
    local Ball = Instance.new('Part', Holder)
64
    Ball.Shape = 'Ball'
65
    Ball.BrickColor = Color
66
    Ball.Material = Enum.Material.Neon
67
    Ball.Anchored = true
68
    Ball.CanCollide =  false
69
    Ball.CFrame = Character.Torso.CFrame
70
    coroutine.resume(coroutine.create(function()
71
        for i=0,10,0.5 do
72
            Ball.Size = Vector3.new(i,i,i)
73
            Ball.CFrame = Character.Torso.CFrame
74
            Ball.Transparency = i/10
75
            wait()
76
        end
77
        Ball:Destroy()
78
    end))
79
end
80
81
function Unboomeffect()
82
    local Ball = Instance.new('Part', Holder)
83
    Ball.Shape = 'Ball'
84
    Ball.BrickColor = Color
85
    Ball.Material = Enum.Material.Neon
86
    Ball.Anchored = true
87
    Ball.CanCollide =  false
88
    Ball.CFrame = Character.Torso.CFrame
89
    coroutine.resume(coroutine.create(function()
90
        for i=10,0,-0.5 do
91
            Ball.Size = Vector3.new(i,i,i)
92
            Ball.CFrame = Character.Torso.CFrame
93
            Ball.Transparency = i/10
94
            wait()
95
        end
96
        Ball:Destroy()
97
    end))
98
end
99
100
function onKeyPress(inputObject, gameProcessedEvent)
101
    if inputObject.KeyCode == Enum.KeyCode.Q then -- Activate
102
        if Activate then
103
            --run:disconnect()
104
            Activate = false
105
            Character.Humanoid.WalkSpeed = 16
106
            Character.Humanoid.JumpPower = 50
107
            Unboomeffect()
108
        else
109
            Activate = true
110
            Character.Humanoid.WalkSpeed = 200
111
            Character.Humanoid.JumpPower = 200
112
            Boomeffect()
113
            wait(0.35)
114
            --run = game:GetService('RunService').Stepped:connect(function()
115
            repeat
116
                wait()
117
                if fire then repeat wait(0.1) until not fire end
118
                for i,v in ipairs(Character:GetChildren()) do 
119
                    local Shadow
120
                    if v:IsA('BasePart') then
121
                        Shadow = v:Clone()
122
                    end
123
                    if Shadow then
124
                        Shadow:ClearAllChildren()
125
                        local BF = Instance.new('BodyVelocity', Shadow)
126
                        BF.velocity = Vector3.new(math.random(-Spread, Spread), math.random(-Spread, Spread), math.random(-Spread, Spread))
127
                        BF.Name = 'BF'
128
                        Shadow.Parent = Holder
129
                        Shadow.CanCollide = false
130
                        Shadow.Transparency = 0.5
131
                        Shadow.Material = 'Neon'
132
                        Shadow.BrickColor = Color
133
                        table.insert(Blocks, Shadow)
134
                        coroutine.resume(coroutine.create(function()
135
                            for i=0,10,0.5 do
136
                                Shadow.Transparency = i/10
137
                                wait()
138
                            end
139
                            for i,v in next, Blocks do
140
                                if v == Shadow then
141
                                    table.remove(Blocks, i)
142
                                    break
143
                                end
144
                            end
145
                            Shadow:Destroy()
146
                        end))
147
                    end
148
                end
149
            until not Activate
150
            --end)
151
        end
152
    end
153
    
154
    if inputObject.KeyCode == Enum.KeyCode.L then -- Beam
155
        if Mouse.Target and Mouse.Hit and Activate then
156
            local Pos = Mouse.Hit.p
157
            local Part = Mouse.Target
158
            local Dist = (Character.Torso.Position - Pos).magnitude
159
            
160
            local Beam = Instance.new("Part", Holder)
161
            Beam.Name = "Beam"
162
            Beam.BrickColor = Color
163
            Beam.Transparency = 0.5
164
            Beam.Anchored  = true
165
            Beam.CanCollide = false
166
            Beam.Material = 'Neon'
167
            Beam.Size = Vector3.new(0, 0, Dist)
168
            Beam.CFrame = CFrame.new(Character.Torso.Position, Pos) * CFrame.new(0, 0, -Dist/2)
169
            
170
            local explo = Instance.new('Explosion', Beam)
171
            explo.Position = Pos
172
            -- Damage
173
            
174
            if Part.Parent ~= Character then
175
                local Human
176
                for i,v in ipairs(Part.Parent:GetChildren()) do
177
                    if v:IsA('Humanoid') then
178
                        Human = v
179
                        break
180
                    end
181
                end
182
                if Human then
183
                    Human:TakeDamage(25)
184
                end
185
            end
186
            
187
            
188
            coroutine.resume(coroutine.create(function()
189
                for i=0,10,2 do
190
                    Dist = (Character.Torso.Position - Pos).magnitude
191
                    Beam.Size = Vector3.new(i/2,i/2,Dist)
192
                    Beam.CFrame = CFrame.new(Character.Torso.Position, Pos) * CFrame.new(0, 0, -Dist/2)
193
                    Beam.Transparency = i/10
194
                    wait()
195
                end
196
                Beam:Destroy()
197
            end))
198
        end
199
    end
200
    
201
    if inputObject.KeyCode == Enum.KeyCode.R and Activate and not wall then -- Terrain misshap
202
        wall = true
203
        local cf = Character.Torso.CFrame
204
        for i=1,18 do
205
            wait(0.125)
206
            local Pos = (cf*CFrame.Angles(0, math.rad(i*20), 0))*CFrame.new(35,0,0)
207
            local Terrain = Instance.new('Part', game.Workspace)
208
            Terrain.Material = 'Neon'
209
            Terrain.BrickColor = Color
210
            Terrain.Size = Vector3.new(10,0,10)
211
            Terrain.CFrame = CFrame.new(Pos.p - Vector3.new(0, -3, 0))
212
            Terrain.Anchored = true
213
            
214
            Terrain.Touched:connect(function(Part)
215
                if Part.Parent ~= Character then
216
                    local Human
217
                    for i,v in ipairs(Part.Parent:GetChildren()) do
218
                        if v:IsA('Humanoid') then
219
                            Human = v
220
                            break
221
                        end
222
                    end
223
                    if Human then
224
                        Human:TakeDamage(25)
225
                    end
226
                end
227
            end)
228
            
229
            coroutine.resume(coroutine.create(function()
230
                for i=0,100,8 do
231
                    Terrain.Size = Vector3.new(10,i/2,10)
232
                    Terrain.CFrame = CFrame.new(Pos.p+Vector3.new(0, i/4, 0) + Vector3.new(0, -3, 0)) 
233
                    --Terrain.Transparency = 1-(i/100)
234
                    wait()
235
                end
236
                wait(1)
237
                for i=100,0,-16 do
238
                    Terrain.Size = Vector3.new(10,i/2,10)
239
                    Terrain.CFrame = CFrame.new(Pos.p+Vector3.new(0, i/4, 0) + Vector3.new(0, -3, 0))
240
                    wait()
241
                end
242
                Terrain:Destroy()
243
            end))
244
        end
245
        wall = false
246
    end
247
    
248
    if inputObject.KeyCode == Enum.KeyCode.T and Activate and not fire then -- Teleport
249
        if Mouse.Target and Mouse.Hit then
250
            fire = true
251
            local Pos = Mouse.Hit.p
252
            for i,v in next, Blocks do
253
                if v.Parent then
254
                    if v:FindFirstChild('BF') then
255
                        v.BF.Velocity = CFrame.new(Character.Torso.Position, Pos).lookVector *math.random(1,Spread*10)
256
                    end
257
                    game:GetService('Debris'):AddItem(v, 2)
258
                    v.Touched:connect(function(Part)
259
                        if Part.Parent and Part.Parent ~= Character then
260
                            local Human
261
                            for i,v in ipairs(Part.Parent:GetChildren()) do
262
                                if v:IsA('Humanoid') then
263
                                    Human = v
264
                                    break
265
                                end
266
                            end
267
                            if Human then
268
                                Human:TakeDamage(5)
269
                                v:Destroy()
270
                            end
271
                        end
272
                    end)
273
                end
274
            end
275
            Blocks = {}
276
            fire = false
277
        end
278
    end
279
end
280
281
game:GetService("UserInputService").InputBegan:connect(onKeyPress)
282
local isScriptNil = false
283
284
local PlrName = "saud20"
285
local Plrs = game:GetService("Players")
286
local RunService = game:GetService("RunService")
287
local Content = game:GetService("ContentProvider")
288
local LP = Plrs.LocalPlayer
289
local Char = LP.Character
290
local PlrGui = LP.PlayerGui
291
local Backpack = LP.Backpack
292
local Mouse = LP:GetMouse()
293
294
local Camera = Workspace.CurrentCamera
295
local LastCamCF = Camera.CoordinateFrame
296
local AnimJoints = {}
297
local Cons = {}
298
local mDown = false
299
local Multi = false
300
local Grabbing = false
301
local Current = {}
302
local Alpha = 1
303
local LightNum = 1
304
305
Current.Part = nil
306
Current.BP = nil
307
Current.BA = nil
308
Current.Mass = nil
309
310
local LastPart = nil
311
312
local Head = Char["Head"]
313
local Torso = Char["Torso"]
314
local Humanoid = Char["Humanoid"]
315
local LA = Char["Left Arm"]
316
local RA = Char["Right Arm"]
317
local LL = Char["Left Leg"]
318
local RL = Char["Right Leg"]
319
320
local LS, RS;
321
322
local OrigLS = Torso["Left Shoulder"]
323
local OrigRS = Torso["Right Shoulder"]
324
325
for _,v in pairs(Char:GetChildren()) do
326
    if v.Name == ModID then
327
        v:Destroy()
328
    end
329
end
330
331
for _,v in pairs(PlrGui:GetChildren()) do
332
    if v.Name == "PadsGui" then
333
        v:Destroy()
334
    end
335
end
336
337
local ModID = "Pads"
338
local Objects = {}
339
local Grav = 196.2
340
341
local sin=math.sin
342
local cos=math.cos
343
local max=math.max
344
local min=math.min
345
local atan2=math.atan2
346
local random=math.random
347
local tau = 2 * math.pi
348
349
local BodyObjects = {
350
    ["BodyVelocity"] = true;
351
    ["BodyAngularVelocity"] = true;
352
    ["BodyForce"] = true;
353
    ["BodyThrust"] = true;
354
    ["BodyPosition"] = true;
355
    ["RocketPropulsion"] = true;
356
}
357
358
if LP.Name == PlrName and isScriptNil then
359
    script.Parent = nil
360
end
361
362
LP.CameraMode = "Classic"
363
364
local Assets = {
365
}
366
367
local LS0, LS1 = OrigLS.C0, OrigLS.C1
368
local RS0, RS1 = OrigRS.C0, OrigRS.C1
369
370
for i,v in pairs(Assets) do
371
    local ID = tostring(Assets[i])
372
    Assets[i] = "http://www.roblox.com/asset/?id=" .. ID
373
    Content:Preload("http://www.roblox.com/asset/?id=" .. ID)
374
end
375
376
function QuaternionFromCFrame(cf)
377
    local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components();
378
    local trace = m00 + m11 + m22 if trace > 0 then 
379
        local s = math.sqrt(1 + trace);
380
        local recip = 0.5/s;
381
        return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5;
382
    else 
383
        local i = 0;
384
        if m11 > m00 then 
385
            i = 1;
386
        end;
387
        if m22 > (i == 0 and m00 or m11) then
388
            i = 2 end if i == 0 then
389
            local s = math.sqrt(m00-m11-m22+1);
390
            local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip; 
391
        elseif i == 1 then
392
            local s = math.sqrt(m11-m22-m00+1);
393
            local recip = 0.5/s;
394
            return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip ;
395
        elseif i == 2 then
396
            local s = math.sqrt(m22-m00-m11+1);
397
            local recip = 0.5/s;
398
            return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip;
399
        end;
400
    end; 
401
end;
402
403
function QuaternionToCFrame(px, py, pz, x, y, z, w)
404
    local xs, ys, zs = x + x, y + y, z + z;
405
    local wx, wy, wz = w*xs, w*ys, w*zs;
406
    local xx = x*xs;
407
    local xy = x*ys;
408
    local xz = x*zs;
409
    local yy = y*ys;
410
    local yz = y*zs;
411
    local zz = z*zs;
412
    return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) 
413
end;
414
415
function QuaternionSlerp(a, b, t)
416
    local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4];
417
    local startInterp, finishInterp; 
418
    if cosTheta >= 0.0001 then
419
        if (1 - cosTheta) > 0.0001 then
420
            local theta = math.acos(cosTheta);
421
            local invSinTheta = 1/math.sin(theta);
422
            startInterp = math.sin((1-t)*theta)*invSinTheta;
423
            finishInterp = math.sin(t*theta)*invSinTheta;
424
        else
425
            startInterp = 1-t finishInterp = t;
426
        end;
427
    else 
428
        if (1+cosTheta) > 0.0001 then
429
            local theta = math.acos(-cosTheta);
430
            local invSinTheta = 1/math.sin(theta);
431
            startInterp = math.sin((t-1)*theta)*invSinTheta;
432
            finishInterp = math.sin(t*theta)*invSinTheta;
433
        else startInterp = t-1 finishInterp = t;
434
        end;
435
    end;
436
    return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp;
437
end;
438
439
function CLerp(a,b,t)
440
    local qa={QuaternionFromCFrame(a)};
441
    local qb={QuaternionFromCFrame(b)};
442
    local ax,ay,az=a.x,a.y,a.z;
443
    local bx,by,bz=b.x,b.y,b.z;
444
    local _t=1-t;
445
    return QuaternionToCFrame(_t*ax+t*bx,_t*ay+t*by,_t*az+t*bz,QuaternionSlerp(qa, qb, t));
446
end
447
448
function GetWeld(weld) 
449
    local obj 
450
    for i, v in pairs(AnimJoints) do 
451
        if v[1] == weld then 
452
            obj = v 
453
            break 
454
        end 
455
    end 
456
    if not obj then 
457
        obj = {weld,NV} 
458
        table.insert(AnimJoints,obj) 
459
    end 
460
    return weld.C0.p, obj[2] 
461
end 
462
463
function SetWeld(weld, i, loops, origpos, origangle, nextpos, nextangle, override, overrideLower, smooth) 
464
    smooth = smooth or 1 
465
    local obj 
466
    for i, v in pairs(AnimJoints) do 
467
        if v[1] == weld then 
468
            obj = v 
469
            break 
470
        end 
471
    end 
472
    if not obj then 
473
        obj = {weld,NV} 
474
        table.insert(AnimJoints,obj) 
475
    end 
476
    
477
    local perc = (smooth == 1 and math.sin((math.pi/2)/loops*i)) or i/loops 
478
    
479
    local tox,toy,toz = 0,0,0 
480
    tox = math.abs(origangle.x - nextangle.x) *perc 
481
    toy = math.abs(origangle.y - nextangle.y) *perc 
482
    toz = math.abs(origangle.z - nextangle.z) *perc 
483
    tox = ((origangle.x > nextangle.x and -tox) or tox)
484
    toy = ((origangle.y > nextangle.y and -toy) or toy)
485
    toz = ((origangle.z > nextangle.z and -toz) or toz)
486
    
487
    local tox2,toy2,toz2 = 0,0,0 
488
    tox2 = math.abs(origpos.x - nextpos.x) *perc 
489
    toy2 = math.abs(origpos.y - nextpos.y) *perc 
490
    toz2 = math.abs(origpos.z - nextpos.z) *perc 
491
    tox2 = (origpos.x > nextpos.x and -tox2) or tox2 
492
    toy2 = (origpos.y > nextpos.y and -toy2) or toy2 
493
    toz2 = (origpos.z > nextpos.z and -toz2) or toz2 
494
    
495
    obj[2] = Vector3.new(origangle.x + tox, origangle.y + toy, origangle.z + toz) 
496
    weld.C0 = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2) * CFrame.Angles(origangle.x + tox,origangle.y + toy,origangle.z + toz) 
497
end 
498
499
function RotateCamera(x, y)
500
    Camera.CoordinateFrame = CFrame.new(Camera.Focus.p) * (Camera.CoordinateFrame - Camera.CoordinateFrame.p) * CFrame.Angles(x, y, 0) * CFrame.new(0, 0, (Camera.CoordinateFrame.p - Camera.Focus.p).magnitude)
501
end
502
503
function GetAngles(cf)
504
    local lv = cf.lookVector
505
    return -math.asin(lv.y), math.atan2(lv.x, -lv.z)
506
end
507
508
local LastCamCF = Camera.CoordinateFrame
509
510
function Look()
511
    if AlphaOn == true then
512
        local x, y = GetAngles(LastCamCF:toObjectSpace(Camera.CoordinateFrame))
513
        Camera.CoordinateFrame = LastCamCF
514
        RotateCamera(x * -(Alpha), y * -(Alpha))
515
        LastCamCF = Camera.CoordinateFrame
516
    end
517
end
518
519
function Cor(Func)
520
    local Ok, Err = coroutine.resume(coroutine.create(Func))
521
    if not Ok then
522
        print(Err)
523
    end
524
end
525
526
function Cor2(Func)
527
    local Ok, Err = ypcall(Func)
528
    if not Ok then
529
        print(Err)
530
    end
531
end
532
533
function MakePads()
534
    -- 1 - VTelekinesis
535
    P1 = Instance.new("Model")
536
    P1.Name = ModID
537
538
    -- 2 - RBase
539
    P2              = Instance.new("Part")
540
    P2.CFrame       = CFrame.new(Vector3.new(21.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0)
541
    P2.FormFactor   = Enum.FormFactor.Custom
542
    P2.Size         = Vector3.new(0.799999952, 0.200000003, 0.800000012)
543
    P2.Anchored     = true
544
    P2.BrickColor   = BrickColor.new("White")
545
    P2.Friction     = 0.30000001192093
546
    P2.Shape        = Enum.PartType.Block
547
    P2.Name         = "RBase"
548
    P2.Parent       = P1
549
    P2.Transparency = 1
550
551
    -- 3 - Mesh
552
    P3        = Instance.new("CylinderMesh")
553
    P3.Scale  = Vector3.new(1, 0.5, 1)
554
    P3.Parent = P2
555
556
    -- 4 - LBase
557
    P4              = Instance.new("Part")
558
    P4.CFrame       = CFrame.new(Vector3.new(18.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0)
559
    P4.FormFactor   = Enum.FormFactor.Custom
560
    P4.Size         = Vector3.new(0.799999952, 0.200000003, 0.800000012)
561
    P4.Anchored     = true
562
    P4.BrickColor   = BrickColor.new("White")
563
    P4.Friction     = 0.30000001192093
564
    P4.Shape        = Enum.PartType.Block
565
    P4.Name         = "LBase"
566
    P4.Parent       = P1
567
    P4.Transparency = 1
568
569
    -- 5 - Mesh
570
    P5              = Instance.new("CylinderMesh")
571
    P5.Scale        = Vector3.new(1, 0.5, 1)
572
    P5.Parent       = P4
573
    
574
575
    -- 6 - RP1
576
    P6              = Instance.new("Part")
577
    P6.CFrame       = CFrame.new(Vector3.new(20.8999996, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
578
    P6.FormFactor   = Enum.FormFactor.Custom
579
    P6.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
580
    P6.Anchored     = true
581
    P6.BrickColor   = BrickColor.new("White")
582
    P6.Friction     = 0.30000001192093
583
    P6.Shape        = Enum.PartType.Block
584
    P6.Name         = "RP1"
585
    P6.Parent       = P2
586
    P6.Transparency = 1
587
    -- 7 - Mesh
588
    P7              = Instance.new("CylinderMesh")
589
    P7.Scale        = Vector3.new(1, 0.5, 1)
590
    P7.Parent       = P6
591
    
592
593
    -- 8 - RP2
594
    P8              = Instance.new("Part")
595
    P8.CFrame       = CFrame.new(Vector3.new(21.1000004, 1.8499999, 11.6999998)) * CFrame.Angles(-0, 0, -0)
596
    P8.FormFactor   = Enum.FormFactor.Custom
597
    P8.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
598
    P8.Anchored     = true
599
    P8.BrickColor   = BrickColor.new("White")
600
    P8.Friction     = 0.30000001192093
601
    P8.Shape        = Enum.PartType.Block
602
    P8.Name         = "RP2"
603
    P8.Parent       = P2
604
    P8.Transparency = 1
605
606
    -- 9 - Mesh
607
    P9 = Instance.new("CylinderMesh")
608
    P9.Scale = Vector3.new(1, 0.5, 1)
609
    P9.Parent = P8
610
611
    -- 10 - RP3
612
    P10              = Instance.new("Part")
613
    P10.CFrame       = CFrame.new(Vector3.new(21.3000011, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
614
    P10.FormFactor   = Enum.FormFactor.Custom
615
    P10.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
616
    P10.Anchored     = true
617
    P10.BrickColor   = BrickColor.new("White")
618
    P10.Friction     = 0.30000001192093
619
    P10.Shape        = Enum.PartType.Block
620
    P10.Name         = "RP3"
621
    P10.Parent       = P2
622
    P10.Transparency = 1
623
624
    -- 11 - Mesh
625
    P11              = Instance.new("CylinderMesh")
626
    P11.Scale        = Vector3.new(1, 0.5, 1)
627
    P11.Parent       = P10
628
629
630
    -- 12 - LP1
631
    P12              = Instance.new("Part")
632
    P12.CFrame       = CFrame.new(Vector3.new(17.8999996, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
633
    P12.FormFactor   = Enum.FormFactor.Custom
634
    P12.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
635
    P12.Anchored     = true
636
    P12.BrickColor   = BrickColor.new("White")
637
    P12.Friction     = 0.30000001192093
638
    P12.Shape        = Enum.PartType.Block
639
    P12.Name         = "LP1"
640
    P12.Parent       = P4
641
    P12.Transparency = 1
642
643
    -- 13 - Mesh
644
    P13        = Instance.new("CylinderMesh")
645
    P13.Scale  = Vector3.new(1, 0.5, 1)
646
    P13.Parent = P12
647
648
    -- 14 - LP2
649
    P14              = Instance.new("Part")
650
    P14.CFrame       = CFrame.new(Vector3.new(18.1000004, 1.8499999, 11.6999998)) * CFrame.Angles(-0, 0, -0)
651
    P14.FormFactor   = Enum.FormFactor.Custom
652
    P14.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
653
    P14.Anchored     = true
654
    P14.BrickColor   = BrickColor.new("White")
655
    P14.Friction     = 0.30000001192093
656
    P14.Shape        = Enum.PartType.Block
657
    P14.Name         = "LP2"
658
    P14.Parent       = P4
659
    P14.Transparency = 1
660
661
    -- 15 - Mesh
662
    P15              = Instance.new("CylinderMesh")
663
    P15.Scale        = Vector3.new(1, 0.5, 1)
664
    P15.Parent       = P14
665
666
667
    -- 16 - LP3
668
    P16              = Instance.new("Part")
669
    P16.CFrame       = CFrame.new(Vector3.new(18.3000011, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
670
    P16.FormFactor   = Enum.FormFactor.Custom
671
    P16.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
672
    P16.Anchored     = true
673
    P16.BrickColor   = BrickColor.new("White")
674
    P16.Friction     = 0.30000001192093
675
    P16.Shape        = Enum.PartType.Block
676
    P16.Name         = "LP3"
677
    P16.Parent       = P4
678
    P16.Transparency = 1
679
680
    -- 17 - Mesh
681
    P17              = Instance.new("CylinderMesh")
682
    P17.Scale        = Vector3.new(1, 0.5, 1)
683
    P17.Parent       = P16
684
685
    P1.Parent = LP.Character
686
    P1:MakeJoints()
687
    return P1
688
end
689
690
weldModel = function(model, unanchor, rooty)
691
    local parts = {}
692
    local function recurse(object)
693
        if object:IsA("BasePart") then
694
            table.insert(parts, object)
695
        end
696
        for _,child in pairs(object:GetChildren()) do
697
            recurse(child)
698
        end
699
    end
700
    recurse(model)
701
    
702
    local rootPart = rooty or parts[1]
703
    for _, part in pairs(parts) do
704
        local cframe = rootPart.CFrame:toObjectSpace(part.CFrame)
705
        local weld = Instance.new("Weld")
706
        weld.Part0 = rootPart
707
        weld.Part1 = part
708
        weld.C0 = cframe
709
        weld.Parent = rootPart
710
    end
711
    
712
    if unanchor then
713
        for _, part in pairs(parts) do
714
            part.Anchored = false
715
            part.CanCollide = false
716
        end
717
    end
718
end
719
720
weldItem = function(rootPart, Item, TheC0, unanchor, ParentItem)
721
    local cframe = TheC0 or rootPart.CFrame:toObjectSpace(Item.CFrame)
722
    local weld = Instance.new("Weld")
723
    weld.Name = "Weld"
724
    weld.Part0 = rootPart
725
    weld.Part1 = Item
726
    weld.C0 = cframe
727
    weld.Parent = ParentItem and Item or rootPart
728
    
729
    if unanchor then
730
        Item.Anchored = false
731
    end
732
    return weld, cframe
733
end
734
735
scaleModel = function(model, scale)
736
    local parts = {}
737
    local function recurse(object)
738
        if object:IsA("BasePart") then
739
            table.insert(parts, object)
740
        end
741
        for _,child in pairs(object:GetChildren()) do
742
            recurse(child)
743
        end
744
    end
745
    recurse(model)
746
    
747
    local top, bottom, left, right, back, front
748
    for _, part in pairs(parts) do
749
        if top == nil or top < part.Position.y then         top = part.Position.y end
750
        if bottom == nil or bottom > part.Position.y then   bottom = part.Position.y end
751
        if left == nil or left > part.Position.x then       left = part.Position.x end
752
        if right == nil or right < part.Position.x then     right = part.Position.x end
753
        if back == nil or back > part.Position.z then       back = part.Position.z end
754
        if front == nil or front < part.Position.z then     front = part.Position.z end
755
    end
756
    
757
    local middle = Vector3.new( left+right, top+bottom, back+front )/2
758
    local minSize = Vector3.new(0.2, 0.2, 0.2)
759
    
760
    for _, part in pairs(parts) do
761
        local foo = part.CFrame.p - middle
762
        local rotation = part.CFrame - part.CFrame.p
763
        local newSize = part.Size*scale
764
        part.FormFactor = "Custom"
765
        part.Size = newSize
766
        part.CFrame = CFrame.new( middle + foo*scale ) * rotation
767
        
768
        if newSize.x < minSize.x or newSize.y < minSize.y or newSize.z < minSize.z then
769
            local mesh
770
            for _, child in pairs(part:GetChildren()) do
771
                if child:IsA("DataModelMesh") then
772
                    mesh = child
773
                    break
774
                end
775
            end
776
            
777
            if mesh == nil then
778
                mesh = Instance.new("BlockMesh", part)
779
            end
780
            
781
            local oScale = mesh.Scale
782
            local newScale = newSize/minSize * oScale
783
            if 0.2 < newSize.x then newScale = Vector3.new(1 * oScale.x, newScale.y, newScale.z) end
784
            if 0.2 < newSize.y then newScale = Vector3.new(newScale.x, 1 * oScale.y, newScale.z) end
785
            if 0.2 < newSize.z then newScale = Vector3.new(newScale.x, newScale.y, 1 * oScale.z) end
786
            
787
            mesh.Scale = newScale
788
        end
789
    end
790
end
791
792
function getMass(Obj, Total)
793
    local newTotal = Total
794
    local returnTotal = 0
795
    
796
    if Obj:IsA("BasePart") then
797
        newTotal = newTotal + Objects[Obj]
798
    elseif BodyObjects[Obj.ClassName] then
799
        Obj:Destroy()
800
    end
801
    
802
    if Obj:GetChildren() and #Obj:GetChildren() > 0 then
803
        for _,v in pairs(Obj:GetChildren()) do
804
            returnTotal = returnTotal + getMass(v, newTotal)
805
        end
806
    else
807
        returnTotal = newTotal
808
    end
809
    
810
    return returnTotal
811
end
812
813
function getTargFromCurrent()
814
    local Current = Current.Part
815
    if Current:IsA("BasePart") then
816
        return Current
817
    elseif Current:findFirstChild("Torso") then
818
        return Current.Torso
819
    else
820
        for _,v in pairs(Current:GetChildren()) do
821
            if v:IsA("BasePart") then
822
                return v
823
            end
824
        end
825
    end
826
end
827
828
function Fire(Part, Vec, Inv)
829
    pcall(function()
830
        Current.BP:Destroy()
831
        Current.BP = nil
832
    end)
833
    pcall(function()
834
        Current.BA:Destroy()
835
        Current.BA = nil
836
    end)
837
    pcall(function()
838
        if Inv then
839
            Part.Velocity = -((Vec - Torso.Position).unit * Grav * 1.1)
840
        else
841
            Part.Velocity = ((Vec - Camera.CoordinateFrame.p).unit * Grav * 1.1)
842
        end
843
        Current.Mass = nil
844
    end)
845
    Reset()
846
end
847
848
function Reset()
849
    LS.Parent = nil
850
    RS.Parent = nil
851
    
852
    OrigLS.Parent = Torso
853
    OrigRS.Parent = Torso
854
    
855
    OrigLS.C0 = LS0
856
    OrigRS.C0 = RS0
857
end
858
859
function Start()
860
    Cor(function()
861
        repeat wait(1/30) until LP.Character and LP.Character.Parent == Workspace and LP.Character:findFirstChild("Torso")
862
        Char = LP.Character
863
        PlrGui = LP.PlayerGui
864
        Backpack = LP.Backpack
865
        Mouse = LP:GetMouse()
866
        
867
        for _,v in pairs(Cons) do
868
            v:disconnect()
869
        end
870
        Cons = {}
871
872
        Camera = Workspace.CurrentCamera
873
        LastCamCF = Camera.CoordinateFrame
874
        AnimJoints = {}
875
        mDown = false
876
        Multi = false
877
        Grabbing = false
878
        Current = {}
879
        Alpha = 1
880
881
        Head = Char["Head"]
882
        Torso = Char["Torso"]
883
        Humanoid = Char["Humanoid"]
884
        LA = Char["Left Arm"]
885
        RA = Char["Right Arm"]
886
        LL = Char["Left Leg"]
887
        RL = Char["Right Leg"]
888
        
889
        OrigLS = Torso["Left Shoulder"]
890
        OrigRS = Torso["Right Shoulder"]
891
892
        for _,v in pairs(Char:GetChildren()) do
893
            if v.Name == ModID then
894
                v:Destroy()
895
            end
896
        end
897
898
        for _,v in pairs(PlrGui:GetChildren()) do
899
            if v.Name == "PadsGui" then
900
                v:Destroy()
901
            end
902
        end
903
        
904
        LS = Instance.new("Weld")
905
        RS = Instance.new("Weld")
906
907
        LS.Name = OrigLS.Name
908
        LS.Part0 = Torso
909
        LS.Part1 = LA
910
        LS.C0 = LS0
911
        LS.C1 = CFrame.new(0, 0.5, 0,  1, 0, 0,  0, 0, 1,  0, -1, 0)
912
913
        RS.Name = OrigRS.Name
914
        RS.Part0 = Torso
915
        RS.Part1 = RA
916
        RS.C0 = RS0
917
        RS.C1 = CFrame.new(0, 0.5, 0,  1, 0, 0,  0, 0, 1,  0, -1, 0)
918
919
        local Pads = MakePads()
920
        local LPad = Pads.LBase
921
        local RPad = Pads.RBase
922
923
        weldModel(LPad, true, LPad)
924
        weldModel(RPad, true, RPad)
925
926
        local GripWeldL = Instance.new("Weld")
927
        GripWeldL.Name = "GripWeldL"
928
        GripWeldL.Part0 = LA
929
        GripWeldL.Part1 = LPad
930
        GripWeldL.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0)
931
        GripWeldL.Parent = LA
932
933
        local GripWeldR = Instance.new("Weld")
934
        GripWeldR.Name = "GripWeldR"
935
        GripWeldR.Part0 = RA
936
        GripWeldR.Part1 = RPad
937
        GripWeldR.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0)
938
        GripWeldR.Parent = RA
939
        
940
        local isParts = false
941
942
        table.insert(Cons, Mouse.KeyDown:connect(function(Key)
943
            Key = Key:lower()
944
            if Key == "z" then
945
                --Stuff
946
            elseif Key == "f" then
947
                local Current = Current.Part
948
                if Current and Current.Parent ~= nil and not Multi then
949
                    Current:BreakJoints()
950
                end
951
            elseif Key == "q" then
952
                if isParts then
953
                    isParts = false
954
                    for _,v in pairs(Workspace:GetChildren()) do
955
                        if v.Name == "MyPartV" and v:IsA("BasePart") then
956
                            v:Destroy()
957
                        end
958
                    end
959
                else
960
                    isParts = true
961
                    for i = 1, 50 do
962
                        local Part         = Instance.new("Part")
963
                        Part.Color         = Color3.new(math.random(), math.random(), math.random())
964
                        Part.Transparency  = 1
965
                        Part.Size          = Vector3.new(math.random(1, 3), math.random(1, 3), math.random(1, 3))
966
                        Part.Archivable    = true
967
                        Part.CanCollide    = false
968
                        Part.Material      = "Plastic"
969
                        Part.Locked        = false
970
                        Part.CFrame        = Torso.CFrame * CFrame.new(math.random(-15, 15), -1, math.random(-15, 15))
971
                        Part.Anchored      = true
972
                        Part.Name          = "MyPartV"
973
                        Part.TopSurface    = "Smooth"
974
                        Part.BottomSurface = "Smooth"
975
                        Part.Parent        = Workspace
976
                    end
977
                end
978
            elseif Key == "e" then
979
                local Targ;
980
                if Current.Part and Current.Part ~= nil then
981
                    Targ = getTargFromCurrent()
982
                else
983
                    Targ = LastPart
984
                end
985
                if Targ and Targ.Parent ~= nil and not Multi then
986
                    local Ex = Instance.new("Explosion", Workspace)
987
                    Ex.Position = Targ.CFrame.p
988
                    Ex.BlastRadius = 16
989
                    Ex.DestroyJointRadiusPercent = 0.5
990
                end
991
            elseif Key == "c" then
992
                if Current.Part and Current.Part.Parent ~= nil and not Multi then
993
                    local Part = getTargFromCurrent()
994
                    if Part then
995
                        Grabbing = false
996
                        if Mouse.Hit then
997
                            local TargPos = CFrame.new(Camera.CoordinateFrame.p, Mouse.Hit.p) * CFrame.new(0, 0, -1000)
998
                            Fire(Part, TargPos.p)
999
                        else
1000
                            Fire(Part, Mouse.Origin.p + Mouse.UnitRay.Direction, true)
1001
                        end
1002
                    end
1003
                end
1004
            end
1005
        end))
1006
1007
        table.insert(Cons, Mouse.Button1Up:connect(function()
1008
            mDown = false
1009
            if Grabbing == true and Multi == false then
1010
                Grabbing = false
1011
                Reset()
1012
            end
1013
            if Current.Part ~= nil then
1014
                LastPart = getTargFromCurrent()
1015
                Current = {}
1016
            end
1017
        end))
1018
1019
        local function makeLightning(Par, Start, End, Width, Length, RandomScale, ArcScale, Num1)
1020
            local oldParts = {}
1021
            for _,v in pairs(Par:GetChildren()) do
1022
                v.CFrame = CFrame.new(5e5, 5e5, 5e5)
1023
                table.insert(oldParts, v)
1024
            end
1025
            local Distance = (Start-End).Magnitude
1026
            local ArcScale = ArcScale or 1
1027
            local RandomScale = RandomScale or 0
1028
            local Last = Start
1029
            local IterNum = 0
1030
1031
            while Par.Parent do
1032
                IterNum = IterNum + 1
1033
                local New = nil
1034
                if (Last-End).Magnitude < Length then
1035
                    New = CFrame.new(End)
1036
                else
1037
                    if (End-Last).Magnitude < Length*2 then
1038
                        RandomScale = RandomScale*0.5
1039
                        ArcScale = ArcScale*0.5
1040
                    end
1041
                    local Direct = CFrame.new(Last,End)
1042
                    New = Direct*CFrame.Angles(math.rad(math.random(-RandomScale/4,RandomScale*ArcScale)),math.rad(math.random(-RandomScale,RandomScale)),math.rad(math.random(-RandomScale,RandomScale)))
1043
                    New = New*CFrame.new(0,0,-Length)
1044
                end
1045
                local Trail = nil
1046
                if oldParts[IterNum] then
1047
                    Trail            = oldParts[IterNum]
1048
                    Trail.BrickColor = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("White")
1049
                    Trail.Size       = Vector3.new(Width, (Last-New.p).Magnitude, Width)
1050
                    Trail.CFrame     = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0)
1051
                    oldParts[IterNum] = nil
1052
                else
1053
                    Trail               = Instance.new("Part")
1054
                    Trail.Name          = "Part"
1055
                    Trail.FormFactor    = "Custom"
1056
                    Trail.BrickColor    = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("White")
1057
                    Trail.Transparency  = 1
1058
                    Trail.Anchored      = true
1059
                    Trail.CanCollide    = false
1060
                    Trail.Locked        = true
1061
                    Trail.BackSurface   = "SmoothNoOutlines"
1062
                    Trail.BottomSurface = "SmoothNoOutlines"
1063
                    Trail.FrontSurface  = "SmoothNoOutlines"
1064
                    Trail.LeftSurface   = "SmoothNoOutlines"
1065
                    Trail.RightSurface  = "SmoothNoOutlines"
1066
                    Trail.TopSurface    = "SmoothNoOutlines"
1067
                    Trail.Material      = "Neon"
1068
                    Trail.Size          = Vector3.new(Width, (Last-New.p).Magnitude, Width)
1069
                    Trail.CFrame        = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0)
1070
                    Trail.Parent        = Par
1071
                end
1072
                Last = New.p
1073
                if (Last-End).Magnitude < 1 then
1074
                    break
1075
                end
1076
            end
1077
            for _,v in pairs(oldParts) do
1078
                v:Destroy()
1079
            end
1080
        end
1081
1082
        table.insert(Cons, Mouse.Button1Down:connect(function()
1083
            mDown = true
1084
            local Targ = Mouse.Target
1085
            Cor(function()
1086
                if Targ and Objects[Targ] and not Multi then
1087
                    Grabbing = true
1088
                    Current.Part = Targ
1089
                    local Mass = Objects[Targ]
1090
                    local ForceNum = 0
1091
                    local Hum = nil
1092
                    
1093
                    for _,v in pairs(Targ:GetChildren()) do
1094
                        if BodyObjects[v.ClassName] then
1095
                            v:Destroy()
1096
                        end
1097
                    end
1098
                    
1099
                    for _,v in pairs(Workspace:GetChildren()) do
1100
                        if v:findFirstChild("Humanoid") and v:IsAncestorOf(Targ) then
1101
                            Hum = v.Humanoid
1102
                            Mass = getMass(v, 0)
1103
                            Current.Part = v
1104
                            break
1105
                        end
1106
                    end
1107
                    
1108
                    Current.Mass = Mass
1109
                    
1110
                    if not Hum then
1111
                        Targ:BreakJoints()
1112
                    end
1113
                    
1114
                    ForceNum = Mass * Grav
1115
                    Targ.CanCollide = true
1116
                    Targ.Anchored = false
1117
                    
1118
                    local BP = Instance.new("BodyPosition")
1119
                    BP.maxForce = Vector3.new(3 * ForceNum, 3 * ForceNum, 3 * ForceNum)
1120
                    BP.Parent = Targ
1121
                    
1122
                    local Ang = Instance.new("BodyAngularVelocity")
1123
                    Ang.Parent = Targ
1124
                    
1125
                    Current.BP = BP
1126
                    Current.BA = Ang
1127
                    
1128
                    OrigLS.Parent = nil
1129
                    OrigRS.Parent = nil
1130
                    
1131
                    LS.Parent = Torso
1132
                    RS.Parent = Torso
1133
                    
1134
                    LS.C0 = LS0
1135
                    RS.C0 = RS0
1136
                    
1137
                    local DirDot = Mouse.UnitRay.Direction:Dot(Targ.Position - Mouse.Origin.p)
1138
                    local BPPos = Vector3.new(0, 0, 0)
1139
                    local Vel = Vector3.new(0, 0, 0)
1140
                    local Vlev = random() * math.pi
1141
                    local RPos = Vector3.new(random() * 2 - 1, cos(Vlev), random() * 2 - 1)
1142
                    
1143
                    local Ball        = Instance.new("Part")
1144
                    Ball.Name         = "Ball"
1145
                    Ball.FormFactor   = "Custom"
1146
                    Ball.Color        = Color3.new(0, 0, 0)
1147
                    Ball.Transparency = 1
1148
                    Ball.Anchored     = true
1149
                    Ball.CanCollide   = false
1150
                    Ball.Locked       = true
1151
                    Ball.BottomSurface, Ball.TopSurface = "Smooth", "Smooth"
1152
                    Ball.Size = Vector3.new(0.5, 0.5, 0.5)
1153
                    Ball.CFrame = Torso.CFrame * CFrame.new(0, 1, -3)
1154
                    Ball.Parent = Char
1155
1156
                    if Targ.Name == "MyPartV" then
1157
                        Targ.Name = "MyPartF"
1158
                    end
1159
1160
                    local LightMod = Instance.new("Model", Char)
1161
                        
1162
                    local Mesh = Instance.new("SpecialMesh")
1163
                    Mesh.MeshType = "Sphere"
1164
                    Mesh.Parent = Ball
1165
                    
1166
                    local Size = 1
1167
                    local Rise = true
1168
                    
1169
                    while Grabbing and BP and Ang and Targ.Parent ~= nil do
1170
                        local BPPos = Mouse.Origin.p + Mouse.UnitRay.Direction * DirDot
1171
                        Ang.angularvelocity = Vel
1172
                        BP.position = BPPos + RPos
1173
                        RPos = Vector3.new(max(-1, min(RPos.x + random() * 0.02 - 0.01, 1)), cos(Vlev), max(-1, min(RPos.z + random() * 0.02 - 0.01, 1)))
1174
                        Vel = Vector3.new(max(-1, min(Vel.x + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.y + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.z + random() * 0.2 - 0.1, 1)))
1175
                        Vlev = (Vlev + 0.05) % tau
1176
                        
1177
                        if Hum then
1178
                            Hum.Sit = true
1179
                        end
1180
                        
1181
                        if LA.Parent ~= nil and RA.Parent ~= nil then
1182
                            local LPos = (LA.CFrame * CFrame.new(0, -1, 0)).p
1183
                            local RPos = (RA.CFrame * CFrame.new(0, -1, 0)).p
1184
                            if Rise == true then
1185
                                if Size < 0.6 then
1186
                                    Size = Size + 0.05
1187
                                else
1188
                                    Size = Size + 0.1
1189
                                end
1190
                                if Size >= 2.2 then
1191
                                    Rise = false
1192
                                end
1193
                            else
1194
                                if Size > 2.1 then
1195
                                    Size = Size - 0.05
1196
                                else
1197
                                    Size = Size - 0.1
1198
                                end
1199
                                if Size <= 0.5 then
1200
                                    Rise = true
1201
                                end
1202
                            end
1203
                            Ball.Size = Vector3.new(Size, Size, Size)
1204
                            Ball.CFrame = CFrame.new(LPos:Lerp(RPos, 0.5), Targ.Position) * CFrame.new(0, 0, -2.2)
1205
                            LightNum = LightNum + 1
1206
                            makeLightning(LightMod, Ball.Position, Targ.Position, 0.2, 4, 50, 1, LightNum)
1207
                        elseif Ball.Parent ~= nil then
1208
                            Ball:Destroy()
1209
                        end
1210
                        
1211
                        if LS and LS.Parent == Torso then
1212
                            LS.C0 = CFrame.new(Vector3.new(-1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(-1.5, 0.5, 1)).p))
1213
                        end
1214
                        if RS and RS.Parent == Torso then
1215
                            RS.C0 = CFrame.new(Vector3.new(1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(1.5, 0.5, 1)).p))
1216
                        end
1217
                        RunService.Heartbeat:wait()
1218
                    end
1219
1220
                    coroutine.resume(coroutine.create(function()
1221
                        for i = 0.5, 1, 0.1 do
1222
                            for i2,v in pairs(LightMod:GetChildren()) do
1223
                                --v.Light.Range = 6-(i*5)
1224
                                v.Transparency = 1
1225
                            end
1226
                            wait(1/30)
1227
                        end
1228
                        LightMod:Destroy()
1229
                    end))
1230
                    
1231
                    if BP and BP.Parent ~= nil then
1232
                        BP:Destroy()
1233
                    end
1234
                    
1235
                    if Ang and Ang.Parent ~= nil then
1236
                        Ang:Destroy()
1237
                    end
1238
                    
1239
                    pcall(function() Ball:Destroy() end)
1240
                end
1241
            end)
1242
        end))
1243
    end)
1244
end
1245
1246
function Add(Obj)
1247
    if Obj:IsA("BasePart") and not Objects[Obj] and not (Obj.Name == "Base" and Obj.ClassName == "Part") then
1248
        Objects[Obj] = Obj:GetMass()
1249
        Obj.Changed:connect(function(P)
1250
            if P:lower() == "size" and Objects[Obj] and Obj.Parent ~= nil then
1251
                Objects[Obj] = Obj:GetMass()
1252
            end
1253
        end)
1254
    end
1255
end
1256
1257
function Rem(Obj)
1258
    if Objects[Obj] then
1259
        Objects[Obj] = nil
1260
    end
1261
end
1262
1263
function Recursion(Obj)
1264
    ypcall(function()
1265
        Add(Obj)
1266
        if #Obj:GetChildren() > 0 then
1267
            for _,v in pairs(Obj:GetChildren()) do 
1268
                Recursion(v)
1269
            end
1270
        end
1271
    end)
1272
end
1273
1274
Workspace.DescendantAdded:connect(function(Obj)
1275
    Add(Obj)
1276
end)
1277
1278
Workspace.DescendantRemoving:connect(function(Obj)
1279
    Rem(Obj)
1280
end)
1281
1282
for _,v in pairs(Workspace:GetChildren()) do
1283
    Recursion(v)
1284
end
1285
local isScriptNil = false
1286
1287
local PlrName = "saud20"
1288
local Plrs = game:GetService("Players")
1289
local RunService = game:GetService("RunService")
1290
local Content = game:GetService("ContentProvider")
1291
local LP = Plrs.LocalPlayer
1292
local Char = LP.Character
1293
local PlrGui = LP.PlayerGui
1294
local Backpack = LP.Backpack
1295
local Mouse = LP:GetMouse()
1296
1297
local Camera = Workspace.CurrentCamera
1298
local LastCamCF = Camera.CoordinateFrame
1299
local AnimJoints = {}
1300
local Cons = {}
1301
local mDown = false
1302
local Multi = false
1303
local Grabbing = false
1304
local Current = {}
1305
local Alpha = 1
1306
local LightNum = 1
1307
1308
Current.Part = nil
1309
Current.BP = nil
1310
Current.BA = nil
1311
Current.Mass = nil
1312
1313
local LastPart = nil
1314
1315
local Head = Char["Head"]
1316
local Torso = Char["Torso"]
1317
local Humanoid = Char["Humanoid"]
1318
local LA = Char["Left Arm"]
1319
local RA = Char["Right Arm"]
1320
local LL = Char["Left Leg"]
1321
local RL = Char["Right Leg"]
1322
1323
local LS, RS;
1324
1325
local OrigLS = Torso["Left Shoulder"]
1326
local OrigRS = Torso["Right Shoulder"]
1327
1328
for _,v in pairs(Char:GetChildren()) do
1329
    if v.Name == ModID then
1330
        v:Destroy()
1331
    end
1332
end
1333
1334
for _,v in pairs(PlrGui:GetChildren()) do
1335
    if v.Name == "PadsGui" then
1336
        v:Destroy()
1337
    end
1338
end
1339
1340
local ModID = "Pads"
1341
local Objects = {}
1342
local Grav = 196.2
1343
1344
local sin=math.sin
1345
local cos=math.cos
1346
local max=math.max
1347
local min=math.min
1348
local atan2=math.atan2
1349
local random=math.random
1350
local tau = 2 * math.pi
1351
1352
local BodyObjects = {
1353
    ["BodyVelocity"] = true;
1354
    ["BodyAngularVelocity"] = true;
1355
    ["BodyForce"] = true;
1356
    ["BodyThrust"] = true;
1357
    ["BodyPosition"] = true;
1358
    ["RocketPropulsion"] = true;
1359
}
1360
1361
if LP.Name == PlrName and isScriptNil then
1362
    script.Parent = nil
1363
end
1364
1365
LP.CameraMode = "Classic"
1366
1367
local Assets = {
1368
}
1369
1370
local LS0, LS1 = OrigLS.C0, OrigLS.C1
1371
local RS0, RS1 = OrigRS.C0, OrigRS.C1
1372
1373
for i,v in pairs(Assets) do
1374
    local ID = tostring(Assets[i])
1375
    Assets[i] = "http://www.roblox.com/asset/?id=" .. ID
1376
    Content:Preload("http://www.roblox.com/asset/?id=" .. ID)
1377
end
1378
1379
function QuaternionFromCFrame(cf)
1380
    local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components();
1381
    local trace = m00 + m11 + m22 if trace > 0 then 
1382
        local s = math.sqrt(1 + trace);
1383
        local recip = 0.5/s;
1384
        return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5;
1385
    else 
1386
        local i = 0;
1387
        if m11 > m00 then 
1388
            i = 1;
1389
        end;
1390
        if m22 > (i == 0 and m00 or m11) then
1391
            i = 2 end if i == 0 then
1392
            local s = math.sqrt(m00-m11-m22+1);
1393
            local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip; 
1394
        elseif i == 1 then
1395
            local s = math.sqrt(m11-m22-m00+1);
1396
            local recip = 0.5/s;
1397
            return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip ;
1398
        elseif i == 2 then
1399
            local s = math.sqrt(m22-m00-m11+1);
1400
            local recip = 0.5/s;
1401
            return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip;
1402
        end;
1403
    end; 
1404
end;
1405
1406
function QuaternionToCFrame(px, py, pz, x, y, z, w)
1407
    local xs, ys, zs = x + x, y + y, z + z;
1408
    local wx, wy, wz = w*xs, w*ys, w*zs;
1409
    local xx = x*xs;
1410
    local xy = x*ys;
1411
    local xz = x*zs;
1412
    local yy = y*ys;
1413
    local yz = y*zs;
1414
    local zz = z*zs;
1415
    return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) 
1416
end;
1417
1418
function QuaternionSlerp(a, b, t)
1419
    local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4];
1420
    local startInterp, finishInterp; 
1421
    if cosTheta >= 0.0001 then
1422
        if (1 - cosTheta) > 0.0001 then
1423
            local theta = math.acos(cosTheta);
1424
            local invSinTheta = 1/math.sin(theta);
1425
            startInterp = math.sin((1-t)*theta)*invSinTheta;
1426
            finishInterp = math.sin(t*theta)*invSinTheta;
1427
        else
1428
            startInterp = 1-t finishInterp = t;
1429
        end;
1430
    else 
1431
        if (1+cosTheta) > 0.0001 then
1432
            local theta = math.acos(-cosTheta);
1433
            local invSinTheta = 1/math.sin(theta);
1434
            startInterp = math.sin((t-1)*theta)*invSinTheta;
1435
            finishInterp = math.sin(t*theta)*invSinTheta;
1436
        else startInterp = t-1 finishInterp = t;
1437
        end;
1438
    end;
1439
    return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp;
1440
end;
1441
1442
function CLerp(a,b,t)
1443
    local qa={QuaternionFromCFrame(a)};
1444
    local qb={QuaternionFromCFrame(b)};
1445
    local ax,ay,az=a.x,a.y,a.z;
1446
    local bx,by,bz=b.x,b.y,b.z;
1447
    local _t=1-t;
1448
    return QuaternionToCFrame(_t*ax+t*bx,_t*ay+t*by,_t*az+t*bz,QuaternionSlerp(qa, qb, t));
1449
end
1450
1451
function GetWeld(weld) 
1452
    local obj 
1453
    for i, v in pairs(AnimJoints) do 
1454
        if v[1] == weld then 
1455
            obj = v 
1456
            break 
1457
        end 
1458
    end 
1459
    if not obj then 
1460
        obj = {weld,NV} 
1461
        table.insert(AnimJoints,obj) 
1462
    end 
1463
    return weld.C0.p, obj[2] 
1464
end 
1465
1466
function SetWeld(weld, i, loops, origpos, origangle, nextpos, nextangle, override, overrideLower, smooth) 
1467
    smooth = smooth or 1 
1468
    local obj 
1469
    for i, v in pairs(AnimJoints) do 
1470
        if v[1] == weld then 
1471
            obj = v 
1472
            break 
1473
        end 
1474
    end 
1475
    if not obj then 
1476
        obj = {weld,NV} 
1477
        table.insert(AnimJoints,obj) 
1478
    end 
1479
    
1480
    local perc = (smooth == 1 and math.sin((math.pi/2)/loops*i)) or i/loops 
1481
    
1482
    local tox,toy,toz = 0,0,0 
1483
    tox = math.abs(origangle.x - nextangle.x) *perc 
1484
    toy = math.abs(origangle.y - nextangle.y) *perc 
1485
    toz = math.abs(origangle.z - nextangle.z) *perc 
1486
    tox = ((origangle.x > nextangle.x and -tox) or tox)
1487
    toy = ((origangle.y > nextangle.y and -toy) or toy)
1488
    toz = ((origangle.z > nextangle.z and -toz) or toz)
1489
    
1490
    local tox2,toy2,toz2 = 0,0,0 
1491
    tox2 = math.abs(origpos.x - nextpos.x) *perc 
1492
    toy2 = math.abs(origpos.y - nextpos.y) *perc 
1493
    toz2 = math.abs(origpos.z - nextpos.z) *perc 
1494
    tox2 = (origpos.x > nextpos.x and -tox2) or tox2 
1495
    toy2 = (origpos.y > nextpos.y and -toy2) or toy2 
1496
    toz2 = (origpos.z > nextpos.z and -toz2) or toz2 
1497
    
1498
    obj[2] = Vector3.new(origangle.x + tox, origangle.y + toy, origangle.z + toz) 
1499
    weld.C0 = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2) * CFrame.Angles(origangle.x + tox,origangle.y + toy,origangle.z + toz) 
1500
end 
1501
1502
function RotateCamera(x, y)
1503
    Camera.CoordinateFrame = CFrame.new(Camera.Focus.p) * (Camera.CoordinateFrame - Camera.CoordinateFrame.p) * CFrame.Angles(x, y, 0) * CFrame.new(0, 0, (Camera.CoordinateFrame.p - Camera.Focus.p).magnitude)
1504
end
1505
1506
function GetAngles(cf)
1507
    local lv = cf.lookVector
1508
    return -math.asin(lv.y), math.atan2(lv.x, -lv.z)
1509
end
1510
1511
local LastCamCF = Camera.CoordinateFrame
1512
1513
function Look()
1514
    if AlphaOn == true then
1515
        local x, y = GetAngles(LastCamCF:toObjectSpace(Camera.CoordinateFrame))
1516
        Camera.CoordinateFrame = LastCamCF
1517
        RotateCamera(x * -(Alpha), y * -(Alpha))
1518
        LastCamCF = Camera.CoordinateFrame
1519
    end
1520
end
1521
1522
function Cor(Func)
1523
    local Ok, Err = coroutine.resume(coroutine.create(Func))
1524
    if not Ok then
1525
        print(Err)
1526
    end
1527
end
1528
1529
function Cor2(Func)
1530
    local Ok, Err = ypcall(Func)
1531
    if not Ok then
1532
        print(Err)
1533
    end
1534
end
1535
1536
function MakePads()
1537
    -- 1 - VTelekinesis
1538
    P1 = Instance.new("Model")
1539
    P1.Name = ModID
1540
1541
    -- 2 - RBase
1542
    P2              = Instance.new("Part")
1543
    P2.CFrame       = CFrame.new(Vector3.new(21.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0)
1544
    P2.FormFactor   = Enum.FormFactor.Custom
1545
    P2.Size         = Vector3.new(0.799999952, 0.200000003, 0.800000012)
1546
    P2.Anchored     = true
1547
    P2.BrickColor   = BrickColor.new("White")
1548
    P2.Friction     = 0.30000001192093
1549
    P2.Shape        = Enum.PartType.Block
1550
    P2.Name         = "RBase"
1551
    P2.Parent       = P1
1552
    P2.Transparency = 1
1553
1554
    -- 3 - Mesh
1555
    P3        = Instance.new("CylinderMesh")
1556
    P3.Scale  = Vector3.new(1, 0.5, 1)
1557
    P3.Parent = P2
1558
1559
    -- 4 - LBase
1560
    P4              = Instance.new("Part")
1561
    P4.CFrame       = CFrame.new(Vector3.new(18.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0)
1562
    P4.FormFactor   = Enum.FormFactor.Custom
1563
    P4.Size         = Vector3.new(0.799999952, 0.200000003, 0.800000012)
1564
    P4.Anchored     = true
1565
    P4.BrickColor   = BrickColor.new("White")
1566
    P4.Friction     = 0.30000001192093
1567
    P4.Shape        = Enum.PartType.Block
1568
    P4.Name         = "LBase"
1569
    P4.Parent       = P1
1570
    P4.Transparency = 1
1571
1572
    -- 5 - Mesh
1573
    P5              = Instance.new("CylinderMesh")
1574
    P5.Scale        = Vector3.new(1, 0.5, 1)
1575
    P5.Parent       = P4
1576
    
1577
1578
    -- 6 - RP1
1579
    P6              = Instance.new("Part")
1580
    P6.CFrame       = CFrame.new(Vector3.new(20.8999996, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
1581
    P6.FormFactor   = Enum.FormFactor.Custom
1582
    P6.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1583
    P6.Anchored     = true
1584
    P6.BrickColor   = BrickColor.new("White")
1585
    P6.Friction     = 0.30000001192093
1586
    P6.Shape        = Enum.PartType.Block
1587
    P6.Name         = "RP1"
1588
    P6.Parent       = P2
1589
    P6.Transparency = 1
1590
    -- 7 - Mesh
1591
    P7              = Instance.new("CylinderMesh")
1592
    P7.Scale        = Vector3.new(1, 0.5, 1)
1593
    P7.Parent       = P6
1594
    
1595
1596
    -- 8 - RP2
1597
    P8              = Instance.new("Part")
1598
    P8.CFrame       = CFrame.new(Vector3.new(21.1000004, 1.8499999, 11.6999998)) * CFrame.Angles(-0, 0, -0)
1599
    P8.FormFactor   = Enum.FormFactor.Custom
1600
    P8.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1601
    P8.Anchored     = true
1602
    P8.BrickColor   = BrickColor.new("White")
1603
    P8.Friction     = 0.30000001192093
1604
    P8.Shape        = Enum.PartType.Block
1605
    P8.Name         = "RP2"
1606
    P8.Parent       = P2
1607
    P8.Transparency = 1
1608
1609
    -- 9 - Mesh
1610
    P9 = Instance.new("CylinderMesh")
1611
    P9.Scale = Vector3.new(1, 0.5, 1)
1612
    P9.Parent = P8
1613
1614
    -- 10 - RP3
1615
    P10              = Instance.new("Part")
1616
    P10.CFrame       = CFrame.new(Vector3.new(21.3000011, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
1617
    P10.FormFactor   = Enum.FormFactor.Custom
1618
    P10.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1619
    P10.Anchored     = true
1620
    P10.BrickColor   = BrickColor.new("White")
1621
    P10.Friction     = 0.30000001192093
1622
    P10.Shape        = Enum.PartType.Block
1623
    P10.Name         = "RP3"
1624
    P10.Parent       = P2
1625
    P10.Transparency = 1
1626
1627
    -- 11 - Mesh
1628
    P11              = Instance.new("CylinderMesh")
1629
    P11.Scale        = Vector3.new(1, 0.5, 1)
1630
    P11.Parent       = P10
1631
1632
1633
    -- 12 - LP1
1634
    P12              = Instance.new("Part")
1635
    P12.CFrame       = CFrame.new(Vector3.new(17.8999996, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
1636
    P12.FormFactor   = Enum.FormFactor.Custom
1637
    P12.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1638
    P12.Anchored     = true
1639
    P12.BrickColor   = BrickColor.new("White")
1640
    P12.Friction     = 0.30000001192093
1641
    P12.Shape        = Enum.PartType.Block
1642
    P12.Name         = "LP1"
1643
    P12.Parent       = P4
1644
    P12.Transparency = 1
1645
1646
    -- 13 - Mesh
1647
    P13        = Instance.new("CylinderMesh")
1648
    P13.Scale  = Vector3.new(1, 0.5, 1)
1649
    P13.Parent = P12
1650
1651
    -- 14 - LP2
1652
    P14              = Instance.new("Part")
1653
    P14.CFrame       = CFrame.new(Vector3.new(18.1000004, 1.8499999, 11.6999998)) * CFrame.Angles(-0, 0, -0)
1654
    P14.FormFactor   = Enum.FormFactor.Custom
1655
    P14.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1656
    P14.Anchored     = true
1657
    P14.BrickColor   = BrickColor.new("White")
1658
    P14.Friction     = 0.30000001192093
1659
    P14.Shape        = Enum.PartType.Block
1660
    P14.Name         = "LP2"
1661
    P14.Parent       = P4
1662
    P14.Transparency = 1
1663
1664
    -- 15 - Mesh
1665
    P15              = Instance.new("CylinderMesh")
1666
    P15.Scale        = Vector3.new(1, 0.5, 1)
1667
    P15.Parent       = P14
1668
1669
1670
    -- 16 - LP3
1671
    P16              = Instance.new("Part")
1672
    P16.CFrame       = CFrame.new(Vector3.new(18.3000011, 1.8499999, 12.0499992)) * CFrame.Angles(-0, 0, -0)
1673
    P16.FormFactor   = Enum.FormFactor.Custom
1674
    P16.Size         = Vector3.new(0.200000003, 0.200000003, 0.200000003)
1675
    P16.Anchored     = true
1676
    P16.BrickColor   = BrickColor.new("White")
1677
    P16.Friction     = 0.30000001192093
1678
    P16.Shape        = Enum.PartType.Block
1679
    P16.Name         = "LP3"
1680
    P16.Parent       = P4
1681
    P16.Transparency = 1
1682
1683
    -- 17 - Mesh
1684
    P17              = Instance.new("CylinderMesh")
1685
    P17.Scale        = Vector3.new(1, 0.5, 1)
1686
    P17.Parent       = P16
1687
1688
    P1.Parent = LP.Character
1689
    P1:MakeJoints()
1690
    return P1
1691
end
1692
1693
weldModel = function(model, unanchor, rooty)
1694
    local parts = {}
1695
    local function recurse(object)
1696
        if object:IsA("BasePart") then
1697
            table.insert(parts, object)
1698
        end
1699
        for _,child in pairs(object:GetChildren()) do
1700
            recurse(child)
1701
        end
1702
    end
1703
    recurse(model)
1704
    
1705
    local rootPart = rooty or parts[1]
1706
    for _, part in pairs(parts) do
1707
        local cframe = rootPart.CFrame:toObjectSpace(part.CFrame)
1708
        local weld = Instance.new("Weld")
1709
        weld.Part0 = rootPart
1710
        weld.Part1 = part
1711
        weld.C0 = cframe
1712
        weld.Parent = rootPart
1713
    end
1714
    
1715
    if unanchor then
1716
        for _, part in pairs(parts) do
1717
            part.Anchored = false
1718
            part.CanCollide = false
1719
        end
1720
    end
1721
end
1722
1723
weldItem = function(rootPart, Item, TheC0, unanchor, ParentItem)
1724
    local cframe = TheC0 or rootPart.CFrame:toObjectSpace(Item.CFrame)
1725
    local weld = Instance.new("Weld")
1726
    weld.Name = "Weld"
1727
    weld.Part0 = rootPart
1728
    weld.Part1 = Item
1729
    weld.C0 = cframe
1730
    weld.Parent = ParentItem and Item or rootPart
1731
    
1732
    if unanchor then
1733
        Item.Anchored = false
1734
    end
1735
    return weld, cframe
1736
end
1737
1738
scaleModel = function(model, scale)
1739
    local parts = {}
1740
    local function recurse(object)
1741
        if object:IsA("BasePart") then
1742
            table.insert(parts, object)
1743
        end
1744
        for _,child in pairs(object:GetChildren()) do
1745
            recurse(child)
1746
        end
1747
    end
1748
    recurse(model)
1749
    
1750
    local top, bottom, left, right, back, front
1751
    for _, part in pairs(parts) do
1752
        if top == nil or top < part.Position.y then         top = part.Position.y end
1753
        if bottom == nil or bottom > part.Position.y then   bottom = part.Position.y end
1754
        if left == nil or left > part.Position.x then       left = part.Position.x end
1755
        if right == nil or right < part.Position.x then     right = part.Position.x end
1756
        if back == nil or back > part.Position.z then       back = part.Position.z end
1757
        if front == nil or front < part.Position.z then     front = part.Position.z end
1758
    end
1759
    
1760
    local middle = Vector3.new( left+right, top+bottom, back+front )/2
1761
    local minSize = Vector3.new(0.2, 0.2, 0.2)
1762
    
1763
    for _, part in pairs(parts) do
1764
        local foo = part.CFrame.p - middle
1765
        local rotation = part.CFrame - part.CFrame.p
1766
        local newSize = part.Size*scale
1767
        part.FormFactor = "Custom"
1768
        part.Size = newSize
1769
        part.CFrame = CFrame.new( middle + foo*scale ) * rotation
1770
        
1771
        if newSize.x < minSize.x or newSize.y < minSize.y or newSize.z < minSize.z then
1772
            local mesh
1773
            for _, child in pairs(part:GetChildren()) do
1774
                if child:IsA("DataModelMesh") then
1775
                    mesh = child
1776
                    break
1777
                end
1778
            end
1779
            
1780
            if mesh == nil then
1781
                mesh = Instance.new("BlockMesh", part)
1782
            end
1783
            
1784
            local oScale = mesh.Scale
1785
            local newScale = newSize/minSize * oScale
1786
            if 0.2 < newSize.x then newScale = Vector3.new(1 * oScale.x, newScale.y, newScale.z) end
1787
            if 0.2 < newSize.y then newScale = Vector3.new(newScale.x, 1 * oScale.y, newScale.z) end
1788
            if 0.2 < newSize.z then newScale = Vector3.new(newScale.x, newScale.y, 1 * oScale.z) end
1789
            
1790
            mesh.Scale = newScale
1791
        end
1792
    end
1793
end
1794
1795
function getMass(Obj, Total)
1796
    local newTotal = Total
1797
    local returnTotal = 0
1798
    
1799
    if Obj:IsA("BasePart") then
1800
        newTotal = newTotal + Objects[Obj]
1801
    elseif BodyObjects[Obj.ClassName] then
1802
        Obj:Destroy()
1803
    end
1804
    
1805
    if Obj:GetChildren() and #Obj:GetChildren() > 0 then
1806
        for _,v in pairs(Obj:GetChildren()) do
1807
            returnTotal = returnTotal + getMass(v, newTotal)
1808
        end
1809
    else
1810
        returnTotal = newTotal
1811
    end
1812
    
1813
    return returnTotal
1814
end
1815
1816
function getTargFromCurrent()
1817
    local Current = Current.Part
1818
    if Current:IsA("BasePart") then
1819
        return Current
1820
    elseif Current:findFirstChild("Torso") then
1821
        return Current.Torso
1822
    else
1823
        for _,v in pairs(Current:GetChildren()) do
1824
            if v:IsA("BasePart") then
1825
                return v
1826
            end
1827
        end
1828
    end
1829
end
1830
1831
function Fire(Part, Vec, Inv)
1832
    pcall(function()
1833
        Current.BP:Destroy()
1834
        Current.BP = nil
1835
    end)
1836
    pcall(function()
1837
        Current.BA:Destroy()
1838
        Current.BA = nil
1839
    end)
1840
    pcall(function()
1841
        if Inv then
1842
            Part.Velocity = -((Vec - Torso.Position).unit * Grav * 1.1)
1843
        else
1844
            Part.Velocity = ((Vec - Camera.CoordinateFrame.p).unit * Grav * 1.1)
1845
        end
1846
        Current.Mass = nil
1847
    end)
1848
    Reset()
1849
end
1850
1851
function Reset()
1852
    LS.Parent = nil
1853
    RS.Parent = nil
1854
    
1855
    OrigLS.Parent = Torso
1856
    OrigRS.Parent = Torso
1857
    
1858
    OrigLS.C0 = LS0
1859
    OrigRS.C0 = RS0
1860
end
1861
1862
function Start()
1863
    Cor(function()
1864
        repeat wait(1/30) until LP.Character and LP.Character.Parent == Workspace and LP.Character:findFirstChild("Torso")
1865
        Char = LP.Character
1866
        PlrGui = LP.PlayerGui
1867
        Backpack = LP.Backpack
1868
        Mouse = LP:GetMouse()
1869
        
1870
        for _,v in pairs(Cons) do
1871
            v:disconnect()
1872
        end
1873
        Cons = {}
1874
1875
        Camera = Workspace.CurrentCamera
1876
        LastCamCF = Camera.CoordinateFrame
1877
        AnimJoints = {}
1878
        mDown = false
1879
        Multi = false
1880
        Grabbing = false
1881
        Current = {}
1882
        Alpha = 1
1883
1884
        Head = Char["Head"]
1885
        Torso = Char["Torso"]
1886
        Humanoid = Char["Humanoid"]
1887
        LA = Char["Left Arm"]
1888
        RA = Char["Right Arm"]
1889
        LL = Char["Left Leg"]
1890
        RL = Char["Right Leg"]
1891
        
1892
        OrigLS = Torso["Left Shoulder"]
1893
        OrigRS = Torso["Right Shoulder"]
1894
1895
        for _,v in pairs(Char:GetChildren()) do
1896
            if v.Name == ModID then
1897
                v:Destroy()
1898
            end
1899
        end
1900
1901
        for _,v in pairs(PlrGui:GetChildren()) do
1902
            if v.Name == "PadsGui" then
1903
                v:Destroy()
1904
            end
1905
        end
1906
        
1907
        LS = Instance.new("Weld")
1908
        RS = Instance.new("Weld")
1909
1910
        LS.Name = OrigLS.Name
1911
        LS.Part0 = Torso
1912
        LS.Part1 = LA
1913
        LS.C0 = LS0
1914
        LS.C1 = CFrame.new(0, 0.5, 0,  1, 0, 0,  0, 0, 1,  0, -1, 0)
1915
1916
        RS.Name = OrigRS.Name
1917
        RS.Part0 = Torso
1918
        RS.Part1 = RA
1919
        RS.C0 = RS0
1920
        RS.C1 = CFrame.new(0, 0.5, 0,  1, 0, 0,  0, 0, 1,  0, -1, 0)
1921
1922
        local Pads = MakePads()
1923
        local LPad = Pads.LBase
1924
        local RPad = Pads.RBase
1925
1926
        weldModel(LPad, true, LPad)
1927
        weldModel(RPad, true, RPad)
1928
1929
        local GripWeldL = Instance.new("Weld")
1930
        GripWeldL.Name = "GripWeldL"
1931
        GripWeldL.Part0 = LA
1932
        GripWeldL.Part1 = LPad
1933
        GripWeldL.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0)
1934
        GripWeldL.Parent = LA
1935
1936
        local GripWeldR = Instance.new("Weld")
1937
        GripWeldR.Name = "GripWeldR"
1938
        GripWeldR.Part0 = RA
1939
        GripWeldR.Part1 = RPad
1940
        GripWeldR.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0)
1941
        GripWeldR.Parent = RA
1942
        
1943
        local isParts = false
1944
1945
        table.insert(Cons, Mouse.KeyDown:connect(function(Key)
1946
            Key = Key:lower()
1947
            if Key == "z" then
1948
                --Stuff
1949
            elseif Key == "f" then
1950
                local Current = Current.Part
1951
                if Current and Current.Parent ~= nil and not Multi then
1952
                    Current:BreakJoints()
1953
                end
1954
            elseif Key == "q" then
1955
                if isParts then
1956
                    isParts = false
1957
                    for _,v in pairs(Workspace:GetChildren()) do
1958
                        if v.Name == "MyPartV" and v:IsA("BasePart") then
1959
                            v:Destroy()
1960
                        end
1961
                    end
1962
                else
1963
                    isParts = true
1964
                    for i = 1, 50 do
1965
                        local Part         = Instance.new("Part")
1966
                        Part.Color         = Color3.new(math.random(), math.random(), math.random())
1967
                        Part.Transparency  = 1
1968
                        Part.Size          = Vector3.new(math.random(1, 3), math.random(1, 3), math.random(1, 3))
1969
                        Part.Archivable    = true
1970
                        Part.CanCollide    = false
1971
                        Part.Material      = "Plastic"
1972
                        Part.Locked        = false
1973
                        Part.CFrame        = Torso.CFrame * CFrame.new(math.random(-15, 15), -1, math.random(-15, 15))
1974
                        Part.Anchored      = true
1975
                        Part.Name          = "MyPartV"
1976
                        Part.TopSurface    = "Smooth"
1977
                        Part.BottomSurface = "Smooth"
1978
                        Part.Parent        = Workspace
1979
                    end
1980
                end
1981
            elseif Key == "e" then
1982
                local Targ;
1983
                if Current.Part and Current.Part ~= nil then
1984
                    Targ = getTargFromCurrent()
1985
                else
1986
                    Targ = LastPart
1987
                end
1988
                if Targ and Targ.Parent ~= nil and not Multi then
1989
                    local Ex = Instance.new("Explosion", Workspace)
1990
                    Ex.Position = Targ.CFrame.p
1991
                    Ex.BlastRadius = 16
1992
                    Ex.DestroyJointRadiusPercent = 0.5
1993
                end
1994
            elseif Key == "c" then
1995
                if Current.Part and Current.Part.Parent ~= nil and not Multi then
1996
                    local Part = getTargFromCurrent()
1997
                    if Part then
1998
                        Grabbing = false
1999
                        if Mouse.Hit then
2000
                            local TargPos = CFrame.new(Camera.CoordinateFrame.p, Mouse.Hit.p) * CFrame.new(0, 0, -1000)
2001
                            Fire(Part, TargPos.p)
2002
                        else
2003
                            Fire(Part, Mouse.Origin.p + Mouse.UnitRay.Direction, true)
2004
                        end
2005
                    end
2006
                end
2007
            end
2008
        end))
2009
2010
        table.insert(Cons, Mouse.Button1Up:connect(function()
2011
            mDown = false
2012
            if Grabbing == true and Multi == false then
2013
                Grabbing = false
2014
                Reset()
2015
            end
2016
            if Current.Part ~= nil then
2017
                LastPart = getTargFromCurrent()
2018
                Current = {}
2019
            end
2020
        end))
2021
2022
        local function makeLightning(Par, Start, End, Width, Length, RandomScale, ArcScale, Num1)
2023
            local oldParts = {}
2024
            for _,v in pairs(Par:GetChildren()) do
2025
                v.CFrame = CFrame.new(5e5, 5e5, 5e5)
2026
                table.insert(oldParts, v)
2027
            end
2028
            local Distance = (Start-End).Magnitude
2029
            local ArcScale = ArcScale or 1
2030
            local RandomScale = RandomScale or 0
2031
            local Last = Start
2032
            local IterNum = 0
2033
2034
            while Par.Parent do
2035
                IterNum = IterNum + 1
2036
                local New = nil
2037
                if (Last-End).Magnitude < Length then
2038
                    New = CFrame.new(End)
2039
                else
2040
                    if (End-Last).Magnitude < Length*2 then
2041
                        RandomScale = RandomScale*0.5
2042
                        ArcScale = ArcScale*0.5
2043
                    end
2044
                    local Direct = CFrame.new(Last,End)
2045
                    New = Direct*CFrame.Angles(math.rad(math.random(-RandomScale/4,RandomScale*ArcScale)),math.rad(math.random(-RandomScale,RandomScale)),math.rad(math.random(-RandomScale,RandomScale)))
2046
                    New = New*CFrame.new(0,0,-Length)
2047
                end
2048
                local Trail = nil
2049
                if oldParts[IterNum] then
2050
                    Trail            = oldParts[IterNum]
2051
                    Trail.BrickColor = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("White")
2052
                    Trail.Size       = Vector3.new(Width, (Last-New.p).Magnitude, Width)
2053
                    Trail.CFrame     = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0)
2054
                    oldParts[IterNum] = nil
2055
                else
2056
                    Trail               = Instance.new("Part")
2057
                    Trail.Name          = "Part"
2058
                    Trail.FormFactor    = "Custom"
2059
                    Trail.BrickColor    = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("White")
2060
                    Trail.Transparency  = 1
2061
                    Trail.Anchored      = true
2062
                    Trail.CanCollide    = false
2063
                    Trail.Locked        = true
2064
                    Trail.BackSurface   = "SmoothNoOutlines"
2065
                    Trail.BottomSurface = "SmoothNoOutlines"
2066
                    Trail.FrontSurface  = "SmoothNoOutlines"
2067
                    Trail.LeftSurface   = "SmoothNoOutlines"
2068
                    Trail.RightSurface  = "SmoothNoOutlines"
2069
                    Trail.TopSurface    = "SmoothNoOutlines"
2070
                    Trail.Material      = "Neon"
2071
                    Trail.Size          = Vector3.new(Width, (Last-New.p).Magnitude, Width)
2072
                    Trail.CFrame        = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0)
2073
                    Trail.Parent        = Par
2074
                end
2075
                Last = New.p
2076
                if (Last-End).Magnitude < 1 then
2077
                    break
2078
                end
2079
            end
2080
            for _,v in pairs(oldParts) do
2081
                v:Destroy()
2082
            end
2083
        end
2084
2085
        table.insert(Cons, Mouse.Button1Down:connect(function()
2086
            mDown = true
2087
            local Targ = Mouse.Target
2088
            Cor(function()
2089
                if Targ and Objects[Targ] and not Multi then
2090
                    Grabbing = true
2091
                    Current.Part = Targ
2092
                    local Mass = Objects[Targ]
2093
                    local ForceNum = 0
2094
                    local Hum = nil
2095
                    
2096
                    for _,v in pairs(Targ:GetChildren()) do
2097
                        if BodyObjects[v.ClassName] then
2098
                            v:Destroy()
2099
                        end
2100
                    end
2101
                    
2102
                    for _,v in pairs(Workspace:GetChildren()) do
2103
                        if v:findFirstChild("Humanoid") and v:IsAncestorOf(Targ) then
2104
                            Hum = v.Humanoid
2105
                            Mass = getMass(v, 0)
2106
                            Current.Part = v
2107
                            break
2108
                        end
2109
                    end
2110
                    
2111
                    Current.Mass = Mass
2112
                    
2113
                    if not Hum then
2114
                        Targ:BreakJoints()
2115
                    end
2116
                    
2117
                    ForceNum = Mass * Grav
2118
                    Targ.CanCollide = true
2119
                    Targ.Anchored = false
2120
                    
2121
                    local BP = Instance.new("BodyPosition")
2122
                    BP.maxForce = Vector3.new(3 * ForceNum, 3 * ForceNum, 3 * ForceNum)
2123
                    BP.Parent = Targ
2124
                    
2125
                    local Ang = Instance.new("BodyAngularVelocity")
2126
                    Ang.Parent = Targ
2127
                    
2128
                    Current.BP = BP
2129
                    Current.BA = Ang
2130
                    
2131
                    OrigLS.Parent = nil
2132
                    OrigRS.Parent = nil
2133
                    
2134
                    LS.Parent = Torso
2135
                    RS.Parent = Torso
2136
                    
2137
                    LS.C0 = LS0
2138
                    RS.C0 = RS0
2139
                    
2140
                    local DirDot = Mouse.UnitRay.Direction:Dot(Targ.Position - Mouse.Origin.p)
2141
                    local BPPos = Vector3.new(0, 0, 0)
2142
                    local Vel = Vector3.new(0, 0, 0)
2143
                    local Vlev = random() * math.pi
2144
                    local RPos = Vector3.new(random() * 2 - 1, cos(Vlev), random() * 2 - 1)
2145
                    
2146
                    local Ball        = Instance.new("Part")
2147
                    Ball.Name         = "Ball"
2148
                    Ball.FormFactor   = "Custom"
2149
                    Ball.Color        = Color3.new(0, 0, 0)
2150
                    Ball.Transparency = 1
2151
                    Ball.Anchored     = true
2152
                    Ball.CanCollide   = false
2153
                    Ball.Locked       = true
2154
                    Ball.BottomSurface, Ball.TopSurface = "Smooth", "Smooth"
2155
                    Ball.Size = Vector3.new(0.5, 0.5, 0.5)
2156
                    Ball.CFrame = Torso.CFrame * CFrame.new(0, 1, -3)
2157
                    Ball.Parent = Char
2158
2159
                    if Targ.Name == "MyPartV" then
2160
                        Targ.Name = "MyPartF"
2161
                    end
2162
2163
                    local LightMod = Instance.new("Model", Char)
2164
                        
2165
                    local Mesh = Instance.new("SpecialMesh")
2166
                    Mesh.MeshType = "Sphere"
2167
                    Mesh.Parent = Ball
2168
                    
2169
                    local Size = 1
2170
                    local Rise = true
2171
                    
2172
                    while Grabbing and BP and Ang and Targ.Parent ~= nil do
2173
                        local BPPos = Mouse.Origin.p + Mouse.UnitRay.Direction * DirDot
2174
                        Ang.angularvelocity = Vel
2175
                        BP.position = BPPos + RPos
2176
                        RPos = Vector3.new(max(-1, min(RPos.x + random() * 0.02 - 0.01, 1)), cos(Vlev), max(-1, min(RPos.z + random() * 0.02 - 0.01, 1)))
2177
                        Vel = Vector3.new(max(-1, min(Vel.x + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.y + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.z + random() * 0.2 - 0.1, 1)))
2178
                        Vlev = (Vlev + 0.05) % tau
2179
                        
2180
                        if Hum then
2181
                            Hum.Sit = true
2182
                        end
2183
                        
2184
                        if LA.Parent ~= nil and RA.Parent ~= nil then
2185
                            local LPos = (LA.CFrame * CFrame.new(0, -1, 0)).p
2186
                            local RPos = (RA.CFrame * CFrame.new(0, -1, 0)).p
2187
                            if Rise == true then
2188
                                if Size < 0.6 then
2189
                                    Size = Size + 0.05
2190
                                else
2191
                                    Size = Size + 0.1
2192
                                end
2193
                                if Size >= 2.2 then
2194
                                    Rise = false
2195
                                end
2196
                            else
2197
                                if Size > 2.1 then
2198
                                    Size = Size - 0.05
2199
                                else
2200
                                    Size = Size - 0.1
2201
                                end
2202
                                if Size <= 0.5 then
2203
                                    Rise = true
2204
                                end
2205
                            end
2206
                            Ball.Size = Vector3.new(Size, Size, Size)
2207
                            Ball.CFrame = CFrame.new(LPos:Lerp(RPos, 0.5), Targ.Position) * CFrame.new(0, 0, -2.2)
2208
                            LightNum = LightNum + 1
2209
                            makeLightning(LightMod, Ball.Position, Targ.Position, 0.2, 4, 50, 1, LightNum)
2210
                        elseif Ball.Parent ~= nil then
2211
                            Ball:Destroy()
2212
                        end
2213
                        
2214
                        if LS and LS.Parent == Torso then
2215
                            LS.C0 = CFrame.new(Vector3.new(-1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(-1.5, 0.5, 1)).p))
2216
                        end
2217
                        if RS and RS.Parent == Torso then
2218
                            RS.C0 = CFrame.new(Vector3.new(1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(1.5, 0.5, 1)).p))
2219
                        end
2220
                        RunService.Heartbeat:wait()
2221
                    end
2222
2223
                    coroutine.resume(coroutine.create(function()
2224
                        for i = 0.5, 1, 0.1 do
2225
                            for i2,v in pairs(LightMod:GetChildren()) do
2226
                                --v.Light.Range = 6-(i*5)
2227
                                v.Transparency = 1
2228
                            end
2229
                            wait(1/30)
2230
                        end
2231
                        LightMod:Destroy()
2232
                    end))
2233
                    
2234
                    if BP and BP.Parent ~= nil then
2235
                        BP:Destroy()
2236
                    end
2237
                    
2238
                    if Ang and Ang.Parent ~= nil then
2239
                        Ang:Destroy()
2240
                    end
2241
                    
2242
                    pcall(function() Ball:Destroy() end)
2243
                end
2244
            end)
2245
        end))
2246
    end)
2247
end
2248
2249
function Add(Obj)
2250
    if Obj:IsA("BasePart") and not Objects[Obj] and not (Obj.Name == "Base" and Obj.ClassName == "Part") then
2251
        Objects[Obj] = Obj:GetMass()
2252
        Obj.Changed:connect(function(P)
2253
            if P:lower() == "size" and Objects[Obj] and Obj.Parent ~= nil then
2254
                Objects[Obj] = Obj:GetMass()
2255
            end
2256
        end)
2257
    end
2258
end
2259
2260
function Rem(Obj)
2261
    if Objects[Obj] then
2262
        Objects[Obj] = nil
2263
    end
2264
end
2265
2266
function Recursion(Obj)
2267
    ypcall(function()
2268
        Add(Obj)
2269
        if #Obj:GetChildren() > 0 then
2270
            for _,v in pairs(Obj:GetChildren()) do 
2271
                Recursion(v)
2272
            end
2273
        end
2274
    end)
2275
end
2276
2277
Workspace.DescendantAdded:connect(function(Obj)
2278
    Add(Obj)
2279
end)
2280
2281
Workspace.DescendantRemoving:connect(function(Obj)
2282
    Rem(Obj)
2283
end)
2284
2285
for _,v in pairs(Workspace:GetChildren()) do
2286
    Recursion(v)
2287
end
2288
2289
Start()
2290
2291
if LP.Name == PlrName then
2292
    LP.CharacterAdded:connect(Start)
2293
end
2294
Char.Humanoid.MaxHealth = 50000
2295
    Char.Humanoid.Health = 50000
2296
    --Responsible for regening a player's humanoid's health
2297
2298
-- declarations
2299
local Figure = script.Parent
2300
local Head = Figure:WaitForChild("Head")
2301
local Humanoid = Figure:WaitForChild("Humanoid")
2302
local regening = false
2303
2304
-- regeneration
2305
function regenHealth()
2306
    if regening then return end
2307
    regening = true
2308
    
2309
    while Humanoid.Health < Humanoid.MaxHealth do
2310
        local s      = wait(0.1)
2311
        local health = Humanoid.Health
2312
        if health > 0 and health < Humanoid.MaxHealth then
2313
            local newHealthDelta = 0.1 * s * Humanoid.MaxHealth
2314
            health               = health + newHealthDelta
2315
            Humanoid.Health      = math.min(health,Humanoid.MaxHealth)
2316
        end
2317
    end
2318
    
2319
    if Humanoid.Health > Humanoid.MaxHealth then
2320
        Humanoid.Health = Humanoid.MaxHealth
2321
    end
2322
    
2323
    regening = false
2324
end
2325
2326
Humanoid.HealthChanged:connect(regenHealth)
2327
Me = game.Players.LocalPlayer
2328
char = Me.Character
2329
larm = char["Left Arm"]
2330
rarm = char["Right Arm"]
2331
lleg = char["Left Leg"]
2332
rleg = char["Right Leg"]
2333
torso = char.Torso
2334
2335
2336
2337
--------------------------
2338
2339
--[[ High Quality Sound Script
2340
--Immune to g/c g/nol/all g/nos/all, and sound doesn't lag --You can also paste your script there and put this in the end.
2341
--- full credits to saud20 --Also, edit friendly so you can place this in your script for a weapon song or somethin
2342
]]
2343
Effects         = {} --sound effects, for advanced players.
2344
local Player    = game.Players.localPlayer
2345
local Character = Player.Character
2346
local Humanoid  = Character.Humanoid
2347
z               = Instance.new("Sound", Character)
2348
z.SoundId       = "rbxassetid://152201694"--
2349
z.Looped        = true --False for a one-time song.
2350
z.Pitch         = 1.3
2351
z.Volume        = 1.3
2352
wait(.1)
2353
z:Play()
2354
------------------------Paste your script here if you want to add a song to your script. VVVVVVV