Hexagon query confusion

I have a game with 26 hexes in 4 groups with varying numbers. Each group is in a different place how can I determine that 2 hexes are adjacent, each hex is about 30k studs

Their xz-plane distance should be the shortest when they are adjacent.

local hex1 = workspace.Hex1.CenterPart.Position
local hex2 = workspace.Hex2.CenterPart.Position
local diff = hex1 - hex2
diff = Vector3.new(diff.X, 0 diff.Z)
print( diff.Magnitude )