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