Item's CFrame changes when I "equip" it during player movement

So basically, I’m making a custom inventory system because Roblox’s default one has a few flaws. I got everything working right expect for the part when I equip the item, if I just don’t move and click 1 the items equips and teleports in my hand, but if I try to equip an item when my character is in motion the teleport bugs and the item is just moved into a random location near the hand. Here are some photos:

When moving:
image

When standing:
image

I used an item module to load all my icons and “position arrangements” for my items, here are the scripts I used:

Equip script:

Module script:

image

Please help me.

Don’t know if that’s the problem but you should always set the CFrame before welding the parts. ( from my experience )

1 Like

That’s what I do. I did a few tests and I figured out to set CFrame before I weld.

1 Like

image
This is changing the position not the CFrame by the way, I just misspelled

1 Like

well whether your setting Position or CFrame they should both be put right before welding, Is the problem still going on?

2 Likes

Hold up, let me actually try setting the position and the cframe before the weld.

2 Likes

Same issue still; this is very confusing.

2 Likes

I guess I’ll wait till tomorrow for some other people to reply. I wanna sleep badly.

I believe the bug is because of how your setting the position.
Set the item’s CFrame before the weld, including its angle and position.

item.PrimaryPart.CFrame = plr.Character["Right Arm"].CFrame * module.Statistics[itemname].angles * CFrame.new(module.Statistics[itemname].cframeChange)

Hopefully this will give you consistent results.

2 Likes

Pretty sure that is supposed to be under #help-and-feedback:scripting-support , not #development-discussion .

2 Likes

Thanks, I edited the code a little bit and know it works.