Why is the part teleporting when bodyposition is used?

https://streamable.com/adgt8m

I’m using bodyposition to move the part back to my hand after it’s launched, but as you can see in the clip, it just teleports right back to my righthand. I can’t tell if it’s moving really fast or if it’s just teleporting. How do I slow down the body position so that the part can be seen travelling back?

This is the part of the script that handles the bodyposition (excerpt):

Mjolnir.Parent = Character
		local BodyPosition = Instance.new("BodyPosition",Mjolnir)
		local BodyGyro = Instance.new("BodyGyro",Mjolnir)
		Mjolnir.Anchored = false
		BodyPosition.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		BodyPosition.D = math.huge
		BodyPosition.P = 0
		BodyPosition.Position = RightHand.Position
2 Likes

Well I am no expert on forces but I see a lot of math.huge’s in there. Maybe change those up a bit.

I changed all the math.huge’s to 0 and the result is still the same. That thing is teleporting instead of moving through the air.

Yes now I see, on the last line (BodyPosition.Position = RightHand.Position) You just change it’s position, you arent animating or moving it.

It’s warping to its default position. I am using movers in a pet system I have, and when it isn’t in a loop, it warps to that position, the default. Place the BodyPosition.Position = RightHand.Position line inside of a while wait() do, or any other loop, and it wouldn’t warp like that

I believe it’s because of the weld. When you reenable the weld the hammer will teleport to the hand.

Body position should make the hammer at least move and not instantly teleport.

Alright now that I put the weld part on the last line, the teleportation problem has seemingly been fixed but another problem rears its head.

https://streamable.com/qtkkc2

The hammer just gets pulled straight down instead of making its way to me and my character is teleported to it instead. -_-

Code:

local BodyPosition = Instance.new("BodyPosition",Mjolnir)
		local BodyGyro = Instance.new("BodyGyro",Mjolnir)
		Mjolnir.Anchored = false
		BodyPosition.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		BodyPosition.Position = RightHand.Position
		BodyPosition:Destroy()
		Mjolnir.BodyVelocity:Destroy()
		BodyGyro:Destroy()
		Mjolnir.Parent = Character
		wait(3)
		MjolnirWeld.Part0 = RightHand

For reference, this is the effect I am trying to achieve:

Because you destroy the body position before it even reaches the hand?

Ah damn that explains it, should I just put a wait() or a repeat wait until it touches my hand or something?