Classic roblox rocket launcher kills you

  1. Make it so the classic roblox rocket launcher does not kill yourself.

  2. It kills other players including the local player.

  3. I have tried using if statements for when the rocket is shot it will make you immune but that did not work.

I’m curious if there is a wiki post on this because I cannot figure this out and idk what the issue is. I have been playing around with the classic roblox rocket launcher for the past few hours.

Can you give us the code for the rocket launcher? old ROBLOX tools are prone to breaking and having the code would help people unlegacy it

2 Likes

Im sorry I forgot to send the code lol.

-----------------
--| Constants |--
-----------------

local GRAVITY_ACCELERATION = workspace.Gravity

local RELOAD_TIME = 3 -- Seconds until tool can be used again
local ROCKET_SPEED = 100 -- Speed of the projectile

local MISSILE_MESH_ID = 'http://www.roblox.com/asset/?id=2251534'
local MISSILE_MESH_SCALE = Vector3.new(0.35, 0.35, 0.25)
local ROCKET_PART_SIZE = Vector3.new(1.2, 1.2, 3.27)

-----------------
--| Variables |--
-----------------

local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')

local MyPlayer

local Tool = script.Parent
local ToolHandle = Tool:WaitForChild("Handle")

local MouseLoc = Tool:WaitForChild("MouseLoc",10)

local RocketScript = script:WaitForChild('Rocket')
local SwooshSound = script:WaitForChild('Swoosh')
local BoomSound = script:WaitForChild('Boom')

--NOTE: We create the rocket once and then clone it when the player fires
local Rocket = Instance.new('Part') do
   -- Set up the rocket part
   Rocket.Name = 'Rocket'
   Rocket.FormFactor = Enum.FormFactor.Custom --NOTE: This must be done before changing Size
   Rocket.Size = ROCKET_PART_SIZE
   Rocket.CanCollide = false

   -- Add the mesh
   local mesh = Instance.new('SpecialMesh', Rocket)
   mesh.MeshId = MISSILE_MESH_ID
   mesh.Scale = MISSILE_MESH_SCALE

   -- Add fire
   local fire = Instance.new('Fire', Rocket)
   fire.Heat = 5
   fire.Size = 2

   -- Add a force to counteract gravity
   local bodyForce = Instance.new('BodyForce', Rocket)
   bodyForce.Name = 'Antigravity'
   bodyForce.Force = Vector3.new(0, Rocket:GetMass() * GRAVITY_ACCELERATION, 0)

   -- Clone the sounds and set Boom to PlayOnRemove
   local swooshSoundClone = SwooshSound:Clone()
   swooshSoundClone.Parent = Rocket
   local boomSoundClone = BoomSound:Clone()
   boomSoundClone.PlayOnRemove = true
   boomSoundClone.Parent = Rocket

   -- Attach creator tags to the rocket early on
   local creatorTag = Instance.new('ObjectValue', Rocket)
   creatorTag.Value = MyPlayer
   creatorTag.Name = 'creator' --NOTE: Must be called 'creator' for website stats
   local iconTag = Instance.new('StringValue', creatorTag)
   iconTag.Value = Tool.TextureId
   iconTag.Name = 'icon'

   -- Finally, clone the rocket script and enable it
   local rocketScriptClone = RocketScript:Clone()
   rocketScriptClone.Parent = Rocket
   rocketScriptClone.Disabled = false
end

-----------------
--| Functions |--
-----------------

local function OnActivated()
   local myModel = MyPlayer.Character
   if Tool.Enabled and myModel and myModel:FindFirstChildOfClass("Humanoid") and myModel.Humanoid.Health > 0 then
   	Tool.Enabled = false
   	local Pos = MouseLoc:InvokeClient(MyPlayer)
   	-- Create a clone of Rocket and set its color
   	local rocketClone = Rocket:Clone()
   	DebrisService:AddItem(rocketClone, 30)
   	rocketClone.BrickColor = MyPlayer.TeamColor

   	-- Position the rocket clone and launch!
   	local spawnPosition = (ToolHandle.CFrame * CFrame.new(5, 0, 0)).p
   	rocketClone.CFrame = CFrame.new(spawnPosition, Pos) --NOTE: This must be done before assigning Parent
   	rocketClone.Velocity = rocketClone.CFrame.lookVector * ROCKET_SPEED --NOTE: This should be done before assigning Parent
   	rocketClone.Parent = workspace
   	rocketClone:SetNetworkOwner(nil)

   	wait(RELOAD_TIME)

   	Tool.Enabled = true
   end
end

function OnEquipped()
   MyPlayer = PlayersService:GetPlayerFromCharacter(Tool.Parent)
end

--------------------
--| Script Logic |--
--------------------

Tool.Equipped:Connect(OnEquipped)
Tool.Activated:Connect(OnActivated)
1 Like

i figured it out! Do not worry.

1 Like

Would you care to share your discovery?
Perhaps its in the code your added but its is not obvious what you may have changed.
If you did that please edit it and indicate where you changed it.

6 Likes

Can you please enlighten everyone how you did it?

3 Likes

Dude can you tell us how to do it don’t just disappear!

nah man he just left… i really needed this solution

Hey, I have found a solution. First of all go to Server Script called “Server” and change the code to the one below. Problem was that “creator” value was receiving nil instead of the actual player name.

-----------------
--| Constants |--
-----------------

local GRAVITY_ACCELERATION = workspace.Gravity

local RELOAD_TIME = 3 -- Seconds until tool can be used again
local ROCKET_SPEED = 90 -- Speed of the projectile

local MISSILE_MESH_ID = 'http://www.roblox.com/asset/?id=2251534'
local MISSILE_MESH_SCALE = Vector3.new(0.35, 0.35, 0.25)
local ROCKET_PART_SIZE = Vector3.new(1.2, 1.2, 3.27)

-----------------
--| Variables |--
-----------------

local DebrisService = game:GetService('Debris')
local PlayersService = game:GetService('Players')

local MyPlayer

local Tool = script.Parent
local ToolHandle = Tool:WaitForChild("Handle")

local MouseLoc = Tool:WaitForChild("MouseLoc",10)

local RocketScript = script:WaitForChild('Rocket')
local SwooshSound = script:WaitForChild('Swoosh')
local BoomSound = script:WaitForChild('Boom')

local Rocket = nil

function OnEquipped()
	MyPlayer = PlayersService:GetPlayerFromCharacter(Tool.Parent)

	Rocket = Instance.new('Part') do
		-- Set up the rocket part
		Rocket.Name = 'Rocket'
		Rocket.FormFactor = Enum.FormFactor.Custom --NOTE: This must be done before changing Size
		Rocket.Size = ROCKET_PART_SIZE
		Rocket.CanCollide = false

		-- Add the mesh
		local mesh = Instance.new('SpecialMesh', Rocket)
		mesh.MeshId = MISSILE_MESH_ID
		mesh.Scale = MISSILE_MESH_SCALE

		-- Add fire
		local fire = Instance.new('Fire', Rocket)
		fire.Heat = 5
		fire.Size = 2

		-- Add a force to counteract gravity
		local bodyForce = Instance.new('BodyForce', Rocket)
		bodyForce.Name = 'Antigravity'
		bodyForce.Force = Vector3.new(0, Rocket:GetMass() * GRAVITY_ACCELERATION, 0)

		-- Clone the sounds and set Boom to PlayOnRemove
		local swooshSoundClone = SwooshSound:Clone()
		swooshSoundClone.Parent = Rocket
		local boomSoundClone = BoomSound:Clone()
		boomSoundClone.PlayOnRemove = true
		boomSoundClone.Parent = Rocket

		-- Attach creator tags to the rocket early on
		local creatorTag = Instance.new('ObjectValue', Rocket)
		creatorTag.Value = MyPlayer
		creatorTag.Name = 'creator' --NOTE: Must be called 'creator' for website stats
		local iconTag = Instance.new('StringValue', creatorTag)
		iconTag.Value = Tool.TextureId
		iconTag.Name = 'icon'

		-- Finally, clone the rocket script and enable it
		local rocketScriptClone = RocketScript:Clone()
		rocketScriptClone.Parent = Rocket
		rocketScriptClone.Disabled = false
	end
end

-----------------
--| Functions |--
-----------------

local function OnActivated()
	local myModel = MyPlayer.Character
	if Tool.Enabled and myModel and myModel:FindFirstChildOfClass("Humanoid") and myModel.Humanoid.Health > 0 then
		Tool.Enabled = false
		local Pos = MouseLoc:InvokeClient(MyPlayer)
		-- Create a clone of Rocket and set its color
		local rocketClone = Rocket:Clone()
		DebrisService:AddItem(rocketClone, 30)
		rocketClone.BrickColor = MyPlayer.TeamColor

		-- Position the rocket clone and launch!
		local spawnPosition = (ToolHandle.CFrame * CFrame.new(5, 0, 0)).p
		rocketClone.CFrame = CFrame.new(spawnPosition, Pos) --NOTE: This must be done before assigning Parent
		rocketClone.Velocity = rocketClone.CFrame.lookVector * ROCKET_SPEED --NOTE: This should be done before assigning Parent
		rocketClone.Parent = workspace
		rocketClone:SetNetworkOwner(nil)

		wait(RELOAD_TIME)

		Tool.Enabled = true
	end
end

--------------------
--| Script Logic |--
--------------------

Tool.Equipped:Connect(OnEquipped)
Tool.Activated:Connect(OnActivated)

As well if you want the rocket not only to ignore the character who launched the rocket, but as well not damage him, go to the disabled Server Script called “Rocket” (it is inside the “Server” script) and change

player ~= myPlayer

in the line 71 to:

player == myPlayer
3 Likes