Spawn Points Tutorial
by Uncle Sam
Hey gang. In this tutorial we’re gonna go over spawn points and how to tie
them in with control points. Since the majority of levels are played in conquest
mode, we’ll be discussing how to set up spawns for a conquest map. That being
said, the spawn point and control point files for your map are located in the
CONQUEST folder of your RFA file. Let’s go ahead and have a look at them and
try and understand what does what:
- ControlPoints.con - Contains the coordinates for each control point. This
will basically set where the flag goes. Technically a flag is a static
object but it is defined here and not in StaticObjects.con.
- ControlPointTemplates.con - This file sets all the parameters for each
control point. What you edit here will determine what kind of level you’ll
be playing on.
- SoldierSpawns.con - Contains the coordinates for each individual player
- SoldierSpawnTemplates.con - Takes each player spawn point and assigns it
to a group.
- SpawnPointManagerSettings.con - Takes each group of spawn points and
assigns them to a team for the start of the round.
NOTE: We will not be discussing object spawn points in this tutorial.
That will be dealt with in a separate tutorial for length’s sake.
Let’s begin by taking a look at the ControlPoints file. Let’s take a look
at part of the one for Iwo Jima:
The first line assigns a new control point and gives it a name. This name
must match the one that you will put in the templates file. The second line
obviously defines it’s position. You will have to have both of these for each
control point that you want to make.
You’ll always see this section at the top any control point template file:
This text must be here even if you’re making a template file from scratch.
If you’re editing an existing one, leave it alone. This is the section for the
Allied landing beach at Iwo Jima:
- ObjectTemplate.create ControlPoint sandBase_Cpoint - Sets the new control
point parameters section. The name must match the name of the control point
from the controlpoints.con file.
- ObjectTemplate.networkableInfo ControlPointInfo - Required by game.
- ObjectTemplate.setControlPointName Landing_Beach - This is the in-game
name of the control point. If the Allies capture it, “Allies captured
Landing_Beach” would appear on the screen.
- ObjectTemplate.radius 25 - Defines how close you must be to the flag to
take control of it.
- ObjectTemplate.team 0 - Determines who will be in control of the point at
the beginning of the round. (1 - Axis, 2 - Allies, 0 - Neutral) These
numbers are universal for defining teams in CON files. Remember them.
- ObjectTemplate.spawnGroupId 6 - Determines what predefined group of player
spawn points will be attached to this control point.
- ObjectTemplate.objectSpawnerId 6 - Same as spawnGroupId but for objects.
- ObjectTemplate.areaValue 0 - This line is very important for Conquest maps
and warrants a detailed explanation. In order for a team to force the
opposing team to start losing tickets automatically, that team must hold 100
or more areaValue points at one time. Let’s say there were 5
“capture-able” points on the map. If you want a team to have to capture
all of them before the opposing team starts flashing red, you would set this
value to 20 for each control point. (20 X 5 = 100) If you wanted them to
have to capture only 2/3 of them, you could set it to 35. This would put you
at 105 points, but since its over 100, it will still work. Permanent bases
that can’t be captured or should only be taken by one team(like the
landing beach) should be set to “0”.
Take a Breath
- ObjectTemplate.timeToGetControl 2 - How long it takes to capture a neutral
flag. Set to “9999” for permanent team bases.
- ObjectTemplate.timeToLoseControl 2 - How long it takes to make a flag
captured by the other team neutral. Set to “9999” for permanent team
- ObjectTemplate.onlyTakeableByTeam 2 - Makes it so that only one team can
actually capture the point. To my knowledge, this is only used on the
beaches at Iwo Jima and Omaha Beach. Remove this line if you have no use for
- ObjectTemplate.disableIfEnemyInsideRadius 0 - This one is obvious but you
probably don’t want to change it.
- ObjectTemplate.disableWhenLosingControl 0 - Ditto.
- ObjectTemplate.loseControlWhenEnemyClose 1 - Allows point to be captured
by opposing team.
- ObjectTemplate.loseControlWhenNotClose 0 - Leave it alone unless you’re
making a “king of the hill” map or something.
- ObjectTemplate.geometry flagbase_m1 - Initializes the flagpole model.
- ObjectTemplate.hasCollisionPhysics 1 - Makes the flag solid. Watch yer
- ObjectTemplate.addTemplate AnimatedFlag - Initializes animated flag.
- ObjectTemplate.setPosition 0/8.2/0 - Keep it the way it is. Test out other
values if you want, but that’s at your own risk.
- ObjectTemplate.setTeamGeometry 1 flagJp_m1 - Sets the model for the waving
flag. (Jp, Us, Uk, Ge, So).
- ObjectTemplate.setTeamGeometry 2 flagus_m1 - Ditto for team “2”.
Whew! Don’t worry that one was by far the most complicated.
Now on to SoldierSpawns.con. Let’s look at one of the player spawn points.
The first line assigns the spawn point a name. This name must match its
counter-part in the SoldierSpawnTemplates.con file. You’ll notice in many of
the official levels that spawnpoints are often called OpenSpawnPoint,
AxisSpawnPoint, etc. You can name them whatever you want though. Its really up
to you. You should know what the other two lines do by now.
This is the template for the player spawn we just looked at:
ObjectTemplate.create SpawnPoint suribashi_bottom_1
In the first line, the name matches perfectly with its counter part. The
second line is the Spawn ID. Each player spawn point must have its own ID
regardless of what group its in. If you have 30 spawn points you’d better have
30 spawn ID’s. No repeating them.
The third line is very important. This will assign the spawn point to a group
of spawns and you use this Group ID to tie the group to a control point. So if
you had 5 soldier spawn points in a group you would tie it to a control point so
that whoever was in control would be able to utilize them. Go back and look at
the ControlPointTemplates.con file to see what ID you want to tie it to.
I find that this file doesn’t serve much purpose unless you’re making a
spawn group that isn’t tied to a control point like the para-drop point on
Market Garden. But to be safe use it anyway:
- spawnPointManager.group 4 - Spawn Group ID.
- spawnPointManager.groupTeam 1 - Team that will be using the spawn point at
the start of the round.
- spawnPointManager.groupIcon test1.tga - Either leave this line the way it
is or delete. I have seen no difference in doing either.
- rem spawnPointManager.groupStatus 0 - REMed out it almost every official
map. Leave it or delete it.
Parachute Spawn Point Details
This is incredibly easy to do. Open up your SoldierSpawnTemplates.con file,
and for every player spawn point that you want to deploy with an open chute at
spawn, just add this line: ObjectTemplate.setSpawnAsParaTroper 1
ObjectTemplate.create SpawnPoint Airborne_Drop_9
NOTE: Specialized spawn points like the one in Market Garden do not need
to be tied to any control point since they cannot be captured. However, they
still need their own group ID. Don’t forget to spread them out from each other
a little. Also, in the SoldierSpawns.con file, give them a decent altitude of
100-200 above ground for their “Z” coordinate value.
Last minute tips and advice
- When setting up a group of spawn points, make sure to spread them out some
so that soldiers will actually have a chance to overtake a spawn camper,
like a tank or artillery.
- If you get confused, take a look at the CON files for the official levels.
Learning from example is the best way.