[Solved] Help with a Tornado Tool

So, someone DM me in Discord, and I answered. Him was askin’ me to do a Tornado Tool system, it was simple so I accepted.

I scripted almost everything, did animations but… I don’t know how to do something…

Here is how it is right now:

https://gyazo.com/be9abb03bfba08070e862f4444919aff

Here is the Script:

local Tornado = script.Parent


local Animations = Tornado.Animations

local TornadoIdle = Animations.TornadoIdle

local TornadoUse = Animations.TornadoUse





Debounce = false


local Track01

Tornado.Equipped:Connect(function()
	
	
	Track01 = Tornado.Parent.Humanoid:LoadAnimation(TornadoIdle)
	
	Track01.Looped = true
	
	Track01:Play()
	
	
end)


Tornado.Unequipped:Connect(function()
	
	
	if Track01 then
		
		
		Track01:Stop()
		
		
	end
	
	
end)


local Track02


Tornado.Activated:Connect(function()
	
	
	if Debounce == false then
	
		
		Debounce = true
		
		
		Track02 = Tornado.Parent.Humanoid:LoadAnimation(TornadoUse)
		
		Track02.Looped = false
		
		
		Tornado.Handle.Transparency = 0
		
		
		Track02:Play()
		
		
		wait(1.28)
		
		
		Tornado.Handle.Transparency = 1
		
		
		wait(11.72)
		
		
		Debounce = false
		
		
	end
		
	
end)

I need help with a thing. Him said: ‘tornado that shoots where the mouse is pointing’. I need help just with that, the other things I know how to do.

  • Tsu Washington / SovietFurryBruh.

I think you will need to get the mouse’s position in 3d space , Here’s an article

I’m going to see if I can script it myself

1 Like

Okay, I’ll try to do that. I’ll need to use a LocalScript to fire a event, right?

Yeah, you will need to send the mouse.hit variable over the remote event and then use it to send the tornado in the players mouse direction

1 Like

Okay, thanks for the help buddy.

No problem! Glad to help!
(If you need anymore help just ask)

1 Like

Sooooo, I did what you said. And it kinda works… ‘Kinda’.

https://gyazo.com/d7dd6842de1defd0ba54fb26bd7fc1f9

I did this in the script:

local TornadoClone = Tornado.Handle:Clone()

TornadoClone.Parent = game.Workspace

TornadoClone.Name = 'TornadoHitPart'


local BodyForce = Instance.new('BodyForce', TornadoClone)
		
BodyForce.Force = Vector3.new(MousePos, MousePos, MousePos)

Hmmm So the mousePos is the variable sent over through the remote event?

1 Like

Here is the RemoteEvent script:

local Tornado = script.Parent

local TornadoEvent = Tornado:WaitForChild('TornadoEvent')


local Player = game:GetService('Players').LocalPlayer

local Mouse = Player:GetMouse()


Tornado.Activated:Connect(function()
	
	
	TornadoEvent:FireServer(Mouse.Hit.Position)
	
	
end)

I already tried Mouse.Hit too.

Can I see the server side script as well. I think that will help me see the issue

1 Like

Here:

local Tornado = script.Parent

local TornadoEvent = Tornado:WaitForChild('TornadoEvent')


local Animations = Tornado.Animations

local TornadoIdle = Animations.TornadoIdle

local TornadoUse = Animations.TornadoUse


local Tornado02 = game:GetService('ReplicatedStorage').Tornado


Debounce = false


local Track01


TornadoEvent.OnServerEvent:Connect(function(Player, MousePos)
	
	
	local Track02


	if Debounce == false then


		Debounce = true


		Track02 = Tornado.Parent.Humanoid:LoadAnimation(TornadoUse)

		Track02.Looped = false


		Tornado.Handle.Transparency = 0


		Track02:Play()


		wait(1.28)


		local TornadoClone = Tornado.Handle:Clone()

		TornadoClone.Parent = game.Workspace

		TornadoClone.Name = 'TornadoHitPart'


		local BodyForce = Instance.new('BodyForce', TornadoClone)
		
		BodyForce.Force = Vector3.new(MousePos, MousePos, MousePos)



		Tornado.Handle.Transparency = 1


		wait(11.72)


		Debounce = false


	end


end)


Tornado.Equipped:Connect(function()
	
	
	Track01 = Tornado.Parent.Humanoid:LoadAnimation(TornadoIdle)
	
	Track01.Looped = true
	
	Track01:Play()
	
	
end)


Tornado.Unequipped:Connect(function()
	
	
	if Track01 then
		
		
		Track01:Stop()
		
		
	end
	
	
end)

I’ll do some coffee right now, so, maybe it take some time to I answer.

1 Like

Maybe try this: ```
BodyForce.Force = Vector3.new(MousePos.X, MousePos.Y, MousePos.Z)

1 Like

Ohhhhhh, thanks for helping me, I’ll test this right now.

Yoooo, that worked. Thanks for helping me a lot with that.

Oh wow, No problem!
(I really didn’t think that would work!)

1 Like

Lol. [ characteeerrrsss thiiiinnngggg. ]

1 Like