SpawnLocation
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Lokasi Spawn, atau "memuncul" menentukan di mana Player respawn ketika mereka mati.Mereka dapat dikonfigurasi untuk mengizinkan hanya pemain tertentu untuk menggunakan setiap spawn, menggunakan Teams .Mereka juga mengontrol bagaimana ForceFields diatur untuk pemain baru yang baru muncul.
Lokasi Spawn dapat digunakan sebagai titik pemeriksaan, seperti di rintangan, menggunakan properti SpawnLocation.AllowTeamChangeOnTouch, sehingga ketika seorang pemain menyentuhnya, mereka akan mengubah tim ke tim SpawnLocation.Dalam kasus ini, hanya yang pertama harus diatur ke benar, jika tidak, pemain tidak akan mulai di pos pemeriksaan pertama.
Perhatikan apakah SpawnLocation ditambahkan ke Workspace di Studio dengan SpawnLocation.Neutral mengatur ke false sebuah Tim akan dibuat sesuai dengan SpawnLocation.TeamColor jika belum ada.Perilaku ini tidak terjadi saat spawn dibuat dalam game menggunakan Script atau jika properti SpawnLocation diubah setelah sudah ditambahkan.Disarankan agar pengembang selalu mengatur tim mereka secara manual dan tidak bergantung pada perilaku ini.
Memunculkan Aturan
Ada beberapa aturan yang masuk ke dalam permainan untuk SpawnLocation tertentu saat pemain bereinkarnasi:
- Ketika SpawnLocation.Neutral diatur ke false hanya Players dengan Player.TeamColor yang cocok dengan SpawnLocation.TeamColor akan respawn di atasnya
- Ketika SpawnLocation.Neutral diatur ke benar, pemain mana pun dapat muncul di atasnya terlepas dari SpawnLocation.TeamColor
- Jika beberapa bertelur yang memenuhi syarat tersedia untuk Player, satu acak akan dipilih
- Pemain akan muncul di berbagai titik di atas SpawnLocation, tetapi saat ini, mereka masih dapat muncul di atas satu sama lain jika mereka muncul tepat setelah satu dan lain
Lihat juga:
- Jika Anda ingin mengonfigurasi berapa lama waktu yang dibutuhkan bagi seorang pemain untuk respawn, lihat properti RespawnTime
Contoh Kode
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)
Rangkuman
Properti
Memungkinkan Player untuk bergabung dengan tim dengan menyentuh SpawnLocation .Ketika diatur ke benar, jika karakter Player masuk kontak dengan SpawnLocation , karakter pemain Player.TeamColor akan diatur ke SpawnLocation.TeamColor .
Durasi waktu, dalam detik, bahwa ForceField akan diterapkan ke karakter Player yang muncul di SpawnLocation ini.Jika Durasi adalah nol, ForceField tidak pernah dibuat, dan tidak akan memicu peristiwa Instance.DescendantAdded atau Instance.ChildAdded.
Mengatur apakah atau tidak SpawnLocation diaktifkan.Ketika pemain dinonaktifkan tidak dapat muncul di SpawnLocation dan fungsi AllowTeamChangeOnTouch dinonaktifkan.
Apakah atau tidak SpawnLocation adalah terafiliasi dengan tim tertentu.Ini berarti bahwa/itu setiap Player , dari setiap Team , dapat muncul di atasnya jika properti ini diatur ke benar.
Mengatur tim mana SpawnLocation terafiliasi.Jika properti SpawnLocation.Neutral palsu, hanya Players dengan sama Player.TeamColor sebagai warna tim pembuatan akan dapat dispawn di sana.
Tetapkan bentuk keseluruhan dari objek.
Menentukan apakah suku cadang tidak dapat dipindahkan oleh fisika.
Kecepatan sudut dari penggabungan bagian.
Pusat massa dari pengumpulan bagian di ruang dunia.
Kecepatan linier dari penggabungan bagian.
Massa total dari penggabungan bagian.
Referensi ke bagian akar dari kumpulan.
Menentukan jenis permukaan untuk Sisi Belakang suku cadang (+Z arah).
Menentukan jenis permukaan untuk wajah Bawah dari suku cadang (-Y arah).
Menentukan warna suku cadang.
Menentukan posisi dan orientasi BasePart di dunia.
Menentukan apakah bagian dapat bertabrakan dengan bagian lain.
Menentukan apakah bagian tersebut dianggap selama operasi pencarian spasial.
Menentukan apakah Touched dan TouchEnded peristiwa terbakar di bagian.
Menentukan apakah bagian itu melemparkan bayangan atau tidak.
Menggambarkan posisi dunia di mana pusat massa bagian terletak.
Menggambarkan nama grup tabrakan bagian.
Menentukan warna suku cadang.
Menunjukkan properti fisik saat ini dari bagian.
Menentukan beberapa properti fisik dari suku cadang.
Digunakan untuk mengaktifkan atau menonaktifkan kekuatan aerodinamik pada bagian dan kumpulan.
Ukuran fisik aktual dari BasePart sebagai dianggap oleh mesin fisika.
Menentukan jenis permukaan untuk wajah depan suku cadang (-Z arah).
Menentukan jenis permukaan untuk wajah Kiri dari suku cadang (-X arah).
Menentukan pengganda untuk BasePart.Transparency yang hanya terlihat oleh klien lokal.
Menentukan apakah bagian dapat dipilih di Studio.
Menggambarkan massa bagian, produk dari kepadatan dan volumenya.
Menentukan apakah bagian berkontribusi pada massa total atau inersia tubuh kaku.
Menentukan tekstur dan properti fisik default dari suku cadang.
Nama MaterialVariant .
Menggambarkan rotasi bagian di dunia.
Mengidentifikasi offset pivot bagian dari CFrame nya.
Menggambarkan posisi bagian di dunia.
Waktu sejak pembaruan fisika terakhir update.
Menentukan seberapa banyak bagian mencerminkan skybox.
Menggambarkan perubahan terkecil dalam ukuran yang diizinkan oleh metode Resize.
Menggambarkan wajah di mana bagian dapat diubah ukurannya.
Menentukan jenis permukaan untuk wajah Kanan dari suku cadang (+X arah).
Aturan utama dalam menentukan bagian akar dari sebuah kumpulan.
Rotasi bagian dalam derajat untuk tiga sumbu.
Menentukan dimensi suku cadang (panjang, lebar, tinggi).
Menentukan jenis permukaan untuk bagian atas wajah suku cadang (+Y arah).
Menentukan berapa banyak bagian yang dapat dilihat melalui (kebalikan dari oposisi bagian).
Metode
Metode diwarisi dari BasePartTerapkan dorongan sudut ke kumpulan.
Terapkan impuls ke kumpulan di kumpulan center of mass .
Terapkan impuls ke kumpulan di posisi yang ditentukan.
Kembalikan apakah bagian dapat bertabrakan satu sama lain.
Memeriksa apakah Anda dapat mengatur kepemilikan jaringan bagian.
Kembalikan tabel bagian yang terhubung ke objek dengan jenis persambungan kaku apa pun.
Kembalikan semua Persyaratan atau Batasan yang terhubung ke Bagian ini.
Kembalikan nilai properti Mass .
Kembalikan pemain saat ini yang merupakan pemilik jaringan dari bagian ini, atau nil dalam kasus server.
Kembali benar jika mesin permainan secara otomatis memutuskan pemilik jaringan untuk bagian ini.
Kembalikan bagian dasar dari kumpulan bagian.
Kembalikan tabel semua bagian BasePart.CanCollide nyata yang berpotongan dengan bagian ini.
Kembalikan kecepatan linier penggabungan bagian pada posisi yang diberikan relatif terhadap bagian ini.
Kembalikan benar jika objek terhubung ke bagian yang akan menahan di tempatnya (sebagai contoh bagian Anchored), jika tidak maka kembalikan false.
Mengubah ukuran objek seperti menggunakan alat perubah ukuran Studio.
Atur pemain yang diberikan sebagai pemilik jaringan untuk ini dan semua bagian yang terhubung.
Membiarkan mesin permainan dinamis memutuskan siapa yang akan menangani fisika bagian (salah satu klien atau server).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru IntersectOperation dari geometri tumpang tindih dari bagian dan bagian lain dalam array yang diberikan.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru UnionOperation dari bagian, minus geometri yang ditempati oleh bagian dalam array yang diberikan.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Membuat baru UnionOperation dari bagian, plus geometri yang ditempati oleh bagian dalam array yang diberikan.
Mendapatkan pivot dari PVInstance .
Mengubah PVInstance bersama dengan semua keturunannya PVInstances sehingga pivot sekarang terletak di lokasi yang ditentukan CFrame .
Acara
Acara diwarisi dari BasePartMelepaskan api ketika bagian berhenti menyentuh bagian lain sebagai hasil dari gerakan fisik.
Melepaskan api ketika bagian menyentuh bagian lain sebagai hasil dari gerakan fisik.
Properti
AllowTeamChangeOnTouch
Memungkinkan Player untuk bergabung dengan tim dengan menyentuh SpawnLocation .Ketika diatur ke benar, jika karakter Player masuk kontak dengan SpawnLocation , karakter pemain Player.TeamColor akan diatur ke SpawnLocation.TeamColor . Player.Neutral juga akan ditetapkan ke SpawnLocation.Neutral saat kontak, artinya pemain juga bisa menjadi netral dengan menyentuh lokasi spawn.
Ini tidak akan berfungsi saat SpawnLocation.Enabled diatur ke false.
Membuat Pos Pemeriksaan
Fitur ini sering digunakan untuk membuat titik pemeriksaan di rintangan atau permainan serupa.
Contoh Kode
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
Durasi waktu, dalam detik, bahwa ForceField akan diterapkan ke karakter Player yang muncul di SpawnLocation ini.Jika Durasi adalah nol, ForceField tidak pernah dibuat, dan tidak akan memicu peristiwa Instance.DescendantAdded atau Instance.ChildAdded.
Nilai default dari properti ini adalah 10 detik.
Fitur durasi memungkinkan pengembang untuk dengan mudah memberikan perlindungan Players dari 'memunculkan pembunuhan' yang bisa menjadi pengalaman frustasi bagi pemain.Catatan, ForceFields hanya akan melindungi pengguna dari Explosions dan senjata yang menggunakan Humanoid:TakeDamage() untuk menangani kerusakan atau sebaliknya memeriksa untuk ForceField .
Contoh Kode
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
Mengatur apakah SpawnLocation diaktifkan atau tidak. Saat dinonaktifkan, pemain tidak dapat muncul di SpawnLocation dan fungsi SpawnLocation.AllowTeamChangeOnTouch dibatalkan.
Properti ini memberikan cara paling nyaman untuk mencegah Players dari muncul di spawn.
Catatan, meskipun tim berubah saat menyentuh menggunakan SpawnLocation.AllowTeamChangeOnTouch dibatalkan saat Aktif diatur ke false, peristiwa lain yang disentuh menggunakan BasePart.Touched masih akan ditembak.
Contoh Kode
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
Apakah atau tidak spawn terafiliasi dengan tim tertentu.Ini berarti bahwa/itu setiap Player , dari setiap Team , dapat muncul di atasnya jika properti ini diatur ke benar.
Jika Neutral diatur ke false, hanya pemain yang Player.TeamColor sama dengan SpawnLocation.TeamColor dapat menggunakan SpawnLocation .
Jika SpawnLocation.AllowTeamChangeOnTouch benar Player.Neutral akan ditetapkan ke properti ini saat berhubungan dengan spawn.
Contoh Kode
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
Properti TeamColor menetapkan tim mana SpawnLocation terafiliasi.Jika properti SpawnLocation.Neutral palsu, hanya Players dengan sama Player.TeamColor sebagai warna tim pembuatan akan dapat dispawn di sana.
Jika SpawnLocation.AllowTeamChangeOnTouch benar Player.Neutral akan ditetapkan ke properti ini saat berhubungan dengan spawn.
Contoh Kode
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)