WeldConstraint pulls C4 when hit

Hi, I am making a C4, and it works fine, the problem is when sticking it to what it hits. When it’s hit and I weld it to the hit part, WeldConstraint pulls it back like this:

It only happens when the C4 hits the part properly.
Here’s my code:

local con;

con = script.Parent.Touched:Connect(function(hit)
    if not hit:IsDescendantOf(script.Parent.Parent) and not hit:IsDescendantOf(script.Parent.Object.Value) then
        local weld = Instance.new("WeldConstraint")
        weld.Parent = script.Parent
        weld.Part1 = hit
        weld.Part0 = script.Parent

It doesn’t happen when using Touched event on the client.

Help is appreciated!


I’m confused by the term “pull” :confused: Can you provide video footage of the “pull” effect?

I showed an image, when it hits something it gets back to where it was.

Someone help, I can’t get this thing solved