I’m currently making a gun kit, with the hopes of using bullet holes that can attach to objects and stay with them. (realism) Although I do not often experiment with welds, it confuses me on how this doesn’t work.
Is bulletPart supposed to weld to ServerHitObj? If so, switch Part0 with Part1. Part0 is what the part will be welded to while Part1 is the part itself.
There doesn’t appear to be anything inherently wrong with your script, so perhaps the issue stems from somewhere else.
Is there any code that could potentially break the weld, such as something calling :BreakJoints()?
Are both Part0 and Part1 owned by the same party? If one of the parts is being simulated by the server while the other is created by/owned by the client, there may be some issues.