Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to make a placement system have block collisions?

Asked by 2 years ago

Hello! I've been recently working in a block placement system using mouse.Hit, and I'm stuck with a problem; I don't know how to make the blocks not go through others.

This is the code I have:

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local runservice = game:GetService("RunService")
local ts = game:GetService("TweenService")


local part = Instance.new("Part", workspace)
part.Size = Vector3.new(4,4,4)

mouse.TargetFilter = part
part.CanCollide = false
part.Anchored = true
part.Material = Enum.Material.SmoothPlastic

mouse.Move:Connect(function()
    local target = mouse.Hit
    local Ypart = mouse.Target
    local face = mouse.TargetSurface
    if target and Ypart then
        ts:Create(part, TweenInfo.new(0.1, Enum.EasingStyle.Sine), {Position=Vector3.new(math.floor(target.Position.X + 0.5) - part.Size.X/2, math.floor(target.Position.Y) + part.Size.Y/2, math.floor(target.Position.Z + 0.5)- part.Size.Z/2)}):Play()
    end
end)

I don't really know how to explain, but when you try to place a block on a wall, the block goes inside the wall and it does z-fighting. The thing I'm trying to do is making the blocks not collide with each other while being placed.

Answer this question