You can write your topic however you want, but you need to answer these questions:
-
What do you want to achieve? Keep it simple and clear!
a tool that place things
-
What is the issue? Include screenshots / videos if possible!
fails when i activate anchored
-
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