Hey all, hope everyone's doing well lately. I'm working on a classic-styled building game, and I want placed parts to weld to other nearby parts. Here is what I have so far, in a server sided script when a block is placed ("Center" is already defined, it's essentially the placed block):

local weldCheck = Center:Clone()
weldCheck.Size = Vector3.new(Center.Size.X + 0.2,Center.Size.Y + 0.2,Center.Size.Z + 0.2)
weldCheck.CanCollide = true
print(unpack(GetTouchingParts(weldCheck)))
weldCheck:Destroy()

This returned nothing, so I did some more reading and gave this a try.

local weldCheck = Center:Clone()
weldCheck.Size = Vector3.new(Center.Size.X + 0.2,Center.Size.Y + 0.2,Center.Size.Z + 0.2)
weldCheck.CanCollide = true
local function GetTouchingParts(part)
   	local connection = part.Touched:Connect(function() end)
   	local results = part:GetTouchingParts()
   connection:Disconnect()
   return results
end
local results = GetTouchingParts(weldCheck)
print(#results)
weldCheck:Destroy()

However, this also returns nothing. I'm avoiding all the common problems (both the placed part and the nearby parts are indeed collidable), so I'm not too sure where to go from here. Any help would be awesome, and if more information is needed, please let me know. Thank you!