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)