Hello, I am currently making a game where a player can fire blocks from conveyors onto structures that others are standing on. These blocks will take out parts that the structure is made out of. I'm having trouble with it, however. I welded all of the parts of the building together and unanchored them. Then I made and tried the script below:
script.Parent.Touched:Connect(function(hit)
if hit:IsA("BasePart") or hit:IsA("UnionOperation") then
hit:BreakJoints()
end
end)
When I tried it, the welds and parts were only moved immediately after contact with the block, causing the block to bounce back. I want the block to pass clean through, so how do you think I can accomplish this? Any help would be appreciated. Thanks.

2 comments
You are waiting for the Block to touch and therefore decelerate. Try using Raycasts (better) or an identical invisible and no-collide block which fires 2 physics-frames earlier and Breaks the Joints (worse). You could also try to save the velocity before impact and continue it after BreakJoints.
How could I use a raycast to help?