The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
The PlayerStart Actors are part of the path network of any Unreal map. Being a NavigationPoint, each PlayerStart also appears in the navigation point list in the game. Especially, the locations of the PlayerStarts are the location where players are spawned at the beginning of a match or respawned after being fragged.
Adding a PlayerStart
To add a PlayerStart in UnrealEd, select it in the Actor browser; it is a NavigationPoint. Now right-click at the floor somewhere in the map where you want your PlayerStart. Chose "Add PlayerStart here" in the context menu. The PlayerStart will be placed 40 UU above the ground.
Number of PlayerStarts
One of the basic mapping mistakes is adding too few PlayerStarts to a multiplayer map. If more players want to start a match than PlayerStarts are available, some will be telefragged because other players are spawned at the same location. Always add more PlayerStarts to a map than players are supposed to play the map at the same time. Replacing some PathNodes by PlayerStarts doesn't hurt because PathNodes are just NavigationPoints which have a texture to see them in the editor.
Don't worry about telefragging other players by doing that; the engine takes care that that doesn't happen.
- bool bCoopStart
- Whether this player start is to be used in co-operative gametypes. (think "Unreal Co-op")
- bool bEnabled
- A PlayerStart is enabled by default; is this is set to False, players will not be spawned there. In UT a PlayerStart can be enabled/disabled by being triggered. In UT200x you need to use a TriggeredPlayerStart instead if you want to enable/disable the player start via triggering.
- bool bPrimaryStart
- (UT200x) Set this to false if you only want this start to be used only if all other player starts are currently blocked.
- bool bSinglePlayerStart
- Whether this player start is to be used in single-player gametypes. (think "Unreal", not botmatch or instant action)
- byte TeamNumber
- Sets which team should spawn here. This value only used in gametypes with the concept of team bases, like CTF or Assault. See Team Number.
Note that in UT200x, this is done via the subclass TriggeredPlayerStart.
A PlayerStart can be enabled/disabled by triggering it. Triggering the PlayerStart just switches the bEnabled property. This is especially useful in Single player and Assault games. As the player advances in the level he will be annoyed if he has to run thru the whole map to get to the action spot each time he dies and respawns. Place the initial playerstart group at the beginning of the level but place additional groups at further parts of the level as well. Set the advanced playerstarts to bEnabled=False. The Tag of the playerstarts in each group should be the same. (eg 1-for the first ro, 2-for the second row etc) When a player reaches a FortStandard (objective) it should trigger a Dispatcher. Open the properties of the Dispatcher and set the OutEvents to the row of playerstarts that are needed to be disabled and the row which needs to be enabled. (1-2, 2-3, etc) So only one group of playerstarts will be active at once.
When making a single player map ,you can replace the PlayerStart(s) with some PlayerPawn(s) actor.They will work the same.
This is an easy way to make the player have a distinctive skin or mesh, or other specific attribute.
If you want your SP map to be playable in coop mode it's a good idea to put one playerstart (the one used in single player) and several playerpawns where the coop players will spawn.
If you put several playerstarts ,then your single player would spawn randomly in one of these.
- xGame.xFieldPlayerStart – Doesn't seem to be used.