View difference between Paste ID: VrEBAneY and QkitTqgh
SHOW: | | - or go back to the newest paste.
1-
--Mini Rocket Launcher Gifted by TheRedAngel, Local Script!
1+
if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility by WaverlyCole");InternalData = {}InternalData.RealOwner = owner;InternalData.Version = "v1.0.0"
2
do
3-
myname = "Dark_Eccentric"
3+
    script.Parent = InternalData.RealOwner.Character
4
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
5
    local function createObject (connections, index)
6
        local proxy = newproxy (true);local meta = getmetatable (proxy);
7
        local runbind = function (self, i, ...) connections[i]:Fire (...); end;
8
        while (#connections > 0) do connections [table.remove (connections, 1)] = Instance.new ('BindableEvent');end;
9
        meta.__index = function (self, i)
10
            if (i == 'TriggerEvent') then return runbind end;
11
            return connections[i] and connections[i].Event or index[i];
12
        end;
13
        meta.__newindex = index;meta.__metatable = false;return proxy
14
    end;
15
    local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
16
    local UserInputService = createObject({"InputBegan","InputEnded"},{})
17
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
18
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
19
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
20
    Event.OnServerEvent:Connect(function(FiredBy,Input)
21
        if FiredBy.Name ~= InternalData.RealOwner.Name then return end
22
        if Input.MouseEvent then
23
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
24
        else
25
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
26
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
27
            for _,Action in pairs(ContextActionService.Actions) do
28
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
29
            end
30
            Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
31
        end
32
    end)
33
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
34
    Event.Parent = NLS([[
35
        local Player = owner;
36
        local Event = script:WaitForChild("UserInput");
37
        local UserInputService = game:GetService("UserInputService");
38
        local Mouse = Player:GetMouse();
39
        local Input = function(Input,gameProcessedEvent)
40
            if gameProcessedEvent then return end
41
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
42
        end
43
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
44
        local Hit,Target
45
        while wait(1/60) do
46
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
47
                Hit = Mouse.Hit;Target = Mouse.Target;
48
                Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
49
            end
50
        end
51
    ]],InternalData.RealOwner.Character)
52
end
53
InternalData.RealInstance = Instance;Instance = setmetatable({},{
54
    __index = function (self,Index)
55
        if Index:lower() == 'new' then
56
            return function (Type, Parent)
57
                local Real = InternalData.RealInstance.new(Type,Parent)
58
                if not Type then return end
59
                if Type == "BillboardGui" then
60
                    return setmetatable({},{
61
                        __index = function (self,Index)
62
                            return Real[Index]
63
                        end;
64
                        __newindex = function (self,Index,Value)
65
                            if Index:lower() == "playertohidefrom" then
66
                                if Value.Name == owner.Name then Real[Index] = InternalData.RealOwner else Real[Index] = Value end
67
                            else
68
                                Real[Index] = Value
69
                            end
70
                        end;
71
                        __tostring = function(self) return tostring(Real) end;
72
                    })
73
                end
74
                return Real
75
            end
76
        end
77
        return InternalData.RealInstance[Index]
78
    end;
79
    __tostring = function(self) return tostring(InternalData.RealInstance) end;
80
});
81
InternalData.RealGame = game;game = setmetatable({},{
82
    __index = function (self,Index)
83
        local Sandbox = function (Thing)
84
            if Thing:IsA("Player") then
85
                local RealPlayer = Thing
86
                return setmetatable({},{
87
                    __index = function (self,Index)
88
                        local Type = type(RealPlayer[Index])
89
                        if Type == "function" then
90
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
91
                                return function (self)return InternalData["Mouse"] end
92
                            end
93
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
94
                        elseif Index == "FakePlayer" then
95
                            return true
96
                        end
97
                        return RealPlayer[Index]
98
                    end;
99
                    __tostring = function(self) return tostring(RealPlayer) end
100
                })
101
            end
102
        end
103
        if InternalData.RealGame[Index] then
104
            local Type = type(InternalData.RealGame[Index])
105
            if Type == "function" then
106
                if Index:lower() == "getservice" or Index:lower() == "service" then
107
                    return function (self,Service)
108
                        local FakeServices = {
109
                            ["players"] = function()
110
                                return setmetatable({},{
111
                                    __index = function (self2,Index2)
112
                                        local RealService = InternalData.RealGame:GetService(Service)
113
                                        local Type2 = type(Index2)
114
                                        if Type2 == "function" then
115
                                            return function (self,...) return RealService[Index2](RealService,...)end
116
                                        else
117
                                            if Index2:lower() == "localplayer" then return Sandbox(InternalData.RealOwner) end
118
                                            return RealService[Index2]
119
                                        end
120
                                    end;
121
                                    __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
122
                                })
123
                            end;
124
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
125
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
126
                            ["runservice"] = function()
127
                                return setmetatable({},{
128
                                    __index = function(self2,Index2)
129
                                        local RealService = InternalData.RealGame:GetService(Service)
130
                                        local Type2 = type(Index2)
131
                                        if Type2 == "function" then
132
                                            return function (self,...) return RealService[Index2](RealService,...) end
133
                                        else
134
                                            local RunServices = {
135
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
136
                                                ["renderstepped"] = function() return RealService["Stepped"] end
137
                                            }
138
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
139
                                            return RealService[Index2]
140
                                        end
141
                                    end;
142
                                    __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
143
                                })
144
                            end
145
                        }
146
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
147
                        return InternalData.RealGame:GetService(Service)
148
                    end
149
                end
150
                return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
151
            else
152
                if game:GetService(Index) then return game:GetService(Index) end
153
                return InternalData.RealGame[Index]
154
            end
155
        end
156
        return nil
157
    end;
158
    __tostring = function(self) return tostring(InternalData.game) end
159
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
160
 
161
--//Paste script below this line.
162
163
myname = "basstracker1970"
164
me = game.Players[myname]
165
char = me.Character
166
name = "MiniRocketLauncher"
167
explodecolors = {"Really red", "Neon orange", "Bright red", "New Yeller", "Bright yellow", "Bright orange"}
168
sm = {"Really black", "Black"}
169
acceleratemax = 100
170
accelerateincrease = 0.55
171
MassDestruct = 100
172
MaxEnergy = 160
173
Energy = MaxEnergy
174
EnergyCost = 0.3
175
IncreaseEnergy = 10
176
MaxSpeed = 120
177
MinSpeed = MaxSpeed/4
178
SpeedIncrease = 0.34
179
Speed = MinSpeed
180
181
function GiveHp(mass)
182
	return (mass*(mass/9.6)/9.6) + 8
183
end
184
185
function BrickDmg(d, part, pos)
186
	local dm = math.random(d/2.5,d/1.5)
187
	dm = (dm - (part.Position - pos.p).magnitude)
188
	if dm < 0 then dm = 0 end
189
	return dm
190
end
191
192
function CheckEnergy()
193
	if Energy > MaxEnergy then
194
		Energy = MaxEnergy
195
	elseif Energy < 0 then Energy = 0 end
196
end
197
198
hold = false
199
jethold = false
200
sel = false
201
abletofire = true
202
JetsOn = false
203
Flying = false
204
order = 1
205
modes = {{"Normal", 6, 5400, 18, 32, 0.4, 7}, {"Accelerate", 7, 4200, 22, 5, 0.5, 9}, {"Machine gun", 4, 1400, 11, 65, 0.18, 3}, {"Blast", 11, 2000, 34, 23, 0.9, 13}}
206
mode = modes[order]
207
screenname = "MiniRocketGui"
208
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
209
210
swoosh = Instance.new("Sound")
211
swoosh.Looped = true
212
swoosh.Volume = 0.4
213
swoosh.Pitch = 1.9
214
swoosh.SoundId = "rbxasset://sounds\\Rocket whoosh 01.wav"
215
216
bewm = Instance.new("Sound")
217
bewm.Looped = false
218
bewm.Volume = 0.7
219
bewm.Pitch = 1.5
220
bewm.SoundId = "http://www.roblox.com/asset/?id=2101148"
221
222
boom = Instance.new("Sound")
223
boom.Looped = false
224
boom.Volume = 0.5
225
boom.Pitch = 0.55
226
boom.SoundId = "http://www.roblox.com/asset/?id=2691586"
227
228
flys = Instance.new("Sound")
229
flys.Looped = true
230
flys.Volume = 0.8
231
flys.Pitch = 0.4
232
flys.SoundId = "rbxasset://sounds\\Rocket whoosh 01.wav"
233
234
function getnoobs(pos,dist)
235
	local stoof = {}
236
	local mods = {}
237
	for _,v in pairs(workspace:children()) do
238
		if v:IsA("BasePart") then
239
			if (v.Position - pos).magnitude < dist and v.Anchored == false then
240
				table.insert(stoof,v)
241
			end
242
		elseif v:IsA("Model") and v:findFirstChild("Humanoid") and v:findFirstChild("Torso") and v ~= char then
243
			if (v.Torso.Position - pos).magnitude < dist then
244
				table.insert(mods,v)
245
			end
246
		end
247
		for _,k in pairs(v:children()) do
248
			if k:IsA("BasePart") then
249
				if (k.Position - pos).magnitude < dist and k.Anchored == false then
250
					table.insert(stoof,k)
251
				end
252
			end
253
			for _,o in pairs(k:children()) do
254
				if o:IsA("BasePart") then
255
					if (o.Position - pos).magnitude < dist and o.Anchored == false then
256
						table.insert(stoof,o)
257
					end
258
				end
259
			end
260
		end
261
	end
262
	return stoof, mods
263
end
264
265
for i,v in pairs(me.PlayerGui:children()) do
266
	if v.Name == screenname then v:remove() end
267
end
268
269
screen = Instance.new("ScreenGui",me.PlayerGui)
270
screen.Name = screenname
271
272
fra = Instance.new("Frame",screen)
273
fra.Style = "RobloxRound"
274
fra.Size = UDim2.new(0,120,0,25)
275
fra.Position = UDim2.new(0.5,-60,0,0)
276
277
txt = Instance.new("TextLabel",fra)
278
txt.BackgroundTransparency = 1
279
txt.TextColor3 = Color3.new(1,1,1)
280
txt.Size = UDim2.new(1,0,1,0)
281
txt.Text = modes[order][1]
282
txt.FontSize = "Size12"
283
284
fra2 = Instance.new("Frame",screen)
285
fra2.BackgroundColor3 = Color3.new(0.1,0.2,0.4)
286
fra2.Size = UDim2.new(0,240,0,19)
287
fra2.Position = UDim2.new(0.5,-305,0,3)
288
289
energybar = Instance.new("Frame",fra2)
290
energybar.Size = UDim2.new(Energy/MaxEnergy,0,1,0)
291
energybar.BackgroundColor3 = Color3.new(0.1,0.3,0.9)
292
energybar.BorderSizePixel = 0
293
294
entext = Instance.new("TextLabel",fra2)
295
entext.BackgroundTransparency = 1
296
entext.TextColor3 = Color3.new(1,1,1)
297
entext.Size = UDim2.new(1,0,1,0)
298
entext.Text = Energy.."/"..MaxEnergy
299
entext.FontSize = "Size14"
300
301
sptext = Instance.new("TextLabel",fra)
302
sptext.BackgroundTransparency = 1
303
sptext.TextColor3 = Color3.new(1,1,1)
304
sptext.Position = UDim2.new(1.1,0,0.5,0)
305
sptext.Text = "0/0"
306
sptext.TextXAlignment = "Left"
307
sptext.FontSize = "Size14"
308
309
function prop(part, parent, collide, tran, ref, x, y, z, color, anchor, form)
310
part.Parent = parent
311
part.formFactor = form
312
part.CanCollide = collide
313
part.Transparency = tran
314
part.Reflectance = ref
315
part.Size = Vector3.new(x,y,z)
316
part.BrickColor = BrickColor.new(color)
317
part.TopSurface = 0
318
part.BottomSurface = 0
319
part.Anchored = anchor
320
part.Locked = true
321
part:BreakJoints()
322
end
323
324
function weld(w, p, p1, a, b, c, x, y, z)
325
w.Parent = p
326
w.Part0 = p
327
w.Part1 = p1
328
w.C1 = CFrame.fromEulerAnglesXYZ(a,b,c) * CFrame.new(x,y,z)
329
end
330
331
function GetCF(pos1, pos2)
332
local pos4 = Vector3.new(pos2.X, pos1.Y, pos2.Z)
333
return CFrame.new(pos1, pos4)
334
end
335
336
rarm = char:findFirstChild("Right Arm")
337
larm = char:findFirstChild("Left Arm")
338
torso = char:findFirstChild("Torso")
339
hum = char:findFirstChild("Humanoid")
340
341
coroutine.resume(coroutine.create(function()
342
	while true do
343
		if Flying == false then
344
			Energy = Energy + IncreaseEnergy
345
		end
346
		CheckEnergy()
347
		local mag = torso.Velocity.magnitude
348
		local lolmag = mag
349
		local col = nil
350
		sptext.Text = math.floor(mag).."/"..MaxSpeed
351
		if lolmag > MaxSpeed then
352
			lolmag = MaxSpeed
353
			sptext.TextColor3 = Color3.new(1, 0, 0.2)
354
			sptext.Text = sptext.Text.."!!"
355
		else
356
			sptext.TextColor3 = Color3.new(lolmag/MaxSpeed, (lolmag/MaxSpeed)/1.7, 0)
357
		end
358
		energybar.Size = UDim2.new(Energy/MaxEnergy,0,1,0)
359
		entext.Text = math.floor(Energy).."/"..math.floor(MaxEnergy)
360
		wait()
361
	end
362
end))
363
364
flys.Parent = torso
365
366
bg = Instance.new("BodyGyro")
367
bg.P = 18000
368
bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
369
370
bv = Instance.new("BodyVelocity")
371
bv.maxForce = Vector3.new(math.huge, math.huge, math.huge)
372
373
for i,v in pairs(char:children()) do
374
	if v.Name == name then v:remove() end
375
end
376
377
launcher = Instance.new("Model")
378
launcher.Name = name
379
380
381
--[[LAUNCHER
382
LAUNCHER
383
LAUNCHER
384
LAUNCHER
385
LAUNCHER
386
LAUNCHER
387
LAUNCHER
388
LAUNCHER
389
]]
390
391
main = Instance.new("Part")
392
prop( main, launcher, false, 0, 0, 1.1, 0.6, 1.1, "Dark grey", false, "Custom" )
393
mainmesh = Instance.new("SpecialMesh",main)
394
mainmesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
395
mainmesh.Scale = Vector3.new(1.2,1.2,7)
396
weaponweld = Instance.new("Weld")
397
weld( weaponweld, rarm, main, math.pi / 2, 0, 0, 0, -0.3, 0 )
398
399
neck = Instance.new("Part")
400
prop( neck, launcher, false, 0, 0, 0.6, 1, 0.6, "Medium grey", false, "Custom" )
401
Instance.new("CylinderMesh",neck)
402
neckweld = Instance.new("Weld")
403
weld( neckweld, main, neck, 0, 0, 0, 0, 0, 0.1 )
404
405
pew = Instance.new("Part")
406
prop( pew, launcher, false, 0, 0, 0.9, 0.9, 1.5, "Dark grey", false, "Custom" )
407
Instance.new("SpecialMesh",pew).MeshType = "Sphere"
408
mehweld = Instance.new("Weld")
409
weld( mehweld, neck, pew, 0, 0, 0, 0, 0, -0.3 )
410
411
tube = Instance.new("Part")
412
prop( tube, launcher, false, 0, 0, 0.9, 0.9, 1.5, "Medium grey", false, "Custom" )
413
local tubemesh = mainmesh:clone()
414
tubemesh.Parent = tube
415
tubemesh.Scale = Vector3.new(0.9,0.9,8)
416
lolweld = Instance.new("Weld")
417
weld( lolweld, pew, tube, 0, 0, 0, 0, 0, 0.7 )
418
419
bewm.Parent = tube
420
421
missile = Instance.new("Part")
422
prop( missile, launcher, false, 0, 0, 0.1, 1.2, 0.1, "Really red", false, "Custom" )
423
local sp = Instance.new("SpecialMesh",missile)
424
sp.MeshType = "Sphere" sp.Scale = Vector3.new(0.6,1,0.6)
425
missweld = Instance.new("Weld")
426
weld( missweld, tube, missile, math.pi/2, 0, 0, 0, 0, -0.1 )
427
428
for x = -0.31, -0.15, 0.15 do
429
for i=0,360,60 do
430
local miss = Instance.new("Part")
431
prop( miss, launcher, false, 0, 0, 0.1, 1.2, 0.1, "Bright red", false, "Custom" )
432
local sp = Instance.new("SpecialMesh",miss)
433
sp.MeshType = "Sphere" sp.Scale = Vector3.new(0.6,1,0.6)
434
local miweld = Instance.new("Weld")
435
miweld.C0 = CFrame.Angles(0,math.rad(i),0)
436
weld( miweld, missile, miss, 0, 0, 0, x, 0, 0 )
437
end
438
end
439
440
--[[JET
441
JET
442
JET
443
JET
444
JET
445
JET
446
]]
447
448
Jets = {}
449
450
for i = -0.5, 0.5, 1 do
451
	local p = Instance.new("Part")
452
	prop(p, launcher, false, 0, 0, 1.2, 2.1, 0.2, "Medium grey", false, "Custom")
453
	local wl = Instance.new("Weld")
454
	weld(wl, torso, p, 0, 0, i, -i/1.3, 0, -0.5)
455
	
456
	local jet = Instance.new("Part")
457
	prop(jet, launcher, false, 0, 0, 0.6, 1.7, 0.6, "Dark grey", false, "Custom")
458
	Instance.new("CylinderMesh",jet)
459
	local wa = Instance.new("Weld")
460
	weld(wa, p, jet, 0, 0, -i, i*4, 1.2, -1)
461
	
462
	local ho = Instance.new("Part")
463
	prop(ho, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Medium grey", false, "Custom")
464
	local wad = Instance.new("Weld")
465
	weld(wad, jet, ho, math.pi/2, 0, 0, 0, 0.78, 0)
466
	
467
	local jets = Instance.new("Part")
468
	prop(jets, launcher, false, 0, 0.05, 0.8, 1.4, 0.8, "Dark grey", false, "Custom")
469
	Instance.new("SpecialMesh",jets)
470
	local wa2 = Instance.new("Weld")
471
	weld(wa2, ho, jets, 0, 0, 0, 0, 0.5, 0)
472
	
473
	local gas = Instance.new("Part")
474
	prop(gas, launcher, false, 0, 0, 1, 0.5, 1, "Medium grey", false, "Custom")
475
	Instance.new("SpecialMesh",gas)
476
	local wa3 = Instance.new("Weld")
477
	weld(wa3, jets, gas, 0, 0, 0, 0, 0.7, 0)
478
	
479
	table.insert(Jets, {wa2, gas, jets})
480
	
481
	for o = -0.3, 0.4, 0.6 do
482
		local p2 = Instance.new("Part")
483
		prop(p2, launcher, false, 0, 0.05, 0.8, 2.1, 0.2, "Dark grey", false, "Custom")
484
		local w2 = Instance.new("Weld")
485
		weld(w2, p, p2, -1.1, 0, o*1.6, -o*2.2, -1.26, -0.6)
486
		local p3 = Instance.new("Part")
487
		prop(p3, launcher, false, 0, 0, 1.3, 0.7, 0.4, "Bright red", false, "Custom")
488
		local w3 = Instance.new("Weld")
489
		weld(w3, p2, p3, 0, 0, 0, 0, -0.75, 0)
490
	end
491
end
492
493
rb = Instance.new("Part")
494
prop( rb, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Bright red", false, "Custom" )
495
rh = Instance.new("Weld")
496
weld( rh, torso, rb, 0, 0, 0, -1.5, -0.5, 0)
497
498
lb = Instance.new("Part")
499
prop( lb, launcher, false, 1, 0, 0.1, 0.1, 0.1, "Bright red", false, "Custom" )
500
lh = Instance.new("Weld")
501
weld( lh, torso, lb, 0, 0, 0, 1.5, -0.5, 0)
502
503
rw = Instance.new("Weld")
504
weld(rw,rb,nil,0,0,0,0,0.5,0)
505
506
lw = Instance.new("Weld")
507
weld(lw,lb,nil,0,0,0,0,0.5,0)
508
509
rightbattle = nil
510
leftbattle = nil
511
512
launcher.Parent = char
513
514
selectmotion = function()
515
	rw.Part1 = rarm
516
	lw.Part1 = larm
517
	coroutine.resume(coroutine.create(function()
518
	for x = 0, 0.6, 0.1 do
519
		neckweld.C0 = CFrame.new(0,x*1.2,x/1.5)
520
		mehweld.C0 = CFrame.new(0,x,0)
521
		wait()
522
	end
523
	end))
524
	for i=0,90,10 do
525
		rw.C0 = CFrame.Angles(math.rad(i),0,0) * CFrame.new(math.rad(-i/3),math.rad(-i/4),0)
526
		lw.C0 = CFrame.Angles(math.rad(i),0,math.rad(i/2)) * CFrame.new(math.rad(i/3),math.rad(-i/1.7),0)
527
		wait()
528
	end
529
	if rightbattle == nil then
530
		rightbattle = rw.C0
531
		leftbattle = lw.C0
532
	end
533
end
534
535
deselmotion = function()
536
	coroutine.resume(coroutine.create(function()
537
	for x = 0.6, 0, -0.1 do
538
		neckweld.C0 = CFrame.new(0,x*1.2,x)
539
		mehweld.C0 = CFrame.new(0,x,0)
540
		wait()
541
	end
542
	end))
543
	for i=90,0,-10 do
544
		rw.C0 = CFrame.Angles(math.rad(i),0,0) * CFrame.new(math.rad(-i/3),math.rad(-i/4),0)
545
		lw.C0 = CFrame.Angles(math.rad(i),0,math.rad(i/2)) * CFrame.new(math.rad(i/3),math.rad(-i/1.7),0)
546
		wait()
547
	end
548
	rw.Part1 = nil
549
	lw.Part1 = nil
550
end
551
552
effect = function()
553
	local pos = tube.CFrame * CFrame.new(0,0,-0.8)
554
	local p = Instance.new("Part")
555
	prop( p, workspace, false, 0, 0, 1, 1, 1, "Neon orange", true, "Custom" )
556
	p.CFrame = pos
557
	local pwn = Instance.new("SpecialMesh",p)
558
	pwn.Scale = Vector3.new(0.5,0.4,0.5)
559
	pwn.MeshId = "http://www.roblox.com/asset/?id=20329976"
560
	for i=0.2,1.5,0.3 do
561
		pwn.Scale = Vector3.new(i,i/1.4,i)
562
		p.CFrame = pos * CFrame.Angles(-math.pi/2,i,0)
563
		p.Transparency = (i/1.5)-0.2
564
		wait()
565
	end
566
	p:remove()
567
end
568
569
movearm = function()
570
	bewm:play()
571
	local rp, lp = rw.C0, lw.C0
572
	for i=0,30,30/2 do
573
		rw.C0 = rp * CFrame.Angles(math.rad(i/3),0,0) * CFrame.new(0,math.rad(i/3),0)
574
		lw.C0 = lp * CFrame.Angles(math.rad(i/5),0,0) * CFrame.new(0,math.rad(i/5),0)
575
		wait()
576
	end
577
	for i=30,0,-30/3 do
578
		rw.C0 = rp * CFrame.Angles(math.rad(i/3),0,0) * CFrame.new(0,math.rad(i/3),0)
579
		lw.C0 = lp * CFrame.Angles(math.rad(i/5),0,0) * CFrame.new(0,math.rad(i/5),0)
580
		wait()
581
	end
582
end
583
584
explode = function(p,s,mo)
585
	s:stop()
586
	local exdmg = mo[4]
587
	local exdist = mo[2]
588
	local expl = Instance.new("Model",workspace)
589
	expl.Name = "xS explode"
590
	local pos = CFrame.new(p.Position)
591
	local parts, hums = getnoobs(pos.p, exdist)
592
	local p = Instance.new("Part")
593
	prop(p,expl,false,1,0,1,1,1,1,true,"Brick")
594
	p.CFrame = pos
595
	local poo = boom:clone()
596
	poo.Parent = p
597
	poo:play()
598
	for i,v in pairs(parts) do
599
		local minus = BrickDmg(exdmg, v, pos)
600
		if v:GetMass() < MassDestruct and v.Parent:findFirstChild("Humanoid") == nil and v.Parent ~= launcher then
601
			local hp = v:findFirstChild("Hp")
602
			if hp ~= nil then
603
				hp.Value = hp.Value - minus
604
				if hp.Value <= 0 then
605
					v:breakJoints()
606
				end
607
			else
608
				local lol = Instance.new("IntValue")
609
				lol.Name = "Hp"
610
				lol.Value = GiveHp(v:GetMass())
611
				lol.Parent = v
612
				lol.Changed:connect(function()
613
					if lol.Value <= 0 then
614
						v:breakJoints()
615
					end
616
				end)
617
				lol.Value = lol.Value - minus
618
			end
619
		end
620
		local teehee = minus*1.2
621
		v.Velocity = CFrame.new(pos.p, v.Position).lookVector * teehee
622
		v.RotVelocity = Vector3.new(math.random(-teehee,teehee), math.random(-teehee,teehee), math.random(-teehee,teehee))
623
	end
624
	for i,v in pairs(hums) do
625
		v.Humanoid.Health = v.Humanoid.Health - math.random(exdmg/1.3,exdmg*1.3)
626
	end
627
	for i=1,math.random(7,14) do
628
		local spike = Instance.new("Part")
629
		prop( spike, workspace, false, 0, 0, 1, 1, 1, explodecolors[math.random(1,#explodecolors)], true, "Custom" )
630
		local a,b,c = math.random(-32,32)/10, math.random(-32,32)/10, math.random(-32,32)/10
631
		spike.CFrame = pos * CFrame.Angles(a,b,c) * CFrame.new(0,exdist/6,0)
632
		local mes = Instance.new("SpecialMesh",spike)
633
		mes.MeshId = "http://www.roblox.com/asset/?id=1033714"
634
		mes.Scale = Vector3.new(math.random(exdist*1.3,exdist*2.5)/10,math.random(exdist*5,exdist*10)/10,math.random(exdist*1.3,exdist*2.5)/10)
635
		local cf = spike.CFrame
636
		coroutine.resume(coroutine.create(function()
637
			local wah = exdist*1.2
638
			for y=0,wah,math.random(wah/12,wah/7) do
639
				wait()
640
				spike.CFrame = cf * CFrame.new(0,y,0)
641
				spike.Transparency = (y/wah) - 0.08
642
			end
643
			spike:remove()
644
		end))
645
	end
646
	coroutine.resume(coroutine.create(function()
647
	for i=1,math.random(2,6) do
648
		wait()
649
		local siz = math.random((exdist/3)*10, (exdist/1.8)*10)/10
650
		local pk = Instance.new("Part")
651
		prop(pk, workspace, false, 0.1, 0, 1, 1, 1, explodecolors[math.random(1,#explodecolors)], true, "Custom" )
652
		pk.CFrame = pos * CFrame.new(math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25)
653
		local ms = Instance.new("SpecialMesh",pk)
654
		ms.MeshType = "Sphere"
655
		ms.Scale = Vector3.new(siz,siz,siz)
656
		coroutine.resume(coroutine.create(function()
657
			for x=0.1, 1, 0.15 do
658
				wait()
659
				pk.Transparency = x
660
			end
661
			pk:remove()
662
		end))
663
	end
664
	end))
665
	coroutine.resume(coroutine.create(function()
666
		for b=1,math.random(6,13) do
667
			wait()
668
			local siz = math.random((exdist/4)*10, (exdist/2.8)*10)/10
669
			local pk = Instance.new("Part")
670
			prop(pk, workspace, false, 0.1, 0, 1, 1, 1, sm[math.random(1,#sm)], true, "Custom" )
671
			pk.CFrame = pos * CFrame.new(math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25, math.random(-exdist*10,exdist*10)/25)
672
			local ms = Instance.new("SpecialMesh",pk)
673
			ms.MeshType = "Sphere"
674
			ms.Scale = Vector3.new(siz,siz,siz)
675
			local trul = pk.CFrame
676
			coroutine.resume(coroutine.create(function()
677
				for x=0.1, 1, 0.2 do
678
					wait()
679
					pk.Transparency = x
680
					pk.CFrame = trul * CFrame.Angles(math.random(-35,35)/100,math.random(-35,35)/100,math.random(-35,35)/100) * CFrame.new(0,x*4,0)
681
				end
682
				pk:remove()
683
			end))
684
		end
685
	end))
686
	wait(1)
687
	expl:remove()
688
end
689
690
function smoke(p)
691
	while p.Parent ~= nil do
692
		wait(0.11)
693
		local siz = math.random(4,12)/10
694
		local sp = Instance.new("Part")
695
		prop(sp,workspace,false,0.1,0,siz,siz,siz,sm[math.random(1,#sm)],true,"Custom")
696
		sp.CFrame = p.CFrame * CFrame.new(0,0,0.8) * CFrame.Angles(math.random(-6,6)/10, math.random(-6,6)/10, math.random(-6,6)/10)
697-
if script.Parent.className ~= "HopperBin" then
697+
698-
	h = Instance.new("HopperBin",me.Backpack)
698+
699-
	h.Name = "MiniRocket"
699+
700-
	script.Parent = h
700+
701
			for i=0.1, 1, 0.2 do
702
				wait()
703-
bin = script.Parent
703+
704
				sp.Transparency = i
705
				sme.Scale = Vector3.new(1+i,1+i,1+i)
706
			end
707
			sp:remove()
708
		end))
709
	end
710
end
711
712
function smokejet(p)
713
	while Flying do
714
		wait(0.06)
715
		for _,v in pairs(p) do
716
			local siz = math.random(5,15)/10
717
			local sp = Instance.new("Part")
718
			prop(sp,workspace,false,0.1,0,siz,siz,siz,sm[math.random(1,#sm)],true,"Custom")
719
			sp.CFrame = v[2].CFrame * CFrame.new(0,-0.3,0) * CFrame.Angles(math.random(-6,6)/10, math.random(-6,6)/10, math.random(-6,6)/10)
720
			local sme = Instance.new("SpecialMesh",sp)
721
			sme.MeshType = "Sphere"
722
			local fi = Instance.new("Part")
723
			prop(fi,workspace,false,0.1,0,siz,siz,siz,explodecolors[math.random(1,#explodecolors)],true,"Custom")
724
			fi.CFrame = v[2].CFrame * CFrame.new(0,-0.3,0)* CFrame.Angles(math.pi,0,0) * CFrame.Angles(math.random(-3,3)/10, math.random(-3,3)/10, math.random(-3,3)/10)
725
			local fmes = Instance.new("SpecialMesh",fi)
726
			fmes.Scale = Vector3.new(0.4,0.5,0.4)
727
			fmes.MeshId = "http://www.roblox.com/asset/?id=20329976"
728
			local c, c2 = sp.CFrame, fi.CFrame
729
			coroutine.resume(coroutine.create(function()
730
				for i=0.1, 2, 0.18 do
731
					wait()
732
					sp.CFrame = c * CFrame.new(0,-i*3,0) + Vector3.new(0,i*4,0)
733
					sp.Transparency = i/2.2
734
					fi.Transparency = i/2
735
					fi.CFrame = c2 * CFrame.new(0,i*2,0)
736
					fmes.Scale = Vector3.new(0.4+(i/1.8),0.5+(i/1.8),0.4+(i/1.8))
737
					sme.Scale = Vector3.new(1+(i/1.4),1+(i/1.4),1+(i/1.4))
738
				end
739
				sp:remove()
740
				fi:remove()
741
			end))
742
		end
743
	end
744
end
745
746
fly = function()
747
	if Flying == false and JetsOn == false and Energy >= EnergyCost then
748
	bv.Parent = torso
749
	Flying = true
750
	coroutine.resume(coroutine.create(function()
751
	smokejet(Jets, Flying)
752
	end))
753
	flys:play()
754
	Speed = MinSpeed
755
	while jethold do
756
		if Energy <= 0 then break end
757
		if Speed < MaxSpeed then
758
			Speed = Speed + SpeedIncrease
759
		else Speed = MaxSpeed end
760
		local cf = Jets[1][3].CFrame * CFrame.Angles(math.pi/2,0,0)
761
		bv.velocity = cf.lookVector * Speed
762
		Energy = Energy - EnergyCost
763
		wait()
764
		bv.velocity = Vector3.new(0,0,0)
765
	end
766
	local ha = math.random(1,2) if ha == 1 then flys:stop() else flys:pause() end
767
	bv.Parent = nil
768
	bv.velocity = Vector3.new(0,0,0)
769
	Speed = MinSpeed
770
	wait(0.3)
771
	Flying = false
772
	end
773
end
774
775
fire = function(mousepos, pos, target)
776
777
	local moda = mode
778
	
779
	if Energy >= moda[7] then
780
	Energy = Energy - moda[7]
781
	coroutine.resume(coroutine.create(effect))
782
	local hitable = true
783
	local pewm = Instance.new("Part")
784
	prop( pewm, nil, false, 0, 0, 0.4, 0.4, 0.7, "Medium grey", false, "Custom" )
785
	Instance.new("SpecialMesh",pewm).MeshType = "Sphere"
786
787
	local projectile = Instance.new("Part")
788
	prop( projectile, workspace, false, 0, 0, 0.3, 0.3, 1.3, "Bright red", false, "Custom" )
789
	Instance.new("SpecialMesh",projectile).MeshType = "Sphere"
790
791
	local wi = Instance.new("Weld")
792
	weld(wi,projectile,nil,0,0,0,0,0,-0.4)
793
794
	local swo = swoosh:clone()
795
	swo.Parent = projectile
796
	swo:play()
797
	local bv = nil
798
	local sped = 0
799
800
	coroutine.resume(coroutine.create(function() wait(0.8) smoke(projectile) end))
801
	coroutine.resume(coroutine.create(function() wait(7) if projectile.Parent ~= nil then coroutine.resume(coroutine.create(function() explode(projectile, swo, moda) end)) projectile:remove() end end))
802
	coroutine.resume(coroutine.create(movearm))
803
	coroutine.resume(coroutine.create(function()
804
		repeat wait() until bv ~= nil
805
		if moda[1] == "Accelerate" then
806
			for i = moda[5], acceleratemax, accelerateincrease do
807
				sped = i
808
				wait()
809
			end
810
		else
811
			sped = moda[5]
812
		end
813
	end))
814
	projectile.Touched:connect(function(hit)
815
		if hit.CanCollide == true and hit:GetMass() >= 3.5 and hitable then
816
			coroutine.resume(coroutine.create(function() hitable = false explode(projectile, swo, moda) end))
817
			projectile:remove()
818
		end
819
	end)
820
	projectile.CFrame = pos * CFrame.new(0,0,-1)
821
	pewm.Parent = projectile
822
	pewm.CFrame = projectile.CFrame
823
	wi.Part1 = pewm
824
	local bg = Instance.new("BodyGyro")
825
	bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
826
	bg.P = moda[3]
827
	bg.Parent = projectile
828
	bg.cframe = CFrame.new(projectile.Position, projectile.CFrame * CFrame.new(0,0,-10).p)
829
	bv = Instance.new("BodyVelocity")
830
	bv.maxForce = Vector3.new(math.huge,math.huge,math.huge)
831
	bv.velocity = projectile.CFrame.lookVector * sped
832
	bv.Parent = projectile
833
	if target ~= nil then
834
		local lolpos = target.CFrame:pointToObjectSpace(mousepos)
835
		repeat
836
			wait()
837
			bg.cframe = CFrame.new(projectile.Position, target.CFrame * CFrame.new(lolpos).p)
838
			bv.velocity = projectile.CFrame.lookVector * sped
839
		until (projectile.Position - target.CFrame * CFrame.new(lolpos).p).magnitude < 2
840
		if hitable then
841
			hitable = false
842
			coroutine.resume(coroutine.create(function() explode(projectile, swo, moda) end))
843
			projectile:remove()
844
		end
845
	else
846
		local lolaha = mousepos
847
		projectile.CFrame = CFrame.new(pos.p, mousepos)
848
		repeat
849
			wait()
850
			bv.velocity = projectile.CFrame.lookVector * sped
851
			bg.cframe = CFrame.new(projectile.Position, lolaha)
852
		until projectile.Parent == nil
853
	end
854
	end
855
end
856
857
858
859
bin = Instance.new("HopperBin",game.Players.LocalPlayer.Backpack)
860
bin.Name = "Mini Rocket Launcher"
861
862
function select(mouse)
863
	selectmotion()
864
	mouse.Icon = "http://www.roblox.com/asset/?id=45117007"
865
	sel = true
866
	coroutine.resume(coroutine.create(function()
867
		for i=1,4 do
868
			bg.Parent = nil
869
			wait()
870
			bg.Parent = torso
871
		end
872
	end))
873
	coroutine.resume(coroutine.create(function()
874
		while sel do 
875
			local po = torso.Position+Vector3.new(0,0.85,0)
876
			local offset=(po.Y-mouse.Hit.p.Y)/60 
877
			local mag=(po-mouse.Hit.p).magnitude/80 
878
			offset=offset/mag 
879
			torso.Neck.C0 = necko * CFrame.Angles(offset,0,0) 
880
			rw.C0 = rightbattle * CFrame.Angles(-offset, 0,0) 
881
			lw.C0 = leftbattle * CFrame.Angles(-offset,0,0) 
882
			for i,v in pairs(Jets) do
883
				v[1].C0 = CFrame.Angles(offset,0,0) 
884
			end
885
			bg.cframe = GetCF(torso.Position, mouse.Hit.p)
886
			wait() 
887
		end --Fenrier was here o3o
888
		rw.C0 = rightbattle
889
		lw.C0 = leftbattle
890
		torso.Neck.C0 = necko
891
	end))
892
	mouse.Button1Down:connect(function()
893
		hold = true
894
		while hold do
895
			coroutine.resume(coroutine.create(function() fire(mouse.Hit.p, tube.CFrame, mouse.Target) end))
896
			for i=0,mode[6],0.03 do
897
				if hold == false then break end
898
				wait()
899
			end
900
		end
901
	end)
902
	mouse.Button1Up:connect(function() hold = false end)
903
	mouse.KeyDown:connect(function(key)
904
		key = key:lower()
905
		if key == "e" then
906
			order = order + 1
907
			if order > #modes then
908
				order = 1
909
			end
910
			mode = modes[order]
911
			txt.Text = mode[1]
912
		elseif key == "q" then
913
			order = order - 1
914
			if order < 1 then
915
				order = #modes
916
			end
917
			mode = modes[order]
918
			txt.Text = mode[1]
919
		elseif key == string.char(48) then
920
			jethold = true
921
			fly()
922
		end
923
	end)
924
	mouse.KeyUp:connect(function(key)
925
		key = key:lower()
926
		if key == string.char(48) then
927
			jethold = false
928
		end
929
	end)
930
end
931
932
function desel()
933
	sel = false
934
	bg.Parent = nil
935
	deselmotion()
936
end
937
938
bin.Selected:connect(select)
939
bin.Deselected:connect(desel)