View difference between Paste ID: YFDJRN84 and DAKZyP0e
SHOW: | | - or go back to the newest paste.
1
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,game,owner = owner,game
4
local RealPlayer = Player
5
do
6
	print("FE Compatibility code V2 by Mokiros")
7
	local RealPlayer = RealPlayer
8
	script.Parent = RealPlayer.Character
9
10
	--Fake event to make stuff like Mouse.KeyDown work
11
	local Disconnect_Function = function(this)
12
		this[1].Functions[this[2]] = nil
13
	end
14
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
15
	local FakeEvent_Metatable = {__index={
16
		Connect = function(this,f)
17
			local i = tostring(math.random(0,10000))
18
			while this.Functions[i] do
19
				i = tostring(math.random(0,10000))
20
			end
21
			this.Functions[i] = f
22
			return setmetatable({this,i},Disconnect_Metatable)
23
		end
24
	}}
25
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
26
	local function fakeEvent()
27
		return setmetatable({Functions={}},FakeEvent_Metatable)
28
	end
29
30
	--Creating fake input objects with fake variables
31
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
32
    FakeMouse.keyUp = FakeMouse.KeyUp
33
    FakeMouse.keyDown = FakeMouse.KeyDown
34
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
35
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
36
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
37
	end}
38
	--Merged 2 functions into one by checking amount of arguments
39
	CAS.UnbindAction = CAS.BindAction
40
41
	--This function will trigger the events that have been :Connect()'ed
42
	local function TriggerEvent(self,ev,...)
43
		for _,f in pairs(self[ev].Functions) do
44
			f(...)
45
		end
46
	end
47
	FakeMouse.TriggerEvent = TriggerEvent
48
	UIS.TriggerEvent = TriggerEvent
49
50
	--Client communication
51
	local Event = Instance.new("RemoteEvent")
52
	Event.Name = "UserInput_Event"
53
	Event.OnServerEvent:Connect(function(plr,io)
54
	    if plr~=RealPlayer then return end
55
		FakeMouse.Target = io.Target
56
		FakeMouse.Hit = io.Hit
57
		if not io.isMouse then
58
			local b = io.UserInputState == Enum.UserInputState.Begin
59
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
60
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
61
			end
62
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
63
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
64
			end
65
			for _,t in pairs(CAS.Actions) do
66
				for _,k in pairs(t.Keys) do
67
					if k==io.KeyCode then
68
						t.Function(t.Name,io.UserInputState,io)
69
					end
70
				end
71
			end
72
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
73
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
74
	    end
75
	end)
76
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
77
	local Mouse = owner:GetMouse()
78
	local UIS = game:GetService("UserInputService")
79
	local input = function(io,RobloxHandled)
80
		if RobloxHandled then return end
81
		--Since InputObject is a client-side instance, we create and pass table instead
82
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
83
	end
84
	UIS.InputBegan:Connect(input)
85
	UIS.InputEnded:Connect(input)
86
87
	local h,t
88
	--Give the server mouse data every second frame, but only if the values changed
89
	--If player is not moving their mouse, client won't fire events
90
	local HB = game:GetService("RunService").Heartbeat
91
	while true do
92
		if h~=Mouse.Hit or t~=Mouse.Target then
93
			h,t=Mouse.Hit,Mouse.Target
94
			Event:FireServer({isMouse=true,Target=t,Hit=h})
95
		end
96
		--Wait 2 frames
97
		for i=1,2 do
98
			HB:Wait()
99
		end
100
	end]==],script)
101
102
	----Sandboxed game object that allows the usage of client-side methods and services
103
	--Real game object
104
	local RealGame = game
105
106
	--Metatable for fake service
107
	local FakeService_Metatable = {
108
		__index = function(self,k)
109
			local s = rawget(self,"_RealService")
110
			if s then
111
				return typeof(s[k])=="function"
112
				and function(_,...)return s[k](s,...)end or s[k]
113
			end
114
		end,
115
		__newindex = function(self,k,v)
116
			local s = rawget(self,"_RealService")
117
			if s then s[k]=v end
118
		end
119
	}
120
	local function FakeService(t,RealService)
121
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
122
		return setmetatable(t,FakeService_Metatable)
123
	end
124
125
	--Fake game object
126
	local FakeGame = {
127
		GetService = function(self,s)
128
			return rawget(self,s) or RealGame:GetService(s)
129
		end,
130
		Players = FakeService({
131
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
132
		},"Players"),
133
		UserInputService = FakeService(UIS,"UserInputService"),
134
		ContextActionService = FakeService(CAS,"ContextActionService"),
135
		RunService = FakeService({
136
			_btrs = {},
137
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
138
			BindToRenderStep = function(self,name,_,fun)
139
				self._btrs[name] = self.Heartbeat:Connect(fun)
140
			end,
141
			UnbindFromRenderStep = function(self,name)
142
				self._btrs[name]:Disconnect()
143
			end,
144
		},"RunService")
145
	}
146
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
147
	FakeGame.service = FakeGame.GetService
148
	FakeService(FakeGame,game)
149
	--Changing owner to fake player object to support owner:GetMouse()
150
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
151
end
152
153
154
155
CV="White"
156
157
	p = game.Players.LocalPlayer
158
	char = p.Character
159
	local txt = Instance.new("BillboardGui", char)
160
	txt.Adornee = char .Head
161
	txt.Name = "_status"
162
	txt.Size = UDim2.new(2, 0, 1.2, 0)
163
	txt.StudsOffset = Vector3.new(-9, 8, 0)
164
	local text = Instance.new("TextLabel", txt)
165
	text.Size = UDim2.new(10, 0, 7, 0)
166
	text.FontSize = "Size24"
167
	text.TextScaled = true
168
	text.TextTransparency = 0
169
	text.BackgroundTransparency = 1 
170
	text.TextTransparency = 0
171
	text.TextStrokeTransparency = 1
172
	text.Font = "Arcade"
173
	text.TextStrokeColor3 = Color3.new(0,0,255)
174
175
	v=Instance.new("Part")
176
	v.Name = "ColorBrick"
177
	v.Parent=p.Character
178
	v.FormFactor="Symmetric"
179
	v.Anchored=true
180
	v.CanCollide=false
181
	v.BottomSurface="Smooth"
182
	v.TopSurface="Smooth"
183
	v.Size=Vector3.new(10,5,3)
184
	v.Transparency=1
185
	v.CFrame=char.Torso.CFrame
186
	v.BrickColor=BrickColor.new(CV)
187
	v.Transparency=1
188
	text.TextColor3 = Color3.new(255,255,0)
189
	v.Shape="Block"
190
	text.Text = "JOJO BIZZARE ADVENTURE GUN"
191
wait(1 / 60)
192
Effects = { }
193
local Player = game.Players.localPlayer
194
local Character = Player.Character
195
local Humanoid = Character.Humanoid
196
local mouse = Player:GetMouse()
197
local m = Instance.new('Model', Character)
198
m.Name = "WeaponModel"
199
local LeftArm = Character["Left Arm"]
200
local RightArm = Character["Right Arm"]
201
local LeftLeg = Character["Left Leg"]
202
local RightLeg = Character["Right Leg"]
203
local Head = Character.Head
204
local Torso = Character.Torso
205
local cam = game.Workspace.CurrentCamera
206
local RootPart = Character.HumanoidRootPart
207
local RootJoint = RootPart.RootJoint
208
local equipped = false
209
local attack = false
210
local Anim = 'Idle'
211
local idle = 0
212
local attacktype = 1
213
local Torsovelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude 
214
local velocity = RootPart.Velocity.y
215
local sine = 0
216
local change = 1
217
local grabbed = false
218
local cn = CFrame.new
219
local mr = math.rad
220
local angles = CFrame.Angles
221
local ud = UDim2.new
222
local c3 = Color3.new
223
Instance.new("ForceField", game.Players.LocalPlayer.Character)
224
	local s = Instance.new("Sound",Character)
225
	s.Name = "BGMusic"
226
	s.SoundId = "rbxassetid://519992991"
227
	s.Pitch = 1
228
	s.Volume = 0.25
229
	s.Looped = true
230
	s.archivable = false
231
	wait(0.1)
232
	s:play()
233
234
Humanoid.Animator.Parent = nil
235
Character.Animate.Parent = nil
236
237
local newMotor = function(part0, part1, c0, c1)
238
	local w = Instance.new('Motor', part0)
239
	w.Part0 = part0
240
	w.Part1 = part1
241
	w.C0 = c0
242
	w.C1 = c1
243
	return w
244
end
245
246
function clerp(a, b, t)
247
	return a:lerp(b, t)
248
end
249
250
RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14)
251
NeckCF = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
252
253
local RW = newMotor(Torso, RightArm, CFrame.new(1.5, 0, 0), CFrame.new(0, 0, 0)) 
254
local LW = newMotor(Torso, LeftArm, CFrame.new(-1.5, 0, 0), CFrame.new(0, 0, 0))
255
local RH = newMotor(Torso, RightLeg, CFrame.new(.5, -2, 0), CFrame.new(0, 0, 0))
256
local LH = newMotor(Torso, LeftLeg, CFrame.new(-.5, -2, 0), CFrame.new(0, 0, 0))
257
RootJoint.C1 = CFrame.new(0, 0, 0)
258
RootJoint.C0 = CFrame.new(0, 0, 0)
259
Torso.Neck.C1 = CFrame.new(0, 0, 0)
260
Torso.Neck.C0 = CFrame.new(0, 1.5, 0)
261
262
local rarmc1 = RW.C1
263
local larmc1 = LW.C1
264
local rlegc1 = RH.C1
265
local llegc1 = LH.C1
266
267
local resetc1 = false
268
269
function PlayAnimationFromTable(table, speed, bool)
270
	RootJoint.C0 = clerp(RootJoint.C0, table[1], speed) 
271
	Torso.Neck.C0 = clerp(Torso.Neck.C0, table[2], speed) 
272
	RW.C0 = clerp(RW.C0, table[3], speed) 
273
	LW.C0 = clerp(LW.C0, table[4], speed) 
274
	RH.C0 = clerp(RH.C0, table[5], speed) 
275
	LH.C0 = clerp(LH.C0, table[6], speed) 
276
	if bool == true then
277
		if resetc1 == false then
278
			resetc1 = true
279
			RootJoint.C1 = RootJoint.C1
280
			Torso.Neck.C1 = Torso.Neck.C1
281
			RW.C1 = rarmc1
282
			LW.C1 = larmc1
283
			RH.C1 = rlegc1
284
			LH.C1 = llegc1
285
		end
286
	end
287
end
288
289
Char = char
290
291
--[[Credits to SazErenos for his Artificial Heartbeat]]--
292
293
ArtificialHB = Instance.new("BindableEvent", script)
294
ArtificialHB.Name = "Heartbeat"
295
296
script:WaitForChild("Heartbeat")
297
298
frame = 1 / 30
299
tf = 0
300
allowframeloss = false
301
tossremainder = false
302
lastframe = tick()
303
script.Heartbeat:Fire()
304
305
game:GetService("RunService").Heartbeat:connect(function(s, p)
306
	tf = tf + s
307
	if tf >= frame then
308
		if allowframeloss then
309
			script.Heartbeat:Fire()
310
			lastframe = tick()
311
		else
312
			for i = 1, math.floor(tf / frame) do
313
				script.Heartbeat:Fire()
314
			end
315
			lastframe = tick()
316
		end
317
		if tossremainder then
318
			tf = 0
319
		else
320
			tf = tf - frame * math.floor(tf / frame)
321
		end
322
	end
323
end)
324
325
function swait(num)
326
	if num == 0 or num == nil then
327
		ArtificialHB.Event:wait()
328
	else
329
		for i = 0, num do
330
			ArtificialHB.Event:wait()
331
		end
332
	end
333
end
334
335
local RbxUtility = LoadLibrary("RbxUtility")
336
local Create = RbxUtility.Create
337
338
function RemoveOutlines(part)
339
	part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
340
end
341
	
342
CFuncs = {	
343
	["Part"] = {
344
		Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
345
			local Part = Create("Part"){
346
				Parent = Parent,
347
				Reflectance = Reflectance,
348
				Transparency = Transparency,
349
				CanCollide = false,
350
				Locked = true,
351
				BrickColor = BrickColor.new(tostring(BColor)),
352
				Name = Name,
353
				Size = Size,
354
				Material = Material,
355
			}
356
			RemoveOutlines(Part)
357
			return Part
358
		end;
359
	};
360
	
361
	["Mesh"] = {
362
		Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
363
			local Msh = Create(Mesh){
364
				Parent = Part,
365
				Offset = OffSet,
366
				Scale = Scale,
367
			}
368
			if Mesh == "SpecialMesh" then
369
				Msh.MeshType = MeshType
370
				Msh.MeshId = MeshId
371
			end
372
			return Msh
373
		end;
374
	};
375
	
376
	["Mesh"] = {
377
		Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
378
			local Msh = Create(Mesh){
379
				Parent = Part,
380
				Offset = OffSet,
381
				Scale = Scale,
382
			}
383
			if Mesh == "SpecialMesh" then
384
				Msh.MeshType = MeshType
385
				Msh.MeshId = MeshId
386
			end
387
			return Msh
388
		end;
389
	};
390
	
391
	["Weld"] = {
392
		Create = function(Parent, Part0, Part1, C0, C1)
393
			local Weld = Create("Weld"){
394
				Parent = Parent,
395
				Part0 = Part0,
396
				Part1 = Part1,
397
				C0 = C0,
398
				C1 = C1,
399
			}
400
			return Weld
401
		end;
402
	};
403
404
	["Sound"] = {
405
		Create = function(id, par, vol, pit) 
406
			coroutine.resume(coroutine.create(function()
407
				local S = Create("Sound"){
408
					Volume = vol,
409
					Pitch = pit or 1,
410
					SoundId = id,
411
					Parent = par or workspace,
412
				}
413
				Instance.new("DistortionSoundEffect", S).Level = 1
414
				wait() 
415
				S:play() 
416
				game:GetService("Debris"):AddItem(S, 10)
417
			end))
418
		end;
419
	};
420
	
421
	["ParticleEmitter"] = {
422
		Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread)
423
			local fp = Create("ParticleEmitter"){
424
				Parent = Parent,
425
				Color = ColorSequence.new(Color1, Color2),
426
				LightEmission = LightEmission,
427
				Size = Size,
428
				Texture = Texture,
429
				Transparency = Transparency,
430
				ZOffset = ZOffset,
431
				Acceleration = Accel,
432
				Drag = Drag,
433
				LockedToPart = LockedToPart,
434
				VelocityInheritance = VelocityInheritance,
435
				EmissionDirection = EmissionDirection,
436
				Enabled = Enabled,
437
				Lifetime = LifeTime,
438
				Rate = Rate,
439
				Rotation = Rotation,
440
				RotSpeed = RotSpeed,
441
				Speed = Speed,
442
				VelocitySpread = VelocitySpread,
443
			}
444
			return fp
445
		end;
446
	};
447
}
448
449
function rayCast(Position, Direction, Range, Ignore)
450
	return game:service("Workspace"):FindPartOnRay(Ray.new(Position, Direction.unit * (Range or 999.999)), Ignore) 
451
end 
452
453
local function GetNearest(obj, distance)
454
	local last, lastx = distance + 1
455
	for i, v in pairs(workspace:GetChildren()) do
456
		if v:IsA'Model' and v ~= Character and v:findFirstChild('Humanoid') and v:findFirstChild('Torso') and v:findFirstChild('Humanoid').Health > 0 then
457
			local t = v.Torso
458
			local dist = (t.Position - obj.Position).magnitude
459
			if dist <= distance then
460
				if dist < last then
461
					last = dist
462
					lastx = v
463
				end
464
			end
465
		end
466
	end
467
	return lastx
468
end
469
470
--[[ Credits to Kert109 (Ninja_Deer) for the Damage function. Fenrier for the Magnitude Damage ]]--
471
472
function Damage(hit, damage, cooldown, Color1, Color2, HSound, HPitch)
473
	for i, v in pairs(hit:GetChildren()) do 
474
		if v:IsA("Humanoid") and hit.Name ~= Character.Name then
475
			local find = v:FindFirstChild("DebounceHit")
476
			if not find then
477
				if v.Parent:findFirstChild("Head") then
478
					local BillG = Create("BillboardGui"){
479
						Parent = v.Parent.Head,
480
						Size = UDim2.new(1, 0, 1, 0),
481
						Adornee = v.Parent.Head,
482
						StudsOffset = Vector3.new(math.random(-3, 3), math.random(3, 5), math.random(-3, 3)),
483
					}
484
					local TL = Create("TextLabel"){
485
						Parent = BillG,
486
						Size = UDim2.new(3, 3, 3, 3),
487
						BackgroundTransparency = 1,
488
						Text = tostring(damage).."-",
489
						TextColor3 = Color1.Color,
490
						TextStrokeColor3 = Color2.Color,
491
						TextStrokeTransparency = 0,
492
						TextXAlignment = Enum.TextXAlignment.Center,
493
						TextYAlignment = Enum.TextYAlignment.Center,
494
						FontSize = Enum.FontSize.Size18,
495
						Font = "ArialBold",
496
					}
497
					coroutine.resume(coroutine.create(function()
498
						swait(1)
499
						for i = 0, 1, .1 do
500
							swait(.1)
501
							BillG.StudsOffset = BillG.StudsOffset + Vector3.new(0, .1, 0)
502
						end
503
						BillG:Destroy()
504
					end))
505
				end
506
				v.Health = v.Health - damage
507
				local bool = Create("BoolValue"){
508
					Parent = v,
509
					Name = "DebounceHit",
510
				}
511
				if HSound ~= nil and HPitch ~= nil then
512
					CFuncs["Sound"].Create(HSound, hit, 1, HPitch) 
513
				end
514
				game:GetService("Debris"):AddItem(bool, cooldown)
515
			end
516
		end
517
	end
518
end
519
520
function MagnitudeDamage(Part, magni, mindam, maxdam, Color1, Color2, HSound, HPitch)
521
	for _, c in pairs(workspace:children()) do
522
		local hum = c:findFirstChild("Humanoid")
523
		if hum ~= nil then
524
			local head = c:findFirstChild("Torso")
525
			if head ~= nil then
526
				local targ = head.Position - Part.Position
527
				local mag = targ.magnitude
528
				if mag <= magni and c.Name ~= Player.Name then 
529
					Damage(head.Parent, math.random(mindam, maxdam), 0.5, Color1, Color2, HSound, HPitch)
530
				end
531
			end
532
		end
533
	end
534
end
535
536
Handle = CFuncs["Part"].Create(m, Enum.Material.SmoothPlastic, 0, 1, "Medium stone grey", "Handle", Vector3.new(-0.399999946, 0.899999976, -0.400000095))
537
HandleWeld = CFuncs["Weld"].Create(m, Character["Right Arm"], Handle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199958801, -0.0500774384, -1.09998882, -1, 0, 0, 0, 0, -1, -0, -1, -0))
538
FakeHandle = CFuncs["Part"].Create(m, Enum.Material.SmoothPlastic, 0, 1, "Medium stone grey", "FakeHandle", Vector3.new(0.399999946, 0.899999976, 0.400000095))
539
FakeHandleWeld = CFuncs["Weld"].Create(m, Handle, FakeHandle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199996948, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1))
540
Barrel = CFuncs["Part"].Create(m, Enum.Material.SmoothPlastic, 0, 1, "Medium stone grey", "Barrel", Vector3.new(0.399999946, 0.399999976, 0.400000095))
541
BarrelWeld = CFuncs["Weld"].Create(m, FakeHandle, Barrel, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, -0.749999046, -1.50000024, 1, 0, 0, 0, 1, 0, 0, 0, 1))
542
Part = CFuncs["Part"].Create(m, Enum.Material.SmoothPlastic, 0, 0, "Medium stone grey", "Part", Vector3.new(-0.399999946, 0.299999952, -0.400000095))
543
PartWeld = CFuncs["Weld"].Create(m, FakeHandle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.38, -0.300000194, 0.400000160, 1, 0, 0, 0, 1, 0, 0, 0, -1))
544
CFuncs["Mesh"].Create("SpecialMesh", Part, Enum.MeshType.FileMesh, "rbxassetid://431951823", Vector3.new(0, 0, 0), Vector3.new(0.00200000009, 0.00700000007, 0.003000010))
545
Part.Mesh.TextureId = "rbxassetid://431951829"
546
Part.Mesh.Scale = Vector3.new(-0.2, 0.2, -0.2)
547
548
EffectModel = Instance.new("Model", Character)
549
EffectModel.Name = "Effects"
550
551
Effects = {
552
	["Block"] = {
553
		Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay, Type)
554
			local prt = CFuncs["Part"].Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
555
			prt.Anchored = true
556
			prt.CFrame = cframe
557
			local msh = CFuncs["Mesh"].Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
558
			game:GetService("Debris"):AddItem(prt, 10)
559
			if Type == 1 or Type == nil then
560
				table.insert(Effects, {
561
					prt,
562
					"Block1",
563
					delay,
564
					x3,
565
					y3,
566
					z3,
567
					msh
568
				})
569
			elseif Type == 2 then
570
				table.insert(Effects, {
571
					prt,
572
					"Block2",
573
					delay,
574
					x3,
575
					y3,
576
					z3,
577
					msh
578
				})
579
			end
580
		end;
581
	};
582
	
583
	["Cylinder"] = {
584
		Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
585
			local prt = CFuncs["Part"].Create(workspace, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.2, 0.2, 0.2))
586
			prt.Anchored = true
587
			prt.CFrame = cframe
588
			local msh = CFuncs["Mesh"].Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
589
			game:GetService("Debris"):AddItem(prt, 2)
590
			Effects[#Effects + 1] = {
591
				prt,
592
				"Cylinder",
593
				delay,
594
				x3,
595
				y3,
596
				z3
597
			}
598
		end;
599
	};
600
	
601
	["Sphere"] = {
602
		Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
603
			local prt = CFuncs["Part"].Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
604
			prt.Anchored = true
605
			prt.CFrame = cframe
606
			local msh = CFuncs["Mesh"].Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
607
			game:GetService("Debris"):AddItem(prt, 10)
608
			table.insert(Effects, {
609
				prt,
610
				"Cylinder",
611
				delay,
612
				x3,
613
				y3,
614
				z3,
615
				msh
616
			})
617
		end;
618
	};
619
	
620
	["Elec"] = {
621
		Create = function(cff, x, y, z)
622
			local prt = CFuncs["Part"].Create(workspace, "Neon", 0, 0, BrickColor.new("Lime green"), "Part", Vector3.new(1, 1, 1))
623
			prt.Anchored = true
624
			prt.CFrame = cff * CFrame.new(math.random(-x, x), math.random(-y, y), math.random(-z, z))
625
			prt.CFrame = CFrame.new(prt.Position)
626
			game:GetService("Debris"):AddItem(prt, 2)
627
			local xval = math.random() / 2
628
			local yval = math.random() / 2
629
			local zval = math.random() / 2
630
			local msh = CFuncs["Mesh"].Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(xval, yval, zval))
631
			table.insert(Effects, {
632
				prt,
633
				"Elec",
634
				0.1,
635
				x,
636
				y,
637
				z,
638
				xval,
639
				yval,
640
				zval
641
			})
642
		end;
643
644
	};
645
	
646
	["Ring"] = {
647
		Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
648
			local prt = CFuncs["Part"].Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
649
			prt.Anchored = true
650
			prt.CFrame = cframe
651
			local msh = CFuncs["Mesh"].Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
652
			game:GetService("Debris"):AddItem(prt, 10)
653
			table.insert(Effects, {
654
				prt,
655
				"Cylinder",
656
				delay,
657
				x3,
658
				y3,
659
				z3,
660
				msh
661
			})
662
		end;
663
	};
664
665
666
	["Wave"] = {
667
		Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
668
			local prt = CFuncs["Part"].Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
669
			prt.Anchored = true
670
			prt.CFrame = cframe
671
			local msh = CFuncs["Mesh"].Create("SpecialMesh", prt, "FileMesh", "rbxassetid://20329976", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
672
			game:GetService("Debris"):AddItem(prt, 10)
673
			table.insert(Effects, {
674
				prt,
675
				"Cylinder",
676
				delay,
677
				x3,
678
				y3,
679
				z3,
680
				msh
681
			})
682
		end;
683
	};
684
685
	["Break"] = {
686
		Create = function(brickcolor, cframe, x1, y1, z1)
687
			local prt = CFuncs["Part"].Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
688
			prt.Anchored = true
689
			prt.CFrame = cframe * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
690
			local msh = CFuncs["Mesh"].Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
691
			local num = math.random(10, 50) / 1000
692
			game:GetService("Debris"):AddItem(prt, 10)
693
			table.insert(Effects, {
694
				prt,
695
				"Shatter",
696
				num,
697
				prt.CFrame,
698
				math.random() - math.random(),
699
				0,
700
				math.random(50, 100) / 100
701
			})
702
		end;
703
	};
704
}
705
706
Shoot2 = function(orgpos)
707
	local MouseLook = CFrame.new((orgpos + mouse.Hit.p) / 2, mouse.Hit.p)
708
	Effects["Sphere"].Create(BrickColor.new("White"), CFrame.new(orgpos), 5, 5, 5, 3, 3, 3, 0.1)
709
	table.insert(Effects, {
710
		MouseLook.lookVector,
711
		"Shoot2",
712
		50,
713
		orgpos,
714
		5,
715
		7,
716
		0,
717
		1,
718
		2
719
	})
720
end
721
722
function bulletstorm()
723
	attack = true
724
	CFuncs["Sound"].Create("rbxassetid://539881968", Torso, 1, 1) 
725
	text.Text = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
726
wait(1.5)
727
	for i = 0, 1, 0.025 do
728
		swait()
729
		PlayAnimationFromTable({
730
			CFrame.new(-0, -0, -0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
731
			CFrame.new(0, 1.4999907, 3.42726707e-007, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
732
			CFrame.new(0.431798398, 0.400000006, -0.888215482, 0.939692736, 0.342019886, 0, 0, 0, -1, -0.342019916, 0.939692736, 0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
733
			CFrame.new(-0.559965074, 0.300000012, -0.828456283, 0.939692736, -0.342019886, 0, 0, 0, -1, 0.342019916, 0.939692736, 0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
734
			CFrame.new(0.599619746, -1.99127948, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
735
			CFrame.new(-0.599619746, -1.99127901, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661, 0, -0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
736
		}, .3, false)
737
	CFuncs["Sound"].Create("rbxassetid://539882114", Torso, 1, 1) 
738
		FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-20), math.rad(0)), 0.3)
739
Shoot2(Barrel.Position)
740
	text.Text = "guy with an inverted sniper rifle"
741
	end
742
743
	attack = false
744
end
745
746
function overload()
747
	attack = true
748
	CFuncs["Sound"].Create("rbxassetid://159257147", Torso, 1, 1)
749
	text.Text = "AAAAAAAAAAAA"
750
Shoot2(LeftArm.Position)
751
Shoot2(RightArm.Position)
752
Shoot2(RightLeg.Position)
753
Shoot2(LeftLeg.Position)
754
Shoot2(Head.Position)
755
Shoot2(Torso.Position)
756
wait(0)
757
	attack = false
758
	text.Text = "guy with an inverted sniper rifle"
759
end
760
761
function overcharge()
762
        attack = true
763
	text.Text = "AAAAAAAAAAAA"
764
        CFuncs["Sound"].Create("rbxassetid://159257147", Torso, 1, 1)
765
	for i = 0, 1, 0.15 do
766
		swait()
767
		PlayAnimationFromTable({
768
			CFrame.new(-0.0325974114, -4.05311584e-006, 0.110728048, 0.64278698, 0, -0.766044974, 0, 1, 0, 0.766044974, 0, 0.64278698),
769
			CFrame.new(0, 1.50000095, 0, 0.64278698, 0, 0.766044974, 0, 1, 0, -0.766044974, 0, 0.64278698),
770
			CFrame.new(1.10100186, 0.535800219, -0.637803555, 0.658456147, 0.673041463, 0.336824596, 0.280167073, 0.196174845, -0.939692438, -0.698528469, 0.713113427, -0.0593915135),
771
			CFrame.new(-1.62758517, 0.073027119, -0.378663093, 0.90510416, 0.321394593, -0.278374165, -0.392632991, 0.883023262, -0.25711751, 0.163174719, 0.342016995, 0.92541796),
772
			CFrame.new(0.644929826, -1.96549833, 0.164695352, 0.962249994, -0.148305506, 0.228211343, 0.0871559754, 0.962249756, 0.257835865, -0.257834762, -0.22821258, 0.938850582),
773
			CFrame.new(-0.750219464, -1.99537396, -0.240616962, 0.862504363, 0.0818999186, 0.499378443, -0.08583197, 0.99619472, -0.0151344473, -0.498717606, -0.0298091136, 0.866251826),
774
		}, .5, false)
775
	end
776
wait(3)
777
Shoot2(Barrel.Position)
778
Shoot2(Barrel.Position)
779
Shoot2(Handle.Position)
780
Shoot2(Handle.Position)
781
Shoot2(FakeHandle.Position)
782
Shoot2(FakeHandle.Position)
783
Shoot2(Barrel.Position)
784
Shoot2(Barrel.Position)
785
Shoot2(Handle.Position)
786
Shoot2(Handle.Position)
787
Shoot2(FakeHandle.Position)
788
Shoot2(FakeHandle.Position)
789
Shoot2(Barrel.Position)
790
Shoot2(Barrel.Position)
791
Shoot2(Handle.Position)
792
Shoot2(Handle.Position)
793
Shoot2(FakeHandle.Position)
794
Shoot2(FakeHandle.Position)
795
Shoot2(Barrel.Position)
796
Shoot2(Barrel.Position)
797
Shoot2(Handle.Position)
798
Shoot2(Handle.Position)
799
Shoot2(FakeHandle.Position)
800
Shoot2(FakeHandle.Position)
801
	for i = 0, 1, 0.15 do
802
		swait()
803
		PlayAnimationFromTable({
804
         CFrame.new(2.70828605e-006, -0.256154776, -0.071654655, 0.499999046, -1.78813579e-007, -0.866026044, 0.150384009, 0.984807789, 0.0868238211, 0.852869093, -0.173648283, 0.492402941),
805
         CFrame.new(4.34633694e-006, 1.49999607, 2.42484384e-006, 0.646143615, 0.0549410731, 0.761235893, -0.0851004422, 0.996372402, 0.000322267413, -0.758456767, -0.0649897307, 0.648474991),
806
         CFrame.new(1.86507177, 0.598104239, 0.183552518, -0.114682339, -0.981059372, -0.156110525, 0.981060445, -0.0871559381, -0.172987223, 0.156104773, -0.172992408, 0.9724738),
807
         CFrame.new(-1.52644157, 0.0874626189, -0.302744657, 0.95125103, 0.20658794, -0.229004204, -0.254887104, 0.944645047, -0.2065873, 0.173649222, 0.254886597, 0.951251268),
808
         CFrame.new(0.623469114, -1.90178788, 0.0298061967, 0.992532074, -0.0928985924, 0.079056859, 0.0757590532, 0.97739321, 0.197391063, -0.0956070125, -0.189927697, 0.977131963),
809
         CFrame.new(-0.786503196, -1.67652178, -0.389780819, 0.631277382, 0.179900557, 0.754403591, -0.0723632798, 0.982144117, -0.173656344, -0.772174001, 0.0550341941, 0.6330235),
810
		}, .35, false)
811
	text.Text = "guy with an inverted sniper rifle"
812
end
813
attack = false
814
end
815
816
function attackone()
817
	attack = true
818
	text.Text = "i have crippling depression"
819
820
howtobasic1 = Instance.new("Sound", game.Players.LocalPlayer.Character.Torso)
821
howtobasic1.Volume = 45
822
howtobasic1.SoundId = "rbxassetid://539882069"
823
howtobasic2 = Instance.new("Sound", game.Players.LocalPlayer.Character.Torso)
824
howtobasic2.Volume = 45
825
howtobasic2.SoundId = "rbxassetid://539881968"
826
howtobasic3 = Instance.new("Sound", game.Players.LocalPlayer.Character.Torso)
827
howtobasic3.Volume = 45
828
howtobasic3.SoundId = "rbxassetid://539882114"
829
howtobasic = Instance.new("Sound", game.Players.LocalPlayer.Character.Torso)
830
howtobasic.Volume = 45
831
howtobasic.SoundId = "rbxassetid://539881843"
832
833
local Math = math.random(1,4)
834
		if Math == 1 then
835
			howtobasic:Play()
836
		end
837
		if Math == 2 then
838
			howtobasic1:Play()
839
		end
840
		if Math == 3 then
841
			howtobasic2:Play()
842
		end
843
		if Math == 4 then
844
			howtobasic3:Play()
845
		end
846
	for i = 0, 1, 0.025 do
847
		swait()
848
		PlayAnimationFromTable({
849
			CFrame.new(-0, -0, -0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
850
			CFrame.new(0, 1.4999907, 3.42726707e-007, 1, 0, 0, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
851
			CFrame.new(0.431798398, 0.400000006, -0.888215482, 0.939692736, 0.342019886, 0, 0, 0, -1, -0.342019916, 0.939692736, 0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
852
			CFrame.new(-0.559965074, 0.300000012, -0.828456283, 0.939692736, -0.342019886, 0, 0, 0, -1, 0.342019916, 0.939692736, 0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
853
			CFrame.new(0.599619746, -1.99127948, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
854
			CFrame.new(-0.599619746, -1.99127901, 0, 0.996194661, 0.087155968, 0, -0.087155968, 0.996194661, 0, -0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
855
		}, .3, false)
856
		FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-20), math.rad(0)), 0.3)
857
	end
858
	CFuncs["Sound"].Create("rbxassetid://159490394", Barrel, 5, 1)
859
	text.Text = "JOJO BIZZARE ADVENTURE GUN"
860
	Shoot2(Barrel.Position)
861
	for i = 0, 1, 0.15 do
862
		swait()
863
		RootPart.Velocity = RootPart.CFrame.lookVector * -50
864
		PlayAnimationFromTable({
865
			CFrame.new(-0, -0.281125277, 0.157014638, 1, 0, -0, 0, 0.906307876, -0.422617942, 0, 0.422617942, 0.906307876) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
866
			CFrame.new(0, 1.4999938, 1.05202198e-005, 1, 0, -0, 0, 0.965925813, 0.258818924, -0, -0.258818924, 0.965925813) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
867
			CFrame.new(0.406597674, 0.817824185, -0.957423151, 0.939692974, 0.280165672, -0.196174338, -5.36441803e-007, -0.573575616, -0.819152534, -0.34201926, 0.769751906, -0.538984895) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
868
			CFrame.new(-0.506752789, 0.775180221, -0.974653006, 0.939692974, -0.280165732, 0.196174279, 5.36441803e-007, -0.573575556, -0.819152713, 0.34201926, 0.769752145, -0.538984716) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
869
			CFrame.new(0.566868722, -1.61683154, -0.13679418, 0.954536259, -0.174988821, -0.241328761, 0.172366679, 0.984509468, -0.0321052969, 0.243208498, -0.0109513998, 0.969912171) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
870
			CFrame.new(-0.545306504, -1.37044179, -0.679420352, 0.996202111, 0.0754783303, 0.0434113704, -0.0434117466, 0.862729907, -0.503797948, -0.0754781216, 0.49999994, 0.862729967) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
871
		}, .6, false)
872
		FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(-30), math.rad(-20), math.rad(0)), 0.3)
873
	end
874
	for i = 0, 1, 0.15 do
875
		swait()
876
		RootPart.Velocity = RootPart.CFrame.lookVector * -100
877
		PlayAnimationFromTable({
878
			CFrame.new(-0, -0.795007467, 0.0831707418, 1, 0, -0, 0, 0.76604414, -0.642788053, 0, 0.642788053, 0.76604414) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
879
			CFrame.new(0, 1.49999774, 1.20103359e-005, 1, 0, -0, 0, 0.965925634, 0.258819878, -0, -0.258819878, 0.965925634) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
880
			CFrame.new(1.70605683, 1.21151328, -0.185158521, 0.893217862, -0.29338178, -0.340718448, -0.340719074, -0.936116338, -0.0871595442, -0.293381065, 0.193941653, -0.936116695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
881
			CFrame.new(-1.69524968, 1.05172348, -0.252849877, 0.812758088, 0.493294626, 0.309975445, 0.582562625, -0.694268882, -0.422624737, 0.00672781467, 0.524071693, -0.851647615) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
882
			CFrame.new(0.689150453, -1.88461804, -0.0157705098, 0.954536736, -0.174989104, -0.241326213, 0.172367141, 0.984509468, -0.0321044922, 0.243205875, -0.0109517872, 0.969912887) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
883
			CFrame.new(-0.536899447, -1.34506011, -0.583059072, 0.99620223, 0.0226762109, 0.0840658173, -0.043412663, 0.966281295, 0.253803402, -0.0754759163, -0.256489068, 0.963595748) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
884
		}, .2, false)
885
		FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-50), math.rad(0)), 0.3)
886
	end
887
	for i = 0, 1, 0.05 do
888
		swait()
889
		RootPart.Velocity = RootPart.CFrame.lookVector * -50
890
		PlayAnimationFromTable({
891
			CFrame.new(-0, -2.09708667, 0.108620644, 1, 0, -0, 0, 0.573575675, -0.819152594, 0, 0.819152594, 0.573575675) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
892
			CFrame.new(0, 1.53697455, -0.422635257, 1, 0, -0, 0, 0.766043842, 0.64278841, -0, -0.64278841, 0.766043842) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
893
			CFrame.new(1.57810855, 0.650130272, 0.33058399, 0.930655897, -0.284022599, -0.230674848, 0.352510452, 0.527023435, 0.773293555, -0.0980618149, -0.800985396, 0.590598404) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
894
			CFrame.new(-1.38994181, 0.87733829, 0.667137444, 0.963715255, 0.08906921, 0.251633942, -0.25866431, 0.0788001418, 0.962747812, 0.0659223944, -0.992903471, 0.0989798903) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
895
			CFrame.new(0.774198592, -1.52057803, -0.607582211, 0.954536974, -0.272207022, -0.121501081, 0.172365844, 0.83655864, -0.520057499, 0.243206039, 0.475471497, 0.845445395) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
896
			CFrame.new(-0.530096769, -1.05517173, -0.660005629, 0.99620223, 0.0226761587, 0.0840661526, -0.0434127897, 0.966280818, 0.253804684, -0.0754762068, -0.256490231, 0.96359539) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
897
		}, .3, false)
898
		FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-60), math.rad(0)), 0.3)
899
	end
900
	for i = 0, 1, 0.13 do
901
		swait()
902
		PlayAnimationFromTable({
903
			CFrame.new(-0, -1.01349139, -0.251608461, 1, 0, 0, 0, 0.707105339, 0.707108378, 0, -0.707108378, 0.707105339) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
904
			CFrame.new(0.0127754211, 1.44207788, 0.0749337673, 1, 0, 0, 0, 0.939691544, -0.342023343, 0, 0.342023343, 0.939691544) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
905
			CFrame.new(1.62296665, 0.191783041, -0.192457974, 0.930656254, -0.329096794, 0.159920022, 0.352511466, 0.923570275, -0.150843769, -0.098055169, 0.196757287, 0.975536823) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
906
			CFrame.new(-0.870643735, 0.71258086, -0.942903101, 0.18127799, -0.372358024, -0.910213113, -0.781424284, 0.507405519, -0.363202393, 0.597088516, 0.777103186, -0.19898814) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
907
			CFrame.new(0.214147568, -1.73508716, -0.0895051956, 0.924306214, 0.282332808, -0.256800473, -0.113861978, 0.846218646, 0.520528436, 0.364271581, -0.451887846, 0.814311981) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
908
			CFrame.new(-0.535767198, -0.599929333, -0.996632636, 0.996202111, 0.0754788443, 0.0434101112, -0.0434126705, 0.862728953, -0.503799856, -0.0754773915, 0.500001788, 0.862729192) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
909
		}, .3, false)
910
	end
911
	attack = false
912
end
913
914
--[[Attacks]]--
915
916
mouse.Button1Down:connect(function()
917
	if attack == false and attacktype == 1 then
918
		attackone()
919
	end
920
end)
921
922
923
mouse.KeyDown:connect(function(k)
924
	k = k:lower()
925
	if attack == false and k == 'q' then
926
	  bulletstorm()
927
	elseif attack == false and k == 'e' then
928
          overload()
929
        elseif attack == false and k == 'r' then
930
          overcharge()
931
      end
932
end)
933
934
while true do
935
	swait()
936
	for i, v in pairs(Character:GetChildren()) do
937
		if v:IsA("Part") then
938
			v.Material = "SmoothPlastic"
939
		elseif v:IsA("Accessory") then
940
			v:WaitForChild("Handle").Material = "SmoothPlastic"
941
		end
942
	end
943
	Torsovelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude 
944
	velocity = RootPart.Velocity.y
945
	sine = sine + change
946
	local hit, pos = rayCast(RootPart.Position, (CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0))).lookVector, 4, Character)
947
	if equipped == true or equipped == false then
948
		if RootPart.Velocity.y > 1 and hit == nil then 
949
			Anim = "Jump"
950
			if attack == false then
951
				PlayAnimationFromTable({
952
					CFrame.new(-0, -0, -0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
953
					CFrame.new(0, 1.49221826, -0.044082582, 1, 0, 0, 0, 0.984807849, 0.173647985, 0, -0.173647985, 0.984807849) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
954
					CFrame.new(1.66304386, 0.182627335, 0.00782334805, 0.883022726, -0.392632574, 0.257119894, 0.321392894, 0.905103981, 0.2783764, -0.342019886, -0.163176134, 0.925416708) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
955
					CFrame.new(-1.66570556, 0.224230319, 0.110721856, 0.903736115, 0.408218145, -0.128915116, -0.34750703, 0.875426054, 0.33595863, 0.25000003, -0.258819014, 0.933012724) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
956
					CFrame.new(0.499999166, -1.99999452, 4.76837158e-007, 0.984807849, -5.94328526e-007, -0.173648044, 0.0449439958, 0.965925872, 0.254886925, 0.167730987, -0.258819073, 0.951251388) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
957
					CFrame.new(-0.499999404, -1.51703107, -0.129407585, 0.965925753, 6.6929374e-007, 0.258819193, -0.0669879839, 0.965925813, 0.24999994, -0.24999994, -0.258819163, 0.933012724) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
958
				}, .3, false)
959
			end
960
		elseif RootPart.Velocity.y < -60 and hit == nil then 
961
			Anim = "Fall"
962
			if attack == false then
963
				PlayAnimationFromTable({
964
					CFrame.new(-0, -0, -0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
965
					CFrame.new(0, 1.49221873, -0.0440826714, 1, 0, 0, 0, 0.984807849, 0.173647985, 0, -0.173647985, 0.984807849) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
966
					CFrame.new(1.76076102, 0.406842887, 0.0212866664, 0.695482016, -0.670965135, 0.257119834, 0.611573994, 0.74059701, 0.278376371, -0.377202988, -0.0363579579, 0.925416648) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
967
					CFrame.new(-1.68029141, 0.390803367, 0.155905366, 0.70961535, 0.692695498, -0.128914997, -0.625963271, 0.703777075, 0.335958213, 0.323444158, -0.157705069, 0.933012843) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
968
					CFrame.new(0.693307817, -1.96826017, -0.0605875254, 0.986561239, -0.127662987, -0.101976946, 0.137943029, 0.985269904, 0.101069227, 0.0875720233, -0.113777988, 0.989639223) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
969
					CFrame.new(-0.526552737, -1.81498528, -0.152177691, 0.965925574, 0.0449441113, 0.254888207, -0.066988036, 0.994663239, 0.0784704387, -0.250001162, -0.0928710476, 0.963781357) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
970
				}, .3, false)
971
			end
972
		elseif Torsovelocity < 1 and hit ~= nil then
973
			Anim = "Idle"
974
			if attack == false then
975
				change = 1
976
				PlayAnimationFromTable({
977
					CFrame.new(1.22602091e-006, -0.219458103, 1.46111324e-006, 0.76604414, 0, 0.642788053, 0, 1, 0, -0.642788053, 0, 0.76604414) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
978
					CFrame.new(0, 1.49999201, 0, 0.707106233, 0, -0.707107306, 0, 1, 0, 0.707107306, 0, 0.707106233) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
979
					CFrame.new(0.571566343, -0.0739164352, -0.639066696, 0.939692855, 0.340718329, -0.0298085809, -0.241844058, 0.600305915, -0.762328327, -0.241844922, 0.723563433, 0.646503866) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
980
					CFrame.new(-0.628383756, -0.12163578, -0.696761668, 0.939692736, -0.342020065, -5.06639481e-007, 0.196173996, 0.538984895, -0.819152653, 0.280166954, 0.769751549, 0.573575616) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
981
					CFrame.new(0.624118924, -1.79798961, 0.0678238794, 0.995454907, -0.0383867361, -0.0871553123, 0.0385330059, 0.999257326, -4.09960694e-006, 0.0870907605, -0.00335427374, 0.996194839) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
982
					CFrame.new(-0.53866595, -1.82180798, 0.00821807235, 0.977763176, 0.0281341001, 0.207816422, -0.0287620034, 0.999586344, -1.4934686e-007, -0.207730502, -0.00597707182, 0.978167892) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
983
				}, .3, false)
984
				FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-20), math.rad(0)), 0.3)
985
			end
986
		elseif Torsovelocity > 2 and hit ~= nil then
987
			Anim = "Walk"
988
			if attack == false then
989
				change = 3
990
				PlayAnimationFromTable({
991
					CFrame.new(0, -0.0240751095, -0.146390602, 1, 0, 0, 0, 0.965925872, 0.258818984, 0, -0.258818984, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
992
					CFrame.new(0, 1.49999237, -1.81794167e-006, 1, 0, 0, 0, 0.984807789, -0.173647881, 0, 0.173647881, 0.984807789) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
993
					CFrame.new(0.172261134, 0.427689523, -1.09730911, 0.644483984, 0.748984814, -0.153825179, 0.413525045, -0.510645986, -0.753815472, -0.643146515, 0.422211438, -0.638827145) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
994
					CFrame.new(-1.1922102, 0.363029838, -0.448653877, 0.935289383, -0.110854559, -0.33607316, -0.341521561, -0.531564534, -0.775114357, -0.0927196145, 0.839732468, -0.535025835) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0), 
995
					CFrame.new(.5, -1.85 - 0.5 * math.cos(sine / 8) / 2, 0 + 1.8 *  math.sin(sine / 8) / 2) * angles(math.rad(-50 *  math.sin(sine / 8)), math.rad(0), math.rad(0)),
996
					CFrame.new(-.5, -1.85 + 0.5 * math.cos(sine / 8) / 2, 0 - 1.8 * math.sin(sine / 8) / 2) * angles(math.rad(50 *  math.sin(sine / 8)), math.rad(0), math.rad(0)),
997
				}, .3, false)
998
				FakeHandleWeld.C0 = clerp(FakeHandleWeld.C0, CFrame.new(0, 0, 0) * CFrame.Angles(math.rad(0), math.rad(-30), math.rad(0)), 0.3)
999
			end
1000
		end
1001
	end
1002
	if 0 < #Effects then
1003
		for e = 1, #Effects do
1004
			if Effects[e] ~= nil then
1005
				local Thing = Effects[e]
1006
				if Thing ~= nil then
1007
					local Part = Thing[1]
1008
					local Mode = Thing[2]
1009
					local Delay = Thing[3]
1010
					local IncX = Thing[4]
1011
					local IncY = Thing[5]
1012
					local IncZ = Thing[6]
1013
					if Thing[2] == "Shoot" then
1014
						local Look = Thing[1]
1015
						local hit, pos = rayCast(Thing[4], Look, 15, Character)
1016
						local mag = (Thing[4] - pos).magnitude
1017
						Thing[9] = Thing[9] + 0.5
1018
						Thing[5] = Thing[5] + 0.2
1019
						Thing[6] = Thing[6] + 0.2
1020
						Effects["Cylinder"].Create(BrickColor.new("White"), CFrame.new((Thing[4] + pos) / 2, pos) * angles(1.57, 0, 0), Thing[9], mag * 5, Thing[9], -0.2, 0, -0.2, 0.1)
1021
						Thing[4] = Thing[4] + Look * 15
1022
						Thing[3] = Thing[3] - 1
1023
						if hit ~= nil then
1024
							Thing[3] = 0
1025
							ref = CFuncs["Part"].Create(workspace, "Neon", 0, 1, BrickColor.new("White"), "Reference", Vector3.new())
1026
							ref.Anchored = true
1027
							ref.CFrame = CFrame.new(pos)
1028
							Effects["Sphere"].Create(BrickColor.new("Bright yellow"), CFrame.new(pos), 5, 5, 5, 1, 1, 1, 0.07)
1029
							CFuncs["Sound"].Create("rbxassetid://539881968", ref, 0.1, 1)
1030
							game:GetService("Debris"):AddItem(ref, 10)
1031
						end
1032
						if Thing[3] <= 0 then
1033
							table.remove(Effects, e)
1034
						end
1035
					end
1036
					do
1037
						if Thing[2] == "Shoot2" then
1038
							local Look = Thing[1]
1039
							local hit, pos = rayCast(Thing[4], Look, 3, Character)
1040
							local mag = (Thing[4] - pos).magnitude
1041
							Thing[9] = Thing[9] + 0.5
1042
							Thing[5] = Thing[5] + 0.2
1043
							Thing[6] = Thing[6] + 0.2
1044
							Effects["Sphere"].Create(BrickColor.new("Bright yellow"), CFrame.new((Thing[4] + pos) / 2, pos), 25, 25, 25, -5, -5, -5, 0.2)
1045
							Thing[4] = Thing[4] + Look * 3
1046
							Thing[3] = Thing[3] + 5
1047
							if hit ~= nil then
1048
								Thing[3] = 0
1049
								ref = CFuncs["Part"].Create(workspace, "Neon", 0, 1, BrickColor.new("White"), "Reference", Vector3.new())
1050
								ref.Anchored = true
1051
								ref.CFrame = CFrame.new(pos)
1052
								Effects["Sphere"].Create(BrickColor.new("Really yellow"), CFrame.new(pos), 25, 25, 25, 5, 5, 5, 0.01)
1053
								Effects["Sphere"].Create(BrickColor.new("Bright yellow"), CFrame.new(pos), 10, 10, 10, 15, 15, 15, 0.01)
1054
								Effects["Block"].Create(BrickColor.new("White"), CFrame.new(pos), 10, 10, 10, 15, 15, 15, 0.01, 1)
1055
								Effects["Wave"].Create(BrickColor.new("Smoky grey"), CFrame.new(pos), 2, 2, 2, 3, 3, 3, 0.01)
1056
								CFuncs["Sound"].Create("rbxassetid://10209236", ref, 1, 1)
1057
								CFuncs["Sound"].Create("rbxassetid://10209236", Sphere, 0.5, 1)
1058
								CFuncs["Sound"].Create("rbxassetid://10209236", Sphere, 0.1, 1)
1059
								local e = Instance.new("Explosion", ref)
1060
								e.Position = ref.Position
1061
								e.BlastRadius = 400
1062
								e.DestroyJointRadiusPercent = 400
1063
								e.Visible = false
1064
								e.ExplosionType = "CratersAndDebris"
1065
								game:GetService("Debris"):AddItem(ref, 2)
1066
							end
1067
							if Thing[3] <= 0 then
1068
								table.remove(Effects, e)
1069
							end
1070
						end
1071
						do
1072
							do
1073
								if Thing[2] ~= "Shoot" and Thing[2] ~= "DecreaseStat" and Thing[2] ~= "showDamage" and Thing[2] ~= "Shoot2" then
1074
									if Thing[1].Transparency <= 1 then
1075
										if Thing[2] == "Block1" then
1076
											Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
1077
											Mesh = Thing[7]
1078
											Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1079
											Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1080
										else
1081
											if Thing[2] == "Block2" then
1082
												Thing[1].CFrame = Thing[1].CFrame
1083
												Mesh = Thing[7]
1084
												Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1085
												Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1086
											else
1087
												if Thing[2] == "Block3" then
1088
													Thing[8].C0 = CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)) * Thing[9]
1089
													Mesh = Thing[7]
1090
													Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1091
													Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1092
												else
1093
													if Thing[2] == "Cylinder" then
1094
														Mesh = Thing[7]
1095
														Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1096
														Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1097
													else
1098
														if Thing[2] == "Cylinder2" then
1099
															Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, Thing[8], 0)
1100
															Mesh = Thing[7]
1101
															Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1102
															Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1103
														else
1104
															if Thing[2] == "Blood" then
1105
																Mesh = Thing[7]
1106
																Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, 0.5, 0)
1107
																Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
1108
																Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1109
															else
1110
																if Thing[2] == "Elec" then
1111
																	Mesh = Thing[10]
1112
																	Mesh.Scale = Mesh.Scale + Vector3.new(Thing[7], Thing[8], Thing[9])
1113
																	Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1114
																else
1115
																	if Thing[2] == "Disappear" then
1116
																		Thing[1].Transparency = Thing[1].Transparency + Thing[3]
1117
																	end
1118
																end
1119
															end
1120
														end
1121
													end
1122
												end
1123
											end
1124
										end
1125
									else
1126
										Part.Parent = nil
1127
										table.remove(Effects, e)
1128
									end
1129
								end
1130
							end
1131
						end
1132
					end
1133
				end
1134
			end
1135
		end
1136
	end
1137
end