Hello there,

I was wondering why my BodyPosition's ReachedTarget() event never fires. It's in a local script, which is in StarterGui. This part is just a part that goes to where the mouse is pointing, which works but ReachedTarget() doesn't work.

Here is the code:

local plrs = game:GetService("Players");

local plr = plrs.LocalPlayer;

local uis = game:GetService("UserInputService");

local mouse = plr:GetMouse();

local debris = game:GetService("Debris");

function click(obj, gp)
	
	if obj.KeyCode == Enum.KeyCode.Q and not gp then
		local part = Instance.new("Part");

		local char = plr.Character or plr.CharacterAdded:Wait();

		local torso = char:FindFirstChild("Torso") or char:WaitForChild("UpperTorso");
		
		part.Shape = Enum.PartType.Ball;

		part.Size = Vector3.new(5, 5, 5);

		part.CanCollide = false;

		part.Transparency = .5;

		part.BrickColor = BrickColor:random();

		part.TopSurface = Enum.SurfaceType.Smooth;

		part.BottomSurface = Enum.SurfaceType.Smooth;

		part.Parent = workspace;
		
		part.Touched:Connect(function(hit)

			if hit.Parent.Name == "Part" and hit.Parent:IsA("Model") then

				hit:Destroy();

				part:Destroy();
			end
		end)
		
		local bv = Instance.new("BodyPosition");
		
		bv.Parent = part;
		
		bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge);
		
		local pos = mouse.Hit.p;
		
		local diff = (pos - torso.Position).magnitude;
		
		
		if diff > 50 then
			pos = pos.Unit * 50;
		end
		
		
		bv.Position = pos;
		

		part.CFrame = torso.CFrame;
		
		bv.ReachedTarget:Connect(function()
			print("It reached.");
		end)
		
		debris:AddItem(part, 5);
	end	
end

uis.InputBegan:Connect(click);

###Any help is appreciated, thanks.

~~ KingLoneCat