Advertisement
igdegoo

really cool rocket launcher

Jul 18th, 2018
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.36 KB | None | 0 0
  1.  
  2. --Converted with ttyyuu12345's model to script plugin v4
  3. function sandbox(var,func)
  4. local env = getfenv(func)
  5. local newenv = setmetatable({},{
  6. __index = function(self,k)
  7. if k=="script" then
  8. return var
  9. else
  10. return env[k]
  11. end
  12. end,
  13. })
  14. setfenv(func,newenv)
  15. return func
  16. end
  17. cors = {}
  18. mas = Instance.new("Model",game:GetService("Lighting"))
  19. Tool0 = Instance.new("Tool")
  20. Part1 = Instance.new("Part")
  21. SpecialMesh2 = Instance.new("SpecialMesh")
  22. Script3 = Instance.new("Script")
  23. Sound4 = Instance.new("Sound")
  24. Sound5 = Instance.new("Sound")
  25. Script6 = Instance.new("Script")
  26. LocalScript7 = Instance.new("LocalScript")
  27. Configuration8 = Instance.new("Configuration")
  28. NumberValue9 = Instance.new("NumberValue")
  29. IntValue10 = Instance.new("IntValue")
  30. NumberValue11 = Instance.new("NumberValue")
  31. IntValue12 = Instance.new("IntValue")
  32. IntValue13 = Instance.new("IntValue")
  33. IntValue14 = Instance.new("IntValue")
  34. Tool0.Name = "RocketLauncher"
  35. Tool0.Parent = mas
  36. Tool0.TextureId = "http://www.roblox.com/asset/?id=90021376"
  37. Tool0.GripForward = Vector3.new(1, -0, -0)
  38. Tool0.GripPos = Vector3.new(0.699999988, 0, -0.5)
  39. Tool0.GripRight = Vector3.new(0, -1, 0)
  40. Tool0.GripUp = Vector3.new(0, 0, 1)
  41. Tool0.CanBeDropped = false
  42. Part1.Name = "Handle"
  43. Part1.Parent = Tool0
  44. Part1.Rotation = Vector3.new(-114.07, -14.1599998, 10.2299995)
  45. Part1.CanCollide = false
  46. Part1.FormFactor = Enum.FormFactor.Custom
  47. Part1.Size = Vector3.new(4.92000628, 0.740000546, 0.839999795)
  48. Part1.CFrame = CFrame.new(2.58627033, 1.04310119, 1.80223536, 0.954189599, -0.172256514, -0.244642451, 0.147373959, -0.441000789, 0.885324597, -0.260390431, -0.880821466, -0.395412236)
  49. Part1.BottomSurface = Enum.SurfaceType.Smooth
  50. Part1.TopSurface = Enum.SurfaceType.Smooth
  51. Part1.Position = Vector3.new(2.58627033, 1.04310119, 1.80223536)
  52. Part1.Orientation = Vector3.new(-62.2899971, -148.25, 161.519989)
  53. SpecialMesh2.Parent = Part1
  54. SpecialMesh2.MeshId = "rbxasset://fonts/rocketlauncher.mesh"
  55. SpecialMesh2.Scale = Vector3.new(0.75, 0.75, 0.75)
  56. SpecialMesh2.TextureId = "rbxasset://textures/rocketlaunchertex.png"
  57. SpecialMesh2.MeshType = Enum.MeshType.FileMesh
  58. SpecialMesh2.Scale = Vector3.new(0.75, 0.75, 0.75)
  59. Script3.Parent = Tool0
  60. table.insert(cors,sandbox(Script3,function()
  61. local tool = script.Parent
  62. local canFire = true
  63. local gunWeld
  64.  
  65. -----------------
  66. --| Constants |--
  67. -----------------
  68.  
  69. local GRAVITY_ACCELERATION = 196.2
  70.  
  71. local RELOAD_TIME = tool.Configurations.ReloadTime.Value -- Seconds until tool can be used again
  72. local ROCKET_SPEED = tool.Configurations.RocketSpeed.Value -- Speed of the projectile
  73.  
  74. local MISSILE_MESH_ID = 'http://www.roblox.com/asset/?id=2251534'
  75. local MISSILE_MESH_SCALE = Vector3.new(0.35, 0.35, 0.25)
  76. local ROCKET_PART_SIZE = Vector3.new(1.2, 1.2, 3.27)
  77.  
  78. local RocketScript = script:WaitForChild('Rocket')
  79. local SwooshSound = script:WaitForChild('Swoosh')
  80. local BoomSound = script:WaitForChild('Boom')
  81.  
  82. local attackCooldown = tool.Configurations.AttackCooldown.Value
  83. local damage = tool.Configurations.Damage.Value
  84. local reloadTime = tool.Configurations.ReloadTime.Value
  85.  
  86. local function createEvent(eventName)
  87. local event = game.ReplicatedStorage:FindFirstChild(eventName)
  88. if not event then
  89. event = Instance.new("RemoteEvent", game.ReplicatedStorage)
  90. event.Name = eventName
  91. end
  92. return event
  93. end
  94.  
  95. local updateEvent = createEvent("ROBLOX_RocketUpdateEvent")
  96. local equipEvent = createEvent("ROBLOX_RocketEquipEvent")
  97. local unequipEvent = createEvent("ROBLOX_RocketUnequipEvent")
  98. local fireEvent = createEvent("ROBLOX_RocketFireEvent")
  99.  
  100. updateEvent.OnServerEvent:connect(function(player, neckC0, rshoulderC0)
  101. local character = player.Character
  102. character.Torso.Neck.C0 = neckC0
  103. character.Torso:FindFirstChild("Right Shoulder").C0 = rshoulderC0
  104. gunWeld = character:FindFirstChild("Right Arm"):WaitForChild("RightGrip")
  105. end)
  106.  
  107. equipEvent.OnServerEvent:connect(function(player)
  108. player.Character.Humanoid.AutoRotate = false
  109. end)
  110.  
  111. unequipEvent.OnServerEvent:connect(function(player)
  112. player.Character.Humanoid.AutoRotate = true
  113. end)
  114.  
  115. --NOTE: We create the rocket once and then clone it when the player fires
  116. local Rocket = Instance.new('Part') do
  117. -- Set up the rocket part
  118. Rocket.Name = 'Rocket'
  119. Rocket.FormFactor = Enum.FormFactor.Custom --NOTE: This must be done before changing Size
  120. Rocket.Size = ROCKET_PART_SIZE
  121. Rocket.CanCollide = false
  122.  
  123. -- Add the mesh
  124. local mesh = Instance.new('SpecialMesh', Rocket)
  125. mesh.MeshId = MISSILE_MESH_ID
  126. mesh.Scale = MISSILE_MESH_SCALE
  127.  
  128. -- Add fire
  129. local fire = Instance.new('Fire', Rocket)
  130. fire.Heat = 5
  131. fire.Size = 2
  132.  
  133. -- Add a force to counteract gravity
  134. local bodyForce = Instance.new('BodyForce', Rocket)
  135. bodyForce.Name = 'Antigravity'
  136. bodyForce.force = Vector3.new(0, Rocket:GetMass() * GRAVITY_ACCELERATION, 0)
  137.  
  138. -- Clone the sounds and set Boom to PlayOnRemove
  139. local swooshSoundClone = SwooshSound:Clone()
  140. swooshSoundClone.Parent = Rocket
  141. local boomSoundClone = BoomSound:Clone()
  142. boomSoundClone.PlayOnRemove = true
  143. boomSoundClone.Parent = Rocket
  144.  
  145. -- Finally, clone the rocket script and enable it
  146. -- local rocketScriptClone = RocketScript:Clone()
  147. -- rocketScriptClone.Parent = Rocket
  148. -- rocketScriptClone.Disabled = false
  149. end
  150.  
  151.  
  152. fireEvent.OnServerEvent:connect(function(player, target)
  153. if canFire and player.Character == tool.Parent then
  154. canFire = false
  155.  
  156. -- Create a clone of Rocket and set its color
  157. local rocketClone = Rocket:Clone()
  158. --game.Debris:AddItem(rocketClone, 30)
  159. rocketClone.BrickColor = player.TeamColor
  160. rocketClone.Touched:connect(function(hit)
  161. if hit and hit.Parent and hit.Parent ~= player.Character and hit.Parent ~= tool then
  162. local explosion = Instance.new("Explosion", game.Workspace)
  163. explosion.BlastRadius = 100
  164. explosion.BlastPressure = 1000000
  165. explosion.Position = rocketClone.Position
  166. explosion.Hit:connect(function(Part, Distance)
  167. Part.Anchored = false
  168. if Distance <= 200 then
  169. Part:BreakJoints()
  170. end
  171. end)
  172. rocketClone:Destroy()
  173. end
  174. end)
  175.  
  176. spawn(function()
  177. wait(30)
  178. if rocketClone then rocketClone:Destroy() end
  179. end)
  180.  
  181. -- Position the rocket clone and launch!
  182. local spawnPosition = (tool.Handle.CFrame * CFrame.new(2, 0, 0)).p
  183. rocketClone.CFrame = CFrame.new(spawnPosition, target) --NOTE: This must be done before assigning Parent
  184. rocketClone.Velocity = rocketClone.CFrame.lookVector * ROCKET_SPEED --NOTE: This should be done before assigning Parent
  185. rocketClone.Parent = game.Workspace
  186.  
  187. -- Attach creator tags to the rocket early on
  188. local creatorTag = Instance.new('ObjectValue', rocketClone)
  189. creatorTag.Value = player
  190. creatorTag.Name = 'creator' --NOTE: Must be called 'creator' for website stats
  191. local iconTag = Instance.new('StringValue', creatorTag)
  192. iconTag.Value = tool.TextureId
  193. iconTag.Name = 'icon'
  194.  
  195. delay(attackCooldown, function()
  196. canFire = true
  197. end)
  198. end
  199. end)
  200. end))
  201. Sound4.Name = "Boom"
  202. Sound4.Parent = Script3
  203. Sound4.SoundId = "rbxassetid://919941001"
  204. Sound4.Volume = 1
  205. Sound5.Name = "Swoosh"
  206. Sound5.Parent = Script3
  207. Sound5.SoundId = "rbxasset://sounds/Rocket whoosh 01.wav"
  208. Sound5.Volume = 0.69999998807907
  209. Sound5.Looped = true
  210. Script6.Name = "Rocket"
  211. Script6.Parent = Script3
  212. table.insert(cors,sandbox(Script6,function()
  213. -----------------
  214. --| Constants |--
  215. -----------------
  216. local BLAST_RADIUS = script.Parent.Parent.Configurations.BlastRadius.Value -- Blast radius of the explosion
  217. local BLAST_DAMAGE = script.Parent.Parent.Configurations.Damage.Value -- Amount of damage done to players
  218. local BLAST_FORCE = script.Parent.Parent.Configurations.BlastForce.Value -- Amount of force applied to parts
  219.  
  220. local IGNORE_LIST = {rocket = 1, handle = 1, effect = 1, water = 1} -- Rocket will fly through things named these
  221. --NOTE: Keys must be lowercase, values must evaluate to true
  222.  
  223. -----------------
  224. --| Variables |--
  225. -----------------
  226.  
  227. local DebrisService = game:GetService('Debris')
  228. local PlayersService = game:GetService('Players')
  229.  
  230. local Rocket = script.Parent
  231.  
  232. local CreatorTag = Rocket:WaitForChild('creator')
  233. local SwooshSound = Rocket:WaitForChild('Swoosh')
  234.  
  235. -----------------
  236. --| Functions |--
  237. -----------------
  238.  
  239. -- Removes any old creator tags and applies a new one to the target
  240. local function ApplyTags(target)
  241. while target:FindFirstChild('creator') do
  242. target.creator:Destroy()
  243. end
  244.  
  245. local creatorTagClone = CreatorTag:Clone()
  246. DebrisService:AddItem(creatorTagClone, 1.5)
  247. creatorTagClone.Parent = target
  248. end
  249.  
  250. -- Returns the ancestor that contains a Humanoid, if it exists
  251. local function FindCharacterAncestor(subject)
  252. if subject and subject ~= game.Workspace then
  253. local humanoid = subject:FindFirstChild('Humanoid')
  254. if humanoid then
  255. return subject, humanoid
  256. else
  257. return FindCharacterAncestor(subject.Parent)
  258. end
  259. end
  260. return nil
  261. end
  262.  
  263. -- Customized explosive effect that doesn't affect teammates and only breaks joints on dead parts
  264. local function OnExplosionHit(hitPart, hitDistance, blastCenter)
  265. if hitPart and hitDistance then
  266. local character, humanoid = FindCharacterAncestor(hitPart.Parent)
  267.  
  268. if character then
  269. local myPlayer = CreatorTag.Value
  270. if myPlayer and not myPlayer.Neutral then -- Ignore friendlies caught in the blast
  271. local player = PlayersService:GetPlayerFromCharacter(character)
  272. if player and player ~= myPlayer and player.TeamColor == Rocket.BrickColor then
  273. return
  274. end
  275. end
  276. end
  277.  
  278. if humanoid and humanoid.Health > 0 then -- Humanoids are tagged and damaged
  279. if hitPart.Name == 'Torso' then
  280. ApplyTags(humanoid)
  281. humanoid:TakeDamage(BLAST_DAMAGE)
  282. end
  283. else -- Loose parts and dead parts are blasted
  284. if hitPart.Name ~= 'Handle' then
  285. hitPart:BreakJoints()
  286. local blastForce = Instance.new('BodyForce', hitPart) --NOTE: We will multiply by mass so bigger parts get blasted more
  287. blastForce.force = (hitPart.Position - blastCenter).unit * BLAST_FORCE * hitPart:GetMass()
  288. DebrisService:AddItem(blastForce, 0.1)
  289. end
  290. end
  291. end
  292. end
  293.  
  294. local function OnTouched(otherPart)
  295. if Rocket and otherPart then
  296. -- Fly through anything in the ignore list
  297. if IGNORE_LIST[string.lower(otherPart.Name)] then
  298. return
  299. end
  300.  
  301. local myPlayer = CreatorTag.Value
  302. if myPlayer then
  303. -- Fly through the creator
  304. if myPlayer.Character and myPlayer.Character:IsAncestorOf(otherPart) then
  305. return
  306. end
  307.  
  308. -- Fly through friendlies
  309. if not myPlayer.Neutral then
  310. local character = FindCharacterAncestor(otherPart.Parent)
  311. local player = PlayersService:GetPlayerFromCharacter(character)
  312. if player and player ~= myPlayer and player.TeamColor == Rocket.BrickColor then
  313. return
  314. end
  315. end
  316. end
  317.  
  318. -- Fly through terrain water
  319. if otherPart == game.Workspace.Terrain then
  320. --NOTE: If the rocket is large, then the simplifications made here will cause it to fly through terrain in some cases
  321. local frontOfRocket = Rocket.Position + (Rocket.CFrame.lookVector * (Rocket.Size.Z / 2))
  322. local cellLocation = game.Workspace.Terrain:WorldToCellPreferSolid(frontOfRocket)
  323. local cellMaterial = game.Workspace.Terrain:GetCell(cellLocation.X, cellLocation.Y, cellLocation.Z)
  324. if cellMaterial == Enum.CellMaterial.Water or cellMaterial == Enum.CellMaterial.Empty then
  325. return
  326. end
  327. end
  328.  
  329. -- Create the explosion
  330. local explosion = Instance.new('Explosion')
  331. explosion.BlastPressure = 0 -- Completely safe explosion
  332. explosion.BlastRadius = BLAST_RADIUS
  333. explosion.ExplosionType = Enum.ExplosionType.NoCraters
  334. explosion.Position = Rocket.Position
  335. explosion.Parent = game.Workspace
  336.  
  337. -- Connect custom logic for the explosion
  338. explosion.Hit:connect(function(hitPart, hitDistance) OnExplosionHit(hitPart, hitDistance, explosion.Position) end)
  339.  
  340. -- Move this script and the creator tag (so our custom logic can execute), then destroy the rocket
  341. script.Parent = explosion
  342. CreatorTag.Parent = script
  343. Rocket:Destroy()
  344. end
  345. end
  346.  
  347. --------------------
  348. --| Script Logic |--
  349. --------------------
  350.  
  351. SwooshSound:Play()
  352.  
  353. Rocket.Touched:connect(OnTouched)
  354.  
  355. end))
  356. LocalScript7.Parent = Tool0
  357. table.insert(cors,sandbox(LocalScript7,function()
  358. -- Variables for services
  359. local render = game:GetService("RunService").RenderStepped
  360. local contextActionService = game:GetService("ContextActionService")
  361. local userInputService = game:GetService("UserInputService")
  362.  
  363. local player = game.Players.LocalPlayer
  364. local mouse = player:GetMouse()
  365. local Tool = script.Parent
  366.  
  367. -- Variables for Module Scripts
  368. local screenSpace = require(Tool:WaitForChild("ScreenSpace"))
  369.  
  370. local connection
  371.  
  372. local neck, shoulder, oldNeckC0, oldShoulderC0
  373.  
  374. local mobileShouldTrack = true
  375.  
  376. -- Thourough check to see if a character is sitting
  377. local function amISitting(character)
  378. local t = character.Torso
  379. for _, part in pairs(t:GetConnectedParts(true)) do
  380. if part:IsA("Seat") or part:IsA("VehicleSeat") then
  381. return true
  382. end
  383. end
  384. end
  385.  
  386. -- Function to call on renderstepped. Orients the character so it is facing towards
  387. -- the player mouse's position in world space. If character is sitting then the torso
  388. -- should not track
  389. local function frame(mousePosition)
  390. -- Special mobile consideration. We don't want to track if the user was touching a ui
  391. -- element such as the movement controls. Just return out of function if so to make sure
  392. -- character doesn't track
  393. if not mobileShouldTrack then return end
  394.  
  395. -- Make sure character isn't swiming. If the character is swimming the following code will
  396. -- not work well; the character will not swim correctly. Besides, who shoots underwater?
  397. if player.Character.Humanoid:GetState() ~= Enum.HumanoidStateType.Swimming then
  398. local torso = player.Character.Torso
  399. local head = player.Character.Head
  400.  
  401. local toMouse = (mousePosition - head.Position).unit
  402. local angle = math.acos(toMouse:Dot(Vector3.new(0,1,0)))
  403.  
  404. local neckAngle = angle
  405.  
  406. -- Limit how much the head can tilt down. Too far and the head looks unnatural
  407. if math.deg(neckAngle) > 110 then
  408. neckAngle = math.rad(110)
  409. end
  410. neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.pi - neckAngle,math.pi,0)
  411.  
  412. -- Calculate horizontal rotation
  413. local arm = player.Character:FindFirstChild("Right Arm")
  414. local fromArmPos = torso.Position + torso.CFrame:vectorToWorldSpace(Vector3.new(
  415. torso.Size.X/2 + arm.Size.X/2, torso.Size.Y/2 - arm.Size.Z/2, 0))
  416. local toMouseArm = ((mousePosition - fromArmPos) * Vector3.new(1,0,1)).unit
  417. local look = (torso.CFrame.lookVector * Vector3.new(1,0,1)).unit
  418. local lateralAngle = math.acos(toMouseArm:Dot(look))
  419.  
  420. -- Check for rogue math
  421. if tostring(lateralAngle) == "-1.#IND" then
  422. lateralAngle = 0
  423. end
  424.  
  425. -- Handle case where character is sitting down
  426. if player.Character.Humanoid:GetState() == Enum.HumanoidStateType.Seated then
  427.  
  428. local cross = torso.CFrame.lookVector:Cross(toMouseArm)
  429. if lateralAngle > math.pi/2 then
  430. lateralAngle = math.pi/2
  431. end
  432. if cross.Y < 0 then
  433. lateralAngle = -lateralAngle
  434. end
  435. end
  436.  
  437. -- Turn shoulder to point to mouse
  438. shoulder.C0 = CFrame.new(1,0.5,0) * CFrame.Angles(math.pi/2 - angle,math.pi/2 + lateralAngle,0)
  439.  
  440. -- If not sitting then aim torso laterally towards mouse
  441. if not amISitting(player.Character) then
  442. torso.CFrame = CFrame.new(torso.Position, torso.Position + (Vector3.new(
  443. mousePosition.X, torso.Position.Y, mousePosition.Z)-torso.Position).unit)
  444. end
  445. end
  446. end
  447.  
  448. -- Function to bind to render stepped if player is on PC
  449. local function pcFrame()
  450. frame(mouse.Hit.p)
  451. end
  452.  
  453. -- Function to bind to touch moved if player is on mobile
  454. local function mobileFrame(touch, processed)
  455. -- Check to see if the touch was on a UI element. If so, we don't want to update anything
  456. if not processed then
  457. -- Calculate touch position in world space. Uses Stravant's ScreenSpace Module script
  458. -- to create a ray from the camera.
  459. local test = screenSpace.ScreenToWorld(touch.Position.X, touch.Position.Y, 1)
  460. local nearPos = game.Workspace.CurrentCamera.CoordinateFrame:vectorToWorldSpace(screenSpace.ScreenToWorld(touch.Position.X, touch.Position.Y, 1))
  461. nearPos = game.Workspace.CurrentCamera.CoordinateFrame.p - nearPos
  462. local farPos = screenSpace.ScreenToWorld(touch.Position.X, touch.Position.Y,50)
  463. farPos = game.Workspace.CurrentCamera.CoordinateFrame:vectorToWorldSpace(farPos) * -1
  464. if farPos.magnitude > 900 then
  465. farPos = farPos.unit * 900
  466. end
  467. local ray = Ray.new(nearPos, farPos)
  468. local part, pos = game.Workspace:FindPartOnRay(ray, player.Character)
  469.  
  470. -- if a position was found on the ray then update the character's rotation
  471. if pos then
  472. frame(pos)
  473. end
  474. end
  475. end
  476.  
  477. local function OnActivated()
  478. local myModel = player.Character
  479. if Tool.Enabled and myModel and myModel:FindFirstChild('Humanoid') and myModel.Humanoid.Health > 0 then
  480. Tool.Enabled = false
  481. game.ReplicatedStorage.ROBLOX_RocketFireEvent:FireServer(mouse.Hit.p)
  482. wait(2)
  483.  
  484. Tool.Enabled = true
  485. end
  486. end
  487.  
  488. local oldIcon = nil
  489. -- Function to bind to equip event
  490. local function equip()
  491. local torso = player.Character.Torso
  492.  
  493. -- Setup joint variables
  494. neck = torso.Neck
  495. oldNeckC0 = neck.C0
  496. shoulder = torso:FindFirstChild("Right Shoulder")
  497. oldShoulderC0 = shoulder.C0
  498.  
  499. -- Remember old mouse icon and update current
  500. oldIcon = mouse.Icon
  501. mouse.Icon = "http://www.roblox.com/asset/?id=79658449"
  502.  
  503. -- Bind TouchMoved event if on mobile. Otherwise connect to renderstepped
  504. if userInputService.TouchEnabled then
  505. connection = userInputService.TouchMoved:connect(mobileFrame)
  506. else
  507. connection = render:connect(pcFrame)
  508. end
  509.  
  510. -- Bind TouchStarted and TouchEnded. Used to determine if character should rotate
  511. -- during touch input
  512. userInputService.TouchStarted:connect(function(touch, processed)
  513. mobileShouldTrack = not processed
  514. end)
  515. userInputService.TouchEnded:connect(function(touch, processed)
  516. mobileShouldTrack = false
  517. end)
  518.  
  519. -- If game uses filtering enabled then need to update server while tool is
  520. -- held by character.
  521. if workspace.FilteringEnabled then
  522. while connection and connection.Connected do
  523. wait()
  524. game.ReplicatedStorage.ROBLOX_RocketUpdateEvent:FireServer(neck.C0, shoulder.C0)
  525. end
  526. end
  527. end
  528.  
  529. -- Function to bind to Unequip event
  530. local function unequip()
  531. if connection then connection:disconnect() end
  532.  
  533. mouse.Icon = oldIcon
  534.  
  535. neck.C0 = oldNeckC0
  536. shoulder.C0 = oldShoulderC0
  537. end
  538.  
  539. -- Bind tool events
  540. Tool.Equipped:connect(equip)
  541. Tool.Unequipped:connect(unequip)
  542. Tool.Activated:connect(OnActivated)
  543. end))
  544. Configuration8.Name = "Configurations"
  545. Configuration8.Parent = Tool0
  546. NumberValue9.Name = "AttackCooldown"
  547. NumberValue9.Parent = Configuration8
  548. NumberValue9.Value = 3
  549. IntValue10.Name = "Damage"
  550. IntValue10.Parent = Configuration8
  551. IntValue10.Value = 60
  552. NumberValue11.Name = "ReloadTime"
  553. NumberValue11.Parent = Configuration8
  554. NumberValue11.Value = 1
  555. IntValue12.Name = "BlastForce"
  556. IntValue12.Parent = Configuration8
  557. IntValue12.Value = 1000
  558. IntValue13.Name = "BlastRadius"
  559. IntValue13.Parent = Configuration8
  560. IntValue13.Value = 8
  561. IntValue14.Name = "RocketSpeed"
  562. IntValue14.Parent = Configuration8
  563. IntValue14.Value = 60
  564. for i,v in pairs(mas:GetChildren()) do
  565. v.Parent = game:GetService("Players").LocalPlayer.Backpack
  566. pcall(function() v:MakeJoints() end)
  567. end
  568. mas:Destroy()
  569. for i,v in pairs(cors) do
  570. spawn(function()
  571. pcall(v)
  572. end)
  573. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement