SpawnLocation
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
SpawnLocations, oder "spawns" bestimmen, wo ein Player respawns, wenn sie sterben. Sie können konfiguriert werden, um nur bestimmte Spieler zu erlauben, jeden Respawn zu verwenden, indem sie Teams verwenden. Sie steuern auch, wie ForceFields für neu gespawnte Spieler eingerichtet sind.
SpawnLocations können als Checkpoints verwendet werden, z. B. in einem Hindernis-Kurs, indem die SpawnLocation.AllowTeamChangeOnTouch Eigenschaftenverwendet wird, so dass wenn ein Spieler sie berührt, wird er Teams auf der SpawnLocation-Team ändern. In diesem Fall müssen nur die ersten Team -Sätze Class.Team
Beachten Sie, wenn ein SpawnLocation in Studio mit SpawnLocation.Neutral und SpawnLocation.TeamColor auf false gesetzt wird, dass ein Team erstellt wird, das entspricht 1>Class.SpawnLocation.TeamColor1>, wenn es noch nicht existiert. Dieses Verhalten geschieht nicht,
Regeln spawnen
Es gibt mehrere Regeln, die für einen bestimmten SpawnLocation gelten, wenn ein Spieler respawns:
- Wenn SpawnLocation.Neutral auf falsch gesetzt ist, nur Players mit Player.TeamColor und der Übereinstimmung von 1> Class.SpawnLocation.TeamColor1> wird über ihm respawnen
- Wenn SpawnLocation.Neutral auf wahr gesetzt ist, kann jeder Spieler über ihm spawnen, unabhängig von SpawnLocation.TeamColor
- Wenn mehrere qualifizierte Spawns für einen Player verfügbar sind, wird ein zufälliger ausgewählt
- Spieler spawnen an verschiedenen Orten auf dem SpawnLocation, aber derzeit können sie immer noch auf dem einen und anderen spawnen, wenn sie richtig nach dem anderen spawnen
Siehe auch:
- Wenn du möchtest, wie lange es dauert, bis ein Spieler wiederbelebt, schau dir die RespawnTime Eigenschaftenan
Code-Beispiele
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)
Zusammenfassung
Eigenschaften
Erlaubt einem Player, sich dem Team anzuschließen, indem er den SpawnLocation berührt. Wenn auf wahr gesetzt, wenn ein Player -Charakter in Berührung mit dem 2>Class.SpawnLocation2> kommt, wird die Spieler:in5>Class.Player.TeamColor
Die Länge der Zeit, in Sekunden, die ein ForceField angewendet wird zu einem Player -Charakter, der bei diesem SpawnLocation spawnet. Wenn die Dauer null ist, wird das 2>Class.ForceField2> niemals erstellt und es wird nicht die Ereignisse
Setzt, ob die SpawnLocation aktiviert ist. Wenn deaktivierte Spieler nicht auf der SpawnLocation spawnen und die Funktion "AllowTeamChangeOnTouch" deaktiviert ist.
Ob eine SpawnLocation mit einem bestimmten Team verbunden ist. Dies bedeutet, dass jeder Player , von einem Team , auf ihm spawnen kann, wenn diese Eigenschaft auf wahr gesetzt ist.
Setzt, zu welchem Team die SpawnLocation verbunden ist. Wenn die Eigenschaft SpawnLocation.Neutral falsch ist, können nur Players mit der gleichen 1>Class.Player.TeamColor1> wie die Spawn-Teamfarbe dort spawnen.
Setzt die allgemeine Form des Objekts.
Bestimmt, ob ein Teil auf physikalische Weise unbewegbar ist.
Die angelicale Geschwindigkeit der Montagemaschine.
Die Mitte der Masse der Montagemaschine im Platz.
Die lineare Geschwindigkeit der Montagemaschine.
Die Gesamtmenge der Montagemaschine.
Eine Verweis auf den Wurzelteil der Konfiguration.
Bestimmt die Art der Oberfläche für die Rückseite eines Teils (+Z-Richtung).
Bestimmt die Art der Oberfläche für das Untergesicht eines Teils (-Y-Richtung).
Bestimmt die Farbe eines Teils.
Bestimmt die Position und Ausrichtung der BasePart in der Welt.
Bestimmt, ob ein Teil mit anderen Teilen kollidieren kann.
Bestimmt, ob das Teil während der räumlichen Anfrage-Operationen betrachtet wird.
Bestimmt, ob Touched und TouchEnded Ereignisse auf der Teil abgefeuert werden.
Bestimmt, ob ein Teil einen Schatten wirft oder nicht.
Beschreibt die Weltposition, in der sich der Zentrum eines Teils befindet.
Beschreibt die Name einer Gruppe.
Bestimmt die Farbe eines Teils.
Zeigt die aktuellen physischen Eigenschaften des Teils an.
Bestimmt mehrere physikalische Eigenschaften eines Teils.
Wird verwendet, um aerodynamische Kräfte auf Teile und Montagen zu aktivieren oder zu deaktivieren.
Die tatsächliche physische Größe des BasePart als von der Physik-Engine betrachtet.
Bestimmt die Art der Oberfläche für die Vorderseite eines Teils (-Z-Richtung).
Bestimmt die Art der Oberfläche für die linke Seite eines Teils (-X-Richtung).
Bestimmt einen Multiplikator für BasePart.Transparency, der nur für den lokalen Client sichtbar ist.
Bestimmt, ob ein Teil in Studio auswählbar ist.
Beschreibt die Masse der Teil, das Produkt seiner Dichte und Volumen.
Bestimmt, ob der Teil zur Gesamtmenge oder zur Inaktivität seines Festen Körpers beiträgt.
Bestimmt die Textur und die Standard- physischen Eigenschaften eines Teils.
Der Name von MaterialVariant .
Beschreibt dieRotation der Teil in der Welt.
Gibt den Versatz des Teils von seinem CFrame .
Beschreibt die Position der Teil in der Welt.
Zeit seit dem letzten aufgezeichneten Physik-Update.
Bestimmt, wie viel ein Teil den Himmelskasten widerspiegelt.
Beschreibt die kleinste Größenänderung, die durch die Größenanpassungsmethode erlaubt ist.
Beschreibt die Gesichter, auf denen ein Teil skaliert werden kann.
Bestimmt die Art der Oberfläche für die rechte Seite eines Teils (+X-Richtung).
Die Hauptregel bei der Bestimmung des Hauptteils einer Konfiguration.
DieRotation der Teil in Grad für die drei Achsen.
Bestimmt die Dimensionen eines Teils (Länge, Breite, Höhe).
Bestimmt die Oberflächenart für die obere Gesichtseite eines Teils (+ Y-Richtung).
Bestimmt, wie viel ein Teil durch (den Umkehrwert der Teil-Opakez) gesehen werden kann.
Methoden
Methoden von BasePart übernommenWenden Sie einen angulären Impuls auf die Montagemaschine an.
Apply an impulse to the assembly at theAssembly's center of mass .
Geben Sie einem Montageimpuls die erforderliche Position.
Gibt zurück, ob die Teile miteinander kollidieren können.
Überprüft, ob du das Netzwerkbesitz einer Teil so einstellen kannst, dass es sich.
Gibt eine Tabelle von Teilen zurück, die mit dem Objekt durch eine beliebige Art von Verbindungverbunden sind.
Kehre alle Joints oder Einschränkungen zurück, die mit dieser Teil verbunden sind.
Kehrt den Wert der Mass Eigenschaftenzurück.
Gibt den aktuellen Spieler zurück, der der Netzwerk-Eigentümer dieses Teils ist, oder null in Falle des Servers.
Kehrt wahr zurück, wenn die Spielmaschine die Netzwerkbesitzer automatisch für diesen Teil festgelegt hat.
Rückgibt die Basis eines Teile montierens.
Gibt eine Tabelle zurück, in der alle BasePart.CanCollide wahren Teile, die mit dieser Teil intersect.
Gibt die lineare Geschwindigkeit der Montage des Teils an der angegebenen Position in Bezug auf diesen Teil zurück.
Gibt zurück, wenn das Objekt mit einem Teil verbunden ist, das es an Ort hält (z. B. eine Anchored Part), oder anders zurückgegeben wird.
Ändert die Größe eines Objekts genau wie mit dem Tool.
Setzt den angegebenen Spieler als Netzwerk-Eigentümer für dies und alle verbundenen Teile.
Lässt die SpielEngine dynamisch entscheiden, wer die Physik der Teile (eines der Clients oder des Servers) verantwortet.
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Erstellt eine neue IntersectOperation von der überlappenden Geometrie des Teils und den anderen Teilen in der angegebenen Array.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Erstellt einen neuen UnionOperation von der Abteilung, minus die Geometrie, die von den Teilen in der angegebenen Arraybesetzt ist.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Erstellt einen neuen UnionOperation von der Teil, plus die Geometrie, die von den Teilen in der angegebenen Arraybelegt ist.
Erhalten Sie die Ausrichtung einer PVInstance.
Transformiert die PVInstance zusammen mit all ihren Nachkommen PVInstances, wodurch der Pivot jetzt an der angegebenen CFrame liegt.
Ereignisse
Ereignisse von BasePart übernommenFeuert ab, wenn ein Teil aufgrund einer physischen Bewegung ein anderes Teil berührt.
Feuert ab, wenn ein Teil eine andere Teil berührt als Ergebnis einer physischen Bewegung.
Eigenschaften
AllowTeamChangeOnTouch
Erlaubt einem Player, sich dem Spieler:inanzuschließen, indem er den SpawnLocation ber
Dies wird nicht funktionieren, wenn SpawnLocation.Enabled auf falsch gesetzt ist.
Checkpoints erstellen
Dieser Feature wird oft verwendet, um Checkpoints in Hindernis-Kursen oder ähnlichen Spielen zu erstellen.
Code-Beispiele
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
Die Länge der Zeit, in Sekunden, die ein ForceField angewendet wird zu einem Player -Charakter, der bei diesem SpawnLocation spawnet. Wenn die Dauer null ist, wird das 2>Class.ForceField2> niemals erstellt und es wird nicht die Ereignisse
Dieser Standardwert dieser Eigenschaft beträgt 10 Sekunden.
Die Dauer-Funktion ermöglicht es Entwicklern, Players leicht vor 'Spawn-Kill' zu schützen, was für Spieler frustrierend sein kann. Beachten Sie, dass ForceFields nur Benutzer vor Class.Explosion|Expl
Code-Beispiele
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
Setzt, ob die SpawnLocation aktiviert ist oder nicht. Wenn deaktivierte Spieler nicht an der SpawnLocation und der SpawnLocation.AllowTeamChangeOnTouch Funktionalität deaktiviert sind, ist die 1>Class.SpawnLocation.AllowTeamChangeOnTouch1> Funktionalität deaktiviert.
Dieses Eigenschaft bietet den bequemsten Weg, um Players vor dem Spawn zu verhindern.
Beachten Sie, dass Team-Änderungen auf dem Touch mit der SpawnLocation.AllowTeamChangeOnTouch -Team-Änderungen auf dem Touch aktiviert sind, wenn "Aktiviert" auf false gesetzt ist, werden andere berührte Ereignisse mit dem BasePart.Touched -Team-Änderungen auf dem Touch immer noch ausgeführt.
Code-Beispiele
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
Ob ein Spawn mit einem bestimmten Team verbunden ist oder nicht. Dies bedeutet, dass jeder Player , von jedem Team , auf ihm spawnen kann, wenn diese Eigenschaft auf wahr gesetzt ist.
Wenn Neutral auf falsch gesetzt ist, können nur Spieler, cuyo Player.TeamColor gleich ist mit SpawnLocation.TeamColor den SpawnLocation verwenden.
Wenn SpawnLocation.AllowTeamChangeOnTouch wahr ist, wird Player.Neutral auf diese Eigenschaft beim Kontakt mit dem Spawn gesetzt.
Code-Beispiele
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
Die TeamFarbe-Eigenschaft legt fest, zu welchem Team die SpawnLocation verbunden ist. Wenn die SpawnLocation.Neutral-Eigenschaft falsch ist, können nur Players mit der gleichen 1> Class.Player.TeamColor1> wie die Spawn-TeamFarbe dort spawnen.
Wenn SpawnLocation.AllowTeamChangeOnTouch wahr ist, wird Player.Neutral auf diese Eigenschaft beim Kontakt mit dem Spawn gesetzt.
Code-Beispiele
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)