Reference API Roblox

Engine API

Website

Related

Reference API Roblox

SpawnLocation

SpawnLocations, or "spawns" determine where a Player respawns when they die. They can be configured to allow only certain players to use each spawn, using Teams. They also control how ForceFields are set up for newly-spawned players.

Member index 5

HistoryMember
726AllowTeamChangeOnTouch: bool
726Duration: int
726Enabled: bool
726Neutral: bool
726TeamColor: BrickColor
inherited from Part
726Shape: PartType
inherited from FormFactorPart
726FormFactor: FormFactor
inherited from BasePart
726Anchored: bool
726AssemblyAngularVelocity: Vector3
726AssemblyCenterOfMass: Vector3
726AssemblyLinearVelocity: Vector3
726AssemblyMass: float
726AssemblyRootPart: BasePart
726AudioCanCollide: bool
726BackSurface: SurfaceType
726BottomSurface: SurfaceType
726BrickColor: BrickColor
726CFrame: CFrame
726CanCollide: bool
726CanQuery: bool
726CanTouch: bool
726CastShadow: bool
726CenterOfMass: Vector3
726CollisionGroup: string
726CollisionGroupId: int
726Color: Color3
726CurrentPhysicalProperties: PhysicalProperties
726CustomPhysicalProperties: PhysicalProperties
726EnableFluidForces: bool
726ExtentsCFrame: CFrame
726ExtentsSize: Vector3
726FrontSurface: SurfaceType
726LeftSurface: SurfaceType
726Locked: bool
726Mass: float
726Massless: bool
726Material: Material
726MaterialVariant: string
726PivotOffset: CFrame
726Reflectance: float
726ResizeIncrement: int
726ResizeableFaces: Faces
726RightSurface: SurfaceType
726RootPriority: int
726Rotation: Vector3
726Size: Vector3
726SpecificGravity: float
726TopSurface: SurfaceType
726Transparency: float
726brickColor: BrickColor
603AngularAccelerationToTorque(angAcceleration: Vector3, angVelocity: Vector3 = 0, 0, 0): Vector3
573ApplyAngularImpulse(impulse: Vector3): null
573ApplyImpulse(impulse: Vector3): null
573ApplyImpulseAtPosition(impulse: Vector3, position: Vector3): null
573BreakJoints(): null
557CanCollideWith(part: BasePart): bool
462CanSetNetworkOwnership(): Tuple
576GetClosestPointOnSurface(position: Vector3): Vector3
648GetConnectedParts(recursive: bool = false): Instances
648GetJoints(): Instances
486GetMass(): float
567GetNetworkOwner(): Instance
567GetNetworkOwnershipAuto(): bool
648GetNoCollisionConstraints(): Instances
678GetPhysicsCost(): float
462GetRenderCFrame(): CFrame
726GetRootPart(): Instance
648GetTouchingParts(): Instances
557GetVelocityAtPosition(position: Vector3): Vector3
648IntersectAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance
486IsGrounded(): bool
573MakeJoints(): null
462Resize(normalId: NormalId, deltaAmount: int): bool
573SetNetworkOwner(playerInstance: Player = Player): null
573SetNetworkOwnershipAuto(): null
648SubtractAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance
603TorqueToAngularAcceleration(torque: Vector3, angVelocity: Vector3 = 0, 0, 0): Vector3
648UnionAsync(parts: Instances, collisionfidelity: CollisionFidelity = Default, renderFidelity: RenderFidelity = Automatic): Instance
726breakJoints(): null
726getMass(): float
573makeJoints(): null
726resize(normalId: NormalId, deltaAmount: int): bool
483LocalSimulationTouched(part: BasePart)
462OutfitChanged()
726StoppedTouching(otherPart: BasePart)
483TouchEnded(otherPart: BasePart)
483Touched(otherPart: BasePart)
inherited from PVInstance
726Origin: CFrame
726Pivot Offset: CFrame
576GetPivot(): CFrame
573PivotTo(targetCFrame: CFrame): null
inherited from Instance
726Archivable: bool
726Capabilities: SecurityCapabilities
726IsInSandbox: bool
726Name: string
726Parent: Instance
726PredictionMode: PredictionMode
726Sandboxed: bool
726UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
726children(): Instances
726clone(): Instance
726destroy(): null
726findFirstChild(name: string, recursive: bool = false): Instance
726getChildren(): Instances
726isDescendantOf(ancestor: Instance): bool
726remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
726childAdded(child: Instance)
inherited from Object
726ClassName: string
726className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
726isA(className: string): bool
647Changed(property: string)

Description

SpawnLocations, or "spawns" determine where a Player respawns when they die. They can be configured to allow only certain players to use each spawn, using Teams. They also control how ForceFields are set up for newly-spawned players.

SpawnLocations can be used as checkpoints, such as in an obstacle course, using the SpawnLocation.AllowTeamChangeOnTouch property, so that when a player touches it, they will change teams to the SpawnLocation's team. In this case, only the first Team should have Team.AutoAssignable set to true, else players will not start at the first checkpoint.

Note if a SpawnLocation is added to the Workspace in Studio with SpawnLocation.Neutral set to false a Team will be created corresponding to SpawnLocation.TeamColor if it does not already exist. This behavior does not occur when spawns are created in-game using a Script or if the properties of the SpawnLocation are changed after already being added. It is recommended that developers always set up their teams manually and not rely on this behavior.

Spawning Rules

There are several rules that come into play for a given SpawnLocation when a player respawns:

See also:

  • If you'd like to configure how long it takes for a player to respawn, take a look at the RespawnTime property

History 30

Members 5

AllowTeamChangeOnTouch

TypeDefault
bool

Allows a Player to join the team by touching the SpawnLocation. When set to true, if a Player character comes into contact with the SpawnLocation, the player's Player.TeamColor will be set to SpawnLocation.TeamColor. Player.Neutral will also be set to SpawnLocation.Neutral upon contact, meaning a player can also become neutral by touching a spawn location.

This will not function when SpawnLocation.Enabled is set to false.

Making Checkpoints

This feature is often used to make checkpoints in obstacle courses or similar games.

History 5

Duration

TypeDefault
int

The length of time, in seconds, that a ForceField will be applied to a Player character spawning at this SpawnLocation. If Duration is zero, the ForceField is never created, and it will not trigger the Instance.DescendantAdded or Instance.ChildAdded events.

This default value of this property is 10 seconds.

The duration feature allows developers to easily give Players protection from 'spawn killing' which can be a frustrating experience for players. Note, ForceFields will only protect users from Explosions and weapons that use Humanoid:TakeDamage() to deal damage or otherwise check for a ForceField.

History 5

Enabled

TypeDefault
bool

Sets whether or not the SpawnLocation is enabled. When disabled players cannot spawn at the SpawnLocation and the SpawnLocation.AllowTeamChangeOnTouch functionality is disabled.

This property provides the most convenient way of preventing Players from spawning at a spawn.

Note, although team changing on touch using SpawnLocation.AllowTeamChangeOnTouch is disabled when Enabled is set to false, other touched events using BasePart.Touched will still fire.

History 5

Neutral

TypeDefault
bool

Whether or not a spawn is affiliated with a specific team. This means that any Player, of any Team, can spawn on it if this property is set to true.

If Neutral is set to false, only players whose Player.TeamColor is equal to SpawnLocation.TeamColor can use the SpawnLocation.

If SpawnLocation.AllowTeamChangeOnTouch is true Player.Neutral will be set to this property upon contact with the spawn.

History 5

TeamColor

TypeDefault
BrickColor

The TeamColor property sets what team the SpawnLocation is affiliated to. If SpawnLocation.Neutral property is false, only Players with the same Player.TeamColor as the spawn's TeamColor will be able to spawn there.

If SpawnLocation.AllowTeamChangeOnTouch is true Player.Neutral will be set to this property upon contact with the spawn.

History 5

Settings