Hello, this is an odd one. But essentially, I made a knife sheath.
How it works is whenever a player’s character is added or resets, a part in ReplicatedStorage called “Sheath” is cloned, and then parented to the player’s character. The part is welded to the lower torso of the player.
The mesh’s offset is set to the appropriate place where the sheath should be, and the part itself is located in the middle of the character’s waist, albeit invisible and noncollideable. This is the script for it:
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
local sheath = game.ReplicatedStorage.Sheath:Clone()
sheath.Parent = char
local leg = char:FindFirstChild("LowerTorso")
sheath.Position = leg.Position
sheath.WeldConstraint.Part1 = leg
sheath.Mesh.Offset = Vector3.new(1,0.5,-0.5)
sheath.Mesh.Scale = Vector3.new(0.8,0.8,0.8)
end)
end)
It works fine… for 1.0 characters. The moment you put on a package though, the weld doesn’t seem to work for any character with a package. I checked and the name of the LowerTorso is obviously the same, regardless of your package. The part’s CFrame is set to the lowerTorso, but then it just falls into the void.
Packages are loaded using some external system (copy a packaged character from play testing on studio, you can see little items that represent the package). If I am not mistaken, these things manipulate the part and may be breaking your weld.
I mean the weld doesn’t work. The part itself isn’t collide-able so it is set to the correct CFrame, but then falls into the kill plane and despawns, because the weld ceases to work with packages.
Atta boy. That seems to work great! I think the issue was the latency of having to retrieve the meshes from a database, or some other hackerman explanation.