It seems crazy simple, but I cannot get it to work. The “TorsoPart” that is being welded to the humanoidrootpart is slightly above the humanoidrootpart once it’s welded…
The HumanoidRootPart doesn’t move with animations. When your character has their knees bent and their feet are level with the ground, the torso will be below the top of the HumanoidRootPart. Maybe that’s what you’re seeing?
Try printing the position of the HumanoidRootPart and the position of the torso you’re welding just to make sure.
it’s about 0.1 studs… But if I change the weld properties, the humanoidrootpart sometimes goes under the entire character, making the character appear as if it’s floating…
The weld’s parent is Part0 which is the self.char.humanoidrootpart
And it’s still off
edit**
I forgot to tell you guys that I welded stuff to the TorsoPart, but I don’t understand why that would affect this… I disabled the other welds, and it now works… I guess I have to look at my other welds for the arms, head, etc…
Thanks @XAXA for trying to help me. I eventually figured it out, but I gave you the “solution” because you told me to change a weld property - which gave me an idea that solved my problem
Within my welding setup, that I posted in the original post, I left out some parts, including this:
--head weld
local headweld = Instance.new("Weld")
headweld.Parent = humanoidrootpart
headweld.Name = "HeadWeld"
headweld.Part0 = self.char.uppertorso --Part0 used to be torso
headweld.Part1 = self.char.head
headweld.C0 = CFrame.new(0, 1, 0)
headweld.C1 = CFrame.new(0, -0.5, 0)-- * CFrame.Angles(math.rad(30), 0, 0)
For whatever reason, the “head weld” ruined my character welding, but I fixed it by switching the Part0 to the upper torso part… (I now need to re-calculate the C0, C1 offset for the head weld, but that isn’t much of a problem)
Just fixed the problem again… (I think it was unsolved before this v)
When the player spawns, I tried to teleport their character by changing the humanoidrootpart position instead of the CFrame, and I think that’s what caused the humanoidrootpart to go underneath the character. After analyzing 2000 lines of code for 4 hours, that’s what caused the problem.
The reason why this wasn’t a quick fix was because there was no syntax errors, I thought it might’ve been a logic error within one of my animation functions, and I didn’t think for a second that teleporting the character using position instead of CFrame would ruin it.