스폰 위치 또는 "스폰"은 사망할 때 재생성되는 Player 위치를 결정합니다.그들은 특정 플레이어만 각 스폰을 사용할 수 있도록 구성할 수 있으며, Teams를 사용하여 합니다.또한 새로 생성된 플레이어에 대해 ForceFields 가 어떻게 설정되는지 제어합니다.
스폰 위치는 장애물 코스에서와 같이 SpawnLocation.AllowTeamChangeOnTouch을 사용하여 검문소로 사용할 수 있으므로, 플레이어가 그것을 터치하면 스폰 위치의 팀으로 팀이 변경됩니다.이 경우 처음 만 진실로 설정되어야 하며, 그렇지 않으면 플레이어가 첫 번째 검문소에서 시작하지 않습니다.
스폰 위치가 스튜디오에 추가되어 Workspace 에 설정된 SpawnLocation.Neutral 가 거짓이면 팀이 생성되며, 이미 존재하지 않는 경우 SpawnLocation.TeamColor 에 해당합니다.이 동작은 게임 내에서 Script를 사용하여 스폰을 생성할 때 발생하지 않으며, SpawnLocation의 속성이 이미 추가된 후에 변경되는 경우에도 마찬가지입니다.개발자는 항상 팀을 수동으로 설정하고 이 동작에 의존하지 않는 것이 좋습니다.
규칙 생성 중
플레이어가 재생성할 때 특정 SpawnLocation에 적용되는 몇 가지 규칙이 있습니다:
- When SpawnLocation.Neutral false로 설정되면 Players 일치하는 Player.TeamColor 가지고 SpawnLocation.TeamColor 재생성됩니다
- When SpawnLocation.Neutral 가 true로 설정되면 플레이어는 상관 없이 위에서 생성될 수 있습니다. regardless of SpawnLocation.TeamColor
- 적합한 스폰이 여러 개 있는 경우 Player에 랜덤 스폰이 선택됩니다
- 플레이어는 SpawnLocation 위에 다른 지점에서 생성되지만, 현재는 서로 바로 뒤에 생성되는 경우에도 여전히 서로 위에 생성될 수 있습니다.
참조하세요:
- 플레이어가 재생성하는 데 걸리는 시간을 구성하려면 RespawnTime 속성을 살펴보세요
코드 샘플
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
요약
속성
팀에 참여하기 위해 Player 를 터치하여 SpawnLocation 에 가입할 수 있습니다.true로 설정되면, Player 문자가 SpawnLocation에 접촉하면 플레이어의 Player.TeamColor가 SpawnLocation.TeamColor로 설정됩니다.
ForceField에 대해 이 Player에서 생성되는 캐릭터에 적용될 시간(초)입니다.The length of time, in seconds, that a will be applied to a character spawning at this SpawnLocation .지속 시간이 0인 경우, ForceField 는 생성되지 않으며, Instance.DescendantAdded 또는 Instance.ChildAdded 이벤트를 트리거하지 않습니다.
SpawnLocation가 활성화되었는지 여부를 설정합니다.비활성 플레이어가 SpawnLocation에 생성할 수 없고 AllowTeamChangeOnTouch 기능이 비활성화된 경우
특정 팀에 소속되어 있는지 여부(SpawnLocation).즉, 어떤 Player 의 모든 Team 가 이 속성이 true로 설정되면 그 위에 생성될 수 있습니다.
SpawnLocation에 어떤 팀이 소속되어 있는지 설정합니다.Class.SpawnLocation.Neutral``Class.Player|Players``Class.Player.TeamColor 스폰할 수 있으며,
개체의 전체 모양을 설정합니다.
부품이 물리적으로 이동할 수 없는지 여부를 결정합니다.
부품 조립의 각속도.
세계 공간에서 부품의 질량 중심.
부품 조립의 선형 속도.
부품 조립의 총 질량.
어셈블리의 루트 부분에 대한 참조.
부품이 조명에 대해 CastShadow와 유사하게 물리적으로 오디오 시뮬레이션과 상호작용할지 여부를 결정합니다.
부품의 뒷면 표면 유형을 결정합니다.
부품의 아래쪽 면에 대한 표면 유형을 결정합니다.
부품의 색상을 결정합니다.
세계에서 BasePart 의 위치와 방향을 결정합니다.
부품이 다른 부품과 충돌할 수 있는지 여부를 결정합니다.
부품이 공간 쿼리 작업 중에 고려되는지 여부를 결정합니다.
부품에서 Touched 및 TouchEnded 이벤트가 발생하는지 여부를 결정합니다.
부품이 그림자를 던지는지 여부를 결정합니다.
부품의 질량 중심이 위치한 세계 위치를 설명합니다.
부품의 충돌 그룹 이름을 설명합니다.
부품의 색상을 결정합니다.
부품의 현재 물리적 속성을 나타냅니다.
부품의 물리적 속성을 여러 가지 결정합니다.
부품과 조립에서 공기역학 힘을 활성화하거나 비활성화하는 데 사용됩니다.
물리 엔진에서 보는 BasePart의 실제 크기.
부품의 앞면 표면 유형을 결정합니다.
부품의 왼쪽 면의 표면 유형을 결정합니다.
로컬 클라이언트에만 표시되는 BasePart.Transparency의 배수를 결정합니다.
부품이 Studio에서 선택 가능한지 여부를 결정합니다.
부품의 질량, 밀도와 용량의 곱을 설명합니다. Describes the mass of the part, the product of its density and volume.
부품이 단단한 신체총 질량이나 중력에 기여하는지 여부를 결정합니다.
부품의 텍스처와 기본 물리적 속성을 결정합니다.
이름 의 MaterialVariant .
세계에서 부품의 회전을 설명합니다.
부품의 피벗 오프셋을 부품의 CFrame에서 지정합니다.
세계에서 부품의 위치를 설명합니다.
마지막으로 기록된 물리 업데이트 이후 시간.
부품이 하늘상자를 얼마나 반영하는지 결정합니다.
Resize() 메서드에서 허용하는 가장 작은 크기 변경을 설명합니다.
부품을 재설정할 수 있는 얼굴을 설명합니다.
부품의 오른쪽 면에 대한 표면 유형을 결정합니다.
어셈블리의 루트 부분을 결정하는 주 규칙.
세 축에 대한 부품의 회전 정도(도).
부품의 차원(길이, 너비, 높이)을 결정합니다.
부품의 상단 면에 대한 표면 유형을 결정합니다.
부품을 얼마나 볼 수 있는지 결정합니다(부품 불투명도의 반대).
메서드
메서드가 BasePart에서 상속되었습니다어셈블리에 각진 펄스를 적용합니다.
조립의 center of mass에 임펄스를 적용하여 조립에 적용합니다.
지정된 위치에 임펄스를 조립에 적용합니다.
부품이 서로 충돌할 수 있는지 여부를 반환합니다.
부품의 네트워크 소유권을 설정할 수 있는지 확인합니다.
어떤 종류의 강성 조인으로 개체에 연결된 부품의 테이블을 반환합니다.
이 부분에 연결된 모든 조인 또는 제약 조건을 반환합니다.
Mass 속성의 값을 반환합니다.
이 부분의 네트워크 소유자인 현재 플레이어를 반환하거나 서버의 경우 nil 입니다.
게임 엔진이 이 부분에 대한 네트워크 소유자를 자동으로 결정하면 true를 반환합니다.
부품 집합의 기본 부분을 반환합니다.
이 부분과 교차하는 모든 BasePart.CanCollide 진실한 부품의 테이블을 반환합니다.
이 부품과 관련하여 지정된 위치에서 부품의 선형 속도를 반환합니다.
개체가 장소에 유지될 부품에 연결되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
Studio 크기 조정 도구를 사용하는 것과 마찬가지로 개체의 크기를 변경합니다.
지정된 플레이어를 네트워크 소유자로 설정하여 이 및 모든 연결된 부품에 대해 네트워크 소유권을 부여합니다.
게임 엔진이 부품의 물리학을 처리할 클라이언트 또는 서버 중 하나를 동적으로 결정하게 합니다.
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품의 겹치는 기하학과 주어진 배열의 다른 부품에서 새로운 IntersectOperation를 생성합니다.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품에서 지정된 배열에 있는 부품의 기하학을 빼고 새로운 UnionOperation를 부품에서 만듭니다.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
부품에서 새로운 UnionOperation 를 생성하고, 지정된 배열에 있는 부품의 기하학을 더합니다.
PVInstance의 피벗을 가져옵니다.
피벗이 지금 지정된 PVInstance 에 위치하도록 모든 하위 요소 PVInstances 와 함께 변환하여 피벗이 지금 지정된 CFrame 에 위치합니다.
이벤트
이벤트가 BasePart에서 상속되었습니다물리적 이동의 결과로 부품이 다른 부품에 접촉하지 않게 되면 발생합니다.
물리적 이동의 결과로 부품이 다른 부품에 닿을 때 발생합니다.
속성
AllowTeamChangeOnTouch
팀에 참여하기 위해 Player 를 터치하여 SpawnLocation 에 가입할 수 있습니다.true로 설정되면, Player 문자가 SpawnLocation에 접촉하면 플레이어의 Player.TeamColor가 SpawnLocation.TeamColor로 설정됩니다.Player.Neutral 은 문의시 또한 SpawnLocation.Neutral 로 설정되므로 플레이어가 스폰 위치를 만지면 중립 상태가 되어도 됩니다.
이는 SpawnLocation.Enabled가 false로 설정되면 작동하지 않습니다.
검문소 만들기
이 기능은 장애물 코스나 유사한 게임에서 검문소를 만드는 데 자주 사용됩니다.
코드 샘플
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
Duration
ForceField에 대해 이 Player에서 생성되는 캐릭터에 적용될 시간(초)입니다.The length of time, in seconds, that a will be applied to a character spawning at this SpawnLocation .지속 시간이 0인 경우, ForceField 는 생성되지 않으며, Instance.DescendantAdded 또는 Instance.ChildAdded 이벤트를 트리거하지 않습니다.
이 속성의 기본값은 10초입니다.
기간 기능을 통해 개발자는 플레이어에게 좌절감을 줄 수 있는 '스폰 킬링'으로부터 쉽게 Players 보호를 제공할 수 있습니다.참고, 는 사용자를 및 피해를 입히거나 다른 방식으로 확인하기 위해 을 사용하는 무기로부터만 보호합니다.
코드 샘플
This sample will create a neutral SpawnLocation in the Workspace that'll give players spawning a ForceField for 20 seconds.
local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Duration = 20
spawnLocation.Parent = workspace
Enabled
SpawnLocation가 활성화되었는지 여부를 설정합니다. 비활성화된 플레이어는 SpawnLocation에서 생성할 수 없으며, SpawnLocation.AllowTeamChangeOnTouch 기능이 비활성화됩니다.
이 속성은 스폰에서 Players 생성을 방지하는 가장 편리한 방법을 제공합니다.
주목, 팀이 터치하여 변경하는 것을 사용하는 SpawnLocation.AllowTeamChangeOnTouch 는 Enabled가 false로 설정되면 비활성화되지만, BasePart.Touched 를 사용하는 다른 터치된 이벤트는 여전히 발생합니다.
코드 샘플
The following sample will create a SpawnLocation in the Workspace that will become semi-transparent when it is disabled.
local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Enabled = true
spawnLocation.Parent = workspace
local function onEnabledChanged()
spawnLocation.Transparency = spawnLocation.Enabled and 0 or 0.5
end
spawnLocation:GetPropertyChangedSignal("Enabled"):Connect(onEnabledChanged)
task.wait(5)
spawnLocation.Enabled = false -- transparency = 0.5
Neutral
스폰이 특정 팀과 연결되었는지 여부.즉, 어떤 Player 의 모든 Team 가 이 속성이 true로 설정되면 그 위에 생성될 수 있습니다.
중립이 false로 설정되면, Player.TeamColor 가 SpawnLocation.TeamColor 와 동일한 플레이어만 SpawnLocation 을 사용할 수 있습니다.
if SpawnLocation.AllowTeamChangeOnTouch가 참이면 Player.Neutral는 스폰과 접촉하면 이 속성으로 설정됩니다.
코드 샘플
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
TeamColor
팀 색상 속성은 팀 SpawnLocation 가 소속된 팀을 설정합니다.Class.SpawnLocation.Neutral``Class.Player|Players``Class.Player.TeamColor 스폰할 수 있으며,
if SpawnLocation.AllowTeamChangeOnTouch가 참이면 Player.Neutral는 스폰과 접촉하면 이 속성으로 설정됩니다.
코드 샘플
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)