Place Tool Fail

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!

a tool that place things

  1. What is the issue? Include screenshots / videos if possible!

fails when i activate anchored

image

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

yes

After that, you should include more details if you have any. Try to make your topic as descriptive as possible, so that it’s easier for people to help you!

script.Parent.RemoteEvent.OnServerEvent:Connect(function(plr,p,o,s,sl,t,a)	
	if sl == 0 then
		local part = Instance.new("Part")
		part.Position = p
		part.Orientation = o
		part.Size = s
		part.Parent = workspace
		part.Anchored = a
        ...

Please do not ask people to write entire scripts or design entire systems for you. If you can’t answer the three questions above, you should probably pick a different category.

If your issue is that the blocks are clipping into eachother, its because you need to offset the y axis. I recommend going to this page to find out about it: Creating A Furniture Placement System

i no have idea what i need to do to solve this you “solution” is so complex

I made something similar to this before, you’ll have to add something like

 if mouse.TargetSurface == Enum.NormalId.Top then --Top
         newpart.Position = Vector3.new(newpart.Position.X, (mouse.Target.Position.Y + (mouse.Target.Size.Y/2)) + newpart.Size.Y/2, newpart.Position.Z)
      elseif mouse.TargetSurface == Enum.NormalId.Bottom then --Bottom
         newpart.Position = Vector3.new(newpart.Position.X, (mouse.Target.Position.Y -(mouse.Target.Size.Y/2)) - newpart.Size.Y/2, newpart.Position.Z)
      elseif mouse.TargetSurface == Enum.NormalId.Right then --Right
         newpart.Position = Vector3.new((mouse.Target.Position.X + (mouse.Target.Size.X/2)) + newpart.Size.X/2, newpart.Position.Y, newpart.Position.Z)
      elseif mouse.TargetSurface == Enum.NormalId.Left then --Left
         newpart.Position = Vector3.new((mouse.Target.Position.X - (mouse.Target.Size.X/2)) - newpart.Size.X/2, newpart.Position.Y, newpart.Position.Z)
      elseif mouse.TargetSurface == Enum.NormalId.Back then --Back
         newpart.Position = Vector3.new(newpart.Position.X, newpart.Position.Y, (mouse.Target.Position.Z + (mouse.Target.Size.Z/2)) + newpart.Size.Z/2)
      elseif mouse.TargetSurface == Enum.NormalId.Front then --Front
         newpart.Position = Vector3.new(newpart.Position.X, newpart.Position.Y, (mouse.Target.Position.Z - (mouse.Target.Size.Z/2)) - newpart.Size.Z/2)
      end

NOTE: I just took this from my own script, you’ll have to slightly modify it to be compatible with your current script.
In case you don’t understand:
mouse was my Mouse, the if statement checks whether the mouse was on the top of something so it can place the new part above instead of clipping

1 Like