SCTA fixes the guard/30,000 health bug present in Team Arena!

290 new settings in SCTA and counting!

SCTA / SCQ3A Spawnvar Editing
 

So, what the heck is a spawnvar?  That's a good question!  Spawnvars are the list of items/entities contained with in each map you play.  SCTA/SCQ3A lets you edit this list without editing the map itself.  Note that this document covers the spawnvar format version 2 available in SCTA/SCQ3A versions 1.4 and higher!

And just how do I edit these spawnvars?  If you're editing spawnvars for one of the TA or Q3A maps, then you can download the default spawnvars from here.  If you're not, then download bsp2sv.exe.  Then, extract the mapname.bsp file from the map's pk3 file.  Run bsp2sv mapname.bsp mapname.sv and voila, you have the map's spawnvars.

Now, create a new spawnvar file called mapname.sv (ie q3ctf1.sv) with your favorite text editor (IE notepad or wordpad).  In here you will make additions to the default spawnvars that you see in the extracted version, and you will also most likely need to disable and re-define some of the ones (like flags) in the extracted version.

To make a map TA-friendly, you need to add the following to it:

  1. (Required) Obelisks

  2. (Required) Flags (Blue, Red, Neutral)

  3. Persistent Powerups (Scout, Guard, Doubler, Ammoregen)

  4. (Optional) TA weapons (nailgun, chaingun, prox-launcher)

The Obelisks are for the big skulls at each base in Overload mode, and are also used to denote the place to drop off skulls in harvester mode.  It's ALSO used for the central skull-spawning thing in the center of the map in harvester mode.

Flags are obvious, but require some work.  If you're converting a CTF map, then there are two possibilities:

  1. Simply add the neutral flag in the center of the map

  2. Disable the existing flags, and define a new set (you'll have to do this if flags show up in non-flag gametypes).  More on this later...

Persistent Powerups are also fairly obvious; Place a well-balanced set on each side of the map.  Make sure you also denote which team owns that powerup so only that team can pick them up (more on that below).

And hey, look at that - weapons are also pretty obvious [grin].  Again - just place them in a well-balanced manner.  Too many weapons make a mess.. and keep in mind the size of the map.  Proxmine launchers on huge maps are generally a bad idea.  It can lead to the server running out of entities.

You must put a version number at the very top of your spawnvar files like so:

{
"version" "2"
}

Without it, SCTA will cause the server to abort!

Here are the definitions for the Obelisks/Flags you'll want to add (I'll explain how to position them below):

{
"classname" "team_blueobelisk"
"angle" "270"
"origin" "736 1240 167"
}
{
"angle" "90"
"classname" "team_redobelisk"
"origin" "736 -2528 167"
}
{
"gametype" "oneflag"
"classname" "team_CTF_neutralflag"
"origin" "-480 736 4"
}
{
"gametype" "harvester oneflag"
"classname" "team_neutralobelisk"
"origin" "768 -636 24"
}
{
"gametype" "oneflag"
"classname" "team_CTF_neutralflag"
"origin" "768 -636 48"
}

Each item is grouped within braces {}.  Inside each brace you have can have any number of lines.  Each line consists of a left-hand-side (LHS) and a right-hand-side (RHS).  Each side is enclosed in double quotes.  The LHS contains information about what it is you're about to define, and the RHS contains the value of the definition.  So, for the first group, you'll see we're defining a classname of team_blueobelisk.  This is the Blue Team's Obelisk.  The angle (270) is the direction it faces.  The origin (736 1240 167) is where on the map it is to be placed.  Simple enough.  The annoying part is actually placing the item.  I'll discuss how to do that below.

The LHS value of "gametype" means what gametypes to load this item in.  You'll notice that team_blueobelisk doesn't have a gametype in it.. That's because it has a special exception - TA realizes when it needs to load it or not.  So there's no need to specify a gametype for blue/red obelisks.  Available gametypes are: ctf, oneflag, obelisk, and harvester.

To define things like Scouts, etc, use the following:

{
"origin" "-596 2588 284"
"spawnflags" "4"
"classname" "item_scout"
}

The others are item_guard, item_doubler, and item_ammoregen.  Notice the "spawnflags" part?  This is where you set who can pick it up.  Set it to 2 for the red team, and to 4 for the blue team.

Weapons are like so:

{
"origin" "-708 3388 386"
"classname" "weapon_nailgun"
}

The others are weapon_prox_launcher and weapon_chaingun.  Don't forget some ammo for them!  Nailgun ammo is ammo_nails, prox launcher ammo is ammo_mines, and chaingun ammo is ammo_belt.

There's also the kamikaze item.  Apparently there's some weirdness surrounding it's definition.  Here's the recommended stanza to use for it:

{
"classname" "holdable_kamikaze"
"origin" "508 -1320 920"
"wait" "120"
}

Don't forget holdable_invulnerability.

What's this "wait" mean?!?!  That's just the respawn time (in seconds) for this item, overriding the default Q3A holdable respawn time.  Note that SCTA CVARs can override this value.  There's also a "random" LHS which means take "wait" and adjust it plus or minus "random" to get it's respawn time.  So a wait of 60 with random 15 means spawn between 45 and 75 seconds later.

Here comes the fun part - flags.  The flag definitions I've run into so far look like so:

// Below is group/stanza number: 43
{
"notfree" "1"
"angle" "360"
"classname" "team_CTF_redflag"
"origin" "736 -2528 184"
}

Here, "notfree" means don't spawn this in FFA gametypes.  However, it will spawn in all other teamplay games, including overload and harvester. D'oh!  So we need to disable this definition.  To do so, simply note it's group/stanza number (the new bsp2sv.exe now produces the spawnvars with a note as to what number you're looking at).  Now, create your new definition, and add: "disabled" "##" where "##" is the group/stanza number.
Here's an example of disabling and re-defining the above flag:

{
"gametype" "ctf oneflag"
"angle" "360"
"classname" "team_CTF_redflag"
"origin" "736 -2528 184"
"disable" "43"
}

Notice how I removed the "notfree" tag and put a "gametype" tag in there instead.  That's a more accurate way of defining when this flag should be used.

 

One other note about spawnflags.  If you want to suspend an item in the air, set spawnflags to 1.

 

If you're having trouble with an entity not showing up depending on where you are, I've provided the ability to set the svFlags of an entity; Setting it to 32 marks the entity to broadcast to all clients.  Here's the line you'd use:

 

"svflags" "32"


That's about all you're gonna play with.. If you're bored (though I'd like to get the converted maps done and ready first), you can try to play with other things... just check out the spawnvar files for mpteam1 and other maps to see what they've got defined.. I won't bother documenting it here, because that's not the purpose of this document.

 

To find out where to place items, load up TA and type

/devmap mapname

in the console.  That'll load that map with cheats enabled.  Then bind a key to viewpos.  Hit the viewpos key where you think you want to place an item.  That'll print something like:

(x y z): a

Where x y and z are the coordinates, and a is the angle (so make sure you're facing the right direction).  Generally angles will be 0, 90, 180, or 270.  If it seems off by a few, it's probably just you pointing in slightly the wrong direction.  Stick to using one of those four values for an angle.

Modify the coordinates as follows (thanks Fender for the tip!)

modify the z component by the following amounts for proper placement:
red & blue flag 0
neutral flag +125
all obelisks -50
persistent items 0

 

The SCTA team has converted some Q3A maps, and we have also created some spawnvars to 'fix' the maps in 3wave mappack #1 such that the persistent powerups belong to a team.  Check them out here

 

 


 
 

Links
Admin Central
Command List
Quake3World
 

< This site, SCTA, and SCQ3A Copyright Ben Goodwin 2001. All Quake III icons, symbols and artwork property of id Software. Webdesign by ^^Ch@os^^ >