View difference between Paste ID: 99si9WZx and Jmm0zvA9
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||			   CREATED BY SHACKLUSTER
3
--\\====================================================//--
4
5
6
7
wait(0.2)
8
9
10
11
Player = game:GetService("Players").LocalPlayer
12
PlayerGui = Player.PlayerGui
13
Cam = workspace.CurrentCamera
14
Backpack = Player.Backpack
15
Character = Player.Character
16
Humanoid = Character.Humanoid
17
Mouse = Player:GetMouse()
18
RootPart = Character["HumanoidRootPart"]
19
Torso = Character["Torso"]
20
Head = Character["Head"]
21
RightArm = Character["Right Arm"]
22
LeftArm = Character["Left Arm"]
23
RightLeg = Character["Right Leg"]
24
LeftLeg = Character["Left Leg"]
25
RootJoint = RootPart["RootJoint"]
26
Neck = Torso["Neck"]
27
RightShoulder = Torso["Right Shoulder"]
28
LeftShoulder = Torso["Left Shoulder"]
29
RightHip = Torso["Right Hip"]
30
LeftHip = Torso["Left Hip"]
31
32
LeftArm.Transparency = 1
33
RightArm.Transparency = 1
34
Head.Transparency = 1
35
Torso.Transparency = 1
36
LeftLeg.Transparency = 1
37
RightLeg.Transparency = 1
38
39
Head.face:remove()
40
41
for i,v in pairs(Character:children()) do
42
    if v:IsA("Hat") or v:IsA("Accessory") then
43
        v:Destroy()
44
    end
45
end
46
47
IT = Instance.new
48
CF = CFrame.new
49
VT = Vector3.new
50
RAD = math.rad
51
C3 = Color3.new
52
UD2 = UDim2.new
53
BRICKC = BrickColor.new
54
ANGLES = CFrame.Angles
55
EULER = CFrame.fromEulerAnglesXYZ
56
COS = math.cos
57
ACOS = math.acos
58
SIN = math.sin
59
ASIN = math.asin
60
ABS = math.abs
61
MRANDOM = math.random
62
FLOOR = math.floor
63
64
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
65
	local NEWMESH = IT(MESH)
66
	if MESH == "SpecialMesh" then
67
		NEWMESH.MeshType = MESHTYPE
68
		if MESHID ~= "nil" and MESHID ~= "" then
69
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
70
		end
71
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
72
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
73
		end
74
	end
75
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
76
	NEWMESH.Scale = SCALE
77
	NEWMESH.Parent = PARENT
78
	return NEWMESH
79
end
80
81
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
82
	local NEWPART = IT("Part")
83
	NEWPART.formFactor = FORMFACTOR
84
	NEWPART.Reflectance = REFLECTANCE
85
	NEWPART.Transparency = TRANSPARENCY
86
	NEWPART.CanCollide = false
87
	NEWPART.Locked = true
88
	NEWPART.Anchored = true
89
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
90
	NEWPART.Name = NAME
91
	NEWPART.Size = SIZE
92
	NEWPART.Position = Torso.Position
93
	NEWPART.Material = MATERIAL
94
	NEWPART:BreakJoints()
95
	NEWPART.Parent = PARENT
96
	return NEWPART
97
end
98
99
100
--//=================================\\
101
--||		  CUSTOMIZATION
102
--\\=================================//
103
104
Class_Name = "Gravity orb friend"
105
Weapon_Name = "Add-ons"
106
107
Custom_Colors = {
108
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
109
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
110
111
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
112
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
113
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
114
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
115
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
116
117
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
118
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
119
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
120
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
121
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
122
}
123
124
125
Player_Size = 1 --Size of the player.
126
Animation_Speed = 3
127
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
128
129
local Speed = 16
130
local Effects2 = {}
131
132
--//=================================\\
133
--|| 	  END OF CUSTOMIZATION
134
--\\=================================//
135
136
	local function weldBetween(a, b)
137
	    local weldd = Instance.new("ManualWeld")
138
	    weldd.Part0 = a
139
	    weldd.Part1 = b
140
	    weldd.C0 = CFrame.new()
141
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
142
	    weldd.Parent = a
143
	    return weldd
144
	end
145
146
--//=================================\\
147
--|| 	      USEFUL VALUES
148
--\\=================================//
149
150
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
151
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
152
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
153
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
154
local CO1 = 0
155
local CO2 = 0
156
local CO3 = 0
157
local CO4 = 0
158
local CHANGEDEFENSE = 0
159
local CHANGEDAMAGE = 0
160
local CHANGEMOVEMENT = 0
161
local ANIM = "Idle"
162
local ATTACK = false
163
local EQUIPPED = false
164
local HOLD = false
165
local COMBO = 1
166
local LASTPOINT = nil
167
local BLCF = nil
168
local SCFR = nil
169
local STAGGERHITANIM = false
170
local STAGGERANIM = false
171
local STUNANIM = false
172
local CRITCHANCENUMBER = 0
173
local IDLENUMBER = 0
174
local DONUMBER = 0
175
local HANDIDLE = false
176
local PLAYINGMUSIC = false
177
local SINE = 0
178
local CHANGE = 2 / Animation_Speed
179
local WALKINGANIM = false
180
local WALK = 0
181
local DISABLEJUMPING = false
182
local HASBEENBLOCKED = false
183
local STUNDELAYNUMBER = 0
184
local MANADELAYNUMBER = 0
185
local SOUND = nil
186
local SECONDARYMANADELAYNUMBER = 0
187
local ROBLOXIDLEANIMATION = IT("Animation")
188
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
189
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
190
--ROBLOXIDLEANIMATION.Parent = Humanoid
191
local WEAPONGUI = IT("ScreenGui", nil)
192
WEAPONGUI.Name = "Weapon GUI"
193
local WEAPONTOOL = IT("HopperBin", nil)
194
WEAPONTOOL.Name = Weapon_Name
195
local Weapon = IT("Model")
196
Weapon.Name = Weapon_Name
197
local Effects = IT("Folder", Weapon)
198
Effects.Name = "Effects"
199
local ANIMATOR = Humanoid.Animator
200
local ANIMATE = Character.Animate
201
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
202
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
203
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
204
local HITBLOCKSOUNDS = {"199148933", "199148947"}
205
local PEWSOUND = {"907527750","907527912","907528019","907530553"}
206
local BULLETLOOPSOUND = "907530407"
207
local BULLETIMPACTSOUND = "907532865"
208
local UNANCHOR = true
209
local MAGICPARTICLE = "655109389"
210
local Rooted = false
211
local GRABBED = false
212
local X = 10
213
local Y = 10
214
local Z = 10
215
local CUSTOMMOVEMENT = false
216
local FLIGHT = false
217
local VACUUM = false
218
219
--//=================================\\
220
--\\=================================//
221
222
223
224
225
--//=================================\\
226
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
227
--\\=================================//
228
229
ArtificialHB = Instance.new("BindableEvent", script)
230
ArtificialHB.Name = "ArtificialHB"
231
232
script:WaitForChild("ArtificialHB")
233
234
frame = Frame_Speed
235
tf = 0
236
allowframeloss = false
237
tossremainder = false
238
lastframe = tick()
239
script.ArtificialHB:Fire()
240
241
game:GetService("RunService").Heartbeat:connect(function(s, p)
242
	tf = tf + s
243
	if tf >= frame then
244
		if allowframeloss then
245
			script.ArtificialHB:Fire()
246
			lastframe = tick()
247
		else
248
			for i = 1, math.floor(tf / frame) do
249
				script.ArtificialHB:Fire()
250
			end
251
		lastframe = tick()
252
		end
253
		if tossremainder then
254
			tf = 0
255
		else
256
			tf = tf - frame * math.floor(tf / frame)
257
		end
258
	end
259
end)
260
261
--//=================================\\
262
--\\=================================//
263
264
265
266
267
268
--//=================================\\
269
--|| 	      SOME FUNCTIONS
270
--\\=================================//
271
272
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
273
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
274
end
275
276
function PositiveAngle(NUMBER)
277
	if NUMBER >= 0 then
278
		NUMBER = 0
279
	end
280
	return NUMBER
281
end
282
283
function NegativeAngle(NUMBER)
284
	if NUMBER <= 0 then
285
		NUMBER = 0
286
	end
287
	return NUMBER
288
end
289
290
function Swait(NUMBER)
291
	if NUMBER == 0 or NUMBER == nil then
292
		ArtificialHB.Event:wait()
293
	else
294
		for i = 1, NUMBER do
295
			ArtificialHB.Event:wait()
296
		end
297
	end
298
end
299
300
function QuaternionFromCFrame(cf)
301
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
302
	local trace = m00 + m11 + m22
303
	if trace > 0 then 
304
		local s = math.sqrt(1 + trace)
305
		local recip = 0.5 / s
306
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
307
	else
308
		local i = 0
309
		if m11 > m00 then
310
			i = 1
311
		end
312
		if m22 > (i == 0 and m00 or m11) then
313
			i = 2
314
		end
315
		if i == 0 then
316
			local s = math.sqrt(m00 - m11 - m22 + 1)
317
			local recip = 0.5 / s
318
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
319
		elseif i == 1 then
320
			local s = math.sqrt(m11 - m22 - m00 + 1)
321
			local recip = 0.5 / s
322
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
323
		elseif i == 2 then
324
			local s = math.sqrt(m22 - m00 - m11 + 1)
325
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
326
		end
327
	end
328
end
329
 
330
function QuaternionToCFrame(px, py, pz, x, y, z, w)
331
	local xs, ys, zs = x + x, y + y, z + z
332
	local wx, wy, wz = w * xs, w * ys, w * zs
333
	local xx = x * xs
334
	local xy = x * ys
335
	local xz = x * zs
336
	local yy = y * ys
337
	local yz = y * zs
338
	local zz = z * zs
339
	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))
340
end
341
 
342
function QuaternionSlerp(a, b, t)
343
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
344
	local startInterp, finishInterp;
345
	if cosTheta >= 0.0001 then
346
		if (1 - cosTheta) > 0.0001 then
347
			local theta = ACOS(cosTheta)
348
			local invSinTheta = 1 / SIN(theta)
349
			startInterp = SIN((1 - t) * theta) * invSinTheta
350
			finishInterp = SIN(t * theta) * invSinTheta
351
		else
352
			startInterp = 1 - t
353
			finishInterp = t
354
		end
355
	else
356
		if (1 + cosTheta) > 0.0001 then
357
			local theta = ACOS(-cosTheta)
358
			local invSinTheta = 1 / SIN(theta)
359
			startInterp = SIN((t - 1) * theta) * invSinTheta
360
			finishInterp = SIN(t * theta) * invSinTheta
361
		else
362
			startInterp = t - 1
363
			finishInterp = t
364
		end
365
	end
366
	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
367
end
368
369
function Clerp(a, b, t)
370
	local qa = {QuaternionFromCFrame(a)}
371
	local qb = {QuaternionFromCFrame(b)}
372
	local ax, ay, az = a.x, a.y, a.z
373
	local bx, by, bz = b.x, b.y, b.z
374
	local _t = 1 - t
375
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
376
end
377
378
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
379
	local frame = IT("Frame")
380
	frame.BackgroundTransparency = TRANSPARENCY
381
	frame.BorderSizePixel = BORDERSIZEPIXEL
382
	frame.Position = POSITION
383
	frame.Size = SIZE
384
	frame.BackgroundColor3 = COLOR
385
	frame.BorderColor3 = BORDERCOLOR
386
	frame.Name = NAME
387
	frame.Parent = PARENT
388
	return frame
389
end
390
391
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
392
	local label = IT("TextLabel")
393
	label.BackgroundTransparency = 1
394
	label.Size = UD2(1, 0, 1, 0)
395
	label.Position = UD2(0, 0, 0, 0)
396
	label.TextColor3 = C3(255, 255, 255)
397
	label.TextStrokeTransparency = STROKETRANSPARENCY
398
	label.TextTransparency = TRANSPARENCY
399
	label.FontSize = TEXTFONTSIZE
400
	label.Font = TEXTFONT
401
	label.BorderSizePixel = BORDERSIZEPIXEL
402
	label.TextScaled = true
403
	label.Text = TEXT
404
	label.Name = NAME
405
	label.Parent = PARENT
406
	return label
407
end
408
409
function NoOutlines(PART)
410
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
411
end
412
413
414
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
415
	local NEWWELD = IT(TYPE)
416
	NEWWELD.Part0 = PART0
417
	NEWWELD.Part1 = PART1
418
	NEWWELD.C0 = C0
419
	NEWWELD.C1 = C1
420
	NEWWELD.Parent = PARENT
421
	return NEWWELD
422
end
423
424
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
425
	local NEWSOUND = nil
426
	coroutine.resume(coroutine.create(function()
427
		NEWSOUND = IT("Sound", PARENT)
428
		NEWSOUND.Volume = VOLUME
429
		NEWSOUND.Pitch = PITCH
430
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
431
		Swait()
432
		NEWSOUND:play()
433
		if DOESLOOP == false then
434
			repeat Swait() until NEWSOUND.Playing == false
435
			NEWSOUND:remove()
436
		elseif DOESLOOP == true then
437
			NEWSOUND.Looped = true
438
		end
439
	end))
440
	return NEWSOUND
441
end
442
443
function CFrameFromTopBack(at, top, back)
444
	local right = top:Cross(back)
445
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
446
end
447
448
function CreateWave(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
449
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
450
	local mesh = IT("SpecialMesh",wave)
451
	mesh.MeshType = "FileMesh"
452
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
453
	mesh.Scale = VT(size,size,size)
454
	mesh.Offset = VT(0,0,-size/8)
455
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
456
	coroutine.resume(coroutine.create(function(PART)
457
		for i = 1, waitt do
458
			Swait()
459
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
460
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
461
			if doesrotate == true then
462
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
463
			end
464
			wave.Transparency = wave.Transparency + (0.5/waitt)
465
			if wave.Transparency > 0.99 then
466
				wave:remove()
467
			end
468
		end
469
	end))
470
end
471
472
function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
473
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
474
	local mesh = IT("SpecialMesh",wave)
475
	mesh.MeshType = "FileMesh"
476
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
477
	mesh.Scale = VT(size,size,size)
478
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
479
	coroutine.resume(coroutine.create(function(PART)
480
		for i = 1, waitt do
481
			Swait()
482
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
483
			if doesrotate == true then
484
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
485
			end
486
			wave.Transparency = wave.Transparency + (0.5/waitt)
487
			if wave.Transparency > 0.99 then
488
				wave:remove()
489
			end
490
		end
491
	end))
492
end
493
494
function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,part,offset,color)
495
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
496
	local mesh = IT("SpecialMesh",wave)
497
	mesh.MeshType = "FileMesh"
498
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
499
	mesh.Scale = VT(size,size,size)
500
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
501
	coroutine.resume(coroutine.create(function(PART)
502
		for i = 1, waitt do
503
			Swait()
504
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
505
			if doesrotate == true then
506
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
507
			end
508
			wave.Transparency = wave.Transparency + (0.5/waitt)
509
			if wave.Transparency > 0.99 then
510
				wave:remove()
511
			end
512
		end
513
	end))
514
end
515
516
function CreateRing(inair,size,doesrotate,rotatedirection,waitt,part,offset,spin1,spin2,color)
517
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
518
	local mesh = IT("SpecialMesh",wave)
519
	mesh.MeshType = "FileMesh"
520
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
521
	mesh.Scale = VT(size,size,size)
522
	mesh.Offset = VT(0,0,0)
523
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(inair),RAD(0),RAD(0))
524
	coroutine.resume(coroutine.create(function(PART)
525
		for i = 1, waitt do
526
			Swait()
527
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
528
			if doesrotate == true then
529
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
530
			end
531
			wave.Transparency = wave.Transparency + (1/waitt)
532
			if wave.Transparency > 0.99 then
533
				wave:remove()
534
			end
535
		end
536
	end))
537
end
538
539
function MagicSphere(size,waitt,part,offset,color)
540
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(1,1,1))
541
	local mesh = IT("SpecialMesh",wave)
542
	mesh.MeshType = "Sphere"
543
	mesh.Scale = VT(size,size,size)
544
	mesh.Offset = VT(0,0,0)
545
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
546
	coroutine.resume(coroutine.create(function(PART)
547
		for i = 1, waitt do
548
			Swait()
549
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
550
			wave.Transparency = wave.Transparency + (1/waitt)
551
			if wave.Transparency > 0.99 then
552
				wave:remove()
553
			end
554
		end
555
	end))
556
end
557
558
function clerp(a, b, t)
559
  return a:lerp(b, t)
560
end
561
562
function newBezier(startpos, pos2, pos3, endpos, t)
563
  local A = clerp(startpos, pos2, t)
564
  local B = clerp(pos2, pos3, t)
565
  local C = clerp(pos3, endpos, t)
566
  local lerp1 = clerp(A, B, t)
567
  local lerp2 = clerp(B, C, t)
568
  local cubic = clerp(lerp1, lerp2, t)
569
  return cubic
570
end
571
572
function MagicBlock(size,waitt,part,offset,color)
573
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
574
	local mesh = IT("BlockMesh",wave)
575
	wave.CFrame = CF(part.Position) * CF(0,offset,0) * ANGLES(RAD(0),RAD(0),RAD(0))
576
	coroutine.resume(coroutine.create(function(PART)
577
		for i = 1, waitt do
578
			Swait()
579
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
580
			wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
581
			wave.Transparency = wave.Transparency + (0.5/waitt)
582
			if wave.Transparency > 0.99 then
583
				wave:remove()
584
			end
585
		end
586
	end))
587
end
588
589
local EyeSizes={
590
	NumberSequenceKeypoint.new(0,1,0),
591
	NumberSequenceKeypoint.new(1,0.2,0)
592
}
593
local EyeTrans={
594
	NumberSequenceKeypoint.new(0,0.8,0),
595
	NumberSequenceKeypoint.new(1,1,0)
596
}
597
local PE=Instance.new("ParticleEmitter")
598
PE.LightEmission=0
599
PE.Size=NumberSequence.new(EyeSizes)
600
PE.Transparency=NumberSequence.new(EyeTrans)
601
PE.Lifetime=NumberRange.new(0.35,0.35,0.35)
602
PE.Rotation=NumberRange.new(0,360)
603
PE.Rate=15
604
PE.Acceleration = Vector3.new(0,75,0)
605
PE.Drag = 5
606
PE.Enabled = false
607
PE.RotSpeed = NumberRange.new(75)
608
PE.Speed = NumberRange.new(0,0,0)
609
PE.Texture="http://www.roblox.com/asset/?id=1179557490"
610
PE.ZOffset = 0
611
PE.Name = "Particles"
612
613
function CreateParticles(art,accel,drag,rate,type,isenabledbydefault,locked,size)
614
	local particle = PE:Clone()
615
	particle.Parent = art
616
	particle.Acceleration = accel
617
	particle.Rate = rate
618
	if type == "Fire" then
619
		local EyeSizes={
620
			NumberSequenceKeypoint.new(0,size,size*0.3),
621
			NumberSequenceKeypoint.new(1,0.2,0.2)
622
		}
623
		particle.Size = NumberSequence.new(EyeSizes)
624
	elseif type == "Smoke" then
625
		local EyeSizes={
626
			NumberSequenceKeypoint.new(0,size,0),
627
			NumberSequenceKeypoint.new(1,size*5,0.5)
628
		}
629
		particle.Size = NumberSequence.new(EyeSizes)
630
	elseif type == "Solid" then
631
		local EyeSizes={
632
			NumberSequenceKeypoint.new(0,size,0),
633
			NumberSequenceKeypoint.new(1,size,0)
634
		}
635
		particle.Size = NumberSequence.new(EyeSizes)
636
	end
637
	particle.LockedToPart = locked
638
	particle.Drag = drag
639
	particle.Texture = "http://www.roblox.com/asset/?id=43997508"
640
	particle.Enabled = isenabledbydefault
641
return particle
642
end
643
644
--//=================================\\
645
--\\=================================//
646
647
648
--//=================================\\
649
--||	     WEAPON CREATION
650
--\\=================================//
651
652
if Player_Size ~= 1 then
653
	for _, v in pairs (Weapon:GetChildren()) do
654
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
655
			local p1 = v.Part1
656
			v.Part1 = nil
657
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
658
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
659
			v.Part1 = p1
660
		elseif v.ClassName == "Part" then
661
			for _, b in pairs (v:GetChildren()) do
662
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
663
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
664
				end
665
			end
666
		end
667
	end
668
end
669
670
for _, c in pairs(Weapon:GetChildren()) do
671
	if c.ClassName == "Part" then
672
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
673
	end
674
end
675
676
Weapon.Parent = Character
677
678
Humanoid.Died:connect(function()
679
	ATTACK = true
680
end)
681
682
print(Class_Name.." loaded.")
683
684
local ORB = IT("Part",Weapon)
685
ORB.CanCollide = false
686
ORB.Anchored = false
687
ORB.CFrame = RootPart.CFrame
688
ORB.Shape = "Ball"
689
ORB.Material = "Neon"
690
ORB.Size = VT(0.2,0.2,0.2)
691
ORB.Color = C3(0.5,0,1)
692
local Orbmesh = IT("SpecialMesh",ORB)
693
Orbmesh.MeshType = "Sphere"
694
Orbmesh.Scale = VT(10,10,10)
695
local grav = Instance.new("BodyPosition",ORB)
696
grav.P = 20000
697
grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
698
grav.position = RootPart.CFrame*CF(3,0.7,-1).p
699
grav.Name = "GravityForce"
700
CreateParticles(ORB,VT(0,0,0),0,150,"Solid",true,true,4)
701
702
--//=================================\\
703
--\\=================================//
704
705
function onChatted(msg)
706
	if msg:sub(1,10) == "Orb, play " then
707
		local ID = msg:sub(11)
708
		if SOUND == nil then
709
			SOUND = CreateSound(ID, ORB, 5, 1, true)
710
		else
711
			SOUND:remove()
712
			SOUND = CreateSound(ID, ORB, 5, 1, true)
713
		end
714
		PLAYINGMUSIC = true
715
	elseif msg == "Orb, stop music" then
716
	if SOUND ~= nil then
717
		SOUND:remove()
718
		PLAYINGMUSIC = false
719
	elseif msg == "Orb, do you like me?" then
720
		CreateSound("269597232", ORB, 1, 1, false)
721
	end
722
	end
723
end
724
Player.Chatted:connect(onChatted)
725
726
--//=================================\\
727
--||			ABILITIES
728
--\\=================================//
729
730
function turnto(pos,part)
731
	part.CFrame = CF(part.Position,VT(pos.X,RootPart.Position.Y,pos.Z))
732
end
733
734
function Warp()
735
	ATTACK = true
736
	Rooted = true
737
	CUSTOMMOVEMENT = true
738
	grav.position = RootPart.CFrame.p
739
	Swait(50)
740
	CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
741
	for i = 1, 25 do
742
		Swait()
743
		X = X + 1
744
		Y = X
745
		Z = X
746
	end
747
	local weld = weldBetween(Torso,ORB)
748
	grav.position = VT(Mouse.Hit.p.X,Mouse.Hit.p.Y+4,Mouse.Hit.p.Z)
749
	Swait(50)
750
	CUSTOMMOVEMENT = false
751
	weld:remove()
752
	for i = 1, 25 do
753
		Swait()
754
		X = X - 1
755
		Y = X
756
		Z = X
757
	end
758
	ATTACK = false
759
	Rooted = false
760
end
761
762
function StartFlight()
763
	Rooted = true
764
	CUSTOMMOVEMENT = true
765
	grav.position = RootPart.Position
766
	Swait(50)
767
	grav.P = 500
768
	CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
769
	for i = 1, 10 do
770
		Swait()
771
		X = X - 1
772
		Y = X
773
		Z = X
774
	end
775
	local weld = weldBetween(Torso,ORB)
776
	repeat
777
		Swait()
778
		grav.position = Mouse.Hit.p
779
		turnto(Mouse.Hit.p,RootPart)
780
	until FLIGHT == false
781
	grav.P = 20000
782
	CUSTOMMOVEMENT = false
783
	weld:remove()
784
	for i = 1, 10 do
785
		Swait()
786
		X = X + 1
787
		Y = X
788
		Z = X
789
	end
790
	Rooted = false
791
end
792
793
function succnearest(position,range,force,doesbreak)
794
	for i,v in ipairs(workspace:GetChildren()) do
795
	local body = v:GetChildren()
796
		for part = 1, #body do
797
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
798
				if(body[part].Position - position).Magnitude < range then
799
					local bv = Instance.new("BodyVelocity") 
800
					bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
801
					bv.velocity = CF(body[part].Position,position).lookVector*force
802
					bv.Parent = body[part]
803
					bv.Name = "SUCC"
804
					if v:FindFirstChild("Humanoid") and doesbreak == false then
805
						dealdamage(body[part],5,15,0,false,12,2)
806
					end
807
					if v.ClassName == "Model" and doesbreak == true then
808
						v:BreakJoints()
809
					end
810
					game:GetService("Debris"):AddItem(bv, 0.1)
811
				end
812
			end
813
		end
814
		if v.ClassName == "Part" then
815
			if v.Anchored == false and (v.Position - position).Magnitude < range then
816
				local bv = Instance.new("BodyVelocity") 
817
				bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
818
				bv.velocity = CF(v.Position,position).lookVector*force
819
				bv.Parent = v
820
				bv.Name = "SUCC"
821
				game:GetService("Debris"):AddItem(bv, 0.1)
822
			end
823
		end
824
	end
825
end
826
827
function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier)
828
	if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then
829
		local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
830
		local dmg = math.random(min,max)
831
		if humanoid.Health > 0 then
832
			if beserk == true then
833
				humanoid.Health = 0
834
			else
835
				--CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10)
836
				--hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength
837
				if math.random(1,100) < critrate+1 then
838
					humanoid.Health = humanoid.Health - dmg*critmultiplier
839
					--StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0))
840
				else
841
					humanoid.Health = humanoid.Health - dmg
842
					--StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(255/255, 0, 0))
843
				end
844
				local defence = Instance.new("BoolValue",hit.Parent)
845
				defence.Name = ("HitBy"..Player.Name)
846
				game:GetService("Debris"):AddItem(defence, 0.5)
847
			end
848
		end
849
	end
850
end
851
852
function Vacuum()
853
	CUSTOMMOVEMENT = true
854
	local succ = CreateSound("319444224", ORB, 0.3, 1, true)
855
	local harm = ORB.Touched:Connect(function(hit)
856
		if hit.Parent ~= Character and hit.Parent.ClassName ~= "Accessory" and hit.Parent ~= Effects and hit.Anchored == false then
857
			hit:remove()
858
			CreateSound("261732529", ORB, 3, 1,false)
859
		end
860
	end)
861
	repeat
862
		Swait()
863
		succnearest(ORB.Position,50,80,true)
864
	until VACUUM == false
865
	CUSTOMMOVEMENT = false
866
	succ:remove()
867
	harm:disconnect()
868
end
869
870
function shootbullet()
871
	CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
872
	local bullet = IT("Part",Effects)
873
	bullet.Size = VT(1,1,1)
874
	bullet.Shape = "Ball"
875
	bullet.Material = "Neon"
876
	bullet.Color = C3(0.5,0,1)
877
	local sparks = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,2)
878
	bullet.CFrame = ORB.CFrame
879
	local bv = Instance.new("BodyVelocity") 
880
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
881
	bv.velocity = CF(bullet.Position,Mouse.Hit.p).lookVector*200
882
	bv.Parent = bullet
883
	bv.Name = "MOVE"
884
	local loop = CreateSound(BULLETLOOPSOUND, bullet, 0.6, MRANDOM(9, 11) / 10,true)
885
	local HIT = false
886
	local harm = bullet.Touched:Connect(function(hit)
887
		if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
888
			HIT = true
889
			coroutine.resume(coroutine.create(function()
890
				coroutine.resume(coroutine.create(function()
891
					for i = 1, 10 do
892
						Swait()
893
						bullet.Transparency = bullet.Transparency + 0.1
894
					end
895
				end))
896
				bullet.Anchored = true
897
				bullet.CanCollide = false
898
				sparks.Enabled = false
899
				local sparks2 = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,7)
900
				loop.Volume = 3
901
				CreateSound(BULLETIMPACTSOUND, bullet, 2, MRANDOM(9, 11) / 10,false)
902
				for i = 1, 350 do
903
					Swait()
904
					succnearest(bullet.Position,15,25,false)
905
				end
906
				sparks2.Enabled = false
907
				for i = 1, 10 do
908
					Swait()
909
					loop.Volume = loop.Volume - (3/10)
910
				end
911
				bullet:remove()
912
			end))
913
		end
914
	end)
915
end
916
917
function shoottoughbullet()
918
	CreateSound(PEWSOUND[MRANDOM(1, #PEWSOUND)], ORB, 2, MRANDOM(8, 9) / 10,false)
919
	local bullet = IT("Part",Effects)
920
	bullet.Size = VT(3,3,3)
921
	bullet.Shape = "Ball"
922
	bullet.Material = "Neon"
923
	bullet.Color = C3(0.5,0,1)
924
	local sparks = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,3.5)
925
	bullet.CFrame = ORB.CFrame
926
	local bv = Instance.new("BodyVelocity") 
927
	bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
928
	bv.velocity = CF(bullet.Position,Mouse.Hit.p).lookVector*100
929
	bv.Parent = bullet
930
	bv.Name = "MOVE"
931
	local loop = CreateSound(BULLETLOOPSOUND, bullet, 0.6, MRANDOM(5, 7) / 10,true)
932
	local HIT = false
933
	local harm = bullet.Touched:Connect(function(hit)
934
		if HIT == false and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= Effects then
935
			HIT = true
936
			coroutine.resume(coroutine.create(function()
937
				coroutine.resume(coroutine.create(function()
938
					for i = 1, 10 do
939
						Swait()
940
						bullet.Transparency = bullet.Transparency + 0.1
941
					end
942
				end))
943
				bullet.Anchored = true
944
				bullet.CanCollide = false
945
				sparks.Enabled = false
946
				local sparks2 = CreateParticles(bullet,VT(0,0,0),0,150,"Solid",true,true,15)
947
				loop.Volume = 3
948
				CreateSound(BULLETIMPACTSOUND, bullet, 6, MRANDOM(5,7) / 10,false)
949
				for i = 1, 50 do
950
					Swait()
951
					succnearest(bullet.Position,25,100,true)
952
				end
953
				sparks2.Enabled = false
954
				for i = 1, 10 do
955
					Swait()
956
					loop.Volume = loop.Volume - (3/10)
957
				end
958
				bullet:remove()
959
			end))
960
		end
961
	end)
962
end
963
964
function grab()
965
	if Mouse.Target.Parent:FindFirstChild("Torso") then
966
		local targ = Mouse.Target
967
		GRABBED = true
968
		targ.Anchored = true
969
		CUSTOMMOVEMENT = true
970
		grav.position = targ.Position
971
		Swait(50)
972
		if targ then
973
			Swait(5)
974
			targ.Anchored = false
975
			CUSTOMMOVEMENT = false
976
			repeat 
977
				Swait() 
978
				targ.CFrame = ORB.CFrame
979
			until GRABBED == false or targ == nil
980
			GRABBED = false
981
		end
982
	end
983
end
984
985
--//=================================\\
986
--||	  ASSIGN THINGS TO KEYS
987
--\\=================================//
988
989
Humanoid.Changed:connect(function(Jump)
990
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
991
		Humanoid.Jump = false
992
	end
993
end)
994
995
function MouseDown(Mouse)
996
	if ATTACK == false then
997
	end
998
end
999
1000
function MouseUp(Mouse)
1001
HOLD = false
1002
end
1003
1004
function KeyDown(Key)
1005
	if ATTACK == false then
1006
		if Key == "e" and VACUUM == false and FLIGHT == false and GRABBED == false then
1007
			Warp()
1008
		end
1009
		if Key == "z" and VACUUM == false and GRABBED == false then
1010
			if FLIGHT == false then
1011
				FLIGHT = true
1012
				StartFlight()
1013
			elseif FLIGHT == true then
1014
				FLIGHT = false
1015
			end
1016
		end
1017
		if Key == "h" then
1018
			shootbullet()
1019
		end
1020
		if Key == "]" then
1021
			shoottoughbullet()
1022
		end
1023
		if Key == "c" and VACUUM == false then
1024
			if GRABBED == false then
1025
				grab()
1026
			elseif GRABBED == true then
1027
				GRABBED = false
1028
			end
1029
		end
1030
		if Key == "x" then
1031
			if VACUUM == false then
1032
				VACUUM = true
1033
				Vacuum()
1034
			elseif VACUUM == true then
1035
				VACUUM = false
1036
			end
1037
		end
1038
	end
1039
end
1040
1041
function KeyUp(Key)
1042
end
1043
1044
	Mouse.Button1Down:connect(function(NEWKEY)
1045
		MouseDown(NEWKEY)
1046
	end)
1047
	Mouse.Button1Up:connect(function(NEWKEY)
1048
		MouseUp(NEWKEY)
1049
	end)
1050
	Mouse.KeyDown:connect(function(NEWKEY)
1051
		KeyDown(NEWKEY)
1052
	end)
1053
	Mouse.KeyUp:connect(function(NEWKEY)
1054
		KeyUp(NEWKEY)
1055
	end)
1056
1057
--//=================================\\
1058
--\\=================================//
1059
1060
1061
function unanchor()
1062
	if UNANCHOR == true then
1063
		g = Character:GetChildren()
1064
		for i = 1, #g do
1065
			if g[i].ClassName == "Part" then
1066
				g[i].Anchored = false
1067
			end
1068
		end
1069
	end
1070
end
1071
1072
1073
--//=================================\\
1074
--||	WRAP THE WHOLE SCRIPT UP
1075
--\\=================================//
1076
1077
Humanoid.Changed:connect(function(Jump)
1078
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
1079
		Humanoid.Jump = false
1080
	end
1081
end)
1082
1083
local loop = 0
1084
local aaa = 1/2
1085
local loop2 = 0
1086
1087
while true do
1088
	Swait()
1089
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1090
	SINE = SINE + CHANGE
1091
if #Effects2>0 then
1092
for e=1,#Effects2 do
1093
if Effects2[e]~=nil then
1094
local Thing=Effects2[e]
1095
if Thing~=nil then
1096
local Part=Thing[1]
1097
local Mode=Thing[2]
1098
local Delay=Thing[3]
1099
local IncX=Thing[4]
1100
local IncY=Thing[5]
1101
local IncZ=Thing[6]
1102
local Part2=Thing[8]
1103
if Thing[1].Transparency<=1 then
1104
if Thing[2]=="Block1" then
1105
Thing[1].CFrame=Thing[1].CFrame
1106
Mesh=Thing[1].Mesh
1107
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1108
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1109
elseif Thing[2]=="Cylinder" then
1110
Mesh=Thing[1].Mesh
1111
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1112
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1113
elseif Thing[2]=="Blood" then
1114
Mesh=Thing[7]
1115
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1116
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1117
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1118
elseif Thing[2]=="Elec" then
1119
Mesh=Thing[1].Mesh
1120
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1121
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1122
elseif Thing[2]=="Disappear" then
1123
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1124
end
1125
else
1126
Part.Parent=nil
1127
table.remove(Effects2,e)
1128
end
1129
end
1130
end
1131
end
1132
end
1133
unanchor()
1134
Humanoid.MaxHealth = "inf"
1135
Humanoid.Health = "inf"
1136
if Rooted == false then
1137
	Disable_Jump = false
1138
	Humanoid.WalkSpeed = Speed
1139
elseif Rooted == true then
1140
	Disable_Jump = true
1141
	Humanoid.WalkSpeed = 0
1142
end
1143
if CUSTOMMOVEMENT == false then
1144
	loop = loop + aaa
1145
	grav.position = RootPart.CFrame*CF(4,1+loop/10,1).p
1146
	if loop == 45/2 then
1147
		aaa = -1/2
1148
	elseif loop == -15/2 then
1149
		aaa = 1/2
1150
	end
1151
else
1152
end
1153
if PLAYINGMUSIC == true then
1154
	Orbmesh.Scale = VT(X+SOUND.PlaybackLoudness/70,Y+SOUND.PlaybackLoudness/70,Z+SOUND.PlaybackLoudness/70)
1155
else
1156
	Orbmesh.Scale = VT(X,Y,Z)
1157
end
1158
	ORB.Anchored = false
1159
end
1160
1161
--//=================================\\
1162
--\\=================================//
1163
1164
1165
1166
1167
1168
--//====================================================\\--
1169
--||			  		 END OF SCRIPT
1170
--\\====================================================//--