I use this line of code to get the position for blocks
return part.Position + normal * part.Size
and it works great for full blocks.
However, I wanna add slabs. This is what happens with slabs
The other thing to note, is I want the position of the slab to be relative to the face you have the mouse over
if normal.X ~= 0 or normal.Z ~= 0 then -- Placed on side of block
if position.Y >= part.Position.Y then -- Top half
end
elseif normal.Y < 0 then -- Placed on bottom face of block
end