So ive been experimenting with placement systems for about 1 month now. But i recently encountered this problem while making my own placement module.. The problem is that when you change the grid to anything higer than 2 it kinda wont stick to any blocks.. Here are two videos showcasing what i mean.
Grid size 2 https://www.youtube.com/watch?v=_5UMY9dOGhQ
Grid size 4 https://www.youtube.com/watch?v=W-wpUS9rwsU
Heres the code i use to calculate the cframe:
function CAL_CF(POS, SIZE) -- // POS is the raycast position and SIZE is the current blocks size
return CFrame.new(
math.floor(POS.X / SIZE + 0.5) * SIZE,
math.floor(POS.Y / SIZE + 0.5) * SIZE,
math.floor(POS.Z / SIZE + 0.5) * SIZE
)
end
Positioning the block
function placement:Enable(Name)
local Block = Blocks:FindFirstChild(Name):Clone()
Block.Parent = self.PLR.Character
OBJ = Block
MOVE = M.Move:Connect(function()
local POS, SUR = RAY({self.PLR.Character})
if POS and SUR then
local CF = CAL_CF(POS, self.SIZE)
Block:SetPrimaryPartCFrame(CF + (SUR * (Block.PrimaryPart.Size * .5)))
end
end)
end
My block size is 4x4x4 if you need that.
