Hi, so I am currently creating a Minecraft-type building system. However, I would like to add a specific feature where if my mouse target is nil, it'll place it on the next best place. Do have in mind this is a minecraft type building. So if i'm high up in the sky and my mouse is in the sky forward, but not on the block it'll place a block 3 studs ahead of where it currently is. Here is the code to support my question!
Mouse.Move:Connect(function() if Mouse.Target and Equipped and Mouse.Target.Name == BlockName then if Mouse.TargetSurface == Enum.NormalId.Top then SelectionBlock.CFrame = Mouse.Target.CFrame * CFrame.new(0,height,0) end if Mouse.TargetSurface == Enum.NormalId.Bottom then SelectionBlock.CFrame = Mouse.Target.CFrame * CFrame.new(0,-height,0) end if Mouse.TargetSurface == Enum.NormalId.Left then SelectionBlock.CFrame = Mouse.Target.CFrame * CFrame.new(-height,0,0) end if Mouse.TargetSurface == Enum.NormalId.Right then SelectionBlock.CFrame = Mouse.Target.CFrame * CFrame.new(height,0,0) end end if Mouse.Target == nil or Mouse.Target.Name ~= BlockName then local poes = CFrame.new(Mouse.Hit.Position):PointToObjectSpace(Mouse.Origin.Position) local poesx = Round(poes.X,3) -- size of the blocks 3x3x3 local poesz = Round(poes.Z,3) -- size of the blocks 3x3x3 if poesx and poesz then this is where it'll go ahead else this is where its in a random position and it wont highlight end end end)
Any help in doing this would be a huge help !