Hey guys, I want to know how to use body movers to make a tornado. I’ve tried a lot of ways but it didn’t work. The only was left I did not try yet is body movers. It is because I do not know how. The tutorial on devhub doesn’t help and the ones on Youtube I can’t understand. Can someone please help? Thanks!
BodyMovers are actually more commonly used for things that are affected by Physics such as vehicles, projectiles and Player mechanics!
I belive in your case it would be more practical to use a loop that randomizes the places that your tornado moves towards and set its CFrame to that position.
Hope this helps!
I want to make it so that I can make the tornado move the player around like wind?
Ah I see, my apologies. In order to do that, first you must detect when a Tornado interacts with a player (you can choose how this is done). Then you’ll want to create a BodyVelocity Instance inside of said players character. After that you can then proceed to set the Force property in your BodyVelocity to the direction that you want to push your Character in. Finally you can destroy the force after a brief delay (0.02 seconds usually suffices) and you’re done!
To explain how BodyVelocities work, they’re basically like extra PUSH forces that move BasePart(s). Depending on your velocity, you can do all sorts of things with these but for your case you should set the Velocity of your BodyVelocity to the move direction of your tornado, this will push your player towards the direction the tornado is moving towards and it should give off a realistic tornado throw depending on what your math was and how it worked.
Hope this helps!
Minimum manual wait time is 0.03 with wait()
and task.wait()
, you cannot wait 0.02 seconds.
Pretty sure you can actually
Wow, thanks for the explanation . But I only have one more question. I’m not good at CFrames and I want to know how to make the bodyVelocity.Velocity move spinning? Or you can just tell me how to keep making it rotate.
You can use a BodyGyro and set its CFrame to your current players CFrame multiplied by a given offset!
Heres an example:
BodyGyro.CFrame = Player.Character.Torso.CFrame * CFrame.fromEulerAnglesXYZ(0, 0.01, 0); --// Put this in a loop or something
Do note that BodyGyros only make players LOOK a certain direction, these on their own will not move your player for you.
Thank you so much for your time to explain it. Have a nice day/night!