Why adding a tool to a certain character size causes them to be teleported

I’m having problems where giving a player a fishing rod causes them to teleport when their character size is a certain size.

Normal
ezgif.com-video-to-gif (16)
Teleported
ezgif.com-video-to-gif (17)

The issue is definitely down to the tool being parented to the character, as when I comment this line out, they dont get teleported,

FishingRodClone.Parent = character

Size in video 1 = 0.725

local Size = 0.725
	
humanoidDescription.DepthScale = Size
humanoidDescription.HeadScale = Size
humanoidDescription.HeightScale = Size
humanoidDescription.WidthScale = Size

Size in video 2 (the teleported character) = 0.6

local Size = 0.725
	
humanoidDescription.DepthScale = Size
humanoidDescription.HeadScale = Size
humanoidDescription.HeightScale = Size
humanoidDescription.WidthScale = Size

Is the fishing rod collide-able?

1 Like

You could also get the character’s primary part’s cframe and teleport them back.

1 Like

All parts of the rod are unanchored and cancollide false

1 Like

Can I see your welding script?

1 Like

There is no welding script, I use WeldConstraints.

I don’t think it has anything to do with the rods parts, as the rod works perfectly fine with larger characters, it’s a problem with character scaling causing problems

1 Like

Im testing it in studio right now.

1 Like

So what I would do is make the fishing rod a model, then weld the handle to the character’s hand. Then weld the other parts to the handle. Then make a script so when it welds the parts, it plays an animation of the character holding the fishing rod.

1 Like

It has to be a tool tho
30 characters

1 Like

Why is that? 30 Charactersssss.

Because tools have properties like .Actvated() and equipped etc. I don’t want to have to code my own custom system, it’ll take longer than just finding a reason for why character sizes affect tools

I just made my own little version and it works fine. My script is:

function weld(v, weldto)
	local w = Instance.new("Weld")
	w.Parent = v
	w.Part0 = v
	w.Part1 = weldto
end

wait(5)

local t = game.ReplicatedStorage.Tool:Clone()

for i,v in pairs(t:GetChildren())do
	if v.Name == "Handle" then
		weld(v, game.Players.LocalPlayer.Character.RightHand)
	else
		weld(v, t.Handle)
		end
end

t.Parent = game.Players.LocalPlayer.Character

Change the wait to your function where you parent the tool.