One of the great things about JoinToOutsiders is it ignores blocks which only share one edge or only share one vertex. The blocks have to be coplanar.

https://gyazo.com/7067079f66a1032dfe34c8f4b871f466

(Above won’t get welded by workspace:JoinToOutsiders() )

I’m wondering if anyone knows where I can find the source code of Workspace:JoinToOutsiders or help me fix the code.

I’ve been trying to do this with fuzzy number checks, but there a lot of edge cases where my code welds blocks which only share one edge. I’ve experimented with the ellipsion but these cases still occur sometimes.

```
local function abs(x)
return Vector3.new(math.abs(x.x), math.abs(x.y), math.abs(x.z))
end
function fuzzyEq(a, b, epsilon)
if epsilon == nil then epsilon = 1e-3 end
return a == b or math.abs(a - b) <= (math.abs(a) + 1) * epsilon
end
local function n_ROUND(x, degree, base)
base = base or 10 -- default
degree = degree or 0 -- default
local n = base ^ degree
return math.floor(x * n + 0.5) / n
end
local function FuzzyAdjacentCheck(BlockToCheck, Against)
local Offset = Against.CFrame:ToObjectSpace(BlockToCheck.CFrame)
--warn(Offset)
local AbsOffset = abs(Offset)
local Edges = {
X = fuzzyEq(AbsOffset.X, BlockToCheck.Size.X/2 + Against.Size.X/2),
Y = fuzzyEq(AbsOffset.Y, BlockToCheck.Size.Y/2 + Against.Size.Y/2),
Z = fuzzyEq(AbsOffset.Z,BlockToCheck.Size.Z/2 + Against.Size.Z/2)
}
local Bounds = {
X = n_ROUND(AbsOffset.X, 1) <= (BlockToCheck.Size.X/2 + Against.Size.X/2) ,
Y = n_ROUND(AbsOffset.Y, 1) <= (BlockToCheck.Size.Y/2 + Against.Size.Y/2),
Z = n_ROUND(AbsOffset.Z, 1) <= (BlockToCheck.Size.Z/2 + Against.Size.Z/2)
}
--print(Edges)
--print(AbsOffset)
if Bounds.X == false or Bounds.Y == false or Bounds.Z == false then return false end
local Result = true
if Edges.X == true and (Edges.Y == true or Edges.Z == true) then
Result = false
elseif Edges.Y == true and (Edges.X == true or Edges.Z == true) then
Result = false
elseif Edges.Z == true and (Edges.X == true or Edges.Y == true) then
Result = false
end
return Result
end
```