View difference between Paste ID: SVCmZ3hi and 1T4neyBY
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
do
4
	print("FE Compatibility code by Mokiros")
5
	script.Parent = Player.Character
6
7
	--RemoteEvent for communicating
8
	local Event = Instance.new("RemoteEvent")
9
	Event.Name = "UserInput_Event"
10
11
	--Fake event to make stuff like Mouse.KeyDown work
12
	local function fakeEvent()
13
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
14
		t.connect = t.Connect
15
		return t
16
	end
17
18
	--Creating fake input objects with fake variables
19
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
20
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
21
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
22
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
23
	end}
24
	--Merged 2 functions into one by checking amount of arguments
25
	CAS.UnbindAction = CAS.BindAction
26
27
	--This function will trigger the events that have been :Connect()'ed
28
	local function te(self,ev,...)
29
		local t = m[ev]
30
		if t and t._fakeEvent and t.Function then
31
			t.Function(...)
32
		end
33
	end
34
	m.TrigEvent = te
35
	UIS.TrigEvent = te
36
37
	Event.OnServerEvent:Connect(function(plr,io)
38
	    if plr~=Player then return end
39
		if io.isMouse then
40
			m.Target = io.Target
41
			m.Hit = io.Hit
42
		else
43
			local b = io.UserInputState == Enum.UserInputState.Begin
44
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
45
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
46
			end
47
			for _,t in pairs(CAS.Actions) do
48
				for _,k in pairs(t.Keys) do
49
					if k==io.KeyCode then
50
						t.Function(t.Name,io.UserInputState,io)
51
					end
52
				end
53
			end
54
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
55
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
56
	    end
57
	end)
58
	Event.Parent = NLS([==[
59
	local Player = game:GetService("Players").LocalPlayer
60
	local Event = script:WaitForChild("UserInput_Event")
61
62
	local UIS = game:GetService("UserInputService")
63
	local input = function(io,a)
64
		if a then return end
65
		--Since InputObject is a client-side instance, we create and pass table instead
66
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
67
	end
68
	UIS.InputBegan:Connect(input)
69
	UIS.InputEnded:Connect(input)
70
71
	local Mouse = Player:GetMouse()
72
	local h,t
73
	--Give the server mouse data 30 times every second, but only if the values changed
74
	--If player is not moving their mouse, client won't fire events
75
	while wait(1/30) do
76
		if h~=Mouse.Hit or t~=Mouse.Target then
77
			h,t=Mouse.Hit,Mouse.Target
78
			Event:FireServer({isMouse=true,Target=t,Hit=h})
79
		end
80
	end]==],Player.Character)
81
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
82
end
83
--//====================================================\\--
84
--||			   CREATED BY SHACKLUSTER
85
--\\====================================================//--
86
87
wait(0.2)
88
89
Player = owner
90
PlayerGui = Player.PlayerGui
91
Cam = workspace.CurrentCamera
92
Backpack = Player.Backpack
93
Character = Player.Character
94
Humanoid = Character.Humanoid
95-
Mouse = Player:GetMouse()
95+
96
Torso = Character["Torso"]
97
Head = Character["Head"]
98
RightArm = Character["Right Arm"]
99
LeftArm = Character["Left Arm"]
100
RightLeg = Character["Right Leg"]
101
LeftLeg = Character["Left Leg"]
102
RootJoint = RootPart["RootJoint"]
103
Neck = Torso["Neck"]
104
RightShoulder = Torso["Right Shoulder"]
105
LeftShoulder = Torso["Left Shoulder"]
106
RightHip = Torso["Right Hip"]
107
LeftHip = Torso["Left Hip"]
108
109
IT = Instance.new
110
CF = CFrame.new
111
VT = Vector3.new
112
RAD = math.rad
113
C3 = Color3.new
114
UD2 = UDim2.new
115
BRICKC = BrickColor.new
116
ANGLES = CFrame.Angles
117
EULER = CFrame.fromEulerAnglesXYZ
118
COS = math.cos
119
ACOS = math.acos
120
SIN = math.sin
121
ASIN = math.asin
122
ABS = math.abs
123
MRANDOM = math.random
124
FLOOR = math.floor
125
126
--//=================================\\
127
--|| 	      USEFUL VALUES
128
--\\=================================//
129
130
Animation_Speed = 3
131
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
132
local Speed = 16
133
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
134
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
135
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
136
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
137
local DAMAGEMULTIPLIER = 1
138
local ANIM = "Idle"
139
local ATTACK = false
140
local EQUIPPED = false
141
local HOLD = false
142
local COMBO = 1
143
local Rooted = false
144
local SINE = 0
145
local KEYHOLD = false
146
local CHANGE = 2 / Animation_Speed
147
local WALKINGANIM = false
148
local VALUE1 = false
149
local VALUE2 = false
150
local ROBLOXIDLEANIMATION = IT("Animation")
151
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
152
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
153
--ROBLOXIDLEANIMATION.Parent = Humanoid
154
local WEAPONGUI = IT("ScreenGui", PlayerGui)
155
WEAPONGUI.Name = "Weapon GUI"
156
local Weapon = IT("Model")
157
Weapon.Name = "Adds"
158
local Effects = IT("Folder", Weapon)
159
Effects.Name = "Effects"
160
local ANIMATOR = Humanoid.Animator
161
local ANIMATE = Character.Animate
162
local UNANCHOR = true
163
local CYAN = BRICKC"Cyan".Color
164
local ICONS = {"167300717","413366101","839798346","413372165","413366777","132769874","99340890","413364594","64940934","99340699"}
165
166
--//=================================\\
167
--\\=================================//
168
169
170
--//=================================\\
171
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
172
--\\=================================//
173
174
ArtificialHB = Instance.new("BindableEvent", script)
175
ArtificialHB.Name = "ArtificialHB"
176
177
script:WaitForChild("ArtificialHB")
178
179
frame = Frame_Speed
180
tf = 0
181
allowframeloss = false
182
tossremainder = false
183
lastframe = tick()
184
script.ArtificialHB:Fire()
185
186
game:GetService("RunService").Heartbeat:connect(function(s, p)
187
	tf = tf + s
188
	if tf >= frame then
189
		if allowframeloss then
190
			script.ArtificialHB:Fire()
191
			lastframe = tick()
192
		else
193
			for i = 1, math.floor(tf / frame) do
194
				script.ArtificialHB:Fire()
195
			end
196
		lastframe = tick()
197
		end
198
		if tossremainder then
199
			tf = 0
200
		else
201
			tf = tf - frame * math.floor(tf / frame)
202
		end
203
	end
204
end)
205
206
--//=================================\\
207
--\\=================================//
208
209
--//=================================\\
210
--|| 	      SOME FUNCTIONS
211
--\\=================================//
212
213
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
214
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
215
end
216
217
function PositiveAngle(NUMBER)
218
	if NUMBER >= 0 then
219
		NUMBER = 0
220
	end
221
	return NUMBER
222
end
223
224
function NegativeAngle(NUMBER)
225
	if NUMBER <= 0 then
226
		NUMBER = 0
227
	end
228
	return NUMBER
229
end
230
231
function Swait(NUMBER)
232
	if NUMBER == 0 or NUMBER == nil then
233
		ArtificialHB.Event:wait()
234
	else
235
		for i = 1, NUMBER do
236
			ArtificialHB.Event:wait()
237
		end
238
	end
239
end
240
241
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
242
	local NEWMESH = IT(MESH)
243
	if MESH == "SpecialMesh" then
244
		NEWMESH.MeshType = MESHTYPE
245
		if MESHID ~= "nil" and MESHID ~= "" then
246
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
247
		end
248
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
249
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
250
		end
251
	end
252
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
253
	NEWMESH.Scale = SCALE
254
	NEWMESH.Parent = PARENT
255
	return NEWMESH
256
end
257
258
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
259
	local NEWPART = IT("Part")
260
	NEWPART.formFactor = FORMFACTOR
261
	NEWPART.Reflectance = REFLECTANCE
262
	NEWPART.Transparency = TRANSPARENCY
263
	NEWPART.CanCollide = false
264
	NEWPART.Locked = true
265
	NEWPART.Anchored = true
266
	if ANCHOR == false then
267
		NEWPART.Anchored = false
268
	end
269
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
270
	NEWPART.Name = NAME
271
	NEWPART.Size = SIZE
272
	NEWPART.Position = Torso.Position
273
	NEWPART.Material = MATERIAL
274
	NEWPART:BreakJoints()
275
	NEWPART.Parent = PARENT
276
	return NEWPART
277
end
278
279
	local function weldBetween(a, b)
280
	    local weldd = Instance.new("ManualWeld")
281
	    weldd.Part0 = a
282
	    weldd.Part1 = b
283
	    weldd.C0 = CFrame.new()
284
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
285
	    weldd.Parent = a
286
	    return weldd
287
	end
288
289
290
function QuaternionFromCFrame(cf)
291
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
292
	local trace = m00 + m11 + m22
293
	if trace > 0 then 
294
		local s = math.sqrt(1 + trace)
295
		local recip = 0.5 / s
296
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
297
	else
298
		local i = 0
299
		if m11 > m00 then
300
			i = 1
301
		end
302
		if m22 > (i == 0 and m00 or m11) then
303
			i = 2
304
		end
305
		if i == 0 then
306
			local s = math.sqrt(m00 - m11 - m22 + 1)
307
			local recip = 0.5 / s
308
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
309
		elseif i == 1 then
310
			local s = math.sqrt(m11 - m22 - m00 + 1)
311
			local recip = 0.5 / s
312
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
313
		elseif i == 2 then
314
			local s = math.sqrt(m22 - m00 - m11 + 1)
315
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
316
		end
317
	end
318
end
319
 
320
function QuaternionToCFrame(px, py, pz, x, y, z, w)
321
	local xs, ys, zs = x + x, y + y, z + z
322
	local wx, wy, wz = w * xs, w * ys, w * zs
323
	local xx = x * xs
324
	local xy = x * ys
325
	local xz = x * zs
326
	local yy = y * ys
327
	local yz = y * zs
328
	local zz = z * zs
329
	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))
330
end
331
 
332
function QuaternionSlerp(a, b, t)
333
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
334
	local startInterp, finishInterp;
335
	if cosTheta >= 0.0001 then
336
		if (1 - cosTheta) > 0.0001 then
337
			local theta = ACOS(cosTheta)
338
			local invSinTheta = 1 / SIN(theta)
339
			startInterp = SIN((1 - t) * theta) * invSinTheta
340
			finishInterp = SIN(t * theta) * invSinTheta
341
		else
342
			startInterp = 1 - t
343
			finishInterp = t
344
		end
345
	else
346
		if (1 + cosTheta) > 0.0001 then
347
			local theta = ACOS(-cosTheta)
348
			local invSinTheta = 1 / SIN(theta)
349
			startInterp = SIN((t - 1) * theta) * invSinTheta
350
			finishInterp = SIN(t * theta) * invSinTheta
351
		else
352
			startInterp = t - 1
353
			finishInterp = t
354
		end
355
	end
356
	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
357
end
358
359
function Clerp(a, b, t)
360
	local qa = {QuaternionFromCFrame(a)}
361
	local qb = {QuaternionFromCFrame(b)}
362
	local ax, ay, az = a.x, a.y, a.z
363
	local bx, by, bz = b.x, b.y, b.z
364
	local _t = 1 - t
365
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
366
end
367
368
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
369
	local frame = IT("Frame")
370
	frame.BackgroundTransparency = TRANSPARENCY
371
	frame.BorderSizePixel = BORDERSIZEPIXEL
372
	frame.Position = POSITION
373
	frame.Size = SIZE
374
	frame.BackgroundColor3 = COLOR
375
	frame.BorderColor3 = BORDERCOLOR
376
	frame.Name = NAME
377
	frame.Parent = PARENT
378
	return frame
379
end
380
381
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
382
	local label = IT("TextLabel")
383
	label.BackgroundTransparency = 1
384
	label.Size = UD2(1, 0, 1, 0)
385
	label.Position = UD2(0, 0, 0, 0)
386
	label.TextColor3 = TEXTCOLOR
387
	label.TextStrokeTransparency = STROKETRANSPARENCY
388
	label.TextTransparency = TRANSPARENCY
389
	label.FontSize = TEXTFONTSIZE
390
	label.Font = TEXTFONT
391
	label.BorderSizePixel = BORDERSIZEPIXEL
392
	label.TextScaled = false
393
	label.Text = TEXT
394
	label.Name = NAME
395
	label.Parent = PARENT
396
	return label
397
end
398
399
function NoOutlines(PART)
400
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
401
end
402
403
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
404
	local NEWWELD = IT(TYPE)
405
	NEWWELD.Part0 = PART0
406
	NEWWELD.Part1 = PART1
407
	NEWWELD.C0 = C0
408
	NEWWELD.C1 = C1
409
	NEWWELD.Parent = PARENT
410
	return NEWWELD
411
end
412
413
local S = IT("Sound")
414
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
415
	local NEWSOUND = nil
416
	coroutine.resume(coroutine.create(function()
417
		NEWSOUND = S:Clone()
418
		NEWSOUND.Parent = PARENT
419
		NEWSOUND.Volume = VOLUME
420
		NEWSOUND.Pitch = PITCH
421
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
422
		NEWSOUND:play()
423
		if DOESLOOP == true then
424
			NEWSOUND.Looped = true
425
		else
426
			repeat Swait() until NEWSOUND.Playing == false
427
			NEWSOUND:remove()
428
		end
429
	end))
430
	return NEWSOUND
431
end
432
433
function CFrameFromTopBack(at, top, back)
434
	local right = top:Cross(back)
435
	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)
436
end
437
438
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
439
function WACKYEFFECT(Table)
440
	local TYPE = (Table.EffectType or "Sphere")
441
	local SIZE = (Table.Size or VT(1,1,1))
442
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
443
	local TRANSPARENCY = (Table.Transparency or 0)
444
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
445
	local CFRAME = (Table.CFrame or Torso.CFrame)
446
	local MOVEDIRECTION = (Table.MoveToPos or nil)
447
	local ROTATION1 = (Table.RotationX or 0)
448
	local ROTATION2 = (Table.RotationY or 0)
449
	local ROTATION3 = (Table.RotationZ or 0)
450
	local MATERIAL = (Table.Material or "Neon")
451
	local COLOR = (Table.Color or C3(1,1,1))
452
	local TIME = (Table.Time or 45)
453
	local SOUNDID = (Table.SoundID or nil)
454
	local SOUNDPITCH = (Table.SoundPitch or nil)
455
	local SOUNDVOLUME = (Table.SoundVolume or nil)
456
	coroutine.resume(coroutine.create(function()
457
		local PLAYSSOUND = false
458
		local SOUND = nil
459
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
460
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
461
			PLAYSSOUND = true
462
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
463
		end
464
		EFFECT.Color = COLOR
465
		local MSH = nil
466
		if TYPE == "Sphere" then
467
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
468
		elseif TYPE == "Block" then
469
			MSH = IT("BlockMesh",EFFECT)
470
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
471
		elseif TYPE == "Wave" then
472
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
473
		elseif TYPE == "Ring" then
474
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.01), VT(0,0,0))
475
		elseif TYPE == "Slash" then
476
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
477
		elseif TYPE == "Round Slash" then
478
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
479
		elseif TYPE == "Swirl" then
480
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
481
		elseif TYPE == "Skull" then
482
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
483
		elseif TYPE == "Crystal" then
484
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
485
		elseif TYPE == "Box" then
486
			MSH = IT("BlockMesh",EFFECT)
487
			MSH.Scale = SIZE
488
		end
489
		if MSH ~= nil then
490
			local MOVESPEED = nil
491
			if MOVEDIRECTION ~= nil then
492
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
493
			end
494
			local GROWTH = SIZE - ENDSIZE
495
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
496
			if TYPE == "Block" then
497
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
498
			else
499
				EFFECT.CFrame = CFRAME
500
			end
501
			for LOOP = 1, TIME do
502
				Swait()
503
				MSH.Scale = MSH.Scale - GROWTH/TIME
504
				if TYPE == "Wave" then
505
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
506
				end
507
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
508
				if TYPE == "Block" then
509
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
510
				else
511
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
512
				end
513
				if MOVEDIRECTION ~= nil then
514
					local ORI = EFFECT.Orientation
515
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
516
					EFFECT.Orientation = ORI
517
				end
518
			end
519
			if PLAYSSOUND == false then
520
				EFFECT:remove()
521
			else
522
				repeat Swait() until SOUND.Playing == false
523
				EFFECT:remove()
524
			end
525
		else
526
			if PLAYSSOUND == false then
527
				EFFECT:remove()
528
			else
529
				repeat Swait() until SOUND.Playing == false
530
				EFFECT:remove()
531
			end
532
		end
533
	end))
534
end
535
536
function MakeForm(PART,TYPE)
537
	if TYPE == "Cyl" then
538
		local MSH = IT("CylinderMesh",PART)
539
	elseif TYPE == "Ball" then
540
		local MSH = IT("SpecialMesh",PART)
541
		MSH.MeshType = "Sphere"
542
	elseif TYPE == "Wedge" then
543
		local MSH = IT("SpecialMesh",PART)
544
		MSH.MeshType = "Wedge"
545
	end
546
end
547
548
Debris = game:GetService("Debris")
549
550
function CastProperRay(StartPos, EndPos, Distance, Ignore)
551
	local DIRECTION = CF(StartPos,EndPos).lookVector
552
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
553
end
554
555
function turnto(position)
556
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
557
end
558
559
--//=================================\\
560
--||	     WEAPON CREATION
561
--\\=================================//
562
563
RightArm:remove()
564
LeftArm:remove()
565
RightLeg:remove()
566
LeftLeg:remove()
567
Humanoid.HipHeight = 6
568
Head:ClearAllChildren()
569
Head.Transparency = 1
570
Torso.Transparency = 1
571
572
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(2,2,1),false)
573
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(0,0,0) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
574
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(1.6,1.6,1.5),false)
575
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(0,0,0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
576
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(2,0.2,0.5),false)
577
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(0,0.9,-0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
578
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(2,0.2,0.5),false)
579
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(0,-0.9,-0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
580
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(0.2,1.8,0.5),false)
581
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(0.9,0,-0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
582
local BOX = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "BOX", VT(0.2,1.8,0.5),false)
583
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, BOX, CF(-0.9,0,-0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
584
585
local SCREEN = CreatePart(3, Weapon, "Neon", 0, 0, "Bright blue", "SCREEN", VT(1.8,1.8,0.45),false)
586
CreateWeldOrSnapOrMotor("Weld", Torso, Torso, SCREEN, CF(0,0,-0.5) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
587
local Eye1 = CreatePart(3, Weapon, "Neon", 0, 0, "Cyan", "Eyeball", VT(0.3,0.7,0.2),false)
588
MakeForm(Eye1,"Ball")
589
Eye1.Color = C3(0,0,0)
590
CreateWeldOrSnapOrMotor("Weld", SCREEN, SCREEN, Eye1, CF(0.3,0.2,-0.2) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
591
local Eye2 = CreatePart(3, Weapon, "Neon", 0, 0, "Cyan", "Eyeball", VT(0.3,0.7,0.2),false)
592
MakeForm(Eye2,"Ball")
593
Eye2.Color = C3(0,0,0)
594
CreateWeldOrSnapOrMotor("Weld", SCREEN, SCREEN, Eye2, CF(-0.3,0.2,-0.2) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,0,0))
595
596
local TIE = CreatePart(3, Weapon, "Neon", 0, 0, "Cyan", "TIE", VT(0,0,0),false)
597
local TIEWELD = CreateWeldOrSnapOrMotor("Weld", Torso, Torso, TIE, CF(0,0,0) * ANGLES(RAD(0),RAD(0),RAD(0)), CF(0,1.8,0.65))
598
CreateMesh("SpecialMesh", TIE, "FileMesh", "28463033", "28463022", VT(1,1,1)*1.5, VT(0,0,0))
599
600
for _, c in pairs(Weapon:GetChildren()) do
601
	if c.ClassName == "Part" then
602
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
603
	end
604
end
605
606
local SKILLTEXTCOLOR = C3(0,0,0)
607
local SKILLFONT = "SciFi"
608
local SKILLTEXTSIZE = 6
609
610
Weapon.Parent = Character
611
612
Humanoid.Died:connect(function()
613
	ATTACK = true
614
end)
615
616
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.23, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
617
local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.50, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
618
local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
619
local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
620
621
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Chuck", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Text 1")
622
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Suck", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Text 2")
623
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Disable", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Text 3")
624
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Warp", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Text 4")
625
626
--//=================================\\
627
--||	     DAMAGE FUNCTIONS
628
--\\=================================//
629
630
function StatLabel(CFRAME, TEXT, COLOR)
631
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
632
	STATPART.CFrame = CF(CFRAME.p,CFRAME.p+VT(MRANDOM(-5,5),MRANDOM(0,5),MRANDOM(-5,5)))
633
	local BODYGYRO = IT("BodyGyro", STATPART)
634
	game:GetService("Debris"):AddItem(STATPART ,5)
635
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
636
	BILLBOARDGUI.Adornee = STATPART
637
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
638
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
639
	BILLBOARDGUI.AlwaysOnTop = false
640
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
641
	TEXTLABEL.BackgroundTransparency = 1
642
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
643
	TEXTLABEL.Text = TEXT
644
	TEXTLABEL.Font = SKILLFONT
645
	TEXTLABEL.FontSize="Size42"
646
	TEXTLABEL.TextColor3 = COLOR
647
	TEXTLABEL.TextStrokeTransparency = 0
648
	TEXTLABEL.TextScaled = true
649
	TEXTLABEL.TextWrapped = true
650
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
651
		for i = 1, 50 do
652
			Swait()
653
			STATPART.CFrame = STATPART.CFrame * CF(0,0,-0.2)
654
			TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/50)
655
			TEXTLABEL.TextStrokeTransparency = TEXTLABEL.TextTransparency
656
		end
657
		THEPART.Parent = nil
658
	end),STATPART, TEXTLABEL)
659
end
660
661
--//=================================\\
662
--||			DAMAGING
663
--\\=================================//
664
665
function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier)
666
	if Humanoid.MaxHealth == math.huge then
667
		Humanoid.Parent:BreakJoints()
668
		local TORS = Humanoid.Parent:FindFirstChild("Torso") or Humanoid.Parent:FindFirstChild("UpperTorso")
669
			local REMAIN = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Idk lol", VT(3,3,3),false)
670
			REMAIN.CFrame = TORS.CFrame
671
			REMAIN.CanCollide = true
672
			local GUI = Instance.new("BillboardGui",REMAIN)
673
			GUI.Size = UDim2.new(3,0,3,0)
674
			GUI.Adornee = REMAIN
675
			local GUI2 = IT("ImageLabel",GUI)
676
			GUI2.BackgroundTransparency = 1
677
			GUI2.BorderSizePixel = 0
678
			GUI2.Size = UDim2.new(1,0,1,0)
679
			GUI2.SizeConstraint = "RelativeYY"
680
			GUI2.Image = "http://www.roblox.com/asset/?id=167300717"
681
			CreateSound("681582832", REMAIN, 3, 1, false)
682
			Debris:AddItem(REMAIN,15)
683
		if TORS then
684
		end
685
		Humanoid.Parent:remove()
686
	else
687
		local defence = Instance.new("BoolValue",Humanoid.Parent)
688
		defence.Name = ("HitBy"..Player.Name)
689
		game:GetService("Debris"):AddItem(defence, 0.001)
690
		Damage = Damage * DAMAGEMULTIPLIER
691
		if Humanoid.Health ~= 0 then
692
			local CritChance = MRANDOM(1,100)
693
			if CritChance < CritRate + 1 then
694
				Damage = Damage*CritMultiplier
695
			end
696
			if Damage > Humanoid.Health then
697
				Damage = math.ceil(Humanoid.Health)
698
				if Damage == 0 then
699
					Damage = 0.1
700
				end
701
			end
702
			Humanoid.Health = Humanoid.Health - Damage
703
			if Humanoid.Parent:FindFirstChild("Head") then
704
				if CritChance < CritRate + 1 then
705
					StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), "CRIT//"..Damage, C3(1, 0, 0))
706
				else
707
					StatLabel(Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, C3(0, 0, 0))
708
				end
709
			end
710
			if Humanoid.Health == 0 or Humanoid.MaxHealth == "inf" then
711
				local TORS = Humanoid.Parent:FindFirstChild("Torso") or Humanoid.Parent:FindFirstChild("UpperTorso")
712
					local REMAIN = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Idk lol", VT(3,3,3),false)
713
					REMAIN.CFrame = TORS.CFrame
714
					REMAIN.CanCollide = true
715
					local GUI = Instance.new("BillboardGui",REMAIN)
716
					GUI.Size = UDim2.new(3,0,3,0)
717
					GUI.Adornee = REMAIN
718
					local GUI2 = IT("ImageLabel",GUI)
719
					GUI2.BackgroundTransparency = 1
720
					GUI2.BorderSizePixel = 0
721
					GUI2.Size = UDim2.new(1,0,1,0)
722
					GUI2.SizeConstraint = "RelativeYY"
723
					GUI2.Image = "http://www.roblox.com/asset/?id=167300717"
724
					CreateSound("681582832", REMAIN, 3, 1, false)
725
					Debris:AddItem(REMAIN,15)
726
				if TORS then
727
				end
728
				Humanoid.Parent:remove()
729
			end
730
		end
731
	end
732
end
733
734
--//=================================\\
735
--||	ATTACK FUNCTIONS AND STUFF
736
--\\=================================//
737
738
function Chuck()
739
	ATTACK = true
740
	Rooted = false
741
	CreateSound("11900833", SCREEN, 3, 1, false)
742
	coroutine.resume(coroutine.create(function()
743
		local TOCHUCK = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Idk lol", VT(1,1,1))
744
		TOCHUCK.CFrame = CF(SCREEN.Position,Mouse.Hit.p)
745
		local GUI = Instance.new("BillboardGui",TOCHUCK)
746
		GUI.Size = UDim2.new(1,0,1,0)
747
		GUI.Adornee = TOCHUCK
748
		local GUI2 = IT("ImageLabel",GUI)
749
		GUI2.BackgroundTransparency = 1
750
		GUI2.BorderSizePixel = 0
751
		GUI2.Size = UDim2.new(1,0,1,0)
752
		GUI2.SizeConstraint = "RelativeYY"
753
		GUI2.Image = "http://www.roblox.com/asset/?id="..ICONS[MRANDOM(1,#ICONS)]
754
		for i = 1, 100 do
755
			Swait()
756
			TOCHUCK.CFrame = TOCHUCK.CFrame*CF(0,0,-1)
757
			local HIT = Raycast(TOCHUCK.Position, TOCHUCK.CFrame.lookVector, 1.5, Character)
758
			if HIT ~= nil then
759
				if HIT.Parent.ClassName == "Model" then
760
					if HIT.Parent:FindFirstChildOfClass("Humanoid") then
761
						CreateSound("131237241", HIT, 3, 1, false)
762
						ApplyDamage(HIT.Parent:FindFirstChildOfClass("Humanoid"),MRANDOM(7,14),4,3)
763
						local bv = Instance.new("BodyVelocity") 
764
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
765
						bv.velocity = CF(TOCHUCK.Position,HIT.Position).lookVector*15
766
						bv.Parent = HIT
767
						Debris:AddItem(bv,0.1)
768
						local bv = Instance.new("BodyVelocity") 
769
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
770
						bv.velocity = CF(HIT.Position,TOCHUCK.Position).lookVector*15
771
						bv.Parent = TOCHUCK
772
						Debris:AddItem(bv,0.1)
773
					end
774
				end
775
				break
776
			end
777
			TOCHUCK.CFrame = TOCHUCK.CFrame*CF(0,0,-1)
778
			local HIT = Raycast(TOCHUCK.Position, TOCHUCK.CFrame.lookVector, 1.5, Character)
779
			if HIT ~= nil then
780
				if HIT.Parent.ClassName == "Model" then
781
					if HIT.Parent:FindFirstChildOfClass("Humanoid") then
782
						CreateSound("131237241", HIT, 3, 1, false)
783
						ApplyDamage(HIT.Parent:FindFirstChildOfClass("Humanoid"),MRANDOM(7,14),4,3)
784
						local bv = Instance.new("BodyVelocity") 
785
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
786
						bv.velocity = CF(TOCHUCK.Position,HIT.Position).lookVector*15
787
						bv.Parent = HIT
788
						Debris:AddItem(bv,0.1)
789
						local bv = Instance.new("BodyVelocity") 
790
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
791
						bv.velocity = CF(HIT.Position,TOCHUCK.Position).lookVector*15
792
						bv.Parent = TOCHUCK
793
						Debris:AddItem(bv,0.1)
794
					end
795
				end
796
				break
797
			end
798
		end
799
		TOCHUCK.CanCollide = true
800
		TOCHUCK.Anchored = false
801
		Debris:AddItem(TOCHUCK,5)
802
	end))
803
	for i=0, 0.2, 0.1 / Animation_Speed do
804
		Swait()
805
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
806
		TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(-5), RAD(0), RAD(0))* CF(0,0,-0.1), 1 / Animation_Speed)
807
	end
808
	ATTACK = false
809
	Rooted = false
810
end
811
812
function Suck()
813
	local target = nil
814
	local targettorso = nil
815
	if Mouse.Target ~= nil then
816
		if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
817
			target = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
818
			targettorso = Mouse.Target.Parent:FindFirstChild("HumanoidRootPart") or Mouse.Target.Parent:FindFirstChild("Torso") or Mouse.Target.Parent:FindFirstChild("UpperTorso")
819
		end
820
	end
821
	if target ~= nil then
822
		VALUE1 = true
823
		CreateSound("131228548", SCREEN, 10, 1, false)
824
		targettorso.Anchored = true
825
		local GYRO = IT("BodyGyro",RootPart)
826
		GYRO.D = 100
827
		GYRO.P = 2000
828
		GYRO.MaxTorque = VT(0,999999999999999999,0)
829
		GYRO.cframe = CF(RootPart.Position,targettorso.Position)
830
		wait(1.5)
831
		GYRO:remove()
832
		coroutine.resume(coroutine.create(function()
833
			local DISTANCE = 10
834
			local REEEE = CreateSound("1278710301", targettorso, 5, 1, true)
835
			repeat
836
				Swait()
837
				targettorso.CFrame = CF(targettorso.Position,RootPart.Position)*CF(0,0,-1)
838
				DISTANCE = (targettorso.Position - RootPart.Position).Magnitude
839
				targettorso.Anchored = true
840
				target.PlatformStand = true
841
			until DISTANCE < 5
842
			REEEE.Looped = false
843
			targettorso.Anchored = false
844
			wait(0.5)
845
			target.PlatformStand = false
846
		end))
847
		VALUE1 = false
848
	end
849
end
850
851
function Disable()
852
	local target = nil
853
	local targettorso = nil
854
	if Mouse.Target ~= nil then
855
		if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
856
			target = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
857
			targettorso = Mouse.Target.Parent:FindFirstChild("HumanoidRootPart") or Mouse.Target.Parent:FindFirstChild("Torso") or Mouse.Target.Parent:FindFirstChild("UpperTorso")
858
		end
859
	end
860
	if target ~= nil then
861
		VALUE1 = true
862
		targettorso.Anchored = true
863
		CreateSound("191456748", SCREEN, 10, 1, false)
864
		local GYRO = IT("BodyGyro",RootPart)
865
		GYRO.D = 100
866
		GYRO.P = 2000
867
		GYRO.MaxTorque = VT(0,999999999999999999,0)
868
		GYRO.cframe = CF(RootPart.Position,targettorso.Position)
869
		wait(1)
870
		WACKYEFFECT({Time = 75, EffectType = "Ring", Size = VT(0.01,0.01,0.01), Size2 = VT(5,5,0.01), Transparency = 0.5, Transparency2 = 1, CFrame = RootPart.CFrame*CF(0,0,-2), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = 314970790, SoundPitch = 1, SoundVolume = 3})
871
		GYRO:remove()
872
		targettorso.CFrame = CF(targettorso.Position,RootPart.Position)
873
		targettorso.Anchored = false
874
		for _, c in pairs(target.Parent:GetChildren()) do
875
			if c.ClassName == "LocalScript" then
876
				local TOCHUCK = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Idk lol", VT(1,1,1))
877
				TOCHUCK.CFrame = targettorso.CFrame
878
				local GUI = Instance.new("BillboardGui",TOCHUCK)
879
				GUI.Size = UDim2.new(1,0,1,0)
880
				GUI.Adornee = TOCHUCK
881
				local GUI2 = IT("ImageLabel",GUI)
882
				GUI2.BackgroundTransparency = 1
883
				GUI2.BorderSizePixel = 0
884
				GUI2.Size = UDim2.new(1,0,1,0)
885
				GUI2.SizeConstraint = "RelativeYY"
886
				GUI2.Image = "http://www.roblox.com/asset/?id=99340858"
887
				c.Disabled = true
888
				c.Parent = TOCHUCK
889
				coroutine.resume(coroutine.create(function()
890
					wait()
891
					TOCHUCK.Anchored = false
892
					TOCHUCK.CanCollide = true
893
				end))
894
				coroutine.resume(coroutine.create(function()
895
					wait(MRANDOM(3,6))
896
					local DISTANCE = 10
897
					TOCHUCK.Anchored = true
898
					TOCHUCK.CanCollide = false
899
					repeat
900
						Swait()
901
						TOCHUCK.CFrame = CF(TOCHUCK.Position,RootPart.Position)*CF(0,0,-1)
902
						DISTANCE = (TOCHUCK.Position - RootPart.Position).Magnitude
903
					until DISTANCE < 2
904
					TOCHUCK:remove()
905
				end))
906
			elseif c.ClassName == "Script" then
907
				local TOCHUCK = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Idk lol", VT(1,1,1))
908
				TOCHUCK.CFrame = targettorso.CFrame
909
				local GUI = Instance.new("BillboardGui",TOCHUCK)
910
				GUI.Size = UDim2.new(1,0,1,0)
911
				GUI.Adornee = TOCHUCK
912
				local GUI2 = IT("ImageLabel",GUI)
913
				GUI2.BackgroundTransparency = 1
914
				GUI2.BorderSizePixel = 0
915
				GUI2.Size = UDim2.new(1,0,1,0)
916
				GUI2.SizeConstraint = "RelativeYY"
917
				GUI2.Image = "http://www.roblox.com/asset/?id=99340890"
918
				c.Disabled = true
919
				c.Parent = TOCHUCK
920
				coroutine.resume(coroutine.create(function()
921
					wait()
922
					TOCHUCK.Anchored = false
923
					TOCHUCK.CanCollide = true
924
				end))
925
				coroutine.resume(coroutine.create(function()
926
					wait(MRANDOM(3,6))
927
					local DISTANCE = 10
928
					TOCHUCK.Anchored = true
929
					TOCHUCK.CanCollide = false
930
					repeat
931
						Swait()
932
						TOCHUCK.CFrame = CF(TOCHUCK.Position,RootPart.Position)*CF(0,0,-1)
933
						DISTANCE = (TOCHUCK.Position - RootPart.Position).Magnitude
934
					until DISTANCE < 1.2
935
					TOCHUCK:remove()
936
				end))
937
			end
938
		end
939
		target.PlatformStand = true
940
		CreateSound("330010786", targettorso, 10, 1, false)
941
		local bv = Instance.new("BodyVelocity") 
942
		bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
943
		bv.velocity = CF(VT(RootPart.Position.X,targettorso.Position.Y-10,RootPart.Position.Z),targettorso.Position).lookVector*350
944
		bv.Parent = targettorso
945
		Debris:AddItem(bv,0.05)
946
		VALUE1 = false
947
	end
948
end
949
950
function Warp()
951
	local FRAME = RootPart.Position
952
	for i = 1, 6 do
953
		WACKYEFFECT({Time = 15, EffectType = "Box", Size = VT(2,0,2), Size2 = VT(0,35,0), Transparency = 0.5, Transparency2 = 0.5, CFrame = CF(Torso.Position)*ANGLES(RAD(0),RAD(i*(360/5)),RAD(0))*CF(6,0,0), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = BRICKC"Cyan".Color, SoundID = 1177785010, SoundPitch = 1, SoundVolume = 2})	
954
	end
955
	RootPart.CFrame = CF(Mouse.Hit.p+VT(0,6,0),VT(FRAME.X,RootPart.Position.Y,FRAME.Z))
956
	for i = 1, 6 do
957
		WACKYEFFECT({Time = 15, EffectType = "Box", Size = VT(2,0,2), Size2 = VT(0,35,0), Transparency = 0.5, Transparency2 = 0.5, CFrame = CF(Torso.Position)*ANGLES(RAD(0),RAD(i*(360/5)),RAD(0))*CF(6,0,0), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = BRICKC"Cyan".Color, SoundID = 1177785010, SoundPitch = 1, SoundVolume = 2})	
958
	end
959
end
960
961
function HavingFun()
962
	ATTACK = true
963
	VALUE2 = true
964
	Speed = 65
965
	local SONGS = {329896322,162986891,1027314531,171131642,248967176,922850176,966409302,255023933}
966
	local PISS = CreateSound(SONGS[MRANDOM(1,#SONGS)], SCREEN, 10, 1, true)
967
	repeat
968
		for i = 1, 5 do
969
			Swait()
970
			PISS.Parent = SCREEN
971
			SCREEN.Color = CYAN
972
			CYAN = C3(MRANDOM(0,255)/255,MRANDOM(0,255)/255,MRANDOM(0,255)/255)
973
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
974
			TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(-5), RAD(0), RAD(0)) * CF(0,0,-0.1), 1 / Animation_Speed)
975
		end
976
		for i = 1, 5 do
977
			Swait()
978
			PISS.Parent = SCREEN
979
			SCREEN.Color = CYAN
980
			CYAN = C3(MRANDOM(0,255)/255,MRANDOM(0,255)/255,MRANDOM(0,255)/255)
981
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
982
			TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(15), RAD(0), RAD(0)) * CF(0,-0.1,0.2), 1 / Animation_Speed)
983
		end
984
		if MRANDOM(1,15) == 1 then
985
			for i = 1, 15 do
986
				Swait()
987
				if VALUE2 == false then
988
					break
989
				end
990
				PISS.Parent = SCREEN
991
				SCREEN.Color = CYAN
992
				CYAN = C3(MRANDOM(0,255)/255,MRANDOM(0,255)/255,MRANDOM(0,255)/255)
993
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(i*18), RAD(0), RAD(0)), 1 / Animation_Speed)
994
				TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(15), RAD(0), RAD(0)) * CF(0,-0.1,0.2), 1 / Animation_Speed)
995
			end
996
		end
997
		if MRANDOM(1,15) == 1 then
998
			for i = 1, 15 do
999
				Swait()
1000
				if VALUE2 == false then
1001
					break
1002
				end
1003
				PISS.Parent = SCREEN
1004
				SCREEN.Color = CYAN
1005
				CYAN = C3(MRANDOM(0,255)/255,MRANDOM(0,255)/255,MRANDOM(0,255)/255)
1006
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(0), RAD(i*18)), 1 / Animation_Speed)
1007
				TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(15), RAD(0), RAD(0)) * CF(0,-0.1,0.2), 1 / Animation_Speed)
1008
			end
1009
		end
1010
		if MRANDOM(1,15) == 1 then
1011
			for i = 1, 15 do
1012
				Swait()
1013
				if VALUE2 == false then
1014
					break
1015
				end
1016
				PISS.Parent = SCREEN
1017
				SCREEN.Color = CYAN
1018
				CYAN = C3(MRANDOM(0,255)/255,MRANDOM(0,255)/255,MRANDOM(0,255)/255)
1019
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(i*18), RAD(0)), 1 / Animation_Speed)
1020
				TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(15), RAD(0), RAD(0)) * CF(0,-0.1,0.2), 1 / Animation_Speed)
1021
			end
1022
		end
1023
	until VALUE2 == false
1024
	Speed = 16
1025
	PISS:remove()
1026
	SCREEN.BrickColor = BRICKC"Bright blue"
1027
	CYAN = BRICKC"Cyan".Color
1028
	ATTACK = false
1029
end
1030
1031
--//=================================\\
1032
--||	  ASSIGN THINGS TO KEYS
1033
--\\=================================//
1034
1035
function KeyDown(Key)
1036
	KEYHOLD = true
1037
	if VALUE1 == false and ATTACK == false then
1038
		if Key == "z" then
1039
			Chuck()
1040
		end
1041
	
1042
		if Key == "b" then
1043
			Suck()
1044
		end
1045
	
1046
		if Key == "c" then
1047
			Disable()
1048
		end
1049
1050
		if Key == "v" then
1051
			Warp()
1052
		end
1053
1054
		if Key == "t" then
1055
			CreateSound("1395854043", Effects, 5, 1, false)
1056
		end
1057
	end
1058
	if (VALUE1 == false and ATTACK == false) or VALUE2 == true then
1059
		if Key == "q" then
1060
			if VALUE2 == false then
1061
				HavingFun()
1062
			elseif VALUE2 == true then
1063
				VALUE2 = false
1064
			end
1065
		end
1066
	end
1067
end
1068
1069
function KeyUp(Key)
1070
	KEYHOLD = false
1071
end
1072
1073
	Mouse.KeyDown:connect(function(NEWKEY)
1074
		KeyDown(NEWKEY)
1075
	end)
1076
	Mouse.KeyUp:connect(function(NEWKEY)
1077
		KeyUp(NEWKEY)
1078
	end)
1079
1080
--//=================================\\
1081
--\\=================================//
1082
1083
1084
function unanchor()
1085
	if UNANCHOR == true then
1086
		g = Character:GetChildren()
1087
		for i = 1, #g do
1088
			if g[i].ClassName == "Part" then
1089
				g[i].Anchored = false
1090
			end
1091
		end
1092
	end
1093
end
1094
1095
1096
--//=================================\\
1097
--||	WRAP THE WHOLE SCRIPT UP
1098
--\\=================================//
1099
1100
Humanoid.Changed:connect(function(Jump)
1101
	if Jump == "Jump" and (Disable_Jump == true) then
1102
		Humanoid.Jump = false
1103
	end
1104
end)
1105
1106
local LOOPED = 0
1107
1108
while true do
1109
	Swait()
1110
	script.Parent = WEAPONGUI
1111
	ANIMATE.Parent = nil
1112
	Character.Parent = workspace
1113
	Humanoid.Parent = Character
1114
	if Humanoid then
1115
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1116
		IDLEANIMATION:Play()
1117
	end
1118
	SINE = SINE + CHANGE
1119
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1120
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1121
	local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 8, Character)
1122
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1123
	if ATTACK == false then
1124
		if TORSOVELOCITY < 1 then
1125
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1126
			TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1127
		elseif TORSOVELOCITY > 1 then
1128
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 + 0.25 * COS(SINE / 15), 0 + 0.45 * COS(SINE / 20), 0 + 0.25 * COS(SINE / 24)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1129
			TIEWELD.C0 = Clerp(TIEWELD.C0, CF(0,0,0) * ANGLES(RAD(15), RAD(0), RAD(0)) * CF(0,-0.1,0.2), 1 / Animation_Speed)
1130
		end
1131
	end
1132
	unanchor()
1133
	Humanoid.MaxHealth = "inf"
1134
	Humanoid.Health = "inf"
1135
	if Rooted == false then
1136
		Disable_Jump = false
1137
		Humanoid.WalkSpeed = Speed
1138
	elseif Rooted == true then
1139
		Disable_Jump = true
1140
		Humanoid.WalkSpeed = 0
1141
	end
1142
	Head:ClearAllChildren()
1143
	Head.Transparency = 1
1144
	for _, c in pairs(Character:GetChildren()) do
1145
		if c.ClassName == "Part" then
1146
		elseif c.ClassName == "Shirt" or c.ClassName == "Pants" or c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
1147
			c:remove()
1148
		end
1149
	end
1150
	script.Parent = WEAPONGUI
1151
	Humanoid.Name = "Roblox_Studio"
1152
	LOOPED = LOOPED + 1
1153
	if LOOPED == 15 and HITFLOOR then
1154
		LOOPED = 0
1155
		WACKYEFFECT({EffectType = "Ring", Size = VT(0.01,0.01,0.01), Size2 = VT(0.5,0.5,0.01), Transparency = 0.5, Transparency2 = 1, CFrame = CF(HITPOS,HITPOS+NORMAL)*ANGLES(RAD(0),RAD(0),RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = CYAN, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1156
	end
1157
	if LOOPED > 15 then
1158
		LOOPED = 0
1159
	end
1160
end
1161
1162
--//=================================\\
1163
--\\=================================//
1164
1165
1166
1167
1168
1169
--//====================================================\\--
1170
--||			  		 END OF SCRIPT
1171
--\\====================================================//--