View difference between Paste ID: wxcHeLdX and pLVTuJEg
SHOW: | | - or go back to the newest paste.
1
-- This script has been converted to FE by iPxter
2
3
4
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
6
do
7
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
8
	script.Parent = Player.Character
9
10
	--RemoteEvent for communicating
11
	local Event = Instance.new("RemoteEvent")
12
	Event.Name = "UserInput_Event"
13
14
	--Fake event to make stuff like Mouse.KeyDown work
15
	local function fakeEvent()
16
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
17
		t.connect = t.Connect
18
		return t
19
	end
20
21
	--Creating fake input objects with fake variables
22
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
23
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
24
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
25
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
26
	end}
27
	--Merged 2 functions into one by checking amount of arguments
28
	CAS.UnbindAction = CAS.BindAction
29
30
	--This function will trigger the events that have been :Connect()'ed
31
	local function te(self,ev,...)
32
		local t = m[ev]
33
		if t and t._fakeEvent and t.Function then
34
			t.Function(...)
35
		end
36
	end
37
	m.TrigEvent = te
38
	UIS.TrigEvent = te
39
40
	Event.OnServerEvent:Connect(function(plr,io)
41
	    if plr~=Player then return end
42
		if io.isMouse then
43
			m.Target = io.Target
44
			m.Hit = io.Hit
45
		else
46
			local b = io.UserInputState == Enum.UserInputState.Begin
47
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
			end
50
			for _,t in pairs(CAS.Actions) do
51
				for _,k in pairs(t.Keys) do
52
					if k==io.KeyCode then
53
						t.Function(t.Name,io.UserInputState,io)
54
					end
55
				end
56
			end
57
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
	    end
60
	end)
61
	Event.Parent = NLS([==[
62
	local Player = game:GetService("Players").LocalPlayer
63
	local Event = script:WaitForChild("UserInput_Event")
64
65
	local UIS = game:GetService("UserInputService")
66
	local input = function(io,a)
67
		if a then return end
68
		--Since InputObject is a client-side instance, we create and pass table instead
69
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
70
	end
71
	UIS.InputBegan:Connect(input)
72
	UIS.InputEnded:Connect(input)
73
74
	local Mouse = Player:GetMouse()
75
	local h,t
76
	--Give the server mouse data 30 times every second, but only if the values changed
77
	--If player is not moving their mouse, client won't fire events
78
	while wait(1/30) do
79
		if h~=Mouse.Hit or t~=Mouse.Target then
80
			h,t=Mouse.Hit,Mouse.Target
81
			Event:FireServer({isMouse=true,Target=t,Hit=h})
82
		end
83
	end]==],Player.Character)
84
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
85
end
86
87
88
89
--Player
90
local player = owner
91
92
repeat
93
	wait()
94
until player.Character
95
local character = player.Character
96
local humanoid = character:WaitForChild("Humanoid")
97
local mouse = Mouse
98
99
--Health
100
coroutine.resume(coroutine.create(function()
101
	while true do
102
		wait()
103
		humanoid.PlatformStand = false
104
		humanoid.MaxHealth = 1000
105
	end
106
end))
107
108
--Other
109
local mousedown = false
110
local enabled = false
111
local rightready = false
112
local leftready = false
113
local available = true
114
local fastmode = 1
115
local rainbow = false
116
local active = false
117
local spacepress = false
118
local regen = true
119
local cooldown = 0.3
120
local firespeed = cooldown
121
local heat = 50
122
local beat = 1
123
local order = 1
124
125
local mindamage = 27
126
local maxdamage = 43
127
local pierce = 3
128
129
--Sound
130
local firesound = Instance.new("Sound")
131
firesound.SoundId = "rbxassetid://10209257" --rbxassetid://146830902 
132
firesound.Volume = 10
133
firesound.EmitterSize = 3
134
firesound.Pitch = 1
135
local setupsound = Instance.new("Sound")
136
setupsound.SoundId = "rbxassetid://10209240"
137
setupsound.Volume = 10
138
setupsound.EmitterSize = 3
139
setupsound.Pitch = 1
140
local lasersound = Instance.new("Sound")
141
lasersound.SoundId = "rbxassetid://1146690806"
142
lasersound.Volume = 10
143
lasersound.EmitterSize = 3
144
lasersound.Pitch = 1
145
146
--Parts
147
local head = character.Head
148
local torso = character.Torso
149
local rightarm = character["Right Arm"]
150
local leftarm = character["Left Arm"]
151
local rs = torso["Right Shoulder"]
152
local ls = torso["Left Shoulder"]
153
local neck = torso["Neck"]
154
155
--Useful functions
156
157
local function Weld(part0, part1, parent, anchored)
158
	part0.Anchored = true
159
	local weld = Instance.new("Weld")
160
	weld.Name = "Weldy"
161
	weld.Part0 = part0
162
	weld.Part1 = part1
163
	weld.C0 = CFrame.new()
164
	weld.C1 = part1.CFrame:toObjectSpace(part0.CFrame)
165
	weld.Parent = parent
166
	if anchored == true then
167
		part0.Anchored = true
168
	elseif anchored == false then
169
		part0.Anchored = false
170
	end
171
end
172
173
local function Mesh(meshtype, parent, scale, id)
174
	local mesh = Instance.new("SpecialMesh")
175
	mesh.MeshType = meshtype
176
	mesh.Name = "Meshy"
177
	if scale ~= nil then
178
		mesh.Scale = scale
179
	end
180
	if meshtype == "FileMesh" then
181
		mesh.MeshId = "http://www.roblox.com/asset?id="..id
182
	end
183
	mesh.Parent = parent
184
end
185
186
local function Light(range, brightness, color, parent)
187
	local light = Instance.new("PointLight")
188
	light.Range = range
189
	light.Brightness = brightness
190
	light.Color = color
191
	light.Name = "Lighty"
192
	light.Parent = parent
193
	coroutine.resume(coroutine.create(function()
194
		while parent and light do
195
			if rainbow == true then
196
				light.Color = parent.Color
197
			else
198
				light.Color = color
199
			end
200
			wait()
201
		end
202
	end))
203
end
204
205
--GuiText
206
 local bgui = Instance.new("BillboardGui",character)
207
    bgui.Size = UDim2.new(0,100,0,40)
208
    bgui.StudsOffset = Vector3.new(0,2,0)
209
    bgui.Adornee = character.Head
210
    local text = Instance.new("TextLabel", bgui)
211
    text.BackgroundTransparency = 1
212
    text.BorderSizePixel = 0
213-
    text.Text = "By SlaveDash"
213+
    text.Text = "oof"
214
    text.Font = "ArialBold"
215
    text.FontSize = "Size24"
216
	text.TextTransparency = 0
217
    text.TextStrokeTransparency = 0
218
    text.TextStrokeColor3 = Color3.new(255,0,0)
219
    text.TextColor3 = Color3.new(255,155,155)
220
    text.Size = UDim2.new(1,0,0.5,0)
221
		
222
    player.Chatted:connect(function(chat)
223
		chat = game.Chat:FilterStringForBroadcast(chat, player)
224
        for i=1,string.len(chat) do
225
            text.Text = string.sub(chat, 1, i)
226
            wait()
227
        end
228
		
229
		wait(0.5)
230
        for i=1,10 do
231
			text.TextTransparency = text.TextTransparency + 0.1
232
			text.TextStrokeTransparency = text.TextStrokeTransparency + 0.1
233
			wait()
234
		end
235
		text.TextTransparency = 0
236
		text.TextStrokeTransparency = 0
237
        text.Text = ""
238
    end)
239
    wait(1)
240
    text.Text = ""
241
    text.FontSize = "Size28"
242
243
local function Chat(stringg, waitstart, waitend)
244
	for i=1,string.len(stringg) do
245
		text.Text = string.sub(stringg, 1, i)
246
		wait(waitstart)
247
	end
248
	wait(0.5)
249
	for i=1,10 do
250
		text.TextTransparency = text.TextTransparency + 0.1
251
		text.TextStrokeTransparency = text.TextStrokeTransparency + 0.1
252
		wait()
253
	end
254
	text.TextTransparency = 0
255
	text.TextStrokeTransparency = 0
256
	text.Text = ""
257
end
258
259
text.TextStrokeColor3 = Color3.new(255,0,0)
260
text.TextColor3 = Color3.new(255,155,155)
261
262
--Fix
263
torso.Anchored = true
264
local original_cframe = torso.CFrame
265
torso.CFrame = CFrame.new(torso.Position, torso.Position + Vector3.new(0,0,-1))
266
267
--Main Model
268
269
local minigun = Instance.new("Model")
270
minigun.Name = "Minigun"
271
minigun.Parent = character
272
273
local bullets = Instance.new("Model")
274
bullets.Name = "Bullets"
275
bullets.Parent = character
276
277
--Eye
278
local eye = Instance.new("Part")
279
eye.Size = Vector3.new(0.2,0.3,0.2)
280
eye.CFrame = CFrame.new((head.Position + Vector3.new(0.2,0.2,0)) + (head.CFrame.lookVector * 0.5), head.Position + (head.CFrame.lookVector * 12000))
281
eye.Material = Enum.Material.Neon
282
eye.CanCollide = false
283
eye.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
284
eye.Name = "Eye"
285
eye.BrickColor = BrickColor.new("Really red")
286
eye.Parent = character
287
288
head.face.Texture = ""
289
290
Weld(eye, torso, eye, false)
291
Mesh("Sphere", eye, nil)
292
293
--Plates
294
295
local barrels = Instance.new("Model")
296
barrels.Name = "Barrels"
297
barrels.Parent = minigun
298
299
local leftbarrels = Instance.new("Model")
300
leftbarrels.Name = "Left"
301
leftbarrels.Parent = barrels
302
local rightbarrels = Instance.new("Model")
303
rightbarrels.Name = "Right"
304
rightbarrels.Parent = barrels
305
306
--Barrels
307
local barrel1 = Instance.new("Part")	--Barrel 1
308
barrel1.BrickColor = BrickColor.new("Smoky grey")
309
barrel1.Size = Vector3.new(3,0.5,0.5)
310
barrel1.Material = Enum.Material.Metal
311
barrel1.CanCollide = true
312
barrel1.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
313
barrel1.CFrame = CFrame.new((torso.Position + Vector3.new(-0.5,0.3,0)) + (torso.CFrame.lookVector * 2), torso.Position + (torso.CFrame.lookVector * 2))
314
barrel1.Name = "Barrel 1"
315
barrel1.Parent = leftbarrels
316
317
Weld(barrel1, torso, barrel1, false)	--Weld Barrel 1
318
Mesh("Cylinder", barrel1, nil)	--Mesh Barrel 1
319
320
local barrel2 = Instance.new("Part")	--Barrel 2
321
barrel2.BrickColor = BrickColor.new("Smoky grey")
322
barrel2.Size = Vector3.new(3,0.5,0.5)
323
barrel2.Material = Enum.Material.Metal
324
barrel2.CanCollide = true
325
barrel2.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
326
barrel2.CFrame = CFrame.new((torso.Position + Vector3.new(0.5,0.3,0)) + (torso.CFrame.lookVector * 2), torso.Position + (torso.CFrame.lookVector * 2))
327
barrel2.Name = "Barrel 2"
328
barrel2.Parent = rightbarrels
329
330
Weld(barrel2, torso, barrel2, false)	--Weld Barrel 2
331
Mesh("Cylinder", barrel2, nil)	--Mesh Barrel 2
332
333
--Barrelholes
334
335
local barrelhole1 = Instance.new("Part")	--Barrelhole 1
336
barrelhole1.BrickColor = BrickColor.new("Really black")
337
barrelhole1.Size = Vector3.new(3.05,0.45,0.45)
338
barrelhole1.Material = Enum.Material.Metal
339
barrelhole1.CanCollide = true
340
barrelhole1.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
341
barrelhole1.CFrame = CFrame.new((torso.Position + Vector3.new(-0.5,0.3,0)) + (torso.CFrame.lookVector * 1.9), torso.Position + (torso.CFrame.rightVector * -100))
342
barrelhole1.Name = "Barrelhole 1"
343
barrelhole1.Parent = leftbarrels
344
345
Weld(barrelhole1, barrel1, barrelhole1, false)	--Weld Barrelhole 1
346
Mesh("Cylinder", barrelhole1, nil)	--Mesh Barrelhole 1
347
348
local barrelhole2 = Instance.new("Part")	--Barrelhole 2
349
barrelhole2.BrickColor = BrickColor.new("Really black")
350
barrelhole2.Size = Vector3.new(3.05,0.42,0.42)
351
barrelhole2.Material = Enum.Material.Metal
352
barrelhole2.CanCollide = true
353
barrelhole2.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
354
barrelhole2.CFrame = CFrame.new((torso.Position + Vector3.new(0.5,0.3,0)) + (torso.CFrame.lookVector * 1.9), torso.Position + (torso.CFrame.rightVector * -100))
355
barrelhole2.Name = "Barrelhole 2"
356
barrelhole2.Parent = rightbarrels
357
358
Weld(barrelhole2, barrel2, barrelhole2, false)	--Weld Barrelhole 2
359
Mesh("Cylinder", barrelhole2, nil)	--Mesh Barrelhole 2
360
361
firesound.Parent = torso
362
setupsound.Parent = torso
363
lasersound.Parent = torso
364
365
--Turn Torso
366
367
coroutine.resume(coroutine.create(function()
368
	while true do
369
		torso.CFrame = torso.CFrame:lerp(CFrame.new(torso.Position, Vector3.new(mouse.Hit.p.x, torso.Position.y, mouse.Hit.p.z)), 0.5)
370
		wait()
371
	end
372
end))
373
374
local left = {barrel1, barrelhole1}
375
local right = {barrel2, barrelhole2}
376
local both = {barrel1, barrelhole1, barrel2, barrelhole2}
377
local bothgun = {barrel1, barrel2}
378
local bothhole = {barrelhole1, barrelhole2}
379
380
--Intro
381
382
barrel1.Meshy.Scale = Vector3.new(0,1,1)
383
barrel1.Meshy.Offset = Vector3.new(2,0,0)
384
barrel2.Meshy.Scale = Vector3.new(0,1,1)
385
barrel2.Meshy.Offset = Vector3.new(-2,0,0)
386
barrelhole1.Meshy.Scale = Vector3.new(0,1,1)
387
barrelhole1.Meshy.Offset = Vector3.new(2,0,0)
388
barrelhole2.Meshy.Scale = Vector3.new(0,1,1)
389
barrelhole2.Meshy.Offset = Vector3.new(-2,0,0)
390
391
setupsound:Play()
392
393
for i=1,10 do
394
	for b,v in pairs(both) do
395
		for c=1,2 do
396
			v.Meshy.Scale = v.Meshy.Scale:lerp(Vector3.new(1,1,1), i / 15)
397
			v.Meshy.Offset = v.Meshy.Offset:lerp(Vector3.new(0,0,0), i / 15)
398
		end
399
	end
400
	wait()
401
end
402
403
active = true
404
405
torso.CFrame = original_cframe
406
torso.Anchored = false
407
408
rightready = true
409
leftready = true
410
411
--Fire function
412
413
local function CreateBullet(place)
414
	local firepos = nil
415
	
416
	if order == 1 then
417
		firepos = barrel1.Position + (barrel1.CFrame.rightVector * -1.5)
418
	elseif order == 2 then
419
		firepos = barrel2.Position + (barrel2.CFrame.rightVector * 1.5)
420
	end
421
	
422
	--Ray
423
	local ray = Ray.new(firepos, (mouse.Hit.p - firepos).unit * 1000)
424
	local hit, pos = game.Workspace:FindPartOnRay(ray, character, true, false)
425
	
426
	local dist = (firepos - pos).magnitude
427
	
428
	--Bullet
429
	local beam = Instance.new("Part", bullets)
430
	beam.Size = Vector3.new(0.5,0.5,dist)
431
	beam.CFrame = CFrame.new(firepos, pos) * CFrame.new(0,0,-dist/2)
432
	beam.CanCollide = false
433
	beam.Anchored = true
434
	beam.BrickColor = BrickColor.new("Bright yellow")
435
	beam.Material = Enum.Material.Neon
436
	beam.Transparency = 0.3
437
	
438
	local boosh = Instance.new("Part", bullets)
439
	boosh.Size = Vector3.new(1,1,1)
440
	boosh.CFrame = CFrame.new(firepos)
441
	boosh.CanCollide = false
442
	boosh.Anchored = true
443
	boosh.BrickColor = BrickColor.new("Bright yellow")
444
	boosh.Material = Enum.Material.Neon
445
	boosh.Transparency = 0.3
446
	
447
	--Hit
448
	if hit then
449
		if hit.Parent then
450
			local hithuman = hit.Parent:FindFirstChild("Humanoid")
451
			if hithuman then
452
				hit.Velocity = hit.Velocity + ((hit.Position - pos).unit * 50)
453
				hithuman:TakeDamage(math.random(mindamage, maxdamage))
454
			end
455
		end
456
	end
457
	
458
	--Effect
459
	local change1 = Vector3.new(0,beam.Transparency,0)
460
	local change2 = Vector3.new(0,boosh.Transparency,0)
461
	for i=1,10 do
462
		beam.Transparency = change1.Y
463
		boosh.Transparency = change2.Y
464
		beam.Size = beam.Size:lerp(Vector3.new(0,0,dist), 0.05 * i)
465
		boosh.Size = boosh.Size:lerp(Vector3.new(0,0,0), 0.05 * i)
466
		boosh.CFrame = boosh.CFrame * CFrame.fromEulerAnglesXYZ(1,1,1)
467
		change1 = change1:lerp(Vector3.new(0,1,0), 0.05 * i)
468
		change2 = change2:lerp(Vector3.new(0,1,0), 0.05 * i)
469
		if rainbow then
470
			boosh.Color = boosh.Color:lerp(BrickColor.Random().Color, 0.3)
471
			beam.Color = beam.Color:lerp(BrickColor.Random().Color, 0.3)
472
		end
473
		wait()
474
	end
475
	beam:Destroy()
476
	boosh:Destroy()
477
end
478
479
local function Laser()
480
	lasersound:Play()
481
	if beat == 3 then
482
		lasersound.Pitch = 1
483
	else
484
		lasersound.Pitch = 1.5
485
	end
486
	local laser = Instance.new("Part")
487
	laser.Size = Vector3.new(0.05,0.05, 1000)
488
	laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), head.Position + (head.CFrame.lookVector * 12000))
489
	laser.Transparency = 0
490
	laser.Material = Enum.Material.Neon
491
	laser.Name = "Laser"
492
	laser.CanCollide = false
493
	laser.Anchored = true
494
	laser.BrickColor = BrickColor.new("Really red")
495
	laser.Parent = workspace
496
	Mesh("Sphere", laser, Vector3.new(0.5,0.5,1))
497
	
498
	mouse.TargetFilter = laser
499
	
500
	laser.Touched:connect(function(touched)
501
		if laser and touched ~= nil and touched.Parent ~= nil then
502
			local laserhumanoid = touched.Parent:FindFirstChild("Humanoid")
503
			if laserhumanoid and laserhumanoid ~= humanoid then
504
				if beat == 3 then
505
					laserhumanoid.Health = laserhumanoid.Health - ((laserhumanoid.MaxHealth / 10) + (math.random(mindamage, maxdamage) * 0.1))
506
				else
507
					laserhumanoid.Health = laserhumanoid.Health - (math.random(mindamage, maxdamage) * 0.1)
508
				end
509
				touched.Velocity = touched.Velocity + (laser.CFrame.lookVector * 5)
510
			end
511
		end
512
	end)
513
	if beat == 3 then
514
		beat = 1
515
		for i=1,20 do
516
			laser.Transparency = laser.Transparency + (i / 70)
517
			laser.Size = laser.Size:lerp(Vector3.new(45,45,1000), i / 66)
518
			laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), eye.Position + (eye.CFrame.lookVector * 12000))
519
			wait()
520
		end
521
	else
522
		beat = beat + 1
523
		for i=1,10 do
524
			laser.Transparency = laser.Transparency + (i / 25)
525
			laser.Size = laser.Size:lerp(Vector3.new(15,15,1000), i / 45)
526
			laser.CFrame = CFrame.new(eye.Position + (eye.CFrame.lookVector * 500), eye.Position + (eye.CFrame.lookVector * 12000))
527
			wait()
528
		end
529
	end
530
	laser:Destroy()
531
end
532
533
local function Fire()
534
	firesound:Play()
535
	
536
	coroutine.resume(coroutine.create(function()
537
		CreateBullet(order)
538
	end))
539
	if order == 1 then
540
		coroutine.resume(coroutine.create(function()
541
			local b = 0
542
			local y = 2
543
			order = 2
544
			leftready = false
545
			
546
			if fastmode < 4 then
547
				rightready = true
548
			end
549
			
550
			for i=1,5 do
551
				for i=1,#left do
552
					for c=1,3 do
553
						left[i].Meshy.Scale = left[i].Meshy.Scale:lerp(Vector3.new(b,1,1), i / 6)
554
						left[i].Meshy.Offset = left[i].Meshy.Offset:lerp(Vector3.new(y,0,0), i / 6)
555
					end
556
				end
557
				b = 1
558
				y = 0
559
				wait()
560
			end
561
			leftready = true
562
		end))
563
		if fastmode < 4 then
564
			wait(firespeed)
565
		end
566
		if fastmode < 4 then
567
			repeat
568
				wait()
569
			until rightready == true
570
		end
571
	elseif order == 2 then
572
		coroutine.resume(coroutine.create(function()
573
			local b = 0
574
			local y = -2
575
			order = 1
576
			rightready = false
577
			
578
			if fastmode < 4 then
579
				leftready = true
580
			end
581
			
582
			for i=1,5 do
583
				for i=1,#right do
584
					for c=1,3 do
585
						right[i].Meshy.Scale = right[i].Meshy.Scale:lerp(Vector3.new(b,1,1), i / 6)
586
						right[i].Meshy.Offset = right[i].Meshy.Offset:lerp(Vector3.new(y,0,0), i / 6)
587
					end
588
				end
589
				b = 1
590
				y = 0
591
				wait()
592
			end
593
			rightready = true
594
		end))
595
		if fastmode < 4 then
596
			wait(firespeed)
597
		end
598
		if fastmode < 4 then
599
			repeat
600
				wait()
601
			until leftready == true
602
		end
603
	end
604
end
605
606
--Main
607
608
mouse.Button1Up:connect(function()
609
	mousedown = false
610
end)
611
612
mouse.Button1Down:connect(function()
613
	if active == false then
614
		return
615
	end
616
	if enabled == true then
617
		return
618
	else
619
		enabled = true
620
	end
621
	humanoid.WalkSpeed = 7
622
	mousedown = true
623
	repeat
624
		Fire()
625
		wait()
626
	until mousedown == false
627
	humanoid.WalkSpeed = 16
628
	wait(0.2)
629
	enabled = false
630
end)
631
632
mouse.KeyUp:connect(function(key)
633
	key = key:lower()
634
	if key:byte() == 32 then
635
		spacepress = false
636
	end
637
end)
638
639
mouse.KeyDown:connect(function(key)
640
	key = key:lower()
641
	if key == "q" then
642
		if fastmode == 4 then
643
			fastmode = 1
644
			firespeed = cooldown
645
		else
646
			fastmode = fastmode + 1
647
			firespeed = firespeed / 2
648
			if fastmode == 4 then
649
				firespeed = 0
650
			end
651
		end
652
	elseif key == "e" then
653
		if rainbow == false then
654
			rainbow = true
655
		else
656
			rainbow = false
657
		end
658
		print(rainbow)
659
	elseif key == "z" and available == true then
660
		available = false
661
		Laser()
662
		wait(0.5)
663
		available = true
664
	elseif key == "x" then
665
		if active == true then
666
			for i=1,10 do
667
				for i,v in pairs(both) do
668
					v.Transparency = v.Transparency + 0.1
669
				end
670
				wait()
671
			end
672
			active = false
673
		else
674
			for i=1,10 do
675
				for i,v in pairs(both) do
676
					v.Transparency = v.Transparency - 0.1
677
				end
678
				wait()
679
			end
680
			active = true
681
		end
682
	elseif key:byte() == 32 then
683
		spacepress = true
684
		
685
		wait(0.4)
686
		if spacepress and heat > 0 then
687
			regen = false
688
			repeat
689
				heat = heat * 0.9
690
				heat = math.floor(heat)
691
				torso.Velocity = Vector3.new(torso.Velocity.x,heat * 1.5,torso.Velocity.z)
692
				local flame = Instance.new("Part")
693
				flame.Size = Vector3.new(3,3,3)
694
				flame.CFrame = torso.CFrame - Vector3.new(math.random(-1.5,1.5),3,math.random(-1.5,1.5))
695
				flame.Anchored = true
696
				flame.CanCollide = false
697
				flame.Transparency = 0.5
698
				flame.BrickColor = BrickColor.new("Deep orange")
699
				flame.Material = Enum.Material.Neon
700
				flame.Name = "Flame"
701
				flame.Parent = workspace
702
				Mesh("Sphere", flame, nil)
703
				coroutine.resume(coroutine.create(function()
704
					for i=1,10 do
705
						flame.Transparency = flame.Transparency + (0.02 * i)
706
						flame.Meshy.Scale = flame.Meshy.Scale:lerp(Vector3.new(0.6 / i, 0.6 / i, 0.6 / i) * (heat / 50), 0.7)
707
						flame.CFrame = CFrame.new(flame.Position + (flame.CFrame.upVector * ((1.5 / i) * -1)))
708
						wait()
709
					end
710
					flame:Destroy()
711
				end))
712
				wait()
713
			until heat == 0 or spacepress == false
714
			regen = true
715
		end
716
	end
717
end)
718
719
coroutine.resume(coroutine.create(function()
720
	while true do
721
		if rainbow == true then
722
			for i,v in pairs(bothgun) do
723
				v.Color = v.Color:lerp(BrickColor.Random().Color, 0.2)
724
				v.Material = Enum.Material.Neon
725
			end
726
		elseif rainbow == false then
727
			for i,v in pairs(bothgun) do
728
				v.Color = v.Color:lerp(BrickColor.new("Smoky grey").Color, 0.1)
729
				v.Material = Enum.Material.Metal
730
			end
731
		end
732
		wait()
733
	end
734
end))
735
736
--Eye Blink
737
coroutine.resume(coroutine.create(function()
738
	local time = 180
739
	while true do
740
		repeat
741
			time = time - 1
742
			wait()
743
		until time == 0
744
		print("blink")
745
		coroutine.resume(coroutine.create(function()
746
			Chat("*blink*", 0, 0.3)
747
		end))
748
		time = 180
749
		local goal = Vector3.new(2,0,1)
750
		local colorgoal = BrickColor.new("Really black").Color
751
		for i=1,20 do
752
			eye.Meshy.Scale = eye.Meshy.Scale:lerp(goal, i / 35)
753
			eye.Color = eye.Color:lerp(colorgoal, 0.6)
754
			goal = Vector3.new(1,goal.y + 0.05,1)
755
			colorgoal = BrickColor.new("Really red").Color
756
			wait()
757
		end
758
	end
759
end))
760
761
--Regen Heat
762
coroutine.resume(coroutine.create(function()
763
	while true do
764
		if regen == true then
765
			repeat
766
				heat = (heat * 1.3) + 0.1
767
				wait()
768
			until heat >= 100 or regen == false
769
			if regen then
770
				heat = 100
771
			end
772
		end
773
		wait()
774
	end
775
end))
776
777
print([["-|-
778
Q to change firing speed
779
E to turn off or on rainbow mode
780
Z to shoot a laser out of your eye
781
X to hide or show guns
782
Space to hover
783
784
Firing Speeds:
785
1 = Slow
786
2 = Normal
787
3 = Fast
788
4 = Literally impossible
789
-|-"]])