PreviewBuild isn't turning red when it's to close too spawn. (Build System)

Hello, I’m trying to create a building system for a Napoleonic genre game, currently I’m trying to create a system that will stop players from placing builds to close to spawn. The player can’t place if it’s too far away from them but it won’t work with the spawns.

If you want more code I can show it.

RunService.RenderStepped:Connect(function()
			local spawn1 = (Vector3.new(-1013.971, 26.043, -178.25) - previewbuild.PrimaryPart.Position).Magnitude
			local spawn2 = (Vector3.new(492.014, 22.04, 860.745) - previewbuild.PrimaryPart.Position).Magnitude
			local distance = (char.HumanoidRootPart.Position - previewbuild.PrimaryPart.Position).Magnitude

			


					if distance >= 15 or spawn1 >= 60 or spawn2 >= 60 then	
						previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
						for i,v in pairs(previewbuild:GetChildren()) do
							v.BrickColor = BrickColor.new("Really red")
							v.Material = Enum.Material.Plastic
							v.CanCollide = false
						end
					else

						if mouse.Target ~= nil and not mouse.Target:IsA("Terrain") then
							previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
							for i,v in pairs(previewbuild:GetChildren()) do
								v.BrickColor = BrickColor.new("Really red")
								v.Material = Enum.Material.Plastic
								v.CanCollide = false
							end
						else
							previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
							for i,v in pairs(previewbuild:GetChildren()) do	
								v.BrickColor = BrickColor.new("Lime green")
								v.Material = Enum.Material.Plastic
								v.CanCollide = false
								v.CanCollide = false
							end
						end
				end
		end)

2 Likes

change the >= of the spawn1 and spawn2 to <=.

RunService.RenderStepped:Connect(function()
			local spawn1 = (Vector3.new(-1013.971, 26.043, -178.25) - previewbuild.PrimaryPart.Position).Magnitude
			local spawn2 = (Vector3.new(492.014, 22.04, 860.745) - previewbuild.PrimaryPart.Position).Magnitude
			local distance = (char.HumanoidRootPart.Position - previewbuild.PrimaryPart.Position).Magnitude

			


					if distance >= 15 or spawn1 <= 60 or spawn2 <= 60 then	
						previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
						for i,v in pairs(previewbuild:GetChildren()) do
							v.BrickColor = BrickColor.new("Really red")
							v.Material = Enum.Material.Plastic
							v.CanCollide = false
						end
					else

						if mouse.Target ~= nil and not mouse.Target:IsA("Terrain") then
							previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
							for i,v in pairs(previewbuild:GetChildren()) do
								v.BrickColor = BrickColor.new("Really red")
								v.Material = Enum.Material.Plastic
								v.CanCollide = false
							end
						else
							previewbuild:SetPrimaryPartCFrame(CFrame.new(mouse.Hit.Position.X, mouse.Hit.Position.Y + previewbuild.PrimaryPart.Size.Y / 2, mouse.Hit.Position.Z) * CFrame.Angles(0, math.rad(rotation), 0))
							for i,v in pairs(previewbuild:GetChildren()) do	
								v.BrickColor = BrickColor.new("Lime green")
								v.Material = Enum.Material.Plastic
								v.CanCollide = false
								v.CanCollide = false
							end
						end
				end
		end)
3 Likes

Nope, it’s still like ignoring it.

1 Like

Nvm, I was editing the wrong part of like 900 lines of code but your solution worked thanks I did try this before but yeah I edited the work line of code.

1 Like